Skip to main content

錯誤格式

所有錯誤均遵循統一的 JSON 格式:

錯誤類型

常見錯誤與解決方案

401 — API Key 無效

解決方案: 檢查您的 API key 是否正確且未被撤銷。

403 — 提供商不被允許

解決方案: 您的 API key 存在 allowed_providers 限制。請使用其他金鑰,或透過管理 API 更新允許的提供商。

429 — 觸發限流

解決方案: 實作指數退避策略。考慮提高該金鑰的速率限制。

502 — 上游請求失敗

解決方案: LLM 提供商回傳錯誤或無法存取。ARouter 會自動處理金鑰故障轉移,但提供商本身可能正在遭遇問題。請重試或切換至其他提供商。

在程式碼中處理錯誤

重試策略

對於正式應用,我們建議:
  1. 對 429 和 502 使用指數退避重試
  2. 不要重試 400、401、403 — 這些是永久性錯誤
  3. 設定最大重試次數(例如 3 次)
  4. 考慮多模型路由 — 如果某個模型無法處理請求,可透過 modelsroute 傳送有序候選清單

串流傳輸中的錯誤處理

當使用串流傳輸(stream: true)時,錯誤的行為因發生時機而有所不同:
  • 在傳送任何 Token 之前 — ARouter 回傳帶有非 200 狀態碼的標準 HTTP 錯誤回應,處理方式與非串流錯誤相同。
  • 在 Token 已傳送之後 — HTTP 狀態已經是 200 OK,錯誤將作為 SSE 事件在串流內容中傳遞。
串流途中錯誤格式如下:
請檢查每個資料區塊的 finish_reason。如果值為 "error",則表示串流異常終止。
完整的串流錯誤處理範例請參閱串流傳輸指南