ngodingdocs

Panduan

Streaming

SSE di ketiga format — cara baca, usage, dan disconnect yang tetap ditagih.

Streaming

Ketiga endpoint inference mendukung stream SSE (text/event-stream). Format event mengikuti format yang dipanggil klien — termasuk bila upstream-nya berbeda (diterjemahkan per chunk).

Meminta stream

FormatParameterCatatan
Chat Completions"stream": truestream_options.include_usage selalu dipatch ke upstream; chunk khusus-usage dibuang bila klien tidak memintanya
Responses"stream": trueevent response.* standar
Messages"stream": truemessage_start membawa usage input, message_delta membawa output kumulatif (diambil nilai terakhir per field)
curl -N <API>/v1/chat/completions \
  -H "Authorization: Bearer $NGODING_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-5-5",
    "messages": [{"role": "user", "content": "Cerpen 3 paragraf tentang hujan."}],
    "max_tokens": 512,
    "stream": true
  }'

(-N mematikan buffer curl supaya chunk terlihat langsung.)

Yang perlu diingat

  • Nama model di setiap chunk sudah ditulis ulang ke id publik — jangan heran bila respons non-stream dan stream menyebut id yang sama.
  • Stream yang terputus tetap ditagih. Usage yang sudah terlihat dipakai; komponen yang nol diestimasi (input dari estimasi tokenizer, output dari panjang karakter ÷ 4, dibulatkan ke atas) dengan error_code = "usage_estimated". Klien disconnect juga membatalkan context upstream (berhenti membayar upstream).
  • Error di tengah stream Anthropic datang sebagai event: error, bukan HTTP error.
  • Request Messages dengan server tool: blok tool datang utuh (tanpa delta bertahap), dan event ping dikirim tiap 10 detik selama tool berjalan.
  • Request Responses dan Chat dengan server tool: Responses mengirim item web_search_call / x_search_call dan event response.web_search_call.* (detail); Chat tanpa event tool, dengan delta.annotations sebelum chunk finish_reason. Selama tool berjalan, keduanya mengirim komentar SSE : ping tiap 10 detik.
  • Timeout total satu request mengikuti UPSTREAM_TIMEOUT (default 15 menit); tidak ada retry setelah byte pertama mengalir (menghindari tagihan upstream ganda).

Ganti <API> dengan https://api.ngoding.in.