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将返回一个空列表。