🏕️

LLM開発がラクになる!/OpenRouter活用ガイド:複数プロバイダーのモデル切り替え・Web検索対応まで

に公開

みなさんこんにちは!
カンリーでVPoEをしてます長谷川です。
今回は、弊社の新規サービス開発時に利用している、OpenRouterを活用した開発についてお話できればと思います!

背景:LLM利用における「コスト/モデル多様化」

近年、LLM(大規模言語モデル)を使ったプロダクト/サービスの導入が急速に進んでいますが、いざ開発、運用を考えると以下のような課題が浮上します。

  • どのモデルを使うべきか?最先端モデルを使うべきか、軽量/安価モデルで十分か?
  • モデル毎の性能を検証をしたいが、プロバイダー(OpenAI,Claude,Gemini等)が増えるとその分開発が必要になる
  • プロバイダごとのAPIキー管理・請求管理が煩雑になる。
  • コストがモデルごと・プロバイダごとにバラバラで、監視/管理が難しい。

こうした背景から、「複数モデルを簡単に切り替えられて」「コスト監視がしやすく」「請求・管理も一本化できる」ような仕組みが、エンジニア/チーム運用において非常に価値を持ちます。

OpenRouterとは何か

OpenRouter は、複数の LLM モデル/プロバイダを “ひとつの API キー・ひとつのエンドポイント” でアクセスできるゲートウェイサービスです。

2025/11/07時点では、500以上のLLMモデルに対応しており、各プロバイダーの最新のモデルも比較的すぐにつかえるようになっております。

メリット

コスト面

  • OpenRouter は「利用料金=基盤となるプロバイダ料金をそのまま受け渡す(マークアップなし)」(ただしクレジット購入時に 5.5%/最低 $0.80 の手数料)という仕組みを採用しています。
  • つまり、複数プロバイダ契約/切り替えを自分で管理するより、運用負荷を落としつつコストを把握しやすくできる点がエンジニア的メリットです。

モデルを複数検証・切り替えしやすい

  • エンドポイント・APIキーを変えずに、model パラメータを変えるだけで別モデル/別プロバイダにアクセスできます。
  • フォールバックの指定も可能で、例えば models: [ "providerA/modelX", "providerB/modelY" ] として、メインモデルが使えなかった場合に自動で別モデルに切り替える仕組みがあります。
  • 経費申請・請求管理の面でも、ひとつのダッシュボードで複数モデル/プロバイダ分の利用実績を可視化できるため、「どのモデル・どのプロバイダでいくら使ったか」をチームで管理しやすいというメリットがあります。

Web検索モードにも対応

  • OpenRouter では、モデル名に :online を付けるか、"plugins": [{ "id": "web" }] を指定することで、リアルタイム Web 検索を含む応答が可能なモードが提供されています。
  • ドキュメントによると“web_search”という動的バリアントとして掲載されており、 :online は「all requests will run a query to extract web results that are attached to the prompt」という説明があります。
  • これにより「最新情報を参照しつつ LLM を使いたい」「外部知識+言語モデルで応答を構築したい」といったニーズに応えることができます。

その他のメリット

  • 様々なモダリティ(テキストだけでなく画像・PDF・音声も含む)を扱えるモデルがサポートされており、OpenRouter のドキュメントでは「images & PDFs」対応が明記されています。
  • レスポンスを型付き/構造化(JSON Schema)で返す “Structured Outputs” 機能もあり、アプリケーション側でパースしやすく、誤応答・ハルシネーション対策にも活用可能です。
  • モデル・プロバイダ数が増え続けており、将来のモデル切り替え・新規モデル導入運用がしやすい“拡張性”があります。

デメリット・注意点

本当に「安い/合理的」か?

  • 「マークアップなし」と説明されますが、クレジット購入時の手数料 5.5%(最低 $0.80)というコストが発生します。
  • また、Web 検索プラグイン等を使うと別途「$4 per 1,000 results」といった料金が発生します。
  • 従って、「コスト削減」を目的にするなら、使用するモデル・プロバイダ・使用量・為替・使用パターン(突発的か継続的か)を事前に検証する必要があります。

モデル品質・可用性・契約条件が依存する

  • モデルごとに “最大コンテキスト長”“レート制限”“モデレーションポリシー” などが異なり、ゲートウェイ側で吸収できない制約もあります。

プロダクション運用上のリスク・中継レイヤの信頼性

  • OpenRouter は “中継レイヤ(ゲートウェイ)” という構造上、プロバイダ障害・ネットワーク/API遅延・バージョン変更などが起きたとき、直接プロバイダと契約している場合よりも透明性・制御性が低くなる可能性があります。
  • 請求・利用状況を一本化できる反面、「どのモデル/どのプロバイダがどれだけ使われたか」の粒度が浅い場合、運用・コストモニタリングが甘くなりがちです。
  • また、将来的に契約モデルが非推奨になる、プロバイダが変わる、料金体系が変化するという“モデルリスク”も留意すべきです。

実践/活用のヒント

セットアップの基本

import { openrouter } from '@openrouter/ai-sdk-provider';

const client = openrouter({ apiKey: process.env.OPENROUTER_API_KEY });

const response = await client.chat({
  model: 'openai/gpt-4o',
  messages: [{ role: 'user', content: 'Explain quantum mechanics simply.' }],
});
console.log(response);

このように、モデル ID を変えるだけで別モデルに切り替え可能です。

モデル切り替え・フォールバック指定

{
  "model": "openrouter/auto",
  "models": ["anthropic/claude-4.5-sonnet", "openai/gpt-4o", "mistral/mistral-x"],
  "messages": [
    { "role": "user", "content": "…some prompt…" }
  ]
}

このように models パラメータを指定すると、メインモデルが使えなかった場合に自動で別モデルにフォールバックできます。

Web検索モードの有効化

{
  "model": "openai/gpt-4o:online",
  "plugins": [
    {
      "id": "web",
      "max_results": 3,
      "search_prompt": "以下の検索結果も考慮してください:"
    }
  ],
  "messages": [
    { "role": "user", "content": "2025年のAIモデルのトレンドを教えて" }
  ]
}

この機能は「Web Search via the API」として公式に案内されています。
ただし、運用にあたっては「検索の精度」「レスポンス時間」「料金」を検証した上で使うのがおすすめです。

コスト・運用管理のポイント

  • 利用トークン数(入力+出力)を usage パラメータで取得して、モデルごとのコストを可視化できます。
  • 請求・クレジット残高・モデル別利用数を定期的にレビューし、「無駄な高コストモデル/不用意な Web 検索」を使っていないかをチェックしましょう。
  • 検証環境・本番環境でモデルを変える際には、「軽量モデル+フォールバック高性能モデル」という構成を検討すると、コストと品質のバランスを保ちやすいです。

私見

LLM の利用が更に広がる中、「単に最良モデルを使う」だけではコスト・運用・スケーラビリティの観点で課題が出てきています。そうした中で OpenRouter のような “モデルゲートウェイ” の意義は今後ますます高まると感じています。

特にPoC段階では、「まずOpenRouterで切り替え検証→運用拡大時にモデル契約・直接プロバイダ接続に切り替え」という段階的アプローチを採用すると、よりコアなロジック開発に集中することができます。

おわりに

Coding Agent や AIを用いたイネーブルメント、新規事業開発などに興味がある方などいれば、是非カジュアルにお話しましょう!(転職を考えていない方も歓迎です!)
https://x.com/ryo_v2

参照ドキュメント

[1] https://openrouter.ai/docs/faq "OpenRouter FAQ | Developer Documentation"
[2] https://openrouter.ai/docs/api-reference/overview "OpenRouter API Reference | Complete API Documentation" 
[3] https://openrouter.ai/docs/features/images-and-pdfs "OpenRouter Images & PDFs | Complete Documentation"
[4] https://openrouter.ai/docs/features/structured-outputs "Structured Outputs | Enforce JSON Schema in OpenRouter API ..."
[5] https://openrouter.ai/docs/overview/models "Access 400+ AI Models Through One API - OpenRouter"
[6] https://openrouter.ai/docs/use-cases/usage-accounting "Usage Accounting | Track AI Model Usage with OpenRouter"

カンリーテックブログ

Discussion