Streaming

Cum ajunge pe rețea o completare transmisă în streaming, ce conține ultimul cadru și ce se întâmplă când un client se deconectează.

Transportul

Setați stream: true și răspunsul este text/event-stream: un obiect JSON per linie data:, fiecare urmat de o linie goală. Buffering-ul este dezactivat, astfel încât un proxy să nu rețină cadrele.

HTTP/1.1 200 OK
content-type: text/event-stream; charset=utf-8
cache-control: no-cache, no-transform
connection: keep-alive

Cadrele

Primul cadru conține rolul de asistent, apoi un cadru per delta, apoi un cadru cu finish_reason și blocul de rutare, apoi exact un terminator. Un client care respectă formatul citește terminatorul și se oprește; nu trebuie să trateze un terminator lipsă ca pe un răspuns complet.

data: {"id":"chatcmpl-…","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}

data: {"id":"chatcmpl-…","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hallo"},"finish_reason":null}]}

data: {"id":"chatcmpl-…","object":"chat.completion.chunk","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"llmeu":{…}}

data: [DONE]

Blocul de rutare este transmis cu ultimul cadru

Cadrul final conține același obiect llmeu pe care îl returnează răspunsul non-streaming: trace_id, model_used, model_version, provider, endpoint_id, inference_region, sovereignty_class, policy_id, retention și estimarea costului. În modul streaming, utilizarea este cunoscută doar la final, motiv pentru care blocul este transmis cu ultimul cadru, nu cu primul.

Deconectări ale clientului

Închiderea conexiunii oprește lucrul și scrie urma cu ceea ce a fost produs efectiv. O cerere anulată este totuși un apel care a avut loc, așa că apare în utilizare; nu este înregistrată ca o completare finalizată.

Ce nu poate fi transmis în streaming

Embeddings-urile și API-ul platformei sunt răspunsuri JSON unice. stream: true pe o rută non-streaming este o eroare de validare, nu o soluție de rezervă silențioasă la un singur cadru.