可选
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。
一个新的 RunnableBinding,当被调用时,将应用绑定的参数。
请使用 withConfig 代替。这将在下一个重大版本中移除。
创建一个新的可运行序列,该序列按顺序运行每个独立的 runnable,将一个 runnable 的输出导入到另一个 runnable 或类似 runnable 的对象中。
一个 runnable、函数或其值为函数或 runnable 的对象。
一个新的可运行序列。
Protected
run生成由 runnable 内部步骤发出的事件流。
用于创建 StreamEvents 上的迭代器,这些事件提供关于 runnable 进度的实时信息,包括来自中间结果的 StreamEvents。
StreamEvent 是一个具有以下模式的字典:
event
: string - 事件名称的格式为:on_[runnable_type]_(start|stream|end)。name
: string - 生成事件的 runnable 的名称。run_id
: string - 与发出事件的 runnable 的给定执行关联的随机生成 ID。作为父 runnable 执行的一部分被调用的子 runnable 会被分配其自己的唯一 ID。tags
: string[] - 生成事件的 runnable 的标签。metadata
: Record<string, any> - 生成事件的 runnable 的元数据。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);
}
}
Optional
streamOptions: Omit<EventStreamCallbackHandlerInput, "autoClose">Optional
streamOptions: Omit<EventStreamCallbackHandlerInput, "autoClose">流式传输来自 runnable 的所有输出,如同报告给回调系统一样。这包括 LLM、检索器、工具等的所有内部运行。输出以 Log 对象的形式流式传输,其中包含一个描述运行状态在每个步骤中如何变化的 jsonpatch 操作列表,以及运行的最终状态。jsonpatch 操作可以按顺序应用以构建状态。
可选
options: Partial<RunnableConfig<Record<string, any>>>Optional
streamOptions: Omit<LogStreamCallbackHandlerInput, "autoClose">将生命周期监听器绑定到 Runnable,返回一个新的 Runnable。Run 对象包含关于运行的信息,包括其 id、类型、输入、输出、错误、启动时间、结束时间以及添加到运行中的任何标签或元数据。
包含回调函数的对象。
Optional
on在 runnable 运行结束后调用,传入 Run 对象。
Optional
config: RunnableConfig<Record<string, any>>Optional
on如果 runnable 抛出错误,则调用此函数,传入 Run 对象。
Optional
config: RunnableConfig<Record<string, any>>Optional
on在 runnable 开始运行前调用,传入 Run 对象。
Optional
config: RunnableConfig<Record<string, any>>为现有 runnable 添加重试逻辑。
Optional
fields: { Optional
on重试失败时调用的函数。
Optional
stop重试的尝试次数。
一个新的 RunnableRetry,当被调用时将根据参数进行重试。
Static
isStatic
lc_
一个运行在最后一个 AIMessage 中请求的工具的节点。它可以在 StateGraph 中与 "messages" 键一起使用,也可以在 MessageGraph 中使用。如果请求了多个工具调用,它们将并行运行。输出将是一个 ToolMessages 列表,每个工具调用对应一个。
示例
示例