Skip to main content

如何将链迁移到 LCEL

前提条件

本指南假设您熟悉以下概念:

LCEL 旨在简化使用 LLM 构建有用应用程序和组合相关组件的过程。它通过提供以下功能实现这一点:

  1. 统一接口:每个 LCEL 对象都实现了 Runnable 接口,该接口定义了一组通用的调用方法(invokebatchstreamainvoke 等)。这使得可以自动且一致地支持有用的操作,例如中间步骤的流式处理和批处理,因为由 LCEL 对象组成的每个链本身也是一个 LCEL 对象。
  2. 组合原语:LCEL 提供了一些原语,使得组合链、并行化组件、添加后备、动态配置链内部等操作变得简单。

LangChain 维护了一些遗留抽象。这些抽象中的许多可以通过 LCEL 原语的简短组合重新实现。这样做有一些一般性的好处:

  • 结果链通常实现了完整的 Runnable 接口,包括适当的流式处理和异步支持;
  • 链可能更容易扩展或修改;
  • 链的参数通常更易于定制(例如,提示),相比于以前的版本,后者往往是子类并且具有不透明的参数和内部结构。

LCEL 实现可能稍微冗长,但在透明性和可定制性方面有显著的好处。

以下页面帮助从各种特定链迁移到 LCEL:

查看 LCEL 概念文档 以获取更多背景信息。


此页面是否有帮助?


您还可以留下详细的反馈 在 GitHub 上