モデルバリアントを使用すると、モデル ID にサフィックスを追加することでルーティング動作を変更できます。別途 provider オブジェクトを設定する代わりに、バリアントはモデル文字列に直接埋め込まれた簡潔な略記法です。
{"model": "openai/gpt-5.4:nitro"}
:nitro — 最大スループット
:nitro を追加すると、モデルの最高スループットインスタンスにルーティングされます。provider.sort = "throughput" の設定と同等です。
最適な用途:リアルタイムアプリケーション、インタラクティブチャット、ストリーミング UI
{"model": "openai/gpt-5.4:nitro"}
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.arouter.ai/v1",
apiKey: "lr_live_xxxx",
});
const response = await client.chat.completions.create({
model: "openai/gpt-5.4:nitro",
messages: [{ role: "user", content: "Hello!" }],
});
from openai import OpenAI
client = OpenAI(
base_url="https://api.arouter.ai/v1",
api_key="lr_live_xxxx",
)
response = client.chat.completions.create(
model="openai/gpt-5.4:nitro",
messages=[{"role": "user", "content": "Hello!"}],
)
curl https://api.arouter.ai/v1/chat/completions \
-H "Authorization: Bearer lr_live_xxxx" \
-H "Content-Type: application/json" \
-d '{"model": "openai/gpt-5.4:nitro", "messages": [{"role": "user", "content": "Hello!"}]}'
:floor — 最低コスト
:floor を追加すると、モデルの最低コストインスタンスにルーティングされます。provider.sort = "price" の設定と同等です。
最適な用途:バッチ処理、オフラインワークロード、コスト重視のパイプライン
{"model": "openai/gpt-5.4:floor"}
const response = await client.chat.completions.create({
model: "openai/gpt-5.4:floor",
messages: [{ role: "user", content: "Summarize this document." }],
});
response = client.chat.completions.create(
model="openai/gpt-5.4:floor",
messages=[{"role": "user", "content": "Summarize this document."}],
)
curl https://api.arouter.ai/v1/chat/completions \
-H "Authorization: Bearer lr_live_xxxx" \
-H "Content-Type: application/json" \
-d '{"model": "openai/gpt-5.4:floor", "messages": [{"role": "user", "content": "Summarize this document."}]}'
:free — 無料ティア
:free を追加すると、モデルの無料ティアインスタンスにルーティングされます。無料ティアインスタンスは多くの人気モデルで利用可能ですが、レート制限が適用されます。
最適な用途:プロトタイピング、開発、低ボリュームテスト
{"model": "meta-llama/llama-4-maverick:free"}
const response = await client.chat.completions.create({
model: "meta-llama/llama-4-maverick:free",
messages: [{ role: "user", content: "Hello!" }],
});
response = client.chat.completions.create(
model="meta-llama/llama-4-maverick:free",
messages=[{"role": "user", "content": "Hello!"}],
)
curl https://api.arouter.ai/v1/chat/completions \
-H "Authorization: Bearer lr_live_xxxx" \
-H "Content-Type: application/json" \
-d '{"model": "meta-llama/llama-4-maverick:free", "messages": [{"role": "user", "content": "Hello!"}]}'
無料ティアモデルにはより厳しいレート制限があり、コンテキストウィンドウが縮小される場合があります。詳細はレート制限を参照してください。
:thinking — 拡張推論
:thinking を追加すると、対応するモデルで拡張チェーン・オブ・ソート推論が有効になります(DeepSeek R1、拡張思考付き Claude、Gemini Flash Thinking など)。
最適な用途:複雑な推論、数学、コーディング、多ステップの問題
{"model": "deepseek/deepseek-r1:thinking"}
const response = await client.chat.completions.create({
model: "deepseek/deepseek-r1:thinking",
messages: [
{ role: "user", content: "Prove that √2 is irrational." }
],
});
// 推論トークンは usage に返される
console.log(response.usage);
response = client.chat.completions.create(
model="deepseek/deepseek-r1:thinking",
messages=[{"role": "user", "content": "Prove that √2 is irrational."}],
)
# 推論トークンは usage に返される
print(response.usage)
curl https://api.arouter.ai/v1/chat/completions \
-H "Authorization: Bearer lr_live_xxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek/deepseek-r1:thinking",
"messages": [{"role": "user", "content": "Prove that √2 is irrational."}]
}'
:thinking が有効な場合、推論トークンはレスポンスの usage.completion_tokens_details に表示されます:
{
"usage": {
"prompt_tokens": 20,
"completion_tokens": 850,
"total_tokens": 870,
"completion_tokens_details": {
"reasoning_tokens": 720
}
}
}
請求と使用の詳細は推論トークンを参照してください。
:extended — 拡張コンテキスト
:extended を追加すると、デフォルトより大きいコンテキストウィンドウを持つモデルバージョンにアクセスできます。
最適な用途:長文書処理、大規模コードベース、長い会話
{"model": "google/gemini-2.5-flash:extended"}
const response = await client.chat.completions.create({
model: "google/gemini-2.5-flash:extended",
messages: [{ role: "user", content: "Analyze this 500-page report..." }],
});
response = client.chat.completions.create(
model="google/gemini-2.5-flash:extended",
messages=[{"role": "user", "content": "Analyze this 500-page report..."}],
)
:exacto — ツール呼び出し品質
:exacto を追加すると、ツール呼び出しリクエストの品質ランキングルーティングを明示的に有効にします。ARouter は最安値ではなく、ツール呼び出し品質スコアが最も高いプロバイダーエンドポイントを選択します。
最適な用途:スキーマ準拠と引数の精度がコストより重要な本番ツール呼び出しパイプライン
{"model": "openai/gpt-5.4:exacto"}
const response = await client.chat.completions.create({
model: "openai/gpt-5.4:exacto",
messages: [{ role: "user", content: "Get the weather in Shanghai and Tokyo" }],
tools: [weatherTool],
});
response = client.chat.completions.create(
model="openai/gpt-5.4:exacto",
messages=[{"role": "user", "content": "Get the weather in Shanghai and Tokyo"}],
tools=[weather_tool],
)
Auto Exacto との違い:Auto Exacto は tools が存在する場合に自動的に有効になります。:exacto はツールなしのリクエストでも品質ランキングルーティングを強制します——モデルがツールを呼び出すかどうかに関わらず一貫したプロバイダー選択動作が必要な場合に便利です。
バリアントの組み合わせ
一部のバリアントは組み合わせることができます:
{"model": "meta-llama/llama-4-maverick:free:nitro"}
すべての組み合わせが有効というわけではありません。モデルでリクエストされた組み合わせが利用できない場合、ARouter はエラーを返します。
バリアントリファレンス
| サフィックス | 効果 | 同等の provider 設定 | 最適な用途 |
|---|
:nitro | 最高スループット | provider.sort = "throughput" | リアルタイム / インタラクティブ |
:floor | 最低コスト | provider.sort = "price" | バッチ / オフライン |
:free | 無料ティア(レート制限あり) | — | 開発 / プロトタイピング |
:thinking | 拡張推論モード | — | 複雑な推論 |
:extended | 大きいコンテキストウィンドウ | — | 長文書 |
:online | ウェブ検索(非推奨) | plugins: [{id: "web"}] | 代わりにサーバーツールを使用 |
:exacto | ツール呼び出し品質ルーティング | provider.sort = "quality" | 本番ツール呼び出し |
バリアントがルーティングに与える影響
バリアントはサーバー側で解析され、ARouter が選択するエンドポイントに影響します:
- ベースモデル ID(例:
openai/gpt-5.4)がモデルファミリーを識別
- サフィックスがエンドポイント選択基準を変更
- ARouter は
response.model に実際に使用されたモデルを返す
提供されたモデルバリアントを正確に確認するには、常に response.model を確認してください:
{
"model": "openai/gpt-5.4:nitro",
"choices": [...],
"usage": {...}
}
バリアントが提供するよりも細かい制御が必要な場合は、プロバイダールーティングで完全な provider オブジェクトオプションを参照してください。