Streaming
Come arriva una completion in streaming sul filo, cosa contiene l'ultimo frame e cosa succede quando un client si disconnette.
Il trasporto
Imposta stream: true e la risposta è text/event-stream: un oggetto JSON per riga data:, ciascuna seguita da una riga vuota. Il buffering è disabilitato così un proxy non trattiene i frame.
HTTP/1.1 200 OK
content-type: text/event-stream; charset=utf-8
cache-control: no-cache, no-transform
connection: keep-alive
I frame
Il primo frame contiene il ruolo assistant, poi un frame per ogni delta, poi un frame con finish_reason e il blocco di routing, infine esattamente un terminatore. Un client che segue il formato legge il terminatore e si ferma; non deve trattare un terminatore mancante come una risposta completa.
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]
Il blocco di routing viaggia con l'ultimo frame
Il frame finale contiene lo stesso oggetto llmeu restituito dalla risposta non in streaming: trace_id, model_used, model_version, provider, endpoint_id, inference_region, sovereignty_class, policy_id, retention e la stima dei costi. In modalità streaming l'utilizzo è noto solo alla fine, per questo il blocco viaggia con l'ultimo frame invece che con il primo.
Disconnessioni del client
Chiudere la connessione interrompe il lavoro e scrive la traccia con ciò che è stato effettivamente prodotto. Una richiesta annullata è comunque una chiamata avvenuta, quindi appare nell'utilizzo; non viene registrata come completion completata.
Cosa non può essere trasmesso in streaming
Gli embedding e l'API della piattaforma sono risposte JSON singole. stream: true su una route non in streaming è un errore di validazione, non un fallback silenzioso a un frame.