統合ガイド
LangChain と LlamaIndex
LangChain の ChatOpenAI と LlamaIndex の OpenAI ラッパーを ToRouter に対して利用し、ひとつのチェーンで Claude、GPT、Gemini を組み合わせます。
LangChain の ChatOpenAI と LlamaIndex の OpenAI LLM ラッパーはどちらも OpenAI Chat Completions プロトコルを話します。これらを ToRouter に向ければ、フレームワークコードを変更することなく、チェーン、エージェント、RAG パイプラインにカタログ内の任意のモデルを組み込めます。
設定
| 項目 | 値 |
|---|---|
| Base URL | https://portal.torouter.ai/v1 |
| API キー | sk-*** |
| モデル | claude-opus-4-7、gpt-5、gemini-2.5-pro など |
環境変数 OPENAI_BASE_URL と OPENAI_API_KEY は両方のライブラリで自動検出されます。
LangChain
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
base_url="https://portal.torouter.ai/v1",
api_key="sk-***",
model="claude-opus-4-7",
)
print(llm.invoke("Hello").content)import { ChatOpenAI } from '@langchain/openai';
const llm = new ChatOpenAI({
configuration: { baseURL: 'https://portal.torouter.ai/v1' },
apiKey: 'sk-***',
model: 'claude-opus-4-7',
});
const res = await llm.invoke('Hello');
console.log(res.content);エンベディングを使う場合は OpenAIEmbeddings に同じ Base URL とカタログ内のエンベディングモデル ID(例:text-embedding-3-large)を指定してください。
LlamaIndex
from llama_index.llms.openai import OpenAI
llm = OpenAI(
api_base="https://portal.torouter.ai/v1",
api_key="sk-***",
model="gpt-5",
)
print(llm.complete("Hello").text)よくあるハマり
- LangChain Python は
base_url、LangChain JS はconfiguration.baseURL、LlamaIndex はapi_baseを使用します。値は同じですが、フィールド名はそれぞれ異なります。 - ひとつのチェーン内で複数モデルを混在させる場合(例:推論用に Claude、ツール利用用に GPT)は、モデルごとにラッパーをインスタンス化してください。呼び出しの途中で
modelを切り替えようとしないでください。 - 一部のエージェントフレームワークは厳密な OpenAI ツール呼び出しスキーマを期待します。非 OpenAI モデルがわずかに異なる形式でツール呼び出しを生成する場合は、そのステップだけ Anthropic SDK を直接使うことをお勧めします。詳細は anthropic を参照してください。