Skip to main content

Ringkasan

Streaming mengirim output secara bertahap. Gunakan Responses streaming ketika model mengiklankan kontrak Responses native dan tersedia rute upstream dengan protokol yang sama; jika tidak, gunakan Chat Completions atau protokol native yang dipublikasikan model.

Direkomendasikan: Responses Streaming

Batas Streaming Responses dan Gemini

Pada Responses SSE, TokenLab mempertahankan nama, urutan, dan field event upstream serta membaca usage dan status terminal secara out-of-band tanpa mengubah wire. Setelah event pertama dikirim, channel atau credential lain tidak dicoba. Responses WebSocket hanya menerima event resmi response.create. Stream bersifat implisit; background dan response.cancel tidak tersedia pada transport ini, sedangkan background hanya berjalan melalui HTTP. Setiap koneksi bersifat serial, tanpa multiplexing, dan dibatasi 60 menit. Gemini SSE mempertahankan chunk native. Event metadata-only, chunk perantara tanpa finishReason, dan EOF alami valid; TokenLab tidak menambahkan marker Chat [DONE].

Streaming Chat Completions

Jika framework Anda masih mengharapkan chunk SSE dari /v1/chat/completions, itu juga berfungsi:

Kondisi Akhir Stream

Kondisi penyelesaian yang umum:
  • response.completed untuk stream Responses API
  • finish_reason: "stop" untuk stream Chat Completions
  • finish_reason: "length" saat batas token tercapai
  • event pemanggilan tool/function saat model ingin menggunakan tool

Pola Aplikasi Web

Praktik Terbaik

Gunakan /v1/responses jika SDK atau aplikasi Anda sudah mendukungnya. Pertahankan streaming /v1/chat/completions untuk integrasi yang didorong oleh kebutuhan kompatibilitas.
Tambahkan chunk delta ke UI atau terminal saat chunk tersebut tiba alih-alih menunggu respons penuh.
Perlakukan gangguan jaringan dan pemutusan koneksi upstream sebagai mode kegagalan yang normal, dan lakukan koneksi ulang dengan hati-hati untuk sesi yang berjalan lama.