フォールバック
OfoxAIのフォールバック機能は、プライマリモデルが利用できない場合に自動的に代替モデルに切り替え、サービスの中断を防ぎます。
仕組み
- リクエストをプライマリモデルに送信
- プライマリモデルがエラーを返した場合(5xx、タイムアウト、レート制限など)
- フォールバックリストのモデルを順番に自動的に試行
- 最初に成功したレスポンスを返す
単一リクエストフォールバック
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", # 第1候補
"google/gemini-3-flash-preview" # 第2候補
]
}
}
)
# 実際に使用されたモデルを確認
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