プロバイダールーティング
1 つのモデルが複数のプロバイダーで提供されていることがあります。たとえば bytedance/seedance-2.0 は volcengine と byteplus の両方から提供されています。ofox は既定でプロバイダーを自動的に選択しますが、provider.type によってリクエストを特定のプロバイダーに固定できます。
既定のルーティング動作
provider フィールドを送信しない場合、ofox はそのモデルを現在提供しているチャネルに重み付けでリクエストを分配します。個々のリクエストをどのプロバイダーが処理するかは予測できません。
プロバイダーの指定
プロバイダー名を type フィールドに指定します。フィールドの位置はモデル種別によって異なります:
| モデル種別 | フィールドの位置 |
|---|---|
| チャットモデル | extra_body.provider.type |
| 動画モデル | provider.type |
Gemini ネイティブプロトコルはボディの extra_body.provider を無視します —— リクエストは正常に返り、制約は適用されず、エラーも出ません。このプロトコルでは X-OfoxAI-Provider-Type ヘッダーを使ってください。 プロトコルごとのフィールド契約は API · プロバイダールーティング にあります。
チャットモデル
cURL
curl https://api.ofox.run/v1/chat/completions \
-H "Authorization: Bearer $OFOX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-5",
"messages": [{ "role": "user", "content": "..." }],
"extra_body": {
"provider": { "type": "bedrock" }
}
}'公式の OpenAI SDK を使用する場合、extra_body はリクエストボディのリテラルなキーとして存在する必要があります。TypeScript SDK はパラメータオブジェクトに記述したとおりに送信します。Python SDK の extra_body= 引数は内容をボディのトップレベルにマージするため、キーをもう 1 段階深くネストするか、リクエストヘッダーで渡してください。
利用可能なプロバイダー
ofox が現在対応しているプロバイダーは以下のとおりです。括弧内は短縮名で、正式名と等価です。どちらも使用できます:
| プロバイダー | 説明 |
|---|---|
openai | OpenAI :GPT シリーズの公式 API |
anthropic | Anthropic :Claude シリーズの公式 API |
gemini | Google AI :Gemini シリーズの公式 API |
azure_foundry(foundry) | Azure AI Foundry :Microsoft Azure 上のモデルホスティング基盤 |
aws_bedrock(bedrock) | Amazon Bedrock :AWS 上のモデルホスティングサービス |
google_vertex(vertex) | Vertex AI :Google Cloud 上のモデルホスティング基盤 |
aliyun | Alibaba Cloud Bailian :Alibaba Cloud のモデルサービス基盤 |
volcengine | Volcengine Ark :ByteDance の中国本土向け基盤 |
byteplus | BytePlus :ByteDance の海外向け基盤 |
deepseek | DeepSeek :DeepSeek シリーズの公式 API |
moonshot | Moonshot AI :Kimi シリーズの公式 API |
zhipu | Zhipu AI :GLM シリーズの公式 API |
minimax | MiniMax :MiniMax シリーズの公式 API |
grok | xAI :Grok シリーズの公式 API |
jina | Jina AI :埋め込みとリランキングのモデル |
tencent | Tencent Cloud Hunyuan :Tencent Cloud のモデルサービス基盤 |
すべてのプロバイダーがすべてのモデルを提供しているわけではありません。あるモデルをどのプロバイダーが提供しているか、また各プロバイダーがどのプロトコルに対応しているかは、モデルカタログ の当該モデルのページに表示されます。プログラムから取得する場合は GET /v2/models/catalog/{provider}/{slug}?include=provider_price が返す provider_cards[] が同じデータです。
チャットモデル
チャットモデルは上表の多くのプロバイダーに分散しています。具体的な対応関係とプロトコル対応状況は、各モデルのページを参照してください。
動画モデル
bytedance/seedance-* シリーズは以下の 2 つのプロバイダーで提供されており、両者のコンテンツポリシーは異なります:
| プロバイダー | 説明 | コンテンツポリシー |
|---|---|---|
volcengine | Volcengine Ark、ByteDance の中国本土向け基盤 | 標準的なモデレーション |
byteplus | BytePlus、ByteDance の海外向け基盤 | すべての利用者に適さない(NSFW)コンテンツに対応 |
byteplus は seedance がすべての利用者に適さない(NSFW)コンテンツを生成することを許可し、volcengine は標準的なモデレーションを適用します。そのようなコンテンツが必要な場合は provider.type: "byteplus" を明示的に指定してください。指定しない場合、重み付き分配によってリクエストが volcengine に振り分けられ、モデレーションで拒否される可能性があります。
よくあるエラー
error.type | 発生条件 |
|---|---|
invalid_provider_type | 値がプロバイダーの列挙に含まれていません:名称の綴り間違い、または廃止された書き方です。 |
provider_type_unavailable | プロバイダーは存在しますが、このモデルを提供していません。チャットモデルではエラーメッセージに提供元のプロバイダーも併記されます。 |