LangChain 国内怎么用:安装、接口配置与账号避坑
LangChain 是用于构建大模型应用的开发框架,可连接模型、工具和数据源;国内使用时,关键是分清框架安装与模型接口配置。
先分清账号、支付和网络到底卡在哪
LangChain 不是模型服务商。它负责把提示词、模型、工具和检索器等组件串起来,真正产生回答的是后端模型接口。安装框架、调用模型、部署应用是三件不同的事,不能看到“连接失败”就重新安装 npm 包。
| 环节 | 需要准备什么 | 出问题时的表现 | 国内使用建议 |
|---|---|---|---|
| 安装 LangChain | Node.js 或 Python 环境、代码编辑器 | 找不到包、模块不存在 | 先按当前项目语言选择一种安装方式 |
| 配置模型接口 | 服务商账号、API Key、模型名、接口地址 | 未授权、余额不足、连接超时 | 在服务商控制台确认密钥和额度 |
| 运行应用 | 环境变量、可访问的接口地址 | 代码能启动,但没有模型回复 | 分别验证接口连通性和 LangChain 调用 |
网络、支付和账号问题通常发生在第二层:模型服务商要求注册、充值并创建 API Key,LangChain 本身并不替代这些操作。下面能确认的命令和环境均来自官方仓库;涉及第三方服务商的密钥、价格与充值方式,必须以其控制台为准,不能套用其他平台的参数。
选 Python 还是 JavaScript:只装当前项目需要的一套
官方仓库将 JavaScript 版 LangChain.js 描述为基于 TypeScript 的框架,支持 Node.js 20.x、22.x、24.x,也支持 Cloudflare Workers、Vercel、Next.js、Supabase Edge Functions、Browser、Deno 和 Bun。已经使用 TypeScript、Next.js 或 Node.js 的项目,优先沿用 JavaScript 路线;纯 Python 项目再选择 Python 路线。
JavaScript 路线进入项目目录后执行:
npm install -S langchain
官方仓库同时列出 pnpm 和 yarn 两种安装方式:
pnpm install langchain
yarn add langchain
三种方式选一种即可,不要为了“兼容性”连续安装三遍。npm 的 -S 表示把包保存到 dependencies,适合应用代码会直接导入 LangChain 的项目;pnpm 与 yarn 则应按各自锁文件管理依赖。
安装后先确认包是否进入当前项目,而不是依赖电脑全局环境:
npm list langchain
输出中应能看到 langchain 及对应版本。如果这里显示为空,通常意味着命令是在另一个目录执行,或项目同时存在多个锁文件。不要先改全局 npm 权限,这会掩盖项目路径选错的问题。
Python 资料中的最小安装命令为:
pip install -qU langchain "langchain[openai]"
其中 langchain[openai] 表示同时安装 OpenAI 接入所需的附加依赖。普通读者可把它理解为“框架本体加上指定模型接口的连接组件”。如果准备接入其他服务商,应按对应集成文档安装,不要默认所有模型都共用同一个扩展包。
把账号、密钥和接口地址放进环境变量
拿到模型服务商的 API Key 后,不要直接写进 JavaScript 或 Python 文件。至少准备三个配置项:模型名、API Key、服务商给出的接口地址。不同服务商的字段名可能不同,但职责相同。
以兼容 OpenAI 风格接口的模型服务为例,JavaScript 项目的 .env 可按服务商文档填写:
LLM_API_KEY=替换为服务商提供的密钥
LLM_MODEL=替换为服务商提供的模型名
OPENAI_API_BASE=替换为服务商提供的接口地址
对应的 Python 初始化方式可写成:
import os
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model=os.getenv("LLM_MODEL"),
base_url=os.getenv("OPENAI_API_BASE"),
api_key=os.getenv("LLM_API_KEY"),
)
这套写法的重点不是固定使用某个服务商,而是把三项可变信息从代码中抽离。切换测试、生产环境时,只需替换环境变量;若出现“本机成功、部署后失败”,优先检查部署平台有没有配置同名变量。
在提交代码前确认密钥没有被写进仓库:
git grep -n "API_KEY|api_key|sk-"
命令没有输出通常才表示未搜到硬编码痕迹。还要确保 .env 已写入 .gitignore。GitHub 的官方密码重置入口是 https://github.com/password_reset;如果密钥已经提交到公开仓库,应先在服务商控制台撤销并重建,而不是只从最新提交里删除。
用最小代码判断故障发生在哪一层
先运行 LangChain 包检查:
node -e "console.log(require('langchain/package.json').version)"
成功标志是终端输出一个版本号,而不是模块找不到。接着单独测试模型接口,不要一开始就把 LangChain、Agent、工具调用和数据库全部接上。
兼容 OpenAI 风格接口可使用 Node.js 原生 fetch:
const response = await fetch(process.env.OPENAI_API_BASE, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${process.env.LLM_API_KEY}`
},
body: JSON.stringify({
model: process.env.LLM_MODEL,
messages: [{ role: "user", content: "只回复 OK" }]
})
});
console.log(response.status, await response.text());
观察 HTTP 状态码:返回成功状态且正文包含模型回复,说明网络、密钥、账户和接口地址基本可用;返回未授权,优先检查 API Key、请求头和账户状态;返回余额或额度相关提示,需要在服务商控制台处理充值或配额;连接阶段就超时,则先排查接口地址、防火墙和代理。
这是根据官方接口风格给出的分层诊断路径,不是所有服务商的官方错误码表。服务端错误正文可能随时调整,因此不要把某次报错文本写死成永久规则。
国内网络配置:先验证域名,再改代理
国内开发者常见误区是直接修改全局代理,以为这样就能让 LangChain 正常运行。实际上,npm 安装、GitHub 拉取、模型接口域名和 API 调用可能经过不同链路。全局代理解决其中一个域名,并不能保证其他请求正常。
先分别访问以下页面:
- LangChain.js 官方仓库:https://github.com/langchain-ai/langchainjs/tree/main/libs/langchain/
- GitHub 官方文档:https://docs.github.com/en
- GitHub 登录页:https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Flangchain-ai%2Flangchainjs%2Ftree%2Fmain%2Flibs%2Flangchain%2F
GitHub 登录页出现的原文是:There was an error while loading. Please reload this page. 这表示登录页面没有正常加载。可执行的处理顺序是刷新页面、确认系统时间正确、关闭影响认证的扩展,再重新登录;它与 LangChain 代码报错不是同一问题。
项目若确实需要代理,应在启动命令中明确传入,而不是把密钥或代理配置永久写进公共配置文件。npm 可按当前命令临时设置代理,Python 则应检查解释器实际读取到的代理环境变量。验证后删除终端历史中的敏感参数。
支付问题:买的是模型调用额度,不是 LangChain 会员
LangChain 官方仓库提供的是开发框架、安装命令和运行示例;模型调用计费属于后端服务商。是否需要充值、充值多少、支持哪种付款方式,都不能在 LangChain 仓库中得到统一答案。
国内使用时,应在模型服务商控制台依次确认:
- 账号已完成实名认证或地区要求;
- 控制台显示可用余额或调用额度;
- 新建 API Key 的权限与目标模型一致;
- 当前项目使用的是正式接口地址,而不是测试地址;
- 服务商说明中列出的支付与发票流程已经完成。
不要把模型名称、接口地址和第三方聚合平台教程中的示例值混用。相关聚合平台可能使用兼容接口,但模型名称、价格、限流和密钥规则都由该平台自己定义。本文不提供未经对应控制台确认的充值金额;输入卡号前应回到服务商域名核对域名、付款主体和退款规则。
怎么算配置成功
完整成功标志包括四项:终端能显示 LangChain 包版本;模型接口单独测试返回成功状态;LangChain 最小调用能输出模型回复;仓库检查找不到硬编码密钥。
可以保存一个最小 Python 脚本:
import os
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model=os.getenv("LLM_MODEL"),
base_url=os.getenv("OPENAI_API_BASE"),
api_key=os.getenv("LLM_API_KEY"),
)
response = llm.invoke("只回复:LangChain 配置成功")
print(response.content)
运行后看到 LangChain 配置成功,即可确认框架、账号、密钥、接口地址和基础调用链已经连通。若直接请求成功而这段代码失败,重点比较 base_url 是否多了或少了 /v1、模型名是否属于当前账户;如果两者都失败,则优先处理服务商账户和网络。
延伸入口
- LangChain.js 官方仓库:https://github.com/langchain-ai/langchainjs/tree/main/libs/langchain/
- LangChain.js 源码目录:https://github.com/langchain-ai/langchainjs/tree/main/libs/langchain/src
- OpenAI 接入文档入口:https://python.langchain.com/docs/integrations/chat/openai
- GitHub 官方文档:https://docs.github.com/en
- GitHub 账号注册:https://github.com/signup?return_to=https%3A%2F%2Fgithub.com%2Flangchain-ai%2Flangchainjs%2Ftree%2Fmain%2Flibs%2Flangchain%2F&source=login
参考来源
评论区
登录后可评论。