API OpenAI: chat.completions dan Streaming
Klien OpenAI, daftar pesan, peran sistem/pengguna/asisten, streaming dengan stream=True.
API OpenAI: chat.completions dan Streaming adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.
Berkenalan dengan SDK Python OpenAI
Paket Python openai adalah cara resmi untuk berkomunikasi dengan model OpenAI seperti GPT-4o. Pasang dengan pip install openai dan Anda akan memperoleh satu kelas klien OpenAI yang menangani autentikasi, percobaan ulang, dan penyusunan permintaan untuk Anda.
Setiap pemanggilan yang Anda lakukan melalui klien ini, jadi membuatnya sekali lalu menggunakannya kembali adalah pola standar.
pip install openai
from openai import OpenAIMembuat Klien
Inisialisasikan klien dengan OpenAI(). Secara bawaan, klien membaca kunci Anda dari variabel lingkungan OPENAI_API_KEY, sehingga rahasia tidak tersimpan dalam kode sumber Anda.
Anda juga dapat meneruskan kunci secara eksplisit, tetapi variabel lingkungan adalah pendekatan yang disarankan 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-...")Daftar Pesan
Model percakapan digerakkan oleh daftar pesan. Setiap pesan adalah kamus dengan role dan content. Tiga peran utamanya adalah system (instruksi), user (manusia), dan assistant (model).
Daftar ini adalah seluruh konteks percakapan yang dilihat model pada setiap pemanggilan.
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is the capital of France?"}
]Respons Pertama Anda
Panggil client.chat.completions.create() dengan model dan messages Anda. Teks balasan berada di response.choices[0].message.content.
API mengembalikan daftar pilihan, tetapi untuk penggunaan biasa Anda cukup membaca pilihan pertama.
response = client.chat.completions.create(
model="gpt-4o",
messages=messages
)
print(response.choices[0].message.content)Mengendalikan Keluaran dengan Parameter
Dua parameter membentuk respons: temperature (0 = deterministik, lebih tinggi = lebih kreatif) dan max_tokens (membatasi panjang balasan). Temperatur yang lebih rendah cocok untuk tugas faktual; temperatur yang lebih tinggi cocok untuk curah pendapat.
response = client.chat.completions.create(
model="gpt-4o",
messages=messages,
temperature=0.2,
max_tokens=300
)Mengapa Mengalirkan Respons?
Tanpa pengaliran, Anda harus menunggu seluruh balasan selesai sebelum melihat apa pun. Dengan pengaliran, token tiba saat dihasilkan, sehingga antarmuka pengguna dapat menampilkan teks secara waktu nyata seperti yang dilakukan ChatGPT.
Anda mengaktifkannya dengan stream=True, yang mengubah nilai kembalian dari satu objek menjadi sebuah iterator.
Mengaktifkan Pengaliran
Teruskan stream=True ke create(). Alih-alih respons yang sudah selesai, kini Anda mendapatkan pembangkit yang menghasilkan potongan saat model membuatnya.
stream = client.chat.completions.create(
model="gpt-4o",
messages=messages,
stream=True
)Melakukan Iterasi pada Potongan
Lakukan perulangan pada stream. Setiap potongan membawa bagian teks sementara di chunk.choices[0].delta.content. Potongan awal dan akhir mungkin memiliki None di sana, jadi periksa nilainya sebelum mencetak.
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta is not None:
print(delta, end="", flush=True)Memahami Perubahan dan Pesan
Dalam respons biasa, Anda membaca message.content (seluruh balasan). Dalam pengaliran, Anda membaca delta.content (hanya bagian baru). Istilah perubahan berarti "perubahan" sejak potongan terakhir.
Menggabungkan semua perubahan akan menyusun kembali pesan lengkap.
full_text = ""
for chunk in stream:
piece = chunk.choices[0].delta.content or ""
full_text += piece
print("\nFinal:", full_text)Percakapan Banyak Giliran
Untuk melanjutkan percakapan, append balasan asisten ke dalam messages, lalu tambahkan pesan pengguna berikutnya. Model tidak menyimpan status, jadi YOU yang memelihara riwayatnya.
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 pengaliran menyertakan objek usage dengan prompt_tokens, completion_tokens, dan total_tokens. Dengan cara inilah Anda melacak dan menganggarkan biaya API, karena penagihan dilakukan per token.
print(response.usage.prompt_tokens)
print(response.usage.completion_tokens)
print(response.usage.total_tokens)Pemeriksaan Singkat
Uji pemahaman Anda tentang pengaliran.
Rangkuman: Penyelesaian Percakapan dan Pengaliran
Anda telah mempelajari cara membuat klien OpenAI, menyusun daftar messages dengan peran sistem/pengguna/asisten, dan memanggil chat.completions.create(). Anda membaca balasan biasa dari choices[0].message.content.
Dengan stream=True, Anda melakukan iterasi pada potongan dan membaca delta.content untuk mendapatkan keluaran waktu nyata, memelihara riwayat dengan menambahkan balasan, serta melacak biaya melalui objek usage.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “API OpenAI: chat.completions dan Streaming” gratis?
Ya — teks lengkap “API OpenAI: chat.completions dan Streaming” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “API OpenAI: chat.completions dan Streaming”?
Klien OpenAI, daftar pesan, peran sistem/pengguna/asisten, streaming dengan stream=True. Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Learn AI with Python?
Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “API OpenAI: chat.completions dan Streaming” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?
Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- API OpenAI: chat.completions dan Streaming
- API Anthropic Claude dalam Python
- Pemanggilan Fungsi dan Penggunaan Alat dengan LLM
- Rekayasa Prompt untuk Aplikasi LLM Produksi