Lewati ke konten
kenari.

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.

Format potongan mengikuti API tujuan, bukan format gabungan. Karena itu, stream dari endpoint gaya OpenAI berbeda bentuk dari stream gaya Anthropic.

EndpointFormat potonganPenanda akhir
POST /v1/chat/completionsdelta gaya OpenAIdata: [DONE]
POST /v1/messagesblok event gaya Anthropicevent message_stop

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].

Terminal window
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.

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 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.