Optional
configRest
...args: any[]Protected
lc_Optional
nameOptional
tags构造函数参数别名映射。键是属性名称,例如 "foo"。值是将替换序列化中键的别名。这用于例如使参数名称与 Python 匹配。
要与构造函数参数合并的其他属性的映射。键是属性名称,例如 "foo"。值是将序列化的属性值。这些属性需要被构造函数接受为参数。
模块的最终序列化标识符。
密钥映射,将从序列化中省略。键是构造函数参数中密钥的路径,例如 "foo.bar.baz"。值是密钥 ID,将在反序列化时使用。
应序列化的键的手动列表。如果未覆盖,则传递给构造函数的所有字段都将被序列化。
处理 runnable 的批处理和配置的内部方法。它接受一个函数、输入值和可选配置,并返回一个 Promise,该 Promise 解析为输出值。
为每个输入值执行的函数。
Optional
options: Partial<RunnableConfig<Record<string, any>> & { Optional
batchOptions: RunnableBatchOptions一个 Promise,它解析为输出值。
Protected
_callProtected
_getProtected
_separateOptional
options: Partial<RunnableConfig<Record<string, any>>>Protected
_streamProtected
_tracedProtected
_transformHelper method to transform an Iterator of Input values into an Iterator of Output values, with callbacks. Use this to implement stream()
or transform()
in Runnable subclasses.
Convert a runnable to a tool. Return a new instance of RunnableToolLike
which contains the runnable, name, description and schema.
Optional
description?: stringThe description of the tool. Falls back to the description on the Zod schema if not provided, or undefined if neither are provided.
Optional
name?: stringThe name of the tool. If not provided, it will default to the name of the runnable.
The Zod schema for the input of the tool. Infers the Zod type from the input type of the runnable.
An instance of RunnableToolLike
which is a runnable that can be used as a tool.
Default streaming implementation. Subclasses should override this method if they support streaming output.
输入到每个批次调用的数组。
Optional
options: Partial<RunnableConfig<Record<string, any>>> | Partial<RunnableConfig<Record<string, any>>>[]应用于每个批次调用的单个调用选项对象,或每个调用的数组。
Optional
batchOptions: RunnableBatchOptions & { RunOutputs 数组,或者 RunOutputs 和错误的混合数组(如果设置了 batchOptions.returnExceptions)
Optional
options: Partial<RunnableConfig<Record<string, any>>> | Partial<RunnableConfig<Record<string, any>>>[]Optional
batchOptions: RunnableBatchOptions & { Optional
options: Partial<RunnableConfig<Record<string, any>>> | Partial<RunnableConfig<Record<string, any>>>[]Optional
batchOptions: RunnableBatchOptions创建一个新的 runnable 序列,该序列串行运行每个单独的 runnable,并将一个 runnable 的输出通过管道传输到另一个 runnable 或类似 runnable 的对象中。
一个 runnable、函数或对象,其值是函数或 runnables。
一个新的 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>下面是一个表格,说明了各种链可能发出的一些事件。 为了简洁起见,表格中省略了元数据字段。 链定义已包含在表格之后。
注意 此参考表适用于 schema 的 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 ops 列表,这些列表描述了运行状态在每个步骤中如何更改,以及运行的最终状态。 可以应用 jsonpatch ops 以构造状态。
Optional
options: Partial<RunnableConfig<Record<string, any>>>Optional
streamOptions: Omit<LogStreamCallbackHandlerInput, "autoClose">将生命周期监听器绑定到 Runnable,返回一个新的 Runnable。 Run 对象包含关于运行的信息,包括其 id、类型、输入、输出、错误、startTime、endTime 以及添加到运行的任何标签或元数据。
包含回调函数的对象。
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
onOptional
stop一个新的 RunnableRetry,当被调用时,将根据参数重试。
Static
isStatic
lc_
一个节点,运行上一个 AIMessage 中请求的工具。它可以与具有 "messages" 键的 StateGraph 或 MessageGraph 一起使用。如果请求了多个工具调用,它们将并行运行。输出将是 ToolMessages 列表,每个工具调用一个。
示例
示例