Penstriman Respons (SSE)
Strim output LLM token demi token melalui Acara Dihantar Pelayan untuk antara muka yang pantas dan petunjuk kemajuan.
Penstriman Respons (SSE) ialah pelajaran Ejen AI percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Ejen AI, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Ejen AI merangkumi sejumlah 4 pelajaran.
Mengapa Menstrim?
Tanpa penstriman, anda perlu menunggu respons penuh sebelum memaparkan apa-apa. Dengan respons 50 token yang mengambil masa 5 saat, pengguna tidak melihat apa-apa selama 5 saat.
Penstriman memaparkan token sebaik sahaja tiba — jumlah masa tetap sama, tetapi pengalaman pengguna terasa serta-merta.
Peristiwa Dihantar Pelayan (SSE)
OpenAI dan Anthropic menstrim melalui SSE — protokol HTTP sehala yang membolehkan pelayan menolak peristiwa dalam format data: {...}\n\n.
Kebanyakan SDK menyembunyikan SSE di sebalik antara muka lelaran.
Penstriman dengan OpenAI
Tetapkan stream=True dan lelar 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 Penuh
Kumpulkan delta untuk mendapatkan rentetan 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})Penstriman dengan Anthropic
Coraknya sama, tetapi APInya sedikit berbeza:
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)Menstrim Panggilan Alat
Panggilan alat juga distrim. Dengan OpenAI, nama fungsi dan argumen tiba secara berperingkat:
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
passTekanan Balik dan Pembatalan
Jika pengguna menutup halaman, batalkan strim untuk menghentikan pembaziran token:
try:
for chunk in stream:
if request_was_cancelled():
stream.close()
break
finally:
stream.close()Menstrim Melalui Pelayan 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')Menimbal untuk Ayat
Untuk teks-ke-pertuturan atau paparan berpecah kepada kelompok, lakukan penimbalan sehingga ayat berakhir:
buf = ''
for chunk in stream:
buf += chunk.choices[0].delta.content or ''
while '. ' in buf:
sentence, buf = buf.split('. ', 1)
speak(sentence + '.')Menghuraikan JSON yang Distrim
Untuk keluaran JSON, anda tidak boleh menghuraikannya di tengah-tengah penstriman. Pilihannya:
- Menimbal keseluruhan keluaran kemudian menghuraikannya sekali
- Menggunakan penghuraian JSON penstriman (
ijson) untuk mengeluarkan medan apabila selesai
Metrik Kependaman: TTFT dan TPS
- TTFT — masa sehingga token pertama (kepekaan respons yang dirasai)
- TPS — token sesaat (daya pemprosesan)
Penstriman mengoptimumkan TTFT, bukan jumlah masa. Sasarkan TTFT < 500ms untuk pengalaman pengguna sembang.
Mengapa Menstrim?
Apakah manfaat utama penstriman?
Imbas Kembali
Penstriman meningkatkan pengalaman pengguna, bukan kelajuan. Laksanakan penstriman dalam mana-mana ejen yang berinteraksi dengan manusia secara masa nyata.
Pelajari Ejen AI 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
- 60
- Pelajaran
- 239
Soalan Lazim
Adakah pelajaran “Penstriman Respons (SSE)” percuma?
Ya — teks penuh “Penstriman Respons (SSE)” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Ejen AI, tingkat taraf kepada CoddyKit PRO. Kursus Ejen AI merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Penstriman Respons (SSE)”?
Strim output LLM token demi token melalui Acara Dihantar Pelayan untuk antara muka yang pantas dan petunjuk kemajuan. Anda berlatih Ejen AI 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 Ejen AI?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Ejen AI 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 3 daripada 4.
Berapa lamakah pelajaran “Penstriman Respons (SSE)” 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 Ejen AI ini?
Ya. Setiap pelajaran Ejen AI 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
- Memanggil API OpenAI: chat.completions
- Memanggil API Anthropic: messages
- Penstriman Respons (SSE)
- Kesedaran Kos: Pengiraan Token dan Belanjawan