0Pricing
AI Agents · Pelajaran

Mengalirkan Respons (SSE)

Alirkan keluaran LLM token demi token melalui Server-Sent Events untuk antarmuka yang responsif dan penunjuk kemajuan.

Mengalirkan Respons (SSE) adalah pelajaran AI Agents gratis di CoddyKit. Ini adalah pelajaran 3 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 AI Agents, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Agents mencakup 4 pelajaran total.

Mengapa Melakukan Pengaliran?

Tanpa pengaliran, Anda harus menunggu respons lengkap sebelum menampilkan apa pun. Dengan respons 50 token yang membutuhkan waktu 5 detik, pengguna tidak melihat apa pun selama 5 detik.

Pengaliran menampilkan token saat tiba — total waktunya sama, tetapi pengalaman pengguna terasa seketika.

Server-Sent Events (SSE)

OpenAI dan Anthropic melakukan pengaliran melalui SSE — protokol HTTP satu arah yang memungkinkan server mengirimkan peristiwa dengan format data: {...}\n\n.

Sebagian besar SDK menyembunyikan SSE di balik antarmuka iterator.

Pengaliran dengan OpenAI

Tetapkan stream=True lalu lakukan iterasi pada respons:

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

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

Mengumpulkan Respons Lengkap

Akumulasikan delta untuk mendapatkan string akhir:

buf = []
for chunk in stream:
    delta = chunk.choices[0].delta.content or ''
    buf.append(delta)
    print(delta, end='', flush=True)

full_text = ''.join(buf)
messages.append({'role': 'assistant', 'content': full_text})

Pengaliran dengan Anthropic

Polanya sama, tetapi API-nya sedikit berbeda:

with client.messages.stream(
    model='claude-sonnet-4-5',
    max_tokens=1024,
    messages=messages,
) as stream:
    for text in stream.text_stream:
        print(text, end='', flush=True)

    final = stream.get_final_message()
    print('\ndone, tokens:', final.usage.output_tokens)

Pengaliran Panggilan Alat

Panggilan alat juga dialirkan. Dengan OpenAI, nama fungsi dan argumen tiba secara bertahap:

for chunk in stream:
    delta = chunk.choices[0].delta
    if delta.tool_calls:
        for tc in delta.tool_calls:
            # tc.function.name and tc.function.arguments arrive as partial strings
            pass

Tekanan Balik dan Pembatalan

Jika pengguna menutup halaman, batalkan pengaliran agar token tidak terus terpakai:

try:
    for chunk in stream:
        if request_was_cancelled():
            stream.close()
            break
finally:
    stream.close()

Mengalirkan melalui Server Web

Untuk FastAPI, gunakan StreamingResponse:

from fastapi.responses import StreamingResponse

def token_generator():
    for chunk in stream:
        delta = chunk.choices[0].delta.content or ''
        yield f'data: {delta}\n\n'

return StreamingResponse(token_generator(), media_type='text/event-stream')

Menyangga Kalimat

Untuk sintesis suara atau tampilan bertahap, sangga teks hingga sebuah kalimat selesai:

buf = ''
for chunk in stream:
    buf += chunk.choices[0].delta.content or ''
    while '. ' in buf:
        sentence, buf = buf.split('. ', 1)
        speak(sentence + '.')

Mengurai JSON yang Dialirkan

Untuk keluaran JSON, Anda tidak dapat mengurainya di tengah pengaliran. Pilihannya:

  • Sangga seluruh keluaran, lalu urai sekali
  • Gunakan pengurai JSON berkelanjutan (ijson) untuk mengeluarkan bidang saat selesai

Metrik Latensi: TTFT dan TPS

  • TTFT — waktu hingga token pertama (daya tanggap yang dirasakan pengguna)
  • TPS — token per detik (laju pemrosesan)

Pengaliran mengoptimalkan TTFT, bukan total waktu. Usahakan TTFT < 500 md untuk pengalaman obrolan yang baik.

Mengapa Melakukan Pengaliran?

Apa manfaat utama pengaliran?

Rangkuman

Pengaliran meningkatkan pengalaman pengguna, bukan kecepatan. Terapkan pengaliran pada setiap agen yang berinteraksi dengan manusia secara waktu nyata.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mengalirkan Respons (SSE)” gratis?

Ya — teks lengkap “Mengalirkan Respons (SSE)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Agents, upgrade ke CoddyKit PRO. Kursus AI Agents mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Mengalirkan Respons (SSE)”?

Alirkan keluaran LLM token demi token melalui Server-Sent Events untuk antarmuka yang responsif dan penunjuk kemajuan. Kamu berlatih AI Agents 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 AI Agents?

Tidak diperlukan pengalaman sebelumnya. AI Agents 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 3 dari 4.

Berapa lama pelajaran “Mengalirkan Respons (SSE)” 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 AI Agents ini?

Ya. Setiap pelajaran AI Agents 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. Memanggil API OpenAI: chat.completions
  2. Memanggil API Anthropic: messages
  3. Mengalirkan Respons (SSE)
  4. Kesadaran Biaya: Penghitungan Token dan Anggaran
← Kembali ke AI Agents