串流
串流會逐步傳回生成的輸出,不必等待完整回應。當所選模型與管道支援時,GetRouter 的 Chat Completions 與 Responses 端點可使用串流請求欄位。
使用 cURL 串流 Chat Completions
將 stream 設為 true,並使用 curl -N 停用用戶端緩衝:
Chat Completions 會串流傳送 Server-Sent Events。文字區塊位於:
串流通常會以 [DONE] 等終止事件結束。
使用 Python 串流 Chat Completions
Responses API 串流
Responses 串流使用 Responses API 事件物件,而非 Chat Completions 的 choices[].delta 區塊。請依事件的 type 解析,不要沿用僅適用於 Chat Completions 的解析器。
stream_options
Chat Completions 結構描述接受 stream_options,但支援情況取決於所選模型路由。如果上游相容選項遭拒,請移除該選項,並只使用 stream: true 重試。
串流期間的工具呼叫
工具呼叫引數可能分散在多個區塊中抵達。請依索引或工具呼叫 ID 累積工具呼叫增量,等引數完整後再剖析及執行。
處理連線中斷
串流連線可能因用戶端逾時、Proxy 逾時、網路中斷或上游錯誤,在終止事件出現前結束。
用戶端應:
- 將缺少終止事件的情況視為未完成的回應
- 視需要保留已接收的文字
- 避免盲目重試非冪等的工具操作
- 針對所選模型設定足夠長的逾時
- 記錄請求 ID 與錯誤,但不要記錄 API 金鑰
Warning
除非應用程式能避免重複的副作用,否則請勿自動重新執行只完成一部分的代理程式或工具工作流程。
疑難排解
輸出一次全部抵達
用戶端、反向 Proxy 或中介軟體可能正在緩衝 SSE 資料。開始偵錯 UI 前,請先使用 curl -N 直接測試。
連線立即關閉
確認模型在所選端點上支援串流。另請檢查錯誤事件或 HTTP 回應主體,再判定是否為網路失敗。
區塊中缺少用量資訊
串流期間的用量回報取決於協定、請求選項與模型路由。請勿要求每個區塊都必須包含用量資訊。
