跳轉到主要內容
OrcaRouter 允許你把一個路由策略保存為命名路由器。在你代碼里以 orcarouter/{name} 調用,OrcaRouter 會在請求時按你配置的規則把它 解析為一個具體的模型。 這在以下場景特別有用:
  • 不重新部署應用就切換路由行為(在控制臺里改路由器即可,代碼不動)。
  • 讓不同的團隊或服務獨立選擇自己的路由策略,不依賴調用應用。
  • 引用那些復雜到無法在 extra_body 里內聯的路由邏輯。

使用路由器

response = client.chat.completions.create(
    model="orcarouter/production-chat",
    messages=[...],
)
要知道路由器解析到了哪個具體模型,請查看 X-Orca-RouterX-Orca-Resolved-Model 響應頭——詳見響應頭。 響應體里的 model 字段反映的是上游返回的內容(往往是裸的上游名, 比如 gpt-4o-mini-2024-07-18)。

創建路由器

路由器在控制臺的 Routing 中創建。每個路由器有:
  • 名稱 —— orcarouter/{name} 中的 {name}。必須在你的工作區內 唯一;只能含小寫字母、數字、_-(1-50 字符)。orcarouter 這個名字被保留。
  • 允許的模型 —— 一個或多個 glob 模式(用逗號或換行分隔,大小寫 不敏感),限制這個路由器能挑選的模型。示例:openai/*openai/*, anthropic/claude-haiku-*。留空表示匹配你賬戶能訪問的 所有模型。
  • 策略 —— 如何在匹配的模型中挑選。見下方策略
  • Mundane models / Hard models —— 僅供 Adaptive · Gated 策略 使用的附加模型列表。見下方 Adaptive
  • 默認模型 —— 當 pattern 解析為空時使用的兜底模型。
  • 啟用 —— 不刪除地禁用該路由器。

策略

編輯器里展示四張策略卡。Adaptive 內部其實包含兩種后端子模式, 通過 API 可持久化的總共五個枚舉值。

Cheapest(最便宜)

在仍在線的候選里挑每 token 單價最低的模型。這是預置的 orcarouter/auto 路由器的默認值。最適合:你只想每次請求都用最便宜 的在線 chat 模型,且不在意跨次調用之間輸出風格的一致性。

Quality(最高質量)

在在線候選里挑質量分最高的模型,不計價格。最適合:輸出質量比成本 更重要的場景。

Balanced(均衡)

挑選滿足質量門檻的低成本選項;若無人達到門檻,則回退到質量最高的 選項。這是你自己新建路由器時的默認值。無需逐項調參就能跑。

Adaptive(自適應)

一個按路由器維度運行的 LinUCB 上下文 bandit,從你的真實生產流量里 學習。它在每次請求上權衡質量、成本、延遲和可靠性來挑模型。新路由 器會有一段短暫的冷啟動期(每個模型都要預熱),期間行為類似 Balanced,再之后 bandit 才開始引導挑選——這是預期行為,不是 bug。 兩種子模式:
  • Standard(API 枚舉:linucb)—— 對每次請求都考慮所有 Allowed 模型。最適合流量分布大致均勻,希望路由器在你完整模型列表里尋找 最優解的場景。
  • Gated(API 枚舉:gated_adaptive)—— 請求先被分類為 mundane 或 hard;mundane 請求從較小的 Mundane models 池中抽取,hard 請求從更強的 Hard models 池中抽取,中等難度的請求從完整的 Allowed 列表中抽取。最適合你的流量混合了簡單與復雜調用的場景。 每個池都會與 Allowed models 取交集;空集或無重疊的池會靜默回退 到完整的 Allowed 列表,因此請求絕不會被餓死。挑選 Gated 后在 編輯器里配置兩個池(API 層叫 weak_poolstrong_pool, 各最長 2000 字符)。

預置路由器:orcarouter/auto

每個 OrcaRouter 賬戶在注冊時都會得到一個名為 auto 的默認路由器 ——見自動路由器。無需任何配置即可立即 使用。