当前位置:   article > 正文

langchain设置和安装 (js版)_langchain nodejs

langchain nodejs

设置和安装

支持的环境

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

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

快速入门

如果您想在Node.js中快速开始使用LangChain,请克隆此存储库并按照README说明进行设置,以获得一个已设置这些依赖项的样板项目。

如果您更喜欢自己设置环境,或者想在其他环境中运行LangChain,请继续阅读以下说明。

安装

要开始使用,可以使用以下命令安装LangChain:

npm install -S langchain
  • 1

TypeScript

LangChain使用TypeScript编写,并为其所有公共API提供类型定义。

加载库

ESM

LangChain提供了一个ESM构建,针对Node.js环境。您可以使用以下语法导入它:

import { OpenAI } from "langchain/llms/openai";
  • 1

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

{
  "compilerOptions": {
    ...
    "target": "ES2020", // or higher
    "module": "nodenext",
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

CommonJS

LangChain 提供了一个针对 Node.js 环境的 CommonJS 构建。您可以使用以下语法导入它:

const { OpenAI } = require("langchain/llms/openai");
  • 1

Cloudflare Workers

LangChain 可以在 Cloudflare Workers 中使用。您可以使用以下语法导入它:

import { OpenAI } from "langchain/llms/openai";
  • 1

Vercel / Next.js

LangChain 可以在 Vercel / Next.js 中使用。我们支持在前端组件、无服务器函数和边缘函数中使用 LangChain。您可以使用以下语法导入它:

import { OpenAI } from "langchain/llms/openai";
  • 1

Deno / Supabase Edge Functions

LangChain 可以在 Deno / Supabase Edge Functions 中使用。您可以使用以下语法导入它:

import { OpenAI } from "https://esm.sh/langchain/llms/openai";
  • 1

我们建议查看我们的 Supabase 模板 以了解如何在 Supabase Edge Functions 中使用 LangChain。

浏览器

LangChain 可以在浏览器中使用。在我们的 CI 中,我们测试了将 LangChain 与 Webpack 和 Vite 捆绑在一起,但其他捆绑器也应该可以工作。您可以使用以下语法导入它:

import { OpenAI } from "langchain/llms/openai";
  • 1

从 <0.0.52 版本更新

如果您正在从 LangChain 0.0.52 之前的版本更新,则需要更新您的导入以使用新的路径结构。

例如,如果您之前使用的是

import { OpenAI } from "langchain/llms";
  • 1

现在您需要使用

import { OpenAI } from "langchain/llms/openai";
  • 1

这适用于以下6个模块的所有导入,这些模块已被拆分为每个集成的子模块。组合模块已被弃用,在Node.js之外无法使用,并将在将来的版本中删除。

  • 如果您正在使用 langchain/llms,请参阅 LLMs 以获取更新的导入路径。
  • 如果您正在使用 langchain/chat_models,请参阅 Chat Models 以获取更新的导入路径。
  • 如果您正在使用 langchain/embeddings,请参阅 Embeddings 以获取更新的导入路径。
  • 如果您正在使用 langchain/vectorstores,请参阅 Vector Stores 以获取更新的导入路径。
  • 如果您正在使用 langchain/document_loaders,请参阅 Document Loaders 以获取更新的导入路径。
  • 如果您正在使用 langchain/retrievers,请参阅 Retrievers 以获取更新的导入路径。

其他模块不受此更改影响,您仍然可以从相同的路径导入它们。

此外,为了支持新的环境,有一些重大更改:

  • import { Calculator } from "langchain/tools"; 现在已移动到
    • import { Calculator } from "langchain/tools/calculator";
  • import { loadLLM } from "langchain/llms"; 现在已移动到
    • import { loadLLM } from "langchain/llms/load";
  • import { loadAgent } from "langchain/agents"; 现在已移动到
    • import { loadAgent } from "langchain/agents/load";
  • import { loadPrompt } from "langchain/prompts"; 现在已移动到
    • import { loadPrompt } from "langchain/prompts/load";
  • import { loadChain } from "langchain/chains"; 现在已移动到
    • import { loadChain } from "langchain/chains/load";

不支持:Node.js 16

我们不支持 Node.js 16,但如果您仍然想在 Node.js 16 上运行 LangChain,则需要按照本节中的说明进行操作。我们不保证这些说明将来仍然有效。

您需要使 fetch 全局可用,可以通过以下方式之一实现:

  • 使用 NODE_OPTIONS='--experimental-fetch' node ... 命令运行您的应用程序,或者
  • 安装 node-fetch 并按照这里的说明进行操作

此外,您还需要使用 polyfill unstructuredClone,例如安装 core-js 并按照这里的说明进行操作。

如果您正在运行 Node.js 18+,则无需进行任何操作。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号