OpenRouter(オープンルーター)
複数のLLMプロバイダ(OpenAI・Anthropic・Google・Meta等)を統一APIで利用できるLLMゲートウェイサービス。モデル間の切り替えをコード変更なしで実現し、コスト最適化とフォールバック制御を提供する。
OpenRouterとは
OpenRouterは、複数のLLMプロバイダが提供するモデルを統一されたOpenAI互換APIで利用できるゲートウェイサービスです。GPT-4o、Claude 3.5 Sonnet、Gemini 1.5 Pro、Llama 3.1 405Bなど100以上のモデルに単一エンドポイント(https://openrouter.ai/api/v1)からアクセスでき、開発者はベースURLを差し替えるだけでマルチモデル環境を構築できます。
基本的な仕組み
OpenRouterはリバースプロキシとして動作し、開発者のAPIリクエストを適切なプロバイダに転送します。
- 統一エンドポイント:
https://openrouter.ai/api/v1/chat/completions(OpenAI SDK互換) - モデル指定:
modelパラメータにopenai/gpt-4oやanthropic/claude-3.5-sonnetを指定 - 認証: OpenRouter発行のAPIキー1つで全プロバイダにアクセス(個別キー不要)
- 課金: OpenRouter経由の従量課金(プロバイダ直接価格+マージン約5〜15%)
- レスポンス形式: OpenAIのChat Completions APIと同一フォーマット
# OpenAI SDKでOpenRouterを使う例
from openai import OpenAI
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key="sk-or-v1-xxxxx"
)
response = client.chat.completions.create(
model="anthropic/claude-3.5-sonnet",
messages=[{"role": "user", "content": "Hello"}]
)
主要な対応モデルと価格帯
| モデル | プロバイダ | 入力価格(/1M tokens) | 出力価格(/1M tokens) | コンテキスト長 |
|---|---|---|---|---|
| GPT-4o | OpenAI | $2.50 | $10.00 | 128K |
| Claude 3.5 Sonnet | Anthropic | $3.00 | $15.00 | 200K |
| Gemini 1.5 Pro | $1.25 | $5.00 | 2M | |
| Llama 3.1 405B | Meta (via各社) | $0.80 | $0.80 | 128K |
| Mixtral 8x22B | Mistral | $0.65 | $0.65 | 65K |
| DeepSeek V3 | DeepSeek | $0.14 | $0.28 | 128K |
無料枠のモデル(Llama 3.1 8B、Gemma 2 9Bなど)も提供されており、プロトタイピングに最適です。
フォールバックとルーティング機能
OpenRouterの核心機能は、プロバイダレベルの障害対策と負荷分散です。
- 自動フォールバック: プロバイダAがダウンした場合、同一モデルを提供するプロバイダBに自動切替
- プロバイダ優先順位:
provider.orderで["Azure", "OpenAI"]のように優先順位を指定可能 - レート制限管理: プロバイダごとのレート制限を統合管理し、制限到達時に別プロバイダへ迂回
- コスト制限: 月間予算上限を設定し、超過時にリクエストをブロック
- ストリーミング対応: SSE(Server-Sent Events)による全モデル統一のストリーミングレスポンス
LiteLLMとの比較
自前でLLMゲートウェイを構築する場合のOSSとして LiteLLM が代表的です。
| 比較項目 | OpenRouter | LiteLLM |
|---|---|---|
| デプロイ形態 | SaaS(ホスティング済み) | セルフホスト(OSS) |
| APIキー管理 | OpenRouter側で一元管理 | 各プロバイダキーを自前管理 |
| レイテンシ | プロキシ経由の追加レイテンシあり | 直接接続に近い |
| コスト | プロバイダ価格+マージン | インフラコストのみ |
| モデル数 | 100+ | 100+(設定次第) |
| カスタマイズ | 限定的 | フル制御可能 |
| 可用性 | OpenRouter SLA依存 | 自前運用 |
小規模プロジェクトやプロトタイプではOpenRouter、本番環境で完全な制御が必要な場合はLiteLLMが適しています。
ユースケースと活用パターン
- マルチモデルA/Bテスト: 同一プロンプトを複数モデルに送信し、品質・速度・コストを比較
- コスト最適化: タスク難易度に応じて高性能モデル(GPT-4o)と低コストモデル(Llama 3.1 8B)を自動振り分け
- 可用性向上: Claude APIの障害時にGPT-4oへ自動フォールバック
- 開発効率化: モデル切替をコード変更なしで実現(model名の変更のみ)
- 予算管理: チーム・プロジェクト単位の利用量追跡と上限設定
よくある質問(FAQ)
Q1: OpenRouterを経由すると応答速度は遅くなりますか? A: プロキシによる追加レイテンシは通常50〜150ms程度です。ストリーミング利用時はTTFT(Time To First Token)への影響が主で、全体のスループットへの影響は軽微です。レイテンシに厳しい本番環境ではプロバイダ直接接続も検討してください。
Q2: OpenRouterのAPIキーが漏洩した場合のリスクは? A: OpenRouterキー1つで全プロバイダにアクセスできるため、漏洩時の影響は大きいです。月間予算上限の設定と、キーのローテーションを推奨します。ダッシュボードからキーの即時無効化も可能です。
Q3: 自前のファインチューニングモデルをOpenRouter経由で提供できますか? A: 一部プロバイダ(OpenAI、Together AI等)のファインチューニングモデルは、プロバイダ側で公開設定すればOpenRouter経由でアクセス可能です。完全にプライベートなモデルの場合はLiteLLM等のセルフホスト型ゲートウェイが適しています。
まとめ
- 100以上のLLMモデルを統一OpenAI互換APIで利用可能
- ベースURL変更だけでマルチプロバイダ環境を構築
- 自動フォールバック・レート制限管理・コスト追跡を統合
- プロバイダ直接価格+約5〜15%マージンの従量課金
- プロトタイプから本番まで、プロバイダロックインなしで運用可能