0Pricing
Learn AI with Python · Pelajaran

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 OpenAI

Membuat 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

  1. API OpenAI: chat.completions dan Streaming
  2. API Anthropic Claude dalam Python
  3. Pemanggilan Fungsi dan Penggunaan Alat dengan LLM
  4. Rekayasa Prompt untuk Aplikasi LLM Produksi
← Kembali ke Learn AI with Python