Skip to main content
ARouter 支援所有模型的串流回應。啟用串流傳輸後,token 會在生成時即時傳遞。 要啟用串流傳輸,請在請求主體中設定 stream: true

Anthropic 串流傳輸

Anthropic SDK 使用其自有的串流傳輸格式:

Gemini 串流傳輸

Gemini 使用 streamGenerateContent 而非 generateContent

SSE 格式

底層串流傳輸使用 Server-Sent Events。每個內容事件的格式如下:
[DONE] 之前的最後一個資料塊包含用量資料,且 choices 陣列為空:
ARouter 可能偶爾發送 SSE 注釋(以 : 開頭的行)以防止連線逾時。根據 SSE 規範,這些注釋可以安全忽略。

推薦的 SSE 客戶端程式庫

部分 SSE 客戶端實作可能無法正確解析資料。我們推薦:

取消串流請求

串流請求可透過中斷連線來取消。對於支援的提供商,這將立即停止模型處理。

串流傳輸中的錯誤處理

ARouter 根據錯誤發生的時間,以不同方式處理串流傳輸中的錯誤。

傳送任何 Token 之前出現的錯誤

如果在開始串流傳輸之前發生錯誤,ARouter 會回傳帶有適當 HTTP 狀態碼的標準 JSON 錯誤回應:
常見 HTTP 狀態碼:

已傳送部分 Token 後出現的錯誤(串流中途)

如果在已傳輸部分 token 後發生錯誤,ARouter 無法更改 HTTP 狀態碼(此時已為 200 OK)。錯誤將以 SSE 事件的形式傳送:
關鍵特徵:
  • 錯誤出現在頂層,與標準回應欄位並列
  • choices 陣列包含 finish_reason: "error" 以終止串流
  • 由於回應標頭已傳送,HTTP 狀態保持 200 OK

錯誤處理程式碼範例