Streaming

Πώς φτάνει ένα streamed completion στο δίκτυο, τι μεταφέρει το τελευταίο frame, και τι συμβαίνει όταν ένας client αποσυνδέεται.

Το transport

Ορίστε stream: true και η απάντηση είναι text/event-stream: ένα αντικείμενο JSON ανά γραμμή data:, καθένα ακολουθούμενο από μια κενή γραμμή. Το buffering είναι απενεργοποιημένο ώστε ένας proxy να μην κρατάει πίσω τα frames.

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

Τα frames

Το πρώτο frame μεταφέρει τον ρόλο assistant, στη συνέχεια ένα frame ανά delta, μετά ένα frame με finish_reason και το routing block, και τέλος ακριβώς έναν τερματισμό. Ένας client που ακολουθεί τη μορφή διαβάζει τον τερματισμό και σταματά· δεν πρέπει να θεωρεί έναν απόντα τερματισμό ως πλήρη απάντηση.

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]

Το routing block ταξιδεύει με το τελευταίο frame

Το τελικό frame μεταφέρει το ίδιο αντικείμενο llmeu που επιστρέφει η μη-streaming απάντηση: trace_id, model_used, model_version, provider, endpoint_id, inference_region, sovereignty_class, policy_id, retention και την εκτίμηση κόστους. Στη λειτουργία streaming η χρήση είναι γνωστή μόνο στο τέλος, γι' αυτό το block ταξιδεύει με το τελευταίο frame αντί για το πρώτο.

Αποσυνδέσεις client

Το κλείσιμο της σύνδεσης σταματά την εργασία και γράφει το trace με ό,τι πράγματι παρήχθη. Ένα ακυρωμένο αίτημα εξακολουθεί να είναι μια κλήση που συνέβη, επομένως εμφανίζεται στη χρήση· δεν καταγράφεται ως ολοκληρωμένο completion.

Τι δεν μπορεί να γίνει stream

Τα embeddings και το platform API είναι μεμονωμένες απαντήσεις JSON. Το stream: true σε μια μη-streaming διαδρομή είναι σφάλμα επικύρωσης, όχι σιωπηλή πτώση σε ένα frame.