安装
支持的环境
LangChain 使用 TypeScript 编写,可以在以下环境中使用:
- Node.js (ESM 和 CommonJS) - 18.x、19.x、20.x
- Cloudflare Workers
- Vercel / Next.js (浏览器、无服务器和边缘函数)
- Supabase 边缘函数
- 浏览器
- Deno
- Bun
但是,请注意,并非所有环境中都支持个别集成。
安装
要安装主要的 langchain
包,请运行
- npm
- Yarn
- pnpm
npm install langchain @langchain/core
yarn add langchain @langchain/core
pnpm add langchain @langchain/core
虽然此包可以作为使用 LangChain 的一个合理的起点,但 LangChain 的大部分价值来自于将其与各种模型提供商、数据存储等集成。默认情况下,未安装执行此操作所需的依赖项。你需要单独安装特定集成的依赖项。我们将在本指南的后续章节中展示如何操作。
另请参阅关于安装集成包的部分,了解安装 LangChain 包时的一些特殊注意事项。
生态系统包
除了 langsmith
SDK 之外,LangChain 生态系统中的所有包都依赖于 @langchain/core
,后者包含其他包使用的基类和抽象。下面的依赖关系图显示了不同包之间的关系。有向箭头表示源包依赖于目标包
注意: 重要的是你的应用仅使用一个版本的 @langchain/core
。常见的包管理器可能会在解析直接依赖项时引入其他版本,即使你并非有意这样做。请参阅关于安装集成包的此部分,以获取更多信息和补救方法。
@langchain/community
@langchain/community 包包含一系列第三方集成。使用以下命令安装:
- npm
- Yarn
- pnpm
npm install @langchain/community @langchain/core
yarn add @langchain/community @langchain/core
pnpm add @langchain/community @langchain/core
还有更细粒度的包,其中包含用于各个提供商的 LangChain 集成。
@langchain/core
@langchain/core 包包含 LangChain 生态系统的其余部分使用的基本抽象,以及 LangChain 表达式语言。应单独安装:
- npm
- Yarn
- pnpm
npm install @langchain/core
yarn add @langchain/core
pnpm add @langchain/core
LangGraph
LangGraph.js 是一个用于使用 LLM 构建有状态、多参与者应用的库。它可以与 LangChain 无缝集成,但也可以在没有 LangChain 的情况下使用。
使用以下命令安装:
- npm
- Yarn
- pnpm
npm install @langchain/langgraph @langchain/core
yarn add @langchain/langgraph @langchain/core
pnpm add @langchain/langgraph @langchain/core
LangSmith SDK
LangSmith SDK 由 LangChain 自动安装。如果你不将其与 LangChain 一起使用,请使用以下命令安装:
- npm
- Yarn
- pnpm
npm install langsmith
yarn add langsmith
pnpm add langsmith
安装集成包
LangChain 支持包含与各个第三方提供商的模块集成的包。它们可以像 @langchain/anthropic
一样具体,其中仅包含 Anthropic 模型的集成,也可以像 @langchain/community
一样广泛,其中包含更广泛的社区贡献集成。
这些包以及主要的 LangChain 包都具有 @langchain/core
作为对等依赖项,以避免包管理器安装同一包的多个版本。它包含这些集成包扩展的基本抽象。
为确保所有集成及其类型彼此正确交互,重要的是它们都使用相同版本的 @langchain/core
。如果你遇到围绕基类的类型错误,你可能需要保证你的包管理器正在解析单个版本的 @langchain/core
。为此,你可以像下面这样在项目的 package.json
中添加 "resolutions"
或 "overrides"
字段。名称将取决于你的包管理器
yarn
或 pnpm
的 resolutions
或 pnpm.overrides
字段必须在根 package.json
文件中设置。
如果你正在使用 yarn
{
"name": "your-project",
"version": "0.0.0",
"private": true,
"engines": {
"node": ">=18"
},
"dependencies": {
"@langchain/anthropic": "^0.0.2",
"@langchain/core": "^0.3.0",
"langchain": "0.0.207"
},
"resolutions": {
"@langchain/core": "0.3.0"
}
}
如果你使用的是 yarn
版本 2 或更高版本,你也可以尝试运行 yarn dedupe
命令。
或者对于 npm
{
"name": "your-project",
"version": "0.0.0",
"private": true,
"engines": {
"node": ">=18"
},
"dependencies": {
"@langchain/anthropic": "^0.0.2",
"@langchain/core": "^0.3.0",
"langchain": "0.0.207"
},
"overrides": {
"@langchain/core": "0.3.0"
}
}
你也可以尝试 npm dedupe
命令。
或者对于 pnpm
{
"name": "your-project",
"version": "0.0.0",
"private": true,
"engines": {
"node": ">=18"
},
"dependencies": {
"@langchain/anthropic": "^0.0.2",
"@langchain/core": "^0.3.0",
"langchain": "0.0.207"
},
"pnpm": {
"overrides": {
"@langchain/core": "0.3.0"
}
}
}
你也可以尝试 pnpm dedupe
命令。
加载库
TypeScript
LangChain 使用 TypeScript 编写,并为其所有公共 API 提供类型定义。
ESM
LangChain 提供针对 Node.js 环境的 ESM 构建。你可以使用以下语法导入它:
- npm
- Yarn
- pnpm
npm install @langchain/openai @langchain/core
yarn add @langchain/openai @langchain/core
pnpm add @langchain/openai @langchain/core
import { ChatOpenAI } from "@langchain/openai";
如果你在 ESM 项目中使用 TypeScript,我们建议更新你的 tsconfig.json
以包含以下内容:
{
"compilerOptions": {
...
"target": "ES2020", // or higher
"module": "nodenext",
}
}
CommonJS
LangChain 提供针对 Node.js 环境的 CommonJS 构建。你可以使用以下语法导入它:
const { ChatOpenAI } = require("@langchain/openai");
Cloudflare Workers
LangChain 可以在 Cloudflare Workers 中使用。你可以使用以下语法导入它:
import { ChatOpenAI } from "@langchain/openai";
Vercel / Next.js
LangChain 可以在 Vercel / Next.js 中使用。我们支持在前端组件、无服务器函数和边缘函数中使用 LangChain。你可以使用以下语法导入它:
import { ChatOpenAI } from "@langchain/openai";
Deno / Supabase 边缘函数
LangChain 可以在 Deno / Supabase 边缘函数中使用。你可以使用以下语法导入它:
import { ChatOpenAI } from "https://esm.sh/@langchain/openai";
或者
import { ChatOpenAI } from "npm:@langchain/openai";
浏览器
LangChain 可以在浏览器中使用。在我们的 CI 中,我们测试了使用 Webpack 和 Vite 打包 LangChain,但其他打包器也应该可以工作。你可以使用以下语法导入它:
import { ChatOpenAI } from "@langchain/openai";
不支持:Node.js 16
我们不支持 Node.js 16,但如果你仍然想在 Node.js 16 上运行 LangChain,你需要按照本节中的说明进行操作。我们不保证这些说明在未来会继续有效。
你将必须全局提供 fetch
,可以:
- 使用
NODE_OPTIONS='--experimental-fetch' node ...
运行你的应用程序,或者 - 安装
node-fetch
并按照此处的说明进行操作
你还需要通过安装 polyfill ReadableStream
- npm
- Yarn
- pnpm
npm i web-streams-polyfill@4
yarn add web-streams-polyfill@4
pnpm add web-streams-polyfill@4
然后将其添加到主入口点中的全局命名空间
import "web-streams-polyfill/polyfill";
此外,你还需要 polyfill structuredClone
,例如,通过安装 core-js
并按照此处的说明进行操作。
如果你运行的是 Node.js 18+,则无需执行任何操作。