Skip to main content

迁移到 streamEvents v2

danger

本迁移指南仍在编写中,尚未完成。

随着 0.2.0 版本的发布,我们为 streamEvents API 添加了一个 v2 版本。更多细节请参阅此 PR

v2 是对 v1 的重写版本,效率更高,并且事件输出更加一致。v1 版本的 API 将被弃用,取而代之的是 v2 版本,并将在 0.4.0 版本中被移除。

以下是 API 的 v1v2 版本之间的变更列表。

on_chat_model_end 的输出

v1 中,on_chat_model_end 的输出会根据聊天模型是作为根级的 runnable 运行还是作为链的一部分运行而有所不同。

当作为根级 runnable 运行时,输出为:

{
data: {
output: AIMessageChunk((content = "hello world!"), (id = "some id"));
}
}

当作为链的一部分运行时,输出为:

{
data: {
output: {
generations: [
[
{
generation_info: None,
message: AIMessageChunk(
content="hello world!", id="some id"
),
text: "hello world!",
}
]
],
}
},
}

v2 开始,输出将始终是更简单的表示形式:

{
data: {
output: AIMessageChunk((content = "hello world!"), (id = "some id"));
}
}
note

目前,非聊天模型(即普通 LLM)仍将使用更详细的格式。

on_retriever_end 的输出

on_retriever_end 的输出现在始终返回一个 Documents 列表。

这是 v1 中的输出:

{
data: {
output: {
documents: [
Document(...),
Document(...),
...
]
}
}
}

v2 的新输出如下:

{
data: {
output: [
Document(...),
Document(...),
...
]
}
}
}

移除了 on_retriever_stream

on_retriever_stream 事件是实现的一个遗留产物,已被移除。

与该事件相关的完整信息已经包含在 on_retriever_end 事件中。

请改用 on_retriever_end

移除了 on_tool_stream

on_tool_stream 事件是实现的一个遗留产物,已被移除。

与该事件相关的完整信息已经包含在 on_tool_end 事件中。

请改用 on_tool_end

传播名称

runnable 的名称已更新,以使其更加一致。

如果你是通过事件名称进行过滤,请检查是否需要更新你的过滤条件。


Was this page helpful?


You can also leave detailed feedback on GitHub.