Title: Streaming %E2%80%94 LLM EU Canonical: https://llmeu.com/nl/docs/streaming/ Markdown mirror: https://llmeu.com/nl/docs/streaming.md Machine-readable: https://llmeu.com/llms.txt (index) - https://llmeu.com/llms-full.txt (full catalogue) - https://llmeu.com/llms-catalogue.json Aan de slag - [Snelstart](/nl/docs/quickstart/) - [Console](/nl/docs/console/) - [Migratie](/nl/docs/migration/) - [API-referentie](/nl/docs/api/) Referentie - [Authenticatie](/nl/docs/authentication/) - [Eindpunten](/nl/docs/endpoints/) - [Fouten](/nl/docs/errors/) - [Snelheidslimieten](/nl/docs/rate-limits/) - [Streaming](/nl/docs/streaming/) - [Beleid](/nl/docs/policies/) - [Routing en beleid](/nl/docs/routing/) - [Residentie en regio's](/nl/docs/residency/) - [Bewijs en verificatie](/nl/docs/evidence/) - [OpenAI-compatibiliteit](/nl/docs/openai-compat/) Bedienen - [Zelfhosting](/nl/docs/self-hosting/) # 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: %C3%A9%C3%A9n 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 %C3%A9%C3%A9n frame per delta, dan een frame met finish_reason en het routeringsblok, dan precies %C3%A9%C3%A9n 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-%E2%80%A6","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]} data: {"id":"chatcmpl-%E2%80%A6","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hallo"},"finish_reason":null}]} data: {"id":"chatcmpl-%E2%80%A6","object":"chat.completion.chunk","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"llmeu":{%E2%80%A6}} 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 %C3%A9%C3%A9n frame.