🦜️🔗 LangChain.js
⚡ 通过组合性构建LLM应用程序 ⚡
寻找Python版本?查看LangChain。
为了帮助您更快地将LangChain应用部署到生产环境,请查看LangSmith。 LangSmith是一个统一的开发者平台,用于构建、测试和监控LLM应用程序。
⚡️ 快速安装
您可以使用npm、yarn或pnpm来安装LangChain.js
npm install -S langchain
或yarn add langchain
或pnpm add langchain
🌐 支持的环境
LangChain使用TypeScript编写,可以在以下环境中使用:
- Node.js(ESM和CommonJS) - 18.x、19.x、20.x、22.x
- Cloudflare Workers
- Vercel / Next.js(浏览器、无服务器和Edge函数)
- Supabase Edge Functions
- 浏览器
- Deno
🤔 什么是LangChain?
LangChain是一个用于开发由语言模型驱动的应用程序的框架。它支持以下功能的应用程序:
- 上下文感知:将语言模型连接到上下文源(提示指令、少量示例、用于基础回应的内容等)
- 推理:依靠语言模型进行推理(基于提供的上下文如何回答、采取什么行动等)
该框架由几个部分组成。
- 开源库:使用LangChain的开源构建模块、组件和第三方集成构建您的应用程序。 使用LangGraph.js构建具有一流流式处理和人机交互支持的有状态代理。
- 生产化:使用LangSmith检查、监控和评估您的链,以便持续优化和自信部署。
- 部署:使用LangGraph Cloud(目前仅支持Python)将LangGraph应用程序转变为生产就绪的API和助手。
LangChain库本身由几个不同的包组成。
@langchain/core
:基础抽象和LangChain表达语言。@langchain/community
:第三方集成。langchain
:构成应用程序认知架构的链、代理和检索策略。- LangGraph.js:一个用于构建强大且有状态的多参与者LLM应用程序的库,通过将步骤建模为图中的边和节点。与LangChain无缝集成,但也可以单独使用。
集成也可能被拆分成兼容的独立包。
该库旨在协助开发这些类型的应用程序。常见的应用示例包括:
❓ 针对特定文档的问答
- 文档
- 端到端示例:Doc-Chatbot
💬 聊天机器人
- 文档
- 端到端示例:Chat-LangChain
🚀 LangChain如何提供帮助?
LangChain库的主要价值主张是:
- 组件:用于处理语言模型的可组合工具和集成。组件是模块化和易于使用的,无论您是否使用LangChain框架的其他部分
- 现成的链:用于完成更高级任务的内置组件组合
现成的链使入门变得容易。组件使定制现有链和构建新链变得容易。
组件分为以下模块:
📃 模型I/O:
这包括提示管理、提示优化、所有LLM的通用接口以及使用LLM的常用实用工具。
📚 检索:
数据增强生成涉及特定类型的链,首先与外部数据源交互以获取用于生成步骤的数据。示例包括长文本的摘要和针对特定数据源的问答。
🤖 代理:
代理允许LLM自主完成任务。代理决定采取哪些行动,然后执行该行动,观察结果,并重复直到任务完成。LangChain提供了代理的标准接口,以及用于构建自定义代理的LangGraph.js。
📖 文档
请查看这里获取完整文档,包括:
💁 贡献
作为一个在快速发展领域的开源项目,我们非常欢迎贡献,无论是新功能、改进基础设施还是更好的文档。
有关如何贡献的详细信息,请参阅这里。
请按照我们的安全指南报告任何安全问题或疑虑。
🖇️ 与Python LangChain的关系
这个项目旨在与LangChain Python包尽可能无缝集成。具体来说,这意味着所有对象(提示、LLM、链等)都设计为可序列化并在语言之间共享。