Streaming
Hoe een gestreamde completion over de lijn aankomt, wat het laatste frame bevat, en wat er gebeurt wanneer een client de verbinding verbreekt.
Het transport
Stel stream: true in en het antwoord is text/event-stream: één JSON-object per data:-regel, elk gevolgd door een lege regel. Buffering is uitgeschakeld zodat een proxy frames niet tegenhoudt.
HTTP/1.1 200 OK
content-type: text/event-stream; charset=utf-8
cache-control: no-cache, no-transform
connection: keep-alive
De frames
Het eerste frame bevat de assistant-rol, dan één frame per delta, dan een frame met finish_reason en het routeringsblok, dan precies één terminator. Een client die het formaat volgt, leest de terminator en stopt; hij mag een ontbrekende terminator niet als een volledig antwoord beschouwen.
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]
Het routeringsblok reist mee met het laatste frame
Het laatste frame bevat hetzelfde llmeu-object dat de niet-streaming respons retourneert: trace_id, model_used, model_version, provider, endpoint_id, inference_region, sovereignty_class, policy_id, retention en de kostenraming. In streamingmodus is het gebruik alleen aan het einde bekend, daarom reist het blok mee met het laatste frame in plaats van het eerste.
Client verbreekt verbinding
Het sluiten van de verbinding stopt het werk en schrijft de trace met wat daadwerkelijk is geproduceerd. Een geannuleerd verzoek is nog steeds een aanroep die heeft plaatsgevonden, dus het verschijnt in het gebruik; het wordt niet geregistreerd als een voltooide completion.
Wat niet gestreamd kan worden
Embeddings en de platform-API zijn enkele JSON-responses. stream: true op een niet-streaming route is een validatiefout, geen stille terugval naar één frame.