Поточно предаване
Как потоково завършване пристига по мрежата, какво носи последният кадър и какво се случва, когато клиентът прекъсне връзка.
Транспортът
Задайте stream: true и отговорът е text/event-stream: един JSON обект на ред data:, всеки последван от празен ред. Буферирането е изключено, така че проксито не задържа кадри.
HTTP/1.1 200 OK
content-type: text/event-stream; charset=utf-8
cache-control: no-cache, no-transform
connection: keep-alive
Кадрите
Първият кадър носи ролята асистент, след това един кадър на делта, след това кадър с finish_reason и блок за маршрутизиране, след това точно един терминатор. Клиент, който следва формата, прочита терминатора и спира; не трябва да третира липсващ терминатор като пълен отговор.
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]
Блокът за маршрутизиране пътува с последния кадър
Последният кадър носи същия llmeu обект, който връща непоточното предаване: trace_id, model_used, model_version, provider, endpoint_id, inference_region, sovereignty_class, policy_id, retention и оценката на разходите. В режим на поточно предаване използването се знае само в края, поради което блокът пътува с последния кадър, а не с първия.
Клиентът прекъсва връзка
Затварянето на връзката спира работата и записва проследяването с това, което действително е произведено. Отменената заявка все още е извикване, което се е случило, така че се появява в използването; не се записва като завършено завършване.
Какво не може да се предава поточно
Ембeдингите и платформеният API са единични JSON отговори. stream: true на непоточен маршрут е грешка при валидация, а не безшумен откат към един кадър.