LangChain 概述 (模块索引)

文章目录

  • 一、简介
  • 二、langchain基本工作流程 (RAG基本流程)
  • 三、langchain 能帮助我们干什么
    • 1、LLMs 和 Prompts (提示)
    • 2、Chain (链)
    • 3、Data Arguemented Generation
    • 4、Agents (代理)
    • 5、memory (记忆)
    • 6、Evaluation (评估)
  • 四、核心功能
    • 1、流式传输 streaming
  • 五、LCEL
  • 六、组成部分


一、简介

 LangChain 是一个用于开发由大型语言模型 (LLM) 支持的应用程序的开发框架。LangChain 简化了 LLM 应用程序生命周期的每个阶段:

  • Open-source libraries:使用 LangChain 的 modular building blockscomponents 构建您的应用程序,并集成了大量的 third-party providers
  • Productionization:使用 LangSmith 检查、监控和评估您的链,以便您可以不断优化和自信地部署。
  • Deployment:使用LangGraph Cloud 将您的 LangGraph 应用程序转换为可以直接用的 API 和助手。

 更仔细地,该框架由下面的开源库组成,见下图:
LangChain 概述 (模块索引)_第1张图片

  • langchain-core:基础抽象和 LangChain 表达语言。
  • langchain-community:第三方集成。
    • Partner packages:如 langchain-openai、langchain-anthropic 等,一些集成已进一步拆分为自己的轻量级包,仅依赖于 langchain-core。
  • langchain:构成应用程序认知架构的链、代理和检索策略 (Chains, agents, retrieval strategies)。
  • langgraph:通过将步骤建模为图中的边和节点,使用LLM构建健壮且有状态的多参与者应用程序。与LangChain顺利集成,但可以在没有它的情况下使用。
  • langserve:将 LangChain 链部署为 REST APIs。
  • LangSmith:一个开发人员平台,可让您调试、测试、评估和监控 LLM 应用程序。

二、langchain基本工作流程 (RAG基本流程)

LangChain 概述 (模块索引)_第2张图片


三、langchain 能帮助我们干什么

1、LLMs 和 Prompts (提示)

 这包括 显示管理、提示优化、所有 LLM 的通用接口、用于使用 LLM 的通用实用程序

2、Chain (链)

 链超越了单个 LLM 调用,并涉及一系列调用 (无论是 LLM 还是不同的实用程序)。
 Langchain 为链提供了标准接口,与其他工具进行了大量集成,并为常见应用程序提供了端到端链。

3、Data Arguemented Generation

 数据增强生成涉及 特定类型的链,这些链首先与 外部数据源 交互以获取数据以用于 生成步骤 (generation step)。示例包括长文本片段的摘要和特定数据源的问/答。

4、Agents (代理)

 代理涉及LLM决定采取哪些行动,采取该行动,查看观察结果,并重复直到完成。LangChain为代理提供了一个标准界面、可供选择的代理选择以及端到端代理的示例。

5、memory (记忆)

 记忆是指链/代理调用之间的持久状态。LangChain 提供了一个记忆的标准接口、记忆实现的集合以及使用记忆的链/代理的示例。

6、Evaluation (评估)

 [测试版]众所周知,生成模型很难用传统指标进行评估。评估它们的一种新方法是使用语言模型本身进行评估。LangChain提供了一些提示/链来协助这一点。


四、核心功能

 其中包括以下内容:

  1. 从模型中返回结构化的数据
  2. 使用模型调用工具
  3. 流式可运行对象
  4. 调试 LLM 应用

1、流式传输 streaming

 在大语言模型中,流式传输 streaming 通常指的是一种数据处理方式,其中数据是 连续不断地 传输和处理,而不是一次性批量传输。这种方法有以下几个关键特征和应用:

  1. 实时处理,流式传输允许模型 实时处理输入数据,而不是等待所有数据都传输完毕后再进行处理。这对于需要即时响应的应用非常重要,如在线翻译、语音识别、实时聊天机器人等。
  2. 减少延迟,通过流式传输,数据可以 分块处理,每个块的数据可以在接收到后立即进行处理,从而 减少整体延迟,提高响应速度。
  3. 资源管理,流式传输可以更有效地利用资源,因为它 不需要在内存中一次性加载所有数据,适合处理大规模数据或内存受限的场景。
  4. 适应动态数据,在一些应用中, 数据是 不断变化和更新的,如社交媒体流、传感器数据等。流式传输能够动态适应这些数据的变化,提供持续的模型推理和输出。

五、LCEL

 LCEL 是一种创建任意自定义链的方法。它基于 Runnable 协议。LCEL cheatsheet:快速概览如何使用主要 LCEL 原语。


六、组成部分

 LangChain 为使用 LLM 构建的各种组件提供了标准的、可扩展的接口和外部集成。LangChain 实现的一些组件,我们依赖第三方集成的一些组件和其他组件是混合的。

  1. Chat models 聊天模型
  2. LLMs 大语言模型
  3. Messages 消息
  4. Promp template 提示词模板
  5. Example selectors 示例选择器

你可能感兴趣的:(LangChain,langchain)