可选
checkpointer可选
config可选
interrupt可选
interrupt受保护
lc_可选
name可选
retry可选
step可选
store可选
stream一个额外的属性映射,用于与构造函数参数合并。键是属性名称,例如“foo”。值是属性值,它们将被序列化。这些属性需要被构造函数作为参数接受。
模块的最终序列化标识符。
一个秘密映射,它将被从序列化中省略。键是构造函数参数中秘密的路径,例如“foo.bar.baz”。值是秘密 ID,它将在反序列化时使用。
内部方法,用于处理可运行的批处理和配置。它接收一个函数、输入值和可选配置,并返回一个 promise,该 promise 解析为输出值。
要为每个输入值执行的函数。
可选
options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<RunInput, RunOutput>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>>>[]可选
runManagers: (undefined | CallbackManagerForChainRun)[]可选
batchOptions: RunnableBatchOptions可选
options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<RunInput, RunOutput>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>> & { 可选
batchOptions: RunnableBatchOptions一个解析为输出值的 promise。
受保护
_call可选
options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<RunInput, RunOutput>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>>> & { 受保护
_get受保护
_prepare可选
saved?: CheckpointTuple可选
subgraph受保护
_separate可选
options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<RunInput, RunOutput>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>>>可选
options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<RunInput, RunOutput>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>>>受保护
_stream受保护
_transform辅助方法,将输入值的迭代器转换为输出值的迭代器,并带回调。使用它在 Runnable 子类中实现 stream()
或 transform()
。
Optional
runManager: CallbackManagerForChainRun可选
options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<RunInput, RunOutput>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>>>Optional
options: PregelOptions<Record<"__start__" | N, PregelNode<RunInput, RunOutput>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>> & { batch 的默认实现,它调用 invoke N 次。如果子类可以更有效地进行批处理,则应该重写此方法。
每个批处理调用的输入数组。
可选
options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<RunInput, RunOutput>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>>> | Partial<PregelOptions<Record<"__start__" | N, PregelNode<RunInput, RunOutput>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>>>[]单个应用于每个批处理调用的调用选项对象,或每个调用的数组。
可选
batchOptions: RunnableBatchOptions & { RunOutputs 数组,如果 batchOptions.returnExceptions 设置,则混合 RunOutputs 和错误
可选
options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<RunInput, RunOutput>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>>> | Partial<PregelOptions<Record<"__start__" | N, PregelNode<RunInput, RunOutput>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>>>[]可选
batchOptions: RunnableBatchOptions & { 可选
options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<RunInput, RunOutput>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>>> | Partial<PregelOptions<Record<"__start__" | N, PregelNode<RunInput, RunOutput>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>>>[]可选
batchOptions: RunnableBatchOptions将参数绑定到 Runnable,返回一个新的 Runnable。
一个新的 RunnableBinding,当被调用时,将应用绑定的参数。
获取图的当前状态。
可选
options: { 可选
subgraphs?: boolean获取图状态的历史记录。
可选
options: CheckpointListOptions使用单个输入和配置运行图。
图的输入。
可选
options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<RunInput, RunOutput>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>>>运行要使用的配置。
返回一个新的 Runnable,通过对每个输入调用 invoke() 将输入列表映射到输出列表。
创建一个新的 runnable 序列,该序列按顺序运行每个单独的 runnable,将一个 runnable 的输出管道到另一个 runnable 或类似 runnable 的对象中。
一个 runnable、函数或其值为函数或 runnables 的对象。
一个新的 runnable 序列。
受保护
准备规范可选
options: { 可选
skipManaged?: boolean针对单个输入的流图步骤。
图的输入。
可选
options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<RunInput, RunOutput>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>>>运行要使用的配置。
生成可运行内部步骤触发的事件流。
用于创建 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_*”事件是针对不适合上述类别之一的可运行的默认事件。
除了上述标准事件之外,用户还可以分派自定义事件。
自定义事件将仅在 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">流式传输可运行的所有输出,如向回调系统报告的那样。这包括 LLM、检索器、工具等的内部运行的所有输出。输出以 Log 对象的形式进行流式传输,其中包括描述每个步骤中运行状态如何变化的 jsonpatch 操作列表以及运行的最终状态。可以按顺序应用 jsonpatch 操作来构建状态。
可选
options: Partial<PregelOptions<Record<"__start__" | N, PregelNode<RunInput, RunOutput>>, Record<string | N, BaseChannel<unknown, unknown, unknown>>>>Optional
streamOptions: Omit<LogStreamCallbackHandlerInput, "autoClose">transform 的默认实现,它缓冲输入,然后调用 stream。如果子类可以在生成输入的同时开始生成输出,则应覆盖此方法。
使用给定的值更新图的状态,就好像它们来自节点 as_node
一样。如果没有提供 as_node
,它将设置为更新状态的最后一个节点,如果不明确。
可选
asNode: string | N将生命周期监听器绑定到 Runnable,返回一个新的 Runnable。Run 对象包含有关运行的信息,包括其 id、类型、输入、输出、错误、开始时间、结束时间以及添加到运行中的任何标签或元数据。
包含回调函数的对象。
可选
on在 runnable 完成运行后调用,使用 Run 对象。
可选
config: RunnableConfig可选
on如果 runnable 抛出错误,则调用它,使用 Run 对象。
可选
config: RunnableConfig可选
on在 runnable 开始运行之前调用它,使用 Run 对象。
可选
config: RunnableConfig将重试逻辑添加到现有的 runnable。
可选
fields: { 可选
on可选
stop一个新的 RunnableRetry,当调用时,将根据参数进行重试。
静态
is静态
lc_
构造函数参数的别名映射。键是属性名,例如“foo”。值为序列化时将替换键的别名。这用于例如使参数名与 Python 匹配。