当前位置:   article > 正文

Langchain入门简介

langchain

一、基本介绍

LangChain是一个基于语言模型开发应用程序的框架。Langchain旨在简化与大模型交互、数据检索以及将不同功能模块串联起来以完成复杂任务的过程。可以实现以下功能的应用程序:

    • 具有上下文感知能力:将语言模型与上下文来源(提示指令、少量示例、内容等)连接起来,以为回答提供依据。
    • 具备逻辑推理能力:依赖于语言模型进行推理(根据提供的上下文来回答问题,采取何种行动等)。

LangChain专注于构建多模态、多模型联合推理方面,允许开发者构建复杂的基于自然语言处理的应用,通过将多个预训练模型进行联合推理,来提供更强大的语义理解和生成能力。

1、LangChain优势

LangChain软件包的主要价值在于:预制链使得初学者可以快速上手,而组件则使得用户能够轻松定制旧链并构建新链。

(1)组件(Components):LangChain中的组件都是模块化且易于使用的,支持组合工具、集成环境与语言模型协同运行。

(2)预制链(Off-the-shelf chains):指预先设计和构建好的、可以直接使用的链(chains),这些组件集合可用于完成更高级别的任务。

2、LangChain架构

(1)LangChain Libraries:即Python和JavaScript依赖库。包含大量组件的接口和集成环境,以及将这些组件组合成链(chains)和代理(agents)的基础运行时环境,并且还提供了现成的链(chains)和代理(agents)实现。

(2)LangChain Templates:一系列适用于多种任务且便于快速部署的参考架构集合。

(3)LangServe:用于将LangChain链(chains)部署为REST API的库。

(4)LangSmith:一个开发者平台,允许调试、测试、评估和监控基于任何LLM框架构建的链(chains),并能无缝集成到LangChain中。

以上这些产品共同简化了整个应用程序生命周期:

    • 开发阶段:使用LangChain或LangChain.js编写应用程序,并使用参考模板快速启动项目。
    • 生产阶段:利用LangSmith来检查、测试和监控链(chains),以便可以持续改进并在确保质量的前提下部署应用。
    • 部署阶段:通过LangServe将任何链(chains)转换为API,实现便捷部署与调用。

3、LangChain库

LangChain库本身由几个不同的软件包组成:

(1)langchain-core

LangChain 核心包,包括了基础功能、核心API、LangChain表达式语言、数据存储与访问机制、模型集成接口等关键组件。任何使用 LangChain 构建应用的基础都会依赖这个核心库。

(2)langchain-community

LangChain 第三方集成包,由社区维护和贡献的扩展包、插件、示例代码、教程以及最佳实践集合。这部分内容并不属于 LangChain 核心库的一部分,而是围绕着核心库形成的生态系统,为开发者提供更多的资源和支持。LangChain-community 为以下模块提供了标准的、可扩展的接口和集成环境:

    • 模型IO(Model I/O): 提供与各类语言模型进行交互的接口,能够方便地向模型输入数据,读取模型输出信息。
    • 数据检索(Retrieval): 提供与指定数据源对接的接口,可以高效查询和获取应用程序所需的指定数据。
    • 代理(Agents): 设计了能够让模型根据高级指令,自主选择使用何种工具或服务的机制,增强了模型处理复杂任务的能力。

(3)langchain

LangChain 基础包,包含构成应用程序认知架构的链(chains)、代理(agents)、检索策略。

4、LangChain表达式语言

LangChain表达式语言 (LCEL,LangChain Expression Languag是一种声明式构建链的方法。LCEL 从设计之初就致力于将原型直接应用于生产,无需更改代码。无论是最简单的“prompt + LLM”链,还是最复杂的链都可以实现这一目标。

概述:LCEL基本介绍

接口:LCEL对象的标准接口

特点:LCEL的主要特点

Cookbook:常见任务的示例代码

5、LangChain模块

LangChain中的常用模块按照逐渐增加的复杂性排列如下:

(1)模型(models):LangChain 支持的各种模型类型和模型集成。

(2)提示(prompts):包括提示词管理、提示词优化和提示词序列化。

(3)内存(memory):内存是在链/代理调用之间保持状态的概念。LangChain 提供了一个标准的内存接口、一组内存实现及使用内存的链/代理示例。

(4)索引(indexes):与文本数据结合使用时,语言模型往往更加强大——此模块涵盖了执行此操作的最佳实践。

  (5)链(chains):链不仅仅是单个 LLM 调用,还包括一系列调用(无论是调用 LLM 还是不同的实用工具)。LangChain 提供了一种标准的链接口、许多与其他工具的集成。LangChain 提供了用于常见应用程序的端到端的链调用。

(6)代理(agents):代理涉及 LLM 做出行动决策、执行该行动、查看一个观察结果,并重复该过程直到完成。LangChain 提供了一个标准的代理接口,一系列可供选择的代理,以及端到端代理的示例。

6、LangChain生态

(1)使用案例: 提供了针对常见端到端应用场景的演示和方法,例如文档问题回答聊天机器人分析结构化数据等,并且还在不断扩充更多用例。

(2)集成: LangChain是丰富工具生态的一部分,这些工具与我们的框架集成,并在其基础上构建。请查看我们不断增加的集成列表,了解哪些工具可以与LangChain协同工作。

(3)指南: 我们提供了一系列最佳实践指南,帮助开发者更好地使用LangChain进行开发。

(4)API参考: 您可以前往参考部分查阅关于LangChain以及LangChain实验性Python包中所有类和方法的完整文档说明。

(5)开发指南: 查看开发指南,以获取贡献代码的指导原则,设置开发环境的帮助信息。

(6)社区: 请访问社区导航页面,这里能找到提问、分享反馈、与其他开发者交流的平台,共同探讨LLM(大规模语言模型)技术的未来发展之路。

7、资源集合

  • LangChainHub:LangChainHub 是一个分享和探索其他 prompts、chains 和 agents 的平台。
  • Gallery: 使用 LangChain 的项目合集,有助于找到灵感或了解其他应用程序的实现方式。
  • Deployments: 部署 LangChain 应用程序的说明、代码片段和模板存储库的合集。
  • Tracing: 使用追踪可视化 LangChain 中链和代理执行的指南。
  • Model Laboratory: 使用不同的 prompts、models 和 chains 进行实验是开发最佳应用程序的重要组成部分。Model Laboratory 使这个过程变得非常容易。
  • Discord: 加入我们的 Discord,讨论关于 LangChain 的一切!
  • YouTube: LangChain 教程和视频的集合。
  • Production Support:随着您将 LangChains 发布到生产环境,我们乐于提供更全面的支持。请填写此表格,我们将设置一个专门的支持 Slack 频道。

二、LangChain安装

1、langchain库安装

  1. pip install langchain
  2. conda install langchain -c conda-forge

langchain-community 第三方集成包,由 langchain 自动进行安装,但也可以单独使用命令安装:pip install langchain-community

langchain-core 核心包,由 langchain 自动进行安装,但也可以单独使用命令安装:pip install langchain-core

langchain-experimental 实验代码包,用于研究和实验用途。安装时使用命令:pip install langchain-experimental

2、LangChain CLI安装

LangChain CLI对于使用LangChain模板和其他LangServe项目非常有用。安装时使用命令:

pip install langchain-cli

3、LangServe库安装

LangServe 是一个工具,旨在帮助开发者将基于 LangChain 构建的可执行程序和链部署为 REST API。当使用 LangChain 命令行界面 ( LangChain CLI) 时,LangServe 会自动进行安装。

若未使用 LangChain CLI 进行开发,可以通过以下命令手动安装:

pip install "langserve[all]"

也可以将客户端和服务端分开单独安装:

  1. pip install "langserve[client]"
  2. pip install "langserve[server]"

4、LangSmith SDK安装

LangSmith SDK会由LangChain库自动进行安装,当然也可以使用命令手动安装:

pip install langsmith

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/688513
推荐阅读
相关标签
  

闽ICP备14008679号