Skip to content

請求如何分配 ​

每個請求最後都會落在某個供應商的某個帳號上。模型 id 決定供應商,你設定的順序決定帳號,接不了請求的帳號會被跳過。所有選項都用完時,請求會失敗,並回傳說明原因的錯誤。

1. 模型 id 決定供應商 ​

在共用的 base URL /openai/v1 和 /anthropic 上,模型 id 的格式是 provider/model,從第一個 / 切開:

  • 前半段是內建供應商(claude-code、codex、grok、antigravity),或你某個自訂端點、CLI 供應商的前綴。
  • 後半段原樣交給該供應商,當作它的模型 id。

沒有 / 的 id,或前綴不是你擁有的供應商,會回 400 invalid_model。

在群組端點 /g/<group-slug>/... 上,模型必須和群組裡某個模型名稱完全相同。這個名稱接著展開成它的目標清單,依序排列。見 Groups。

2. 順序決定先試誰 ​

proxy 會把請求整理成一份有順序的候選清單,每個候選是某個供應商上的一個帳號:

  • provider/model id:該供應商帳號池裡的每個帳號,順序跟 Providers 上顯示的一樣,Primary 排第一。
  • 群組的模型名稱:它的目標,依清單順序。綁定帳號的目標只加入那一個帳號;標示 Any account 的目標會加入該供應商的整個帳號池,依帳號池的順序。

目前唯一的策略是 Ordered:第一個可用的候選接下請求。proxy 不會把流量平均分給各帳號。留在同一個帳號上,同一段對話就會一直打到同一個上游,prompt 快取才會持續有效。

3. 接不了請求的帳號會被跳過 ​

在送出任何東西之前,符合以下情況的候選會被跳過:

  • 被暫停。 最近送給它的請求以會導致暫停的方式失敗(見下表)。它會一直暫停到 Providers 上顯示的時間,或直到你按 Resume。
  • 用量區間滿了。 供應商回報的任何一個區間,例如 5h 或 Week,到了 100%。帳號會顯示 Limit reached,等該區間重置才會恢復。Resume 無法略過這個限制。
  • 不能服務這個模型。 目前只有一條規則:一般的 Claude Team 席位不能用 Fable 模型,所以 claude-fable-* 的請求會跳過它。它的其他請求不受影響。
  • 帳號或供應商已經不存在,例如群組裡某個已刪除的自訂端點。

這些判斷只用 proxy 已經知道的帳號狀態,不會為此另外呼叫供應商。有流量時,用量會在背景更新,每個帳號最多每 2 分鐘一次。

4. 請求中途的備援 ​

供應商回傳錯誤時,proxy 會決定要不要試下一個候選:

供應商回應帳號會怎樣換下一個
401、403(登入或權限)、402(帳務)暫停 5 分鐘是
429(速率限制)暫停到供應商的重置時間(能從回應或用量區間讀出時),否則 5 分鐘,最長 7 天是
520、522、524(供應商自己的邊緣節點逾時)只在這個請求中跳過。10 分鐘內第三次發生時暫停 30 秒是
529(供應商過載)不會暫停。約一秒後在同一個帳號重試一次重試也失敗時換下一個。最後一個候選的 529 會原樣回傳
逾時內沒收到回應標頭(預設 3 分鐘)只在這個請求中跳過是
其他錯誤不處理否,錯誤直接回傳給客戶端

本機模型的電腦離線時,該供應商會暫停 60 秒。proxy 和 CLI 之間的其他連線問題,只會在那個請求中跳過它。

一個請求最多嘗試 8 次。供應商一旦開始串流回答,請求就會留在那個帳號上,因為中途切換會把兩份回答混在一起。

Logs 每個請求記一列,寫的是回應的帳號;請求失敗時則是最後嘗試的那個帳號。

5. 請求什麼時候放棄 ​

情況回應
前綴不是你擁有的供應商,或群組裡沒有這個模型400 invalid_model
這個供應商沒有接上任何帳號,或沒有帳號能服務這個模型400 no_upstream_account
有帳號,但全部被暫停或限制,或試過的每一個都以上表的狀態失敗503 upstream_unavailable

503 會帶 Retry-After 標頭,值是最早恢復的帳號還要等幾秒,最多 60 秒。遵守這個標頭的客戶端會很快重試,而不是等到每週重置。使用 stream: true 時,因為回應已經開始,同樣的錯誤會以串流中的錯誤事件送出。所有錯誤代碼見錯誤訊息。

查看請求會去哪裡 ​

  • Providers:標示 Active 的帳號,就是該供應商下一個請求會去的地方。被暫停或限制的帳號會顯示何時恢復。
  • Groups:標示 Current 的目標,就是該模型名稱下一個請求會去的地方。
  • Logs:每個請求背後的供應商、模型和帳號。

相關頁面 ​

  • Providers:接上帳號、調整順序、恢復被暫停的帳號。
  • Groups:跨供應商、跨帳號的有序目標。
  • 端點與模型 id:base URL 和 id 格式。
  • 錯誤訊息:每個錯誤代碼,以及該怎麼處理。