Cookieを使用しています. Cookieとブラウザストレージは、ログイン状態の維持と設定の保存に使われます。許可いただいた場合は、サイトの利用状況も計測します。はいつでも変更できます。詳しくはCookieポリシーをご覧ください。

プロバイダールーティングとフォールバック

エンドポイント

プロバイダールーティングとフォールバック

provider オブジェクトの order、only、allow_fallbacks、sort でプロバイダーの選択を制御する方法です。models 配列によるモデルのフォールバック、実際に使われたプロバイダーの確認、関連エラーも説明します。

プレイグラウンドで試す

多くのモデルは複数の上流プロバイダーから提供され、それぞれ価格、速度、データポリシーが異なります。デフォルトでは、リクエストは価格と稼働率に基づいてプロバイダー間で負荷分散され、1 つが失敗すると別のプロバイダーにフォールバックします。これを変更するには provider オブジェクトを、異なるモデル間でフォールバックするには models を使います。

provider オブジェクト

フィールド型説明
orderstring[]最初に試すプロバイダーを順番に指定します。例: ["Anthropic", "Amazon Bedrock"]。
allow_fallbacksbooleanfalse にすると、order または only の外にあるプロバイダーへリクエストが送られなくなります(デフォルトは true)。
onlystring[]これらのプロバイダーのみを許可します。
ignorestring[]これらのプロバイダーを使用しません。
sortstring負荷分散の代わりに "price"、"throughput"、"latency" で並べ替えます。
data_collectionstring"deny" は、プロンプトを保存または学習に使う可能性のあるプロバイダーを除外します。デフォルトは "allow" です。
require_parametersbooleanリクエスト内のすべてのパラメーター(tools、response_format など)に対応するプロバイダーのみを使用します。
quantizationsstring[]許可する精度。例: ["fp8", "bf16"]。
max_priceobject100 万トークンあたりの USD 価格の上限。例: { "prompt": 1, "completion": 3 }。
{
  "model": "meta-llama/llama-3.3-70b-instruct",
  "messages": [{ "role": "user", "content": "Hello" }],
  "provider": {
    "order": ["Groq", "Fireworks"],
    "allow_fallbacks": true,
    "data_collection": "deny",
    "sort": "throughput"
  }
}

:nitro バリアントは sort: "throughput" のショートカットで、:floor は sort: "price" のショートカットです。モデル IDを参照してください。

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api14.com/api/v1",
  apiKey: process.env.API14_API_KEY,
});

const result = await client.chat.completions.create({
  "model": "openai/gpt-5-mini",
  "messages": [
    {
      "role": "user",
      "content": "Explain vector databases in two sentences."
    }
  ]
});
console.log(result.choices[0].message.content);

models によるモデルのフォールバック

モデルのリストを渡します。最初のモデルが失敗した場合(障害、レート制限、モデレーション、コンテキスト長のエラー)は、次のモデルが試されます。

{
  "models": ["anthropic/claude-sonnet-4.5", "openai/gpt-5-mini", "google/gemini-2.5-flash"],
  "messages": [{ "role": "user", "content": "Summarize this ticket." }]
}
  • models を設定した場合、model は省略できます。両方を送ると、model が最初に試されます。
  • リクエストの送信前に、リスト内のすべてのモデルがゲートウェイのチェックを通過する必要があります。モデルが存在して有効であること、キーのモデル許可リストに含まれていること、プランに含まれていることです。1 つでもチェックに失敗するモデルがあると、リクエスト全体が拒否されます(403 model_not_allowed、403 plan_required、404 model_not_found)。
  • 課金されるのは、応答したモデルのみで、そのモデル自身の価格が適用されます。レスポンスの model フィールドでどのモデルだったかが分かります。

レスポンス

{
  "id": "gen-1760000000-route",
  "model": "openai/gpt-5-mini",
  "provider": "OpenAI",
  "choices": [{ "index": 0, "finish_reason": "stop", "message": { "role": "assistant", "content": "..." } }],
  "usage": { "prompt_tokens": 140, "completion_tokens": 60, "total_tokens": 200, "cost": 0.000155 }
}

provider は、リクエストを処理した上流プロバイダーを示します。生成情報の取得では、ルーティングの詳細をすべて確認できます。

エラー

フィルターに一致するプロバイダーがない場合(たとえば only と require_parameters を併用した場合)、上流は 404 "No endpoints found" を返します。そのほかのエラーは Chat Completions と同じです。エラーを参照してください。