LangChain 接入 EXAIV:Python/JS 两行代码切换模型供应商
在 LangChain 中用 base_url 指向 EXAIV 的 OpenAI 兼容端点:Python 与 TypeScript 完整示例、流式输出、工具调用注意事项与常见错误。
LangChain 接入 EXAIV:两行代码切换模型供应商
LangChain 的 ChatOpenAI 类原生支持自定义 base_url——把地址指向 EXAIV 的 OpenAI 兼容端点,你的 Chain、Agent、RAG 管线就跑在 EXAIV 的模型池上,代码其他部分完全不变。
Python 接入
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="qwen3.8-flash",
api_key="你的_EXAIV_API_KEY",
base_url="https://exaiv.com/api/ai/v1",
)
# 之后的 Chain / Agent 写法与官方 OpenAI 完全一致
result = llm.invoke("用一句话介绍 EXAIV")
print(result.content)
安装依赖:pip install langchain-openai
JavaScript / TypeScript 接入
const llm = new ChatOpenAI({
model: "qwen3.8-flash",
apiKey: "你的_EXAIV_API_KEY",
configuration: { baseURL: "https://exaiv.com/api/ai/v1" },
});
const result = await llm.invoke("用一句话介绍 EXAIV");
console.log(result.content);
安装依赖:npm install @langchain/openai
流式输出
for chunk in llm.stream("讲个两句话的笑话"):
print(chunk.content, end="", flush=True)
LangChain 的流式抽象在自定义 base_url 下工作方式不变,事件语义按 OpenAI 兼容协议透传。
Agent 与工具调用
create_agent / create_react_agent 等高层封装同样只需要这一个 llm 实例。工具调用走标准的 OpenAI function calling 协议,EXAIV 端点完整转发。
模型切换
LangChain 中切换模型 = 换 model 参数字符串。可选模型即端点模型列表(见模型页),例如 deepseek-v4-flash、glm-5.3、claude-opus-4-8-fd——同一个 Key 全部可用。
常见问题
| 现象 | 处理 |
|---|---|
| NotFoundError | base_url 漏了 /v1;EXAIV 标准地址为 https://exaiv.com/api/ai/v1 |
| AuthenticationError | API Key 是否完整粘贴、是否误用官方 OpenAI Key |
| 超时 | 复杂 Agent 轮次耗时较长,可给客户端设置更长超时 |
进阶:在 RAG 与 Agent 中使用
RAG 检索增强:Retriever 拿到文档后交给 llm 生成答案的管线不需要任何额外配置,base_url 生效于整条链路。把检索器换成你自己的向量库(FAISS/Milvus 等),EXAIV 负责生成环节。
结构化输出:.with_structured_output(Pydantic模型) 在兼容端点上按 OpenAI 语义工作,适合从非结构化文本抽取字段。
多模型协作:同一个 Agent 里可以实例化两个 ChatOpenAI——一个指向快速模型做规划,一个指向旗舰模型做执行,各自独立计费。这是控制 Agent 成本的常用手法。
可观测性:LangSmith 等追踪工具走标准回调机制,与自定义 base_url 不冲突,方便排查哪一步消耗超预期。
技术栈定位:EXAIV 替换的是哪一层
一个典型 LLM 应用分四层:编排(LangChain/LangGraph)、检索(你的向量库)、生成(模型)、可观测(追踪工具)。EXAIV 只替换"生成层"的供应商接线——其他层保持原有代码、数据与工具不变。
这种分离让切换几乎零风险:Chain 与 Prompt 原样保留,按环境改模型名,还可以让生产环境跑稳定模型、预发环境实验新模型——同一个 Key、同一套计费,各自按调用量独立限额。后续引入 LangGraph、CrewAI 或评测框架时,它们消费的都是同一个 ChatOpenAI 实例,供应商切换会自动传导到所有层。