Skip to main content
在任意 POST /api/v1/completions 請求中設置 stream: true,即可獲得 Server-Sent Events(SSE)流,而非單個 JSON 響應。

請求

需要通過 Bearer token 進行身份驗證。參見身份驗證。

傳輸格式

每個事件由兩行組成,後跟一個空行:
調用方必須緩衝部分數據塊並按 \n\n 進行拆分——令牌事件每條可能只有幾十字節,且傳輸層不保證與事件邊界對齊。

事件類型(按到達順序)

服務器以固定順序發出事件:thinking → meta → (skills? / genui_meta?) → tool* → artifact* → token* → done。若流中途出現失敗,將發出 error 事件並關閉該流。

負載模式

meta

token

tool

artifact

負載取決於 artifact.type。通用字段:id、type、title、providerId、modelId。圖片類工件包含 imageUrl;視頻類工件包含 videoUrl;文檔類工件包含 downloadUrl 和 sizeBytes;代碼類工件包含 code 和 language。

genui_meta

skills

done

error

error 事件的負載與 REST 錯誤信封格式一致(參見概覽):

流示例

提取 conversation_id

conversation_id 同時出現在 meta 和 done 中。對於無狀態調用方(請求中未包含 conversation_id),其值為 null。對於在請求中傳入了 conversation_id 的調用方,該值會原樣回傳。SDK 在流結束後將其暴露為 stream.conversationId。

流中錯誤

當編排在 meta 已發出之後失敗時(例如上游 LLM 提供方超時,或觸發了某個模式下的速率限制),服務器會發出帶 REST 信封格式的 error 事件並關閉該流:
請使用與 REST 錯誤處理相同的代碼路徑:

SDK 用法

SDK 返回一個 TheoStream——一個可異步迭代的對象,帶有用於中途取消的 cancel() 方法,以及最終的元數據屬性。
參見流式獲取概念性指南。