LangChain Runnables 概念指南

文章目录
概述
Runnable接口是LangChain中的核心抽象,它为大多数组件提供了统一的调用方式。这个接口使得创建自定义链变得简单,并且以标准方式调用它们。标准接口包括:
stream: 流式返回响应块invoke: 对输入调用链batch: 对输入列表调用链astream: 异步流式返回响应块ainvoke: 异步调用链abatch: 异步对输入列表调用链astream_log: 流式返回中间步骤,随着它们的发生astream_events: 流式返回事件,随着它们在链中发生(在v0.1.14中引入)
Runnable接口概述
优化的并行执行(批处理)
Runnable接口支持批处理操作,可以并行处理多个输入,这比逐个处理输入要高效得多。
异步支持
所有Runnable都支持同步和异步调用。这使得在异步环境中使用相同的代码变得容易,例如在Jupyter笔记本中进行原型设计,然后在异步服务器中使用。
流式API
Runnable接口提供了多种流式API:
- stream: 流式返回最终输出的块
- astream: 异步版本的stream
- astream_log: 流式返回中间步骤和最终输出
- astream_events: 流式返回链中发生的事件
这些流式API对于创建响应式用户界面特别有用,可以在处理过程中向用户显示进度。
输入和输出类型
每个Runnable都公开了输入和输出模式,提供了关于输入和输出结构的信息。
检查模式
您可以使用以下方法检查Runnable的输入和输出模式:
# 检查输入模式
runnable.input_schema
# 检查输出模式
runnable.output_schema
RunnableConfig
RunnableConfig是一个配置对象,可以传递给Runnable以控制其执行方式。它包含以下可选字段:
tags: 用于过滤和搜索的标签列表metadata: 与运行相关的元数据字典callbacks: 要使用的回调处理程序列表run_name: 运行的自定义名称max_concurrency: 批处理操作的最大并发数recursion_limit: 防止无限递归的递归限制configurable: 可配置属性的运行时值run_id: 运行的唯一标识符
RunnableConfig的传播
许多Runnables由其他Runnables组成,重要的是RunnableConfig要传播到Runnable进行的所有子调用。这允许向父Runnable提供运行时配置值,这些值由所有子调用继承。
如果不是这种情况,就不可能设置和传播回调或其他配置值,如tags和<

最低0.47元/天 解锁文章
137

被折叠的 条评论
为什么被折叠?



