BaseStreamEvent#

class langchain_core.runnables.schema.BaseStreamEvent[source]#

流事件。

从astream_events方法生成的流事件的模式。

示例

from langchain_core.runnables import RunnableLambda

async def reverse(s: str) -> str:
    return s[::-1]

chain = RunnableLambda(func=reverse)

events = [event async for event in chain.astream_events("hello")]

# will produce the following events
# (where some fields have been omitted for brevity):
[
    {
        "data": {"input": "hello"},
        "event": "on_chain_start",
        "metadata": {},
        "name": "reverse",
        "tags": [],
    },
    {
        "data": {"chunk": "olleh"},
        "event": "on_chain_stream",
        "metadata": {},
        "name": "reverse",
        "tags": [],
    },
    {
        "data": {"output": "olleh"},
        "event": "on_chain_end",
        "metadata": {},
        "name": "reverse",
        "tags": [],
    },
]
event: str#

在[runnable_type]_(开始|流|结束)时。

可运行类型包括以下几种:

  • llm - 用于非聊天模型

  • chat_model - 用于聊天模型

  • prompt – 例如,ChatPromptTemplate

  • tool – 来自通过 @tool 装饰器定义或继承的工具

    来自 Tool/BaseTool

  • chain - 大多数Runnables属于这种类型

此外,事件被分类为以下之一:

  • start - 当Runnable开始时

  • stream - 当Runnable正在流式传输时

  • **end* - 当Runnable结束时

start、stream 和 end 与稍微不同的 数据 负载相关联。

请参阅EventData的文档以获取更多详细信息。

Type:

事件名称的格式为

run_id: str#

一个随机生成的ID,用于跟踪给定Runnable的执行。

作为父Runnable执行的一部分被调用的每个子Runnable都会被分配一个唯一的ID。

tags: NotRequired[list[str]]#

与此事件生成的Runnable关联的标签。

标签总是从父级Runnables继承。

标签可以通过使用.with_config({“tags”: [“hello”]})绑定到一个Runnable, 或者在运行时通过.astream_events(…, {“tags”: [“hello”]})传递。

metadata: NotRequired[dict[str, Any]]#

与生成此事件的Runnable关联的元数据。

元数据可以使用以下方式绑定到Runnable

.with_config({“metadata”: { “foo”: “bar” }})

或在运行时使用

.astream_events(…, {“metadata”: {“foo”: “bar”}}).

parent_ids: Sequence[str]#

与此事件关联的父ID列表。

根事件将有一个空列表。

例如,如果Runnable A调用Runnable B,那么由Runnable B生成的事件将在parent_ids字段中包含Runnable A的ID。

父ID的顺序是从根父级到直接父级。

仅支持从astream事件API的v2版本开始。v1将返回一个空列表。