Streamelés

Hogyan érkezik a streamelt válasz a vezetéken, mit hordoz az utolsó keret, és mi történik, amikor egy kliens lecsatlakozik.

Az átvitel

Állítsa be a stream: true értéket, és a válasz text/event-stream lesz: minden data: sor után egy JSON-objektum, mindegyiket üres sor követi. A pufferelés le van tiltva, így a proxy nem tartja vissza a kereteket.

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

A keretek

Az első keret az assistant szerepet hordozza, majd deltánként egy keret, aztán egy keret a finish_reason értékkel és az útvonalválasztási blokkal, végül pontosan egy lezáró. Az a kliens, amely követi a formátumot, beolvassa a lezárót és megáll; nem szabad a hiányzó lezárót teljes válaszként kezelnie.

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]

Az útvonalválasztási blokk az utolsó kerettel utazik

A záró keret ugyanazt az llmeu objektumot hordozza, amelyet a nem streamelt válasz visszaad: trace_id, model_used, model_version, provider, endpoint_id, inference_region, sovereignty_class, policy_id, retention és a költségbecslés. Streamelési módban a használat csak a végén ismert, ezért utazik a blokk az utolsó kerettel, nem az elsővel.

Kliens lecsatlakozása

A kapcsolat bezárása leállítja a munkát, és a nyomkövetés rögzíti, ami ténylegesen elkészült. A megszakított kérés továbbra is megtörtént hívás, ezért megjelenik a használatban; nem kerül rögzítésre befejezett válaszként.

Mi nem streamelhető

A beágyazások és a platform API egyetlen JSON-választ adnak. A stream: true egy nem streamelő útvonalon érvényesítési hiba, nem pedig csendes visszaesés egyetlen keretre.