集成指南
LangChain 与 LlamaIndex
在 LangChain ChatOpenAI 与 LlamaIndex OpenAI 包装器中对接 ToRouter,让 Claude、GPT、Gemini 在同一条链路里混用。
LangChain 的 ChatOpenAI 与 LlamaIndex 的 OpenAI LLM 包装器都使用 OpenAI Chat Completions 协议——把它们指向 ToRouter,就能在链、Agent、RAG 流水线中随时切换目录里的任意模型,框架代码无需改动。
配置
| 配置项 | 说明 |
|---|---|
| Base URL | https://portal.torouter.ai/v1 |
| API Key | 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。 - 部分 Agent 框架要求严格的 OpenAI tool-call schema;如果非 OpenAI 模型返回的工具调用格式略有不同,建议这一步直接使用 Anthropic SDK,详见 anthropic。