# LangChain

> 用 langchain-openai 的 base_url 指向 TokRouter,在 LangChain 里直接使用网关上的任意模型。

LangChain 的 OpenAI 集成支持自定义 `base_url`,指向网关即可。

```bash
pip install langchain-openai
```

```python
import os
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="gpt-5.4-mini",
    api_key=os.environ["TOKROUTER_API_KEY"],
    base_url="https://api.tokrouter.dev/v1",
)

print(llm.invoke("用一句话解释什么是 RAG").content)
```

## 同一条链里混用不同厂商的模型

```python
planner = ChatOpenAI(
    model="claude-opus-5-5",
    api_key=os.environ["TOKROUTER_API_KEY"],
    base_url="https://api.tokrouter.dev/v1",
)
worker = ChatOpenAI(
    model="deepseek-v4-flash",
    api_key=os.environ["TOKROUTER_API_KEY"],
    base_url="https://api.tokrouter.dev/v1",
)

plan = planner.invoke("把「重构登录模块」拆成三个步骤,只输出步骤列表").content
print(worker.invoke(f"按这个计划写出第一步的实现要点:\n{plan}").content)
```

<Callout type="info" title="流式与工具调用">
`ChatOpenAI` 的 `stream()`、`bind_tools()` 走的是同一套 OpenAI 协议字段,网关侧行为一致。
各模型对工具调用的支持程度不同,见[工具调用](/zh/guides/tool-calling/)。
</Callout>
