跳到主要内容

安装

支持的环境

LangChain 使用 TypeScript 编写,可以在以下环境中使用:

  • Node.js (ESM 和 CommonJS) - 18.x、19.x、20.x
  • Cloudflare Workers
  • Vercel / Next.js (浏览器、无服务器和边缘函数)
  • Supabase 边缘函数
  • 浏览器
  • Deno
  • Bun

但是,请注意,并非所有环境中都支持个别集成。

安装

要安装主要的 langchain 包,请运行

npm install langchain @langchain/core

虽然此包可以作为使用 LangChain 的一个合理的起点,但 LangChain 的大部分价值来自于将其与各种模型提供商、数据存储等集成。默认情况下,未安装执行此操作所需的依赖项。你需要单独安装特定集成的依赖项。我们将在本指南的后续章节中展示如何操作。

另请参阅关于安装集成包的部分,了解安装 LangChain 包时的一些特殊注意事项。

生态系统包

除了 langsmith SDK 之外,LangChain 生态系统中的所有包都依赖于 @langchain/core,后者包含其他包使用的基类和抽象。下面的依赖关系图显示了不同包之间的关系。有向箭头表示源包依赖于目标包

注意: 重要的是你的应用仅使用一个版本的 @langchain/core。常见的包管理器可能会在解析直接依赖项时引入其他版本,即使你并非有意这样做。请参阅关于安装集成包的此部分,以获取更多信息和补救方法。

@langchain/community

@langchain/community 包包含一系列第三方集成。使用以下命令安装:

npm install @langchain/community @langchain/core

还有更细粒度的包,其中包含用于各个提供商的 LangChain 集成。

@langchain/core

@langchain/core 包包含 LangChain 生态系统的其余部分使用的基本抽象,以及 LangChain 表达式语言。应单独安装:

npm install @langchain/core

LangGraph

LangGraph.js 是一个用于使用 LLM 构建有状态、多参与者应用的库。它可以与 LangChain 无缝集成,但也可以在没有 LangChain 的情况下使用。

使用以下命令安装:

npm install @langchain/langgraph @langchain/core

LangSmith SDK

LangSmith SDK 由 LangChain 自动安装。如果你不将其与 LangChain 一起使用,请使用以下命令安装:

npm install langsmith

安装集成包

LangChain 支持包含与各个第三方提供商的模块集成的包。它们可以像 @langchain/anthropic 一样具体,其中仅包含 Anthropic 模型的集成,也可以像 @langchain/community 一样广泛,其中包含更广泛的社区贡献集成。

这些包以及主要的 LangChain 包都具有 @langchain/core 作为对等依赖项,以避免包管理器安装同一包的多个版本。它包含这些集成包扩展的基本抽象。

为确保所有集成及其类型彼此正确交互,重要的是它们都使用相同版本的 @langchain/core。如果你遇到围绕基类的类型错误,你可能需要保证你的包管理器正在解析单个版本的 @langchain/core。为此,你可以像下面这样在项目的 package.json 中添加 "resolutions""overrides" 字段。名称将取决于你的包管理器

提示

yarnpnpmresolutionspnpm.overrides 字段必须在根 package.json 文件中设置。

如果你正在使用 yarn

yarn package.json
{
"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

npm package.json
{
"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

pnpm package.json
{
"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 install @langchain/openai @langchain/core
import { ChatOpenAI } from "@langchain/openai";

如果你在 ESM 项目中使用 TypeScript,我们建议更新你的 tsconfig.json 以包含以下内容:

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 i web-streams-polyfill@4

然后将其添加到主入口点中的全局命名空间

import "web-streams-polyfill/polyfill";

此外,你还需要 polyfill structuredClone,例如,通过安装 core-js 并按照此处的说明进行操作。

如果你运行的是 Node.js 18+,则无需执行任何操作。


此页是否对您有帮助?


你也可以留下详细的反馈 在 GitHub 上.