跳转到主要内容
LangChain 是最常用的 LLM 应用开发框架之一,适合做聊天接口封装、提示词链、工具调用、RAG、代理式工作流和应用级编排。对接 Crazyrouter 时,最稳妥的方式是走 LangChain 官方支持的 OpenAI 兼容组件。

概览

通过 LangChain 的 OpenAI 组件,你可以把请求发到 Crazyrouter:
  • 推荐协议:OpenAI-compatible API
  • Base URL:https://crazyrouter.com/v1
  • 认证变量:OPENAI_API_KEY
  • Python 主包:langchain-openai
  • JavaScript / TypeScript 主包:@langchain/openai
如果你准备把 Crazyrouter 接进自己的应用代码,而不是只在桌面客户端里聊天,LangChain 通常是最自然的一条工程化接入路径。

适合谁用

  • 想在 Python 或 Node.js 项目里正式集成 Crazyrouter 的开发者
  • 想做提示词链、RAG、工具调用、工作流编排的人
  • 想把模型调用逻辑统一抽象,不想直接手写底层 HTTP 请求的人
  • 想保留后续切换模型或切换上游灵活性的人

使用协议

推荐协议:OpenAI-compatible API Crazyrouter 对应核心配置:
OPENAI_API_KEY=sk-xxx
BASE_URL=https://crazyrouter.com/v1
在 LangChain 里对应写法通常是:
  • Python:api_key + base_url
  • JavaScript / TypeScript:apiKey + configuration.baseURL

系统要求与前置条件

项目说明
Crazyrouter 账号先在 crazyrouter.com 注册
Crazyrouter token建议为 LangChain 项目单独创建一个 token
Python建议 Python 3.10+
Node.js建议 Node.js 18+
LangChain 包Python 用 langchain-openai;JS / TS 用 @langchain/openai
可用模型至少放行 1 个聊天模型;若要做向量检索,还要放行 embedding 模型
建议初始白名单:
  • gpt-5.4
  • claude-sonnet-4-6
  • gemini-3-pro-preview
  • text-embedding-3-large

Python 项目完整接入路径

Windows 推荐路径

py -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -U pip
pip install -U langchain-openai langchain-community
python --version
pip --version
如果你要跑 FAISS 示例,再补:
pip install faiss-cpu

macOS / Linux 推荐路径

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
pip install -U langchain-openai langchain-community
python --version
pip --version
如果你要跑 FAISS 示例,再补:
pip install faiss-cpu

JavaScript / TypeScript 项目完整接入路径

Windows PowerShell

npm init -y
npm install @langchain/openai @langchain/core
node -v
npm -v

macOS / Linux

npm init -y
npm install @langchain/openai @langchain/core
node -v
npm -v

从零开始完整配置

1

第 1 步:在 Crazyrouter 创建 LangChain 专用 token

第一次只建议放行:
  • gpt-5.4
  • claude-sonnet-4-6
  • text-embedding-3-large
如果你后续要补更多模型,再按需求扩展,但第一次先坚持最小白名单。
2

第 2 步:先设置环境变量

export OPENAI_API_KEY=sk-xxx
echo $OPENAI_API_KEY
如果你打算长期开发,再做持久化:
echo 'export OPENAI_API_KEY=sk-xxx' >> ~/.bashrc
source ~/.bashrc
3

第 3 步:完成 Python 最小聊天验证

新建一个 test_langchain_chat.py
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="gpt-5.4",
    api_key="sk-xxx",
    base_url="https://crazyrouter.com/v1",
    temperature=0,
)

response = llm.invoke("Reply only OK")
print(response.content)
运行:
python test_langchain_chat.py
4

第 4 步:改成环境变量版本

跑通后,建议不要把 key 硬编码在代码里:
import os
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="gpt-5.4",
    api_key=os.environ["OPENAI_API_KEY"],
    base_url="https://crazyrouter.com/v1",
    temperature=0,
)
5

第 5 步:完成 JavaScript / TypeScript 最小聊天验证

新建 test-langchain-chat.mjs
import { ChatOpenAI } from "@langchain/openai";

const llm = new ChatOpenAI({
  model: "gpt-5.4",
  apiKey: process.env.OPENAI_API_KEY,
  configuration: {
    baseURL: "https://crazyrouter.com/v1",
  },
  temperature: 0,
});

const response = await llm.invoke("Reply only OK");
console.log(response.content);
运行:
node test-langchain-chat.mjs
6

第 6 步:再逐步增加 Embeddings、Prompt、RAG

不建议一开始就直接上复杂链路。推荐顺序:
  1. 先跑通单轮聊天
  2. 再跑 Prompt + Output Parser
  3. 再接 Embeddings
  4. 最后再做 RAG 或 Agent

Python 示例

最小聊天示例

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="gpt-5.4",
    api_key="sk-xxx",
    base_url="https://crazyrouter.com/v1",
    temperature=0.7,
)

response = llm.invoke("什么是 LangChain?")
print(response.content)

Embeddings 示例

from langchain_openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings(
    model="text-embedding-3-large",
    api_key="sk-xxx",
    base_url="https://crazyrouter.com/v1",
)

vectors = embeddings.embed_documents(["文本一", "文本二"])
print(len(vectors), len(vectors[0]))

Prompt 链示例

from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser

llm = ChatOpenAI(
    model="gpt-5.4",
    api_key="sk-xxx",
    base_url="https://crazyrouter.com/v1",
)

prompt = ChatPromptTemplate.from_template("用简单的语言解释 {topic}")
chain = prompt | llm | StrOutputParser()

result = chain.invoke({"topic": "量子计算"})
print(result)

RAG 最小示例

from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough

llm = ChatOpenAI(
    model="gpt-5.4",
    api_key="sk-xxx",
    base_url="https://crazyrouter.com/v1",
)

embeddings = OpenAIEmbeddings(
    model="text-embedding-3-large",
    api_key="sk-xxx",
    base_url="https://crazyrouter.com/v1",
)

texts = [
    "Crazyrouter 支持多种 AI 模型协议",
    "Crazyrouter 支持 OpenAI 兼容调用方式",
]

vectorstore = FAISS.from_texts(texts, embeddings)
retriever = vectorstore.as_retriever()

prompt = ChatPromptTemplate.from_template(
    "根据以下上下文回答问题:\n{context}\n\n问题:{question}"
)

chain = {"context": retriever, "question": RunnablePassthrough()} | prompt | llm

result = chain.invoke("Crazyrouter 适合用什么协议接 LangChain?")
print(result.content)

JavaScript / TypeScript 示例

最小聊天示例

import { ChatOpenAI } from "@langchain/openai";

const llm = new ChatOpenAI({
  model: "gpt-5.4",
  apiKey: process.env.OPENAI_API_KEY,
  configuration: {
    baseURL: "https://crazyrouter.com/v1",
  },
  temperature: 0,
});

const response = await llm.invoke("你好");
console.log(response.content);

推荐模型配置

使用场景推荐模型原因
首轮链路验证gpt-5.42026 年 3 月 23 日已在生产环境实测成功,最适合先确认 LangChain 与 Crazyrouter 已连通
高质量长文与复杂链路claude-sonnet-4-6适合复杂解释、总结与较重推理任务
Gemini 备用档gemini-3-pro-preview适合作为第二条兼容性验证路径
向量检索text-embedding-3-large适合先做 embedding 基线验证

Token 设置最佳实践

设置建议说明
专用 token必须LangChain 项目不要和桌面客户端共用 token
模型白名单强烈建议先只放行聊天模型 + embedding 模型
配额上限强烈建议链式调用、RAG、Agent 会放大消耗
环境隔离建议dev / staging / production 分开 token
泄露处理立即轮换不要把 key 提交到 Git;泄露后立即换 key

验证清单

  • Python 或 Node.js 运行环境已就绪
  • OPENAI_API_KEY 已正确设置
  • langchain-openai@langchain/openai 已安装
  • 聊天模型已设置 base_url / baseURLhttps://crazyrouter.com/v1
  • 第一条 Reply only OK 请求成功返回
  • Crazyrouter 后台日志能看到对应请求
  • 若使用 embeddings,embedding 模型也已放行
  • 若使用 RAG,先在最小文本集上完成验证

常见错误与修复

现象常见原因修复方式
401 unauthorizedOPENAI_API_KEY 错误、过期或复制错误重新生成 token 并重新设置环境变量
404base_url / baseURL 写错或漏了 /v1改成 https://crazyrouter.com/v1
model not found模型名写错或 token 未放行改回 gpt-5.4 等已确认模型并检查白名单
embeddings 报错忘了放行 embedding 模型给 token 增加 text-embedding-3-large
RAG 跑不起来一上来就接了太多组件先回退到单轮聊天,再逐层增加
消耗过快链式调用、检索、多轮 Agent 叠加先缩小链路,并单独控制 token 配额

FAQ

LangChain 接 Crazyrouter 应该走什么协议?

优先走 OpenAI 兼容协议。

Base URL 应该填什么?

https://crazyrouter.com/v1

Python 里应该用哪个包?

优先用 langchain-openai

JavaScript / TypeScript 里应该用哪个包?

优先用 @langchain/openai

第一次为什么不建议直接上 Agent 或大规模 RAG?

因为 LangChain 链路一旦复杂,排障成本会显著上升。先跑通最小聊天,再逐层增加组件,最稳。
如果你准备把 Crazyrouter 正式接入自己的应用工程,LangChain 仍然是最值得优先补齐的开发框架文档之一。