LangChain是一个语言模型驱动的开发应用程序的框架,于2022年10月底推出,由Harrison Chase开发。它使应用程序能够:
具有情境感知能力(Are context-aware:):将语言模型与情境源(提示指令、少量示例、为其响应提供基础的内容等)连接起来。
推理能力(Reason):依靠语言模型进行推理(基于提供的上下文如何回答,采取什么行动等)。
该框架由几个部分组成。
LangChain Libraries:Python和JavaScript库。包含无数组件的接口和集成,将这些组件组合成链和代理的基本运行时,以及链和代理的现成实现。
LangChain模板:一系列易于部署的参考架构,适用于各种任务。
LangServe:一个用于将LangChain链部署为REST API的库。
LangSmith:一个开发平台,可以调试、测试、评估和监控基于任何LLM框架构建的链,并与LangChain无缝集成。
这些产品/组件共同简化了整个应用程序生命周期:
开发(Develop):使用LangChain/LangChain.js编写应用程序。使用模板作为参考,可以立即上手。
生产化(Productionize):使用LangSmith检查、测试和监控您的链,以便您可以不断改进并自信地部署
部署(Deploy):使用LangServe将任何链转化为API。
LangChain软件包的主要优点是:
LangChain库本身由几个不同的软件包组成。
langchain-core:基本抽象和LangChain表达式语言。
langchain-community:第三方集成。
langchain:构成应用程序认知体系结构的链、代理和检索策略。
LangChain 提供了几个主要模块的支持。
这些模块按照复杂性递增排列如下:
模型(models) : LangChain 支持的各种模型类型和模型集成。
提示(prompts) : 包括提示管理、提示优化和提示序列化。
内存(memory) : 内存是在链/代理调用之间保持状态的概念。LangChain 提供了一个标准的内存接口、一组内存实现及使用内存的链/代理示例。
索引(indexes) : 与您自己的文本数据结合使用时,语言模型往往更加强大——此模块涵盖了执行此操作的最佳实践。
链(chains) : 链不仅仅是单个 LLM 调用,还包括一系列调用(无论是调用 LLM 还是不同的实用工具)。LangChain 提供了一种标准的链接口、许多与其他工具的集成。LangChain 提供了用于常见应用程序的端到端的链调用。
代理(agents) : 代理涉及 LLM 做出行动决策、执行该行动、查看一个观察结果,并重复该过程直到完成。LangChain 提供了一个标准的代理接口,一系列可供选择的代理,以及端到端代理的示例。