可选
config剩余参数
...args: any[]受保护
lc_可选
name可选
tags构造函数参数的别名映射。键是属性名称,例如 "foo"。值是在序列化中将替换键的别名。这用于例如使参数名称与 Python 匹配。
要与构造函数参数合并的附加属性映射。键是属性名称,例如 "foo"。值是属性值,将被序列化。这些属性需要被构造函数接受为参数。
模块的最终序列化标识符。
秘密映射,这些秘密将从序列化中省略。键是构造函数参数中秘密的路径,例如 "foo.bar.baz"。值是秘密 ID,将在反序列化时使用。
应序列化的键的手动列表。如果未被覆盖,所有传入构造函数的字段都将被序列化。
处理可运行对象的批处理和配置的内部方法。它接受一个函数、输入值和可选配置,并返回一个解析为输出值的 Promise。
一个解析为输出值的 Promise。
受保护
_call受保护
_get受保护
_separate可选
options: Partial<RunnableConfig<Record<string, any>>>受保护
_stream受保护
_traced受保护
_transform辅助方法,用于将输入值的迭代器转换为输出值的迭代器,并带有回调。使用此方法在 Runnable 子类中实现 stream()
或 transform()
。
默认的批处理实现,调用 invoke N 次。如果子类可以更有效地进行批处理,则应覆盖此方法。
每个批处理调用的输入数组。
可选
options: Partial<RunnableConfig<Record<string, any>>> | Partial<RunnableConfig<Record<string, any>>>[]可以是应用于每个批处理调用的单个调用选项对象,也可以是每个调用的数组。
可选
batchOptions: RunnableBatchOptions & { RunOutputs 数组,如果设置了 batchOptions.returnExceptions,则为 RunOutputs 和错误的混合数组。
可选
options: Partial<RunnableConfig<Record<string, any>>> | Partial<RunnableConfig<Record<string, any>>>[]可选
batchOptions: RunnableBatchOptions & { 可选
options: Partial<RunnableConfig<Record<string, any>>> | Partial<RunnableConfig<Record<string, any>>>[]可选
batchOptions: RunnableBatchOptions创建一个新的可运行序列,该序列按顺序运行每个独立的 runnable,将一个 runnable 的输出导入另一个 runnable 或类 runnable 对象。
一个可运行对象、函数或其值是函数或可运行对象的对象。
一个新的可运行序列。
受保护的
run生成由可运行对象的内部步骤发出的事件流。
用于创建 StreamEvents 的迭代器,提供关于可运行对象进度的实时信息,包括来自中间结果的 StreamEvents。
StreamEvent 是一个具有以下模式的字典
event
: string - 事件名称的格式为:on_[runnable_type]_(start|stream|end)。name
: string - 生成事件的可运行对象的名称。run_id
: string - 与发出事件的可运行对象的给定执行相关联的随机生成ID。作为父可运行对象执行的一部分被调用的子可运行对象会被分配自己的唯一ID。tags
: string[] - 生成事件的可运行对象的标签。metadata
: Record<string, any> - 生成事件的可运行对象的元数据。data
: Record<string, any>下表展示了一些可能由各种链发出的事件。元数据字段为简洁起见已从表中省略。链定义已包含在表后。
注意 此参考表适用于 V2 版本的模式。
+----------------------+-----------------------------+------------------------------------------+
| event | input | output/chunk |
+======================+=============================+==========================================+
| on_chat_model_start | {"messages": BaseMessage[]} | |
+----------------------+-----------------------------+------------------------------------------+
| on_chat_model_stream | | AIMessageChunk("hello") |
+----------------------+-----------------------------+------------------------------------------+
| on_chat_model_end | {"messages": BaseMessage[]} | AIMessageChunk("hello world") |
+----------------------+-----------------------------+------------------------------------------+
| on_llm_start | {'input': 'hello'} | |
+----------------------+-----------------------------+------------------------------------------+
| on_llm_stream | | 'Hello' |
+----------------------+-----------------------------+------------------------------------------+
| on_llm_end | 'Hello human!' | |
+----------------------+-----------------------------+------------------------------------------+
| on_chain_start | | |
+----------------------+-----------------------------+------------------------------------------+
| on_chain_stream | | "hello world!" |
+----------------------+-----------------------------+------------------------------------------+
| on_chain_end | [Document(...)] | "hello world!, goodbye world!" |
+----------------------+-----------------------------+------------------------------------------+
| on_tool_start | {"x": 1, "y": "2"} | |
+----------------------+-----------------------------+------------------------------------------+
| on_tool_end | | {"x": 1, "y": "2"} |
+----------------------+-----------------------------+------------------------------------------+
| on_retriever_start | {"query": "hello"} | |
+----------------------+-----------------------------+------------------------------------------+
| on_retriever_end | {"query": "hello"} | [Document(...), ..] |
+----------------------+-----------------------------+------------------------------------------+
| on_prompt_start | {"question": "hello"} | |
+----------------------+-----------------------------+------------------------------------------+
| on_prompt_end | {"question": "hello"} | ChatPromptValue(messages: BaseMessage[]) |
+----------------------+-----------------------------+------------------------------------------+
"on_chain_*" 事件是适用于不符合上述任何类别的 Runnables 的默认事件。
除了上述标准事件外,用户还可以分派自定义事件。
自定义事件将仅在 API 的 `v2` 版本中显示!
自定义事件具有以下格式
+-----------+------+------------------------------------------------------------+
| Attribute | Type | Description |
+===========+======+============================================================+
| name | str | A user defined name for the event. |
+-----------+------+------------------------------------------------------------+
| data | Any | The data associated with the event. This can be anything. |
+-----------+------+------------------------------------------------------------+
以下是一个例子
import { RunnableLambda } from "@langchain/core/runnables";
import { dispatchCustomEvent } from "@langchain/core/callbacks/dispatch";
// Use this import for web environments that don't support "async_hooks"
// and manually pass config to child runs.
// import { dispatchCustomEvent } from "@langchain/core/callbacks/dispatch/web";
const slowThing = RunnableLambda.from(async (someInput: string) => {
// Placeholder for some slow operation
await new Promise((resolve) => setTimeout(resolve, 100));
await dispatchCustomEvent("progress_event", {
message: "Finished step 1 of 2",
});
await new Promise((resolve) => setTimeout(resolve, 100));
return "Done";
});
const eventStream = await slowThing.streamEvents("hello world", {
version: "v2",
});
for await (const event of eventStream) {
if (event.event === "on_custom_event") {
console.log(event);
}
}
可选的
streamOptions: Omit<EventStreamCallbackHandlerInput, "autoClose">可选的
streamOptions: Omit<EventStreamCallbackHandlerInput, "autoClose">流式传输来自可运行对象的所有输出,按照回调系统报告的方式。这包括 LLM、检索器、工具等所有内部运行。输出以日志对象的形式流式传输,其中包括一个 jsonpatch 操作列表,描述了运行状态在每个步骤中如何变化,以及运行的最终状态。jsonpatch 操作可以按顺序应用以构建状态。
可选
options: Partial<RunnableConfig<Record<string, any>>>可选的
streamOptions: Omit<LogStreamCallbackHandlerInput, "autoClose">将生命周期监听器绑定到 Runnable,返回一个新的 Runnable。Run 对象包含运行信息,包括其 ID、类型、输入、输出、错误、开始时间、结束时间以及添加到运行的任何标签或元数据。
包含回调函数的对象。
可选的
on在可运行对象完成运行后调用,并带上 Run 对象。
可选的
config: RunnableConfig<Record<string, any>>可选的
on如果可运行对象抛出错误,则调用此函数,并带上 Run 对象。
可选的
config: RunnableConfig<Record<string, any>>可选的
on在可运行对象开始运行前调用,并带上 Run 对象。
可选的
config: RunnableConfig<Record<string, any>>向现有可运行对象添加重试逻辑。
可选的
fields: { 可选的
on可选的
stop一个新的 RunnableRetry,在被调用时将根据参数进行重试。
静态
is静态
lc_
一个节点,用于运行上一个 AIMessage 中请求的工具。它可以在 StateGraph 中与 "messages" 键一起使用,也可以在 MessageGraph 中使用。如果请求了多个工具调用,它们将并行运行。输出将是一个 ToolMessages 列表,每个工具调用对应一个。
示例
示例