故障回退
OfoxAI 的故障回退機制在主模型不可用時,自動切換到備選模型,確保你的服務不中斷。
運作原理
- 請求傳送到主模型
- 如果主模型回傳錯誤(5xx、逾時、限流等)
- 自動按順序嘗試 fallback 列表中的模型
- 回傳第一個成功的回應
單請求回退
透過 provider.fallback 參數為單個請求設定回退:
fallback.py
from openai import OpenAI
client = OpenAI(
base_url="https://api.ofox.ai/v1",
api_key="<你的 OFOXAI_API_KEY>"
)
response = client.chat.completions.create(
model="openai/gpt-4o", # 主模型
messages=[{"role": "user", "content": "你好"}],
extra_body={
"provider": {
"fallback": [
"anthropic/claude-sonnet-4.5", # 第一備選
"google/gemini-3-flash-preview" # 第二備選
]
}
}
)
# 查看實際使用的模型
print(response.model)fallback.ts
const response = await client.chat.completions.create({
model: 'openai/gpt-4o',
messages: [{ role: 'user', content: '你好' }],
// @ts-ignore OfoxAI 擴充參數
provider: {
fallback: [
'anthropic/claude-sonnet-4.5',
'google/gemini-3-flash-preview'
]
}
})全局回退設定
在 OfoxAI 控制台中設定全局回退策略,無需在每次請求中指定:
- 登入 OfoxAI 控制台
- 進入 設定 → 路由策略
- 設定預設回退模型列表
單請求級別的 fallback 參數會覆蓋全局設定。
回退觸發條件
以下情況會觸發回退:
| 條件 | 說明 |
|---|---|
| HTTP 5xx | 伺服器錯誤 |
| 請求逾時 | 模型回應逾時 |
| 429 限流 | 上游模型達到速率限制 |
| 模型不可用 | 供應商維護或下線 |
以下情況不會觸發回退:
| 條件 | 說明 |
|---|---|
| HTTP 4xx(非 429) | 用戶端錯誤需要修正請求 |
| 內容過濾 | 模型拒絕生成的內容 |
配合路由使用
回退機制可以和供應商路由組合:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "你好"}],
extra_body={
"provider": {
"routing": "latency", # 延遲優先路由
"fallback": [ # 回退列表
"anthropic/claude-sonnet-4.5",
"google/gemini-3-flash-preview"
]
}
}
)推薦回退方案
通用對話
"provider": {
"fallback": ["anthropic/claude-sonnet-4.5", "google/gemini-3-flash-preview"]
}程式碼生成
"provider": {
"fallback": ["anthropic/claude-sonnet-4.5", "deepseek/deepseek-chat"]
}高性價比
"provider": {
"fallback": ["openai/gpt-4o-mini", "google/gemini-3-flash-preview", "deepseek/deepseek-chat"]
}最佳實踐
- 選擇能力相近的備選模型 — 確保回退後輸出品質一致
- 跨廠商回退 — 避免同一廠商的模型同時不可用
- 設定 2-3 個備選 — 足以應對大部分故障場景
- 監控回退頻率 — 如果頻繁回退,可能需要更換主模型
Last updated on