プラットフォーム

スマートルーティング

リクエストで指定したモデルが利用できない場合、スマートルーティングはエラーを返す代わりに、近い代替モデルで応答します。リトライ用のコードを書かなくても、障害中にアプリを動かし続けられます。自動モードはチャットモデルと画像モデルに対応しています。音声モデルが切り替わるのは、代替モデルを自分で指定した場合だけです。動画モデルは切り替わりません。

仕組み

  1. 各リクエストは、まず指定したモデルに送られます。多くの問題はここで解決します。モデルへの経路の1つが停滞したりエラーになったりした場合、利用者にエラーが表示される前に別の経路でリトライします。
  2. スマートルーティングが動くのは、モデル自体が応答できない場合(すべての経路が失敗したか、利用可能な経路がない場合)だけです。
  3. 代替モデルを順番に試します。それぞれで同じように自動復旧を行い、応答が得られるまで続けます。
  4. レスポンスには、応答したモデルが示されます(本文のmodel、x-zurelay-modelとx-zurelay-routed-fromのヘッダー)。料金はそのモデルの価格で計算されます。

代替モデルを試す前に、指定したモデルへのすべての経路を試します。そのため、別のモデルに切り替わるのは、指定したモデルが応答できない場合だけです。すべてがすぐに失敗した場合は、エラーを返す前に指定したモデルと各代替モデルをもう一度ずつ試します。停止中と判明しているモデルはすぐにスキップします。

有効にする方法

設定場所設定方法適用対象
ワークスペースのデフォルト設定 → スマートルーティング独自の設定がないすべてのキーとPlayground
キーごとAPIキー → 編集 → スマートルーティングそのキーを使うリクエスト
リクエストごとmodelsリスト、またはx-zurelay-fallbackヘッダーそのリクエスト

キーには次のいずれかを設定できます:

Workspacedefault
ワークスペースの設定に従います(有効にしていなければオフ)。
Offmode
モデルが利用できない場合、リクエストはmodel_unavailableで失敗します。リトライできます。
Automaticmode
チャットモデルと画像モデルごとに用意された近い代替モデルのリスト(以下)を使用します。同じファミリーで価格が近いモデルを優先します。音声リクエストは指定したモデルのままです。
Custommode
独自のルール:モデルごとに、代替モデルを優先順で最大3つ指定できます。「その他のすべてのモデル」(*)のルールで残りをカバーできます。

リクエストごと

代替モデルのリスト

modelの隣にmodelsを渡します。代替モデルを最大3つ指定でき、modelが利用できない場合に順番に試します。キーの設定やヘッダーより優先されます。リストがモデルに送られることはありません。OpenAI Python SDKではextra_bodyを通じて送れます。画像・音声リクエストでも利用でき、フォームで送る画像編集ではmodelsフィールドとして指定できます(繰り返すか、カンマ区切りのリストを1つ指定します)。

import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.zurelay.com/v1",
api_key=os.environ["ZURELAY_API_KEY"],
)
response = client.chat.completions.create(
model="gpt-6-sol",
messages=[
{
"role": "user",
"content": "Summarize this ticket in one line: ..."
}
],
extra_body={
"models": [
"gpt-6.1-sol",
"gpt-6-astra"
]
},
)
print(response.choices[0].message.content)

ヘッダー

ヘッダー
x-zurelay-fallback: off # never reroute this request
x-zurelay-fallback: auto # use the automatic alternatives (chat and image models)

適用される優先順位は、リクエストのmodels、ヘッダー、キーの設定、ワークスペースのデフォルトです。

応答に使える代替モデル

  • 同じ種類のモデルです。 チャットモデルの代替はチャットモデル、画像モデルの代替は画像モデル、音声モデルの代替は音声モデルです。その他のすべてのモデル(*)のルールには複数の種類を指定できますが、各リクエストでは同じ種類のモデルだけを使用します。
  • 送信した内容を読み取れます。 PDFや動画を含むリクエストは、それらを読み取れる代替モデルにだけ送られます。該当するモデルがなければ、ファイルを無視した回答ではなくエラーを返します。
  • キーで使用が許可されています。 キーで許可されていない代替モデルはスキップします。
  • エンドポイントに対応しています。 /v1/messagesでは、代替モデルはClaudeモデルです。
  • リクエスト自体に問題がありません。 モデルがリクエストを拒否した場合(無効なパラメータ、長すぎるプロンプト、描画できないプロンプト、読み上げられないテキストなど)は、代替モデルにも拒否されるため、ルーティングし直しません。

画像

自動モードでは、画像リクエストはまず同じファミリーのモデルに送られます(GPT Image 2.5 SunburstからFlare、Nano Banana ProからNano Banana 2.1)。代替には、同程度の品質で画像を生成できるモデルだけを使用します。自動で選ばれる代替モデルの料金は、指定したサイズで元のモデルの1.5倍を超えません。独自のルールとリクエストのmodelsリストには、この制限はありません。どちらの場合も、次の条件を満たします:

  • 同じサイズと縦横比です。 Nano Bananaモデルはsizeとaspect_ratioを同じように解釈します。GPT ImageがNano Bananaのサイズの代替になるのは、両方が同じ画像を生成できる場合だけです: 1Kの正方形(1024x1024)、1Kの3:2または2:3、2Kの正方形、4Kの16:9または9:16。Nano BananaがGPT Imageのピクセルサイズの代替になるのは、まったく同じピクセル数の画像を生成できる場合(1024x1024、2048x2048)、またはサイズを指定しなかった場合だけです。
  • 参照画像に対応しています。 代替モデルは、送信した枚数の参照画像を受け取れる必要があります(Nano Bananaは14枚、GPT Imageは16枚)。
  • 指定したオプションに対応しています。 透過のbackgroundを指定したリクエストは、GPT Imageモデルにだけ送られます。
  • 回答ごとに1つのモデルを使用します。 nが1を超える場合も、すべての画像は同じモデルで生成されます。

音声

音声のモデルが切り替わるのは、独自のルールまたはリクエストのmodelsリストによる場合だけです。自動モードでは切り替わりません。すべての音声モデルで同じ声を使用できるため、代替モデルも指定されたvoiceとinstructionsでテキストを読み上げます。入力・出力トークンのヘッダーには、応答したモデルの情報が入ります。

自動で選ばれる代替モデル

カタログの最新情報に基づき、自動モードで各チャット・画像モデルの代わりに使われるモデルを示します。

このモデルが利用できない場合自動スマートルーティングで次の順に試します
Claude Opus 5.5Claude Opus 5→Claude Opus 4.8→Claude Sonnet 5.5
GPT-6 AstraGPT-5.6 Sol→GPT-6.1 Sol→Claude Opus 5.5
Claude Sonnet 5.5Claude Opus 5.5→Claude Opus 4.8→Claude Haiku 5.5
Claude Haiku 5.5Claude Haiku 4.5→GPT-6 Luna→Gemini 3.1 Flash-Lite
GPT-6.1 SolGPT-6 Sol→GPT-5.6 Terra→GPT-5.6 Sol
GPT-6.1 TerraGPT-6.1 Sol→GPT-6 Sol→GPT-5.6 Terra
GPT-6 SolGPT-6.1 Sol→GPT-5.6 Terra→GPT-5.6 Sol
GPT-6 LunaGPT-5.6 Luna→Gemini 3.1 Flash-Lite→DeepSeek V4.1 Flash
Grok 4.7GPT-6.1 Sol→Gemini 3.7 Flash→GLM-5.3
Muse WonderGemini 4 Argon→Claude Opus 5.5→Claude Sonnet 5.5
MiMo V2.6 ProMiMo V2.6 Flash→DeepSeek V4 Pro 0813→GLM-5.3
MiMo V2.6 FlashMiMo V2.6 Pro→DeepSeek V4.1 Flash→Qwen 3.8 Flash
DeepSeek V4.1 Flash 1017DeepSeek V4.1 Flash→DeepSeek V4 Pro 0813→Qwen 3.8 Flash
DeepSeek V4.1 FlashDeepSeek V4 Flash 0731→DeepSeek V4 Pro 0813→Qwen 3.8 Flash
DeepSeek V4 FlashDeepSeek V4 Flash 0731→DeepSeek V4 Pro 0813→Qwen 3.8 Flash
DeepSeek V4 Flash 0731DeepSeek V4.1 Flash→MiMo V2.6 Flash→Qwen 3.8 Flash
DeepSeek V4 Pro 0813DeepSeek V4.1 Flash→GLM-5.3→MiMo V2.6 Pro
Claude Fable 5.1Claude Fable 5→Claude Opus 5.5→Claude Opus 5
Claude Fable 5Claude Fable 5.1→Claude Opus 5.5→Claude Opus 5
Claude Opus 5Claude Opus 4.8→Claude Opus 5.5→Claude Opus 4.7
Claude Opus 4.8Claude Opus 5→Claude Opus 4.7→Claude Opus 5.5
Claude Opus 4.7Claude Opus 4.8→Claude Opus 4.6→Claude Opus 5
Claude Opus 4.6Claude Opus 4.7→Claude Opus 4.8→Claude Opus 5
Claude Haiku 4.5Claude Haiku 5.5→Claude Sonnet 5.5
GPT-5.6 SolGPT-6.1 Sol→GPT-5.6 Terra→GPT-6 Sol
GPT-5.6 TerraGPT-6.1 Terra→GPT-6.1 Sol→GPT-6 Sol
GPT-5.6 LunaGPT-6 Luna→Gemini 3.5 Flash-Lite→DeepSeek V4.1 Flash
Gemini 4 ArgonGemini 3.1 Pro→Gemini 3.8 Flash→GPT-6.1 Sol
Gemini 3.1 ProGemini 4 Argon→Gemini 3.8 Flash→GPT-6.1 Sol→Claude Sonnet 5.5
Gemini 3.8 FlashGemini 3.7 Flash→GPT-6.1 Sol→DeepSeek V4 Flash
Gemini 3.7 FlashGPT-6.1 Sol→Gemini 3.5 Flash-Lite→DeepSeek V4 Flash
Gemini 3.5 Flash-LiteGemini 3.1 Flash-Lite→Gemini 3.7 Flash→GPT-5.6 Luna
Gemini 3.1 Flash-LiteGemini 3.5 Flash-Lite→GPT-6 Luna→DeepSeek V4.1 Flash
GLM-5.3GLM-5.2→DeepSeek V4 Pro 0813
GLM-5.2GLM-5.3→DeepSeek V4 Pro 0813
GLM-5.3 FlashGLM-5.3→DeepSeek V4 Flash→Qwen 3.8 Flash
GLM-5.3 FlashXGLM-5.3 Flash→GLM-5.3→DeepSeek V4 Flash
Kimi K3.1 ProKimi K3→GLM-5.3→DeepSeek V4 Pro 0813
Kimi K3.1 Pro HighspeedKimi K3.1 Pro→Kimi K3→GLM-5.3
Kimi K3Kimi K3.1 Pro→Qwen 3.8 Max→GLM-5.3
Qwen 3.8 MaxKimi K3→GLM-5.3→DeepSeek V4 Pro 0813
Qwen 3.8 FlashQwen 3.8 Omni Flash→DeepSeek V4.1 Flash→MiMo V2.6 Flash
Qwen 3.8 Omni FlashQwen 3.8 Flash→Gemini 3.1 Flash-Lite→MiMo V2.6 Flash
MiniMax M3.1 FlashMiniMax M3→DeepSeek V4.1 Flash 1017→Qwen 3.8 Flash
HY4 PreviewGLM-5.3→DeepSeek V4 Pro 0813→Qwen 3.8 Flash
MiniMax M3GLM-5.3→DeepSeek V4 Pro 0813
ステップ5 PreviewDeepSeek V4 Pro 0813→GLM-5.3→MiMo V2.6 Pro
Kimi K2.6Kimi K3.1 Pro→GLM-5.3→DeepSeek V4 Pro 0813
Kimi K2.5Kimi K2.6→Kimi K3.1 Pro→GLM-5.3
MiniMax M2.5MiniMax M3→GLM-5.3→DeepSeek V4 Pro 0813
Ministral 3 3BMinistral 3 14B→Qwen 3.8 Flash→DeepSeek V4.1 Flash
Ministral 3 14BMinistral 3 3B→Qwen 3.8 Flash→DeepSeek V4.1 Flash
Muse Spark 1.3 ContributorQwen 3.8 Flash→Gemini 3.1 Flash-Lite→DeepSeek V4.1 Flash
Nano Banana 2.1Nano Banana Pro→Nano Banana 2→GPT Image 2.5 Flare
Nano Banana ProNano Banana 2.1→Nano Banana 2→GPT Image 2.5 Flare
Nano Banana 2Nano Banana 2.1→Nano Banana Pro→GPT Image 2.5 Flare
Nano Banana 2 LiteGPT Image 2.5 Flare→GPT Image 2.5 Sunburst→GPT Image 2
GPT Image 2.5 FlareGPT Image 2.5 Sunburst→GPT Image 2→Nano Banana 2.1
GPT Image 2.5 SunburstGPT Image 2.5 Flare→GPT Image 2→Nano Banana 2.1
GPT Image 2GPT Image 2.5 Flare→GPT Image 2.5 Sunburst→Nano Banana 2.1
Grok Imagine Image 2.0Nano Banana Pro→GPT Image 2.5 Flare→Nano Banana 2.1
FLUX 3 ImageNano Banana 2.1→Nano Banana Pro→GPT Image 2.5 Flare

知っておきたいこと

  • 代替モデルの料金は、指定したモデルより高い場合も安い場合もあります。リクエストログには、応答したモデルとその料金が表示されます。
  • ストリーミングでも同じです。モデルが応答を開始するまで何も送信されず、各チャンクにはそのモデル名が示されます。
  • 画像と音声のレスポンスにも同じx-zurelay-modelとx-zurelay-routed-fromヘッダーが含まれます。ライブラリ内の画像には、生成したモデル名が表示されます。
  • 動画は別のモデルに転送されません。動画ジョブは指定したモデルで、完成または失敗するまで再送信されます(無料)。
ログやモニタリングでx-zurelay-routed-fromを確認してください。代替モデルが応答した場合にのみ設定されるため、利用中のモデルがどのくらいの頻度で停止したかを確認できます。例外はZurelay Autoで、すべての回答でzurelay-autoに設定されます。

ご質問や不足している情報はありますか? サポートチームにお問い合わせください。通常1分以内にメールで回答します。