Streaming
kenari mendukung streaming pada kedua endpoint chat. Saat body request menyetel "stream": true, server mengirim respons secara bertahap memakai Server-Sent Events dengan Content-Type: text/event-stream. Tiap event adalah satu baris data: berisi potongan JSON dalam format asli API yang kamu panggil.
Cara kerja
Section titled “Cara kerja”Format potongan mengikuti API tujuan, bukan format gabungan. Karena itu, stream dari endpoint gaya OpenAI berbeda bentuk dari stream gaya Anthropic.
| Endpoint | Format potongan | Penanda akhir |
|---|---|---|
POST /v1/chat/completions | delta gaya OpenAI | data: [DONE] |
POST /v1/messages | blok event gaya Anthropic | event message_stop |
OpenAI: chat completions
Section titled “OpenAI: chat completions”Pada /v1/chat/completions, tiap event membawa potongan delta gaya OpenAI. Token model menumpuk di choices[0].delta.content. Stream ditutup dengan satu baris data: [DONE].
curl -N https://kenari.id/v1/chat/completions \ -H "Authorization: Bearer kn-..." \ -H "Content-Type: application/json" \ -d '{"model":"step-3-7-flash","stream":true,"messages":[{"role":"user","content":"Hitung 1 sampai 5."}]}'Flag -N mematikan buffering curl supaya tiap event tampil saat tiba, bukan menunggu respons selesai.
Anthropic: messages
Section titled “Anthropic: messages”Pada /v1/messages, stream memakai blok event gaya Anthropic. Urutannya: message_start, lalu pasangan content_block_start / content_block_delta / content_block_stop per blok konten, kemudian message_delta dan message_stop. Teks model masuk lewat content_block_delta.
Penalaran
Section titled “Penalaran”Penalaran tidak dikirim sebagai delta terpisah. Lihat Penalaran untuk perilaku model reasoning.
Lihat juga Chat completions dan Messages untuk bentuk body request dan response non-streaming.