文章目录
一、简介
LangChain 是一个用于开发由大型语言模型 (LLM) 支持的应用程序的开发框架。LangChain 简化了 LLM 应用程序生命周期的每个阶段:
- Open-source libraries:使用 LangChain 的 modular building blocks 和 components 构建您的应用程序,并集成了大量的 third-party providers。
- Productionization:使用 LangSmith 检查、监控和评估您的链,以便您可以不断优化和自信地部署。
- Deployment:使用LangGraph Cloud 将您的 LangGraph 应用程序转换为可以直接用的 API 和助手。
更仔细地,该框架由下面的开源库组成,见下图:
- 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 能帮助我们干什么
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、流式传输 streaming
在大语言模型中,流式传输 streaming 通常指的是一种数据处理方式,其中数据是 连续不断地 传输和处理,而不是一次性批量传输。这种方法有以下几个关键特征和应用:
- 实时处理,流式传输允许模型 实时处理输入数据,而不是等待所有数据都传输完毕后再进行处理。这对于需要即时响应的应用非常重要,如在线翻译、语音识别、实时聊天机器人等。
- 减少延迟,通过流式传输,数据可以 分块处理,每个块的数据可以在接收到后立即进行处理,从而 减少整体延迟,提高响应速度。
- 资源管理,流式传输可以更有效地利用资源,因为它 不需要在内存中一次性加载所有数据,适合处理大规模数据或内存受限的场景。
- 适应动态数据,在一些应用中, 数据是 不断变化和更新的,如社交媒体流、传感器数据等。流式传输能够动态适应这些数据的变化,提供持续的模型推理和输出。
五、LCEL
LCEL 是一种创建任意自定义链的方法。它基于 Runnable 协议。LCEL cheatsheet:快速概览如何使用主要 LCEL 原语。
六、组成部分
LangChain 为使用 LLM 构建的各种组件提供了标准的、可扩展的接口和外部集成。LangChain 实现的一些组件,我们依赖第三方集成的一些组件和其他组件是混合的。