📄️ 操作输入和输出
RunnableParallel 对于操作一个 Runnable 的输出以匹配序列中下一个 Runnable 的输入格式非常有用。
📄️ 传递数据
RunnablePassthrough 允许不改变或添加额外的键来传递输入。这通常与 RunnableParallel 结合使用,将数据分配给映射中的新键。
📄️ 运行自定义函数
你可以在管道中使用任意函数。
📄️ 根据输入动态路由逻辑
本笔记本介绍了如何使用 LangChain 表达式语言进行路由。
📄️ 绑定运行时参数
有时,我们希望使用常量参数调用 Runnable 序列中的 Runnable,这些常量参数不是序列中前一个 Runnable 的输出的一部分,也不是用户输入的一部分。我们可以使用 Runnable.bind() 轻松传递这些参数。
📄️ 在运行时配置链内部
通常,您可能想要尝试多种不同的做事方式,甚至向最 终用户展示多种不同的做事方式。为了使这种体验尽可能简单,我们定义了两种方法。
📄️ 使用“@chain”装饰器创建一个可运行程序
您还可以通过添加 @chain 装饰器将任意函数转换为链。这在功能上相当于包装在 RunnableLambda 中。
📄️ 添加备选方案
LLM 应用程序中存在许多可能的故障点,无论是 LLM API 问题、不良模型输出还是其他集成问题等。回退可帮助您妥善处理和隔离这些问题。
📄️ 流式自定义生成器函数
您可以在 LCEL 管道中使用生成器函数(即使用yield 关键字且行为类似于迭代器的函数) 。
📄️ 检查您的可运行文件
使用 LCEL 创建可运行程序后,您可能经常需要检查它以更好地了解正在发生的情况。本笔记本介绍了一些这样做的方法。
📄️ 添加消息历史记录(内存)
RunnableWithMessageHistory 允许我们将消息历史记录添加到某些类型的链中。它包装另一个 Runnable 并管理它的聊天消息历史记录。