Pelajari AI dengan Python · Pelajaran

API OpenAI: chat.completions dan Penstriman

Klien OpenAI, senarai mesej, peranan sistem/pengguna/pembantu, penstriman dengan stream=True.

Pelajaran 1 daripada 413 langkah

API OpenAI: chat.completions dan Penstriman ialah pelajaran Pelajari AI dengan Python percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pelajari AI dengan Python, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pelajari AI dengan Python merangkumi sejumlah 4 pelajaran.

Kenali SDK Python OpenAI

Pakej Python openai ialah cara rasmi untuk berkomunikasi dengan model OpenAI seperti GPT-4o. Pasangnya dengan pip install openai dan anda akan mendapat satu kelas klien OpenAI yang mengendalikan pengesahan, percubaan semula dan pembinaan permintaan untuk anda.

Setiap panggilan yang anda buat melalui klien ini, jadi menciptanya sekali dan menggunakannya semula ialah corak piawai.

pip install openai

from openai import OpenAI

Mencipta Klien

Wujudkan klien dengan OpenAI(). Secara lalai, klien membaca kunci anda daripada pemboleh ubah persekitaran OPENAI_API_KEY, yang memastikan rahsia tidak berada dalam kod sumber anda.

Anda juga boleh menghantar kunci secara eksplisit, tetapi pemboleh ubah persekitaran ialah pendekatan yang disyorkan untuk aplikasi produksi.

from openai import OpenAI

# Reads OPENAI_API_KEY from the environment
client = OpenAI()

# Or pass it explicitly (not recommended)
client = OpenAI(api_key="sk-...")

Senarai Mesej

Model sembang digerakkan oleh senarai mesej. Setiap mesej ialah kamus dengan role dan content. Tiga peranan teras ialah system (arahan), user (manusia) dan assistant (model).

Senarai ini ialah konteks perbualan lengkap yang dilihat oleh model pada setiap panggilan.

messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "What is the capital of France?"}
]

Pelengkapan Pertama Anda

Panggil client.chat.completions.create() dengan model dan messages anda. Teks balasan terletak di response.choices[0].message.content.

API mengembalikan senarai pilihan, tetapi untuk kegunaan biasa, anda membaca pilihan pertama.

response = client.chat.completions.create(
    model="gpt-4o",
    messages=messages
)

print(response.choices[0].message.content)

Mengawal Keluaran dengan Parameter

Dua parameter membentuk respons: temperature (0 = deterministik, lebih tinggi = lebih kreatif) dan max_tokens (mengehadkan panjang balasan). Suhu yang lebih rendah sesuai untuk tugas berfakta; suhu yang lebih tinggi sesuai untuk percambahan idea.

response = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    temperature=0.2,
    max_tokens=300
)

Mengapa Menstrim Respons

Tanpa penstriman, anda perlu menunggu seluruh balasan sebelum dapat melihat apa-apa. Dengan penstriman, token tiba apabila dijana, jadi antara muka pengguna boleh memaparkan teks dalam masa nyata seperti yang dilakukan oleh ChatGPT.

Anda mendayakannya dengan stream=True, yang menukar nilai yang dikembalikan daripada satu objek kepada satu lelaran.

Mendayakan Penstriman

Hantar stream=True kepada create(). Daripada respons yang telah lengkap, anda kini mendapat penjana yang menghasilkan serpihan apabila model menghasilkannya.

stream = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    stream=True
)

Melakukan Lelaran pada Serpihan

Ulangi melalui strim tersebut. Setiap serpihan membawa sebahagian teks dalam chunk.choices[0].delta.content. Serpihan awal dan akhir mungkin mempunyai None di situ, jadi pastikan nilainya bukan begitu sebelum mencetak.

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta is not None:
        print(delta, end="", flush=True)

Memahami Perubahan berbanding Mesej

Dalam respons biasa, anda membaca message.content (keseluruhan balasan). Dalam strim, anda membaca delta.content (bahagian baharu sahaja). Istilah ini merujuk kepada "perubahan" sejak serpihan terakhir.

Menggabungkan semua perubahan akan membina semula mesej penuh.

full_text = ""
for chunk in stream:
    piece = chunk.choices[0].delta.content or ""
    full_text += piece
print("\nFinal:", full_text)

Perbualan Berbilang Giliran

Untuk meneruskan perbualan, append balasan pembantu kembali ke dalam messages, kemudian tambahkan mesej pengguna seterusnya. Model tidak menyimpan keadaan, jadi YOU mengekalkan sejarah.

messages.append({"role": "assistant", "content": response.choices[0].message.content})
messages.append({"role": "user", "content": "And its population?"})

follow_up = client.chat.completions.create(model="gpt-4o", messages=messages)

Memeriksa Penggunaan Token

Respons tanpa penstriman mengandungi objek usage dengan prompt_tokens, completion_tokens dan total_tokens. Inilah cara anda menjejak dan memperuntukkan belanjawan kos API, kerana pengebilan adalah berdasarkan token.

print(response.usage.prompt_tokens)
print(response.usage.completion_tokens)
print(response.usage.total_tokens)

Semakan Pantas

Uji pemahaman anda tentang penstriman.

Imbas Kembali: Pelengkapan Sembang dan Penstriman

Anda telah mempelajari cara mencipta klien OpenAI, membina senarai messages dengan peranan sistem/pengguna/pembantu dan memanggil chat.completions.create(). Anda membaca balasan biasa daripada choices[0].message.content.

Dengan stream=True, anda melakukan lelaran pada serpihan dan membaca delta.content untuk mendapatkan keluaran masa nyata, mengekalkan sejarah dengan menambahkan balasan dan menjejak kos melalui objek usage.

Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
53
Pelajaran
225

Soalan Lazim

Adakah pelajaran “API OpenAI: chat.completions dan Penstriman” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pelajari AI dengan Python, termasuk “API OpenAI: chat.completions dan Penstriman”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pelajari AI dengan Python merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “API OpenAI: chat.completions dan Penstriman”?

Klien OpenAI, senarai mesej, peranan sistem/pengguna/pembantu, penstriman dengan stream=True. Anda berlatih Pelajari AI dengan Python menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Pelajari AI dengan Python?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Pelajari AI dengan Python di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “API OpenAI: chat.completions dan Penstriman” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pelajari AI dengan Python ini?

Ya. Setiap pelajaran Pelajari AI dengan Python menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. API OpenAI: chat.completions dan Penstriman
  2. API Anthropic Claude dalam Python
  3. Pemanggilan Fungsi dan Penggunaan Alat dengan LLM
  4. Kejuruteraan Gesaan untuk Aplikasi LLM Pengeluaran
← Kembali ke Pelajari AI dengan Python