LangChain 环境怎么配:Node、Python、代理与密钥设置

LangChain 环境配置用于安装 SDK,并安全接入模型、代理和密钥。

截至 2026 年 11 月,LangChain.js 官方仓库仍明确支持 Node.js 20.x、22.x 和 24.x;现在值得重新配置,是因为旧教程里的 Node 版本、Python 包名、模型标识和密钥存放方式可能已经过时。下文标注“工程建议”的内容是结合官方安装方式作出的选择;版本、命令和接口均指出来源原文,其余配置边界会明确标为分析。

先确定 Python 还是 Node.js

LangChain 同时提供 Python 与 JavaScript 两套实现。JavaScript 版使用 TypeScript,官方仓库给出的快速安装命令是 npm install -S langchain,也支持 pnpm 和 yarn;其支持环境还包括浏览器、Deno、Bun、Cloudflare Workers 与 Vercel 等,但第一次配置不必从边缘部署开始。

Python 路线的近期安装示例使用 pip install -qU langchain "langchain[openai]"。这里的方括号不是占位符:它表示同时安装 OpenAI 集成包。Google Gemini、Anthropic 等供应商也应使用各自对应的附加包,而不是只安装核心 langchain 包。

选择 更适合的项目 最小安装命令 额外准备
Python 数据处理、脚本、FastAPI 服务 pip install -qU langchain "langchain[openai]" Python 解释器、模型供应商 API Key
Node.js TypeScript、Next.js、服务端项目 npm install -S langchain Node.js 20.x、22.x 或 24.x、模型供应商 API Key
分开使用 Python 处理数据,Node.js 提供网页服务 两个目录分别安装 两套依赖和密钥管理

工程建议:普通 AI 应用从 Python 开始;已有 TypeScript 或 Next.js 技术栈则直接使用 Node.js。不要在同一项目里混装两套 SDK,否则依赖解析、模型参数和工具接口容易出现版本错配。

Node.js:按仓库支持范围安装

进入项目目录后,可直接复制官方仓库提供的三种安装方式之一:

npm install -S langchain
pnpm install langchain
yarn add langchain

不要同时执行三条命令。项目原本使用哪种包管理器,就继续使用哪一种;否则会同时生成 package-lock.json、pnpm-lock.yaml 和 yarn.lock,后续安装可能据此解析出不同版本。

官方仓库列出的 Node.js 版本是 20.x、22.x、24.x。如果项目依赖只能运行在 Node 18 或更早版本,应先解决运行时兼容问题,而不是强行安装。跨源对比后能看到一个容易忽略的边界:LangChain.js 官方仓库列出的运行环境很广,但这不代表所有模型供应商都支持浏览器直接调用密钥。尤其在浏览器中使用时,密钥会进入客户端代码,不能把它当作服务器端 .env 配置。

安装完成后,应能在项目的 package.json 中看到 langchain 依赖,并在依赖目录中找到该包。若构建工具仍报告找不到模块,先确认当前终端确实位于刚才安装依赖的项目根目录,而不是父目录或另一个同名项目。

Python:用独立环境隔离依赖

近期 Python 配置示例把 3.10+ 作为环境基线,并推荐为 LangChain 项目创建独立环境。可直接复制以下命令创建名为 langchain_v1.2 的 Python 3.13.11 环境:

conda create --name langchain_v1.2 python=3.13.11

创建后检查环境列表:

conda env list

再激活环境并确认解释器版本:

conda activate langchain_v1.2
python -V

预期输出中应出现 Python 3.13.11。这一步很关键:Windows Terminal、VS Code、PyCharm 和 IDE 的运行配置可能分别指向不同解释器。命令行已经显示正确版本,并不代表 IDE 中的 Python Console 也使用了同一个环境。

随后安装核心包和 OpenAI 集成:

pip install -qU langchain "langchain[openai]"

如果代码实际调用 Gemini 或 Anthropic,应把附加集成换成对应包。工程建议是使用虚拟环境管理工具锁定项目的完整依赖文件,而不是依赖 Conda 环境本身作为可复现配置;前者能明确记录最终版本,后者更适合快速隔离和试装。

密钥放哪:本地文件、进程环境与仓库边界

密钥的共同原则是:只放在不会进入 Git 历史、浏览器包或日志的本地环境中。普通 Python 项目可把配置放进未提交的 .env,启动程序时再由环境读取器加载;Node.js 服务则可放入部署平台的服务端环境变量。文件名可以参考官方仓库示例采用的 .env.example,但示例文件只能保存变量名和说明,不能保存真实密钥。

官方 CubeSandbox 示例给出的复制命令是(注意路径带 ../——示例在子目录里):

cp ../.env.example .env

这条命令适用于带有 .env.example 的项目,不是 LangChain 自动生成的命令。复制后应立即把示例值替换为自己的密钥,并确认 .env 已加入版本控制忽略文件。

配置密钥时还要区分两层:

  1. 模型供应商密钥:用于调用模型或兼容接口。
  2. 自建服务密钥:例如 CubeSandbox 示例中的 CUBE_API_KEY,用于访问自己的后端服务。

浏览器端、公开仓库、截图、报错日志和前端构建产物中都不应出现真实密钥。若必须分享配置模板,保留类似 YOUR_API_KEY 的模板文本,并让接收者自行填写。

代理要放在哪一层:先判断是谁发起请求

LangChain 本身不是统一代理服务器,代理应配置在真正发出网络请求的运行环境中。若程序在 Node.js 或 Python 进程里调用模型,优先使用操作系统、容器或部署平台的代理设置;如果程序部署在 Cloudflare Workers、Vercel Edge 或 Supabase Edge Functions,则应使用该平台支持的出站网络配置。

工程建议按以下顺序排查:先在终端统一设置三个代理变量(官方口径:HTTP_PROXY、HTTPS_PROXY、NO_PROXY,其中 NO_PROXY 排除本机与内部地址):

export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080
export NO_PROXY=localhost,127.0.0.1

把 proxy.example.com:8080 换成实际地址(官方提醒:Python 读这两个变量时大小写在不同平台处理不完全一致,设完用 echo $HTTPS_PROXY 确认读到值);再确认不配置代理时请求能否到达模型服务;再检查代理是否只影响当前进程;最后检查代理是否允许目标模型域名及接口路径。企业代理还可能要求 TLS 证书与主机名匹配,不能只填写一个 HTTP 地址就认定配置完成。

如果使用自建兼容接口,代理之外通常还要核对基础地址、接口路径和模型标识。这里最容易出现的情况不是 LangChain 安装失败,而是 SDK 已正常导入,但请求被发往错误的地址。此时应核对项目配置文件中的服务地址,而不是反复重装依赖。

怎么确认环境真的可用

不要只看安装命令是否显示成功。按下面的可观察结果逐层确认:

  1. Node.js 项目的 package.json 中出现 langchain 依赖,依赖安装过程没有依赖解析错误。
  2. Python 环境中能执行 python -V,输出与创建环境时指定的版本一致。
  3. 依赖安装后,IDE 使用的解释器与终端解释器相同。
  4. 程序运行时能够读取本地密钥,但日志只显示变量名或脱敏值。
  5. 发起一次最小模型请求后,收到正常模型响应,而不是认证、网络或地址错误。

如果 Python 明明安装了包,IDE 仍提示找不到模块,优先检查解释器选择器;如果 Node.js 项目能启动但模型请求失败,优先检查密钥、基础地址和代理。前者属于环境隔离问题,后者通常属于网络与服务配置问题。

官方入口与延伸阅读

先完成单语言、单项目的最小安装,再接入真实密钥;确认最小请求成功后,才加入代理、数据库和复杂 Agent 流程。这样出现问题时,能够明确判断故障来自运行时、依赖、密钥还是网络层。

参考来源

评论区

0 条评论

登录后可评论。

小猫跳舞 290 阅读