框架与工具链3829 字

LangChain工作流编排

·全库 429 / 611

《LangChain工作流编排》共 0.4 万字,通篇围绕 LangChain、检索、prompt、延迟 展开,归在「框架与工具链」这一层。

覆盖LangChain检索prompt延迟并发工作流

适合要选技术栈、不想把别人踩过的坑重踩一遍的人

目录骨架(4 节)
  1. LCEL介绍
  2. Runable interface
  3. Stream(流)
  4. Stream events(事件流)

示例代码

注:将ppt后缀名改为zip后解压

​

python版本:3.12.4

分享内容

  1. LCEL介绍
  2. Runable interface
  3. Stream(流)
  4. Stream events(事件流)

LCEL介绍

LCEL(LangChain Expression Language) 是一种强大的工作流编排工具,可以从基本组件构建复杂任务链条(chain),并支持诸如流式处理、并行处理和日志记录等开箱即用的功能。

LCEL 从第一天起就被设计为支持将原型投入生产,无需更改代码,从最简单的“提示 + LLM”链到最复杂的链(我们已经看到有人成功地在生产中运行了包含数百步的 LCEL 链)。以下是您可能想要使用 LCEL 的一些原因的几个亮点:

一流的流式支持 当您使用 LCEL 构建链时,您将获得可能的最佳时间到第一个标记(直到输出的第一块内容出现所经过的时间)。对于某些链,这意味着我们直接从 LLM 流式传输标记到流式输出解析器,您将以与 LLM 提供程序输出原始标记的速率相同的速度获得解析的增量输出块。

异步支持 使用 LCEL 构建的任何链都可以使用同步 API(例如,在您的 Jupyter 笔记本中进行原型设计)以及异步 API(例如,在 LangServe 服务器中)进行调用。这使得可以在原型和生产中使用相同的代码,具有出色的性能,并且能够在同一服务器中处理许多并发请求。

优化的并行执行 每当您的 LCEL 链具有可以并行执行的步骤时(例如,如果您从多个检索器中获取文档),我们会自动执行,无论是在同步接口还是异步接口中,以获得可能的最小延迟。

重试和回退 为 LCEL 链的任何部分配置重试和回退。这是使您的链在规模上更可靠的好方法。我们目前正在努力为重试/回退添加流式支持,这样您就可以获得额外的可靠性而无需任何延迟成本。

访问中间结果 对于更复杂的链,访问中间步骤的结果通常非常有用,即使在生成最终输出之前。这可以用于让最终用户知道正在发生的事情,甚至只是用于调试您的链。您可以流式传输中间结果,并且在每个 LangServe 服务器上都可以使用。

输入和输出模式 输入和输出模式为每个 LCEL 链提供了从链的结构推断出的 Pydantic 和 JSONSchema 模式。这可用于验证输入和输出,并且是 LangServe 的一个组成部分。

Runable interface

为了尽可能简化创建自定义链的过程,我们实现了一个 "Runnable" 协议。许多 LangChain 组件都实现了 Runnable 协议,包括聊天模型、LLMs、输出解析器、检索器、提示模板等等。此外,还有一些有用的基本组件可用于处理可运行对象,您可以在下面了解更多。 这是一个标准接口,可以轻松定义自定义链,并以标准方式调用它们。 标准接口包括:

  • stream: 返回响应的数据块
  • invoke: 对输入调用链
  • batch: 对输入列表调用链

这些还有相应的异步方法,应该与 asyncio 一起使用 await 语法以实现并发:

  • astream: 异步返回响应的数据块
  • ainvoke: 异步对输入调用链
  • abatch: 异步对输入列表调用链
  • astream_log: 异步返回中间步骤,以及最终响应
  • astream_events: beta 流式传输链中发生的事件(在 langchain-core 0.1.14 中引入)

输入类型 和 输出类型 因组件而异:

组件输入类型输出类型
提示字典提示值
聊天模型单个字符串、聊天消息列表或提示值聊天消息
LLM单个字符串、聊天消息列表或提示值字符串
输出解析器LLM 或聊天模型的输出取决于解析器
检索器单个字符串文档列表
工具单个字符串或字典,取决于工具取决于工具

所有可运行对象都公开输入和输出 模式 以检查输入和输出:

  • input_schema: 从可运行对象结构自动生成的输入 Pydantic 模型
  • output_schema: 从可运行对象结构自动生成的输出 Pydantic 模型

资料里没有你的场景?

把你手上的数据和想解决的那个环节发上来,我们按具体情况回,不复述方法论。

发布需求