跳轉到主要內容
OrcaRouter 在工作區層面限流,而不是按 API 密鑰。同一工作區下的 所有密鑰共享同一個桶。超出限制時你會收到一個 429 Too Many Requests 響應,帶 Retry-After 頭。

為什么按工作區限流

工作區是 OrcaRouter 用來把同一團隊或同一個人的密鑰、成員、計費 歸在一起的方式。把限額放在工作區層面,讓流量隨團隊增長保持可預期: 新增一個密鑰(或新增一名成員)不會讓你的共享預算成倍增加。如果你 需要更高的天花板,請升級工作區的套餐。 OrcaRouter 不向調用方暴露逐模型的速率限制——從你應用的視角看, 網關表現為一個單一邏輯服務商,與服務商不透明 保持一致。指向上游服務商的內部限流是透明發生的,不屬于對外契約。

響應

被限流的請求始終返回:
HTTP/1.1 429 Too Many Requests
Retry-After: <seconds>
某些限流路徑還會帶一個 JSON body 解釋命中的限制;另一些(最快路徑 的工作區桶)只返回狀態碼和響應頭。不要依賴 body 的形態——按狀態碼 429 + 讀取 Retry-After 處理。 當 body 存在時,遵循 OpenAI 兼容信封,error.typeorcarouter_api_errorerror.message 可能本地化(當前為中文)—— 信封結構見錯誤 Retry-After 單位是秒。它是速率限制窗口的時長(保守值——精確等待 這么久是安全的);下一個窗口會有完整預算。不等就立刻重試會再次失敗。

推薦的客戶端行為

  1. 收到 429 時讀取 Retry-After
  2. 等待相應秒數。
  3. 重試同一請求。
  4. 若再次出現 429,把等待時間翻倍(指數退避),最多到 60 秒。
  5. 如果你反復看到 429,考慮通過 extra_body.models 把流量分散到 多個模型——見模型回退鏈
OpenAI 的 Python / TypeScript SDK 默認會自動處理 Retry-After。 除非你已禁用重試,否則不需要自己寫代碼。

反應式,不是預測式

OrcaRouter 不返回 X-RateLimit-Remaining / X-RateLimit-Reset 響應頭, 所以你沒法提前查詢還剩多少預算。把 429 當作信號——看到就退避, 然后再繼續。