迁移到 streamEvents v2
danger
本迁移指南仍在编写中,尚未完成。
随着 0.2.0 版本的发布,我们为 streamEvents API 添加了一个 v2 版本。更多细节请参阅此 PR。
v2 是对 v1 的重写版本,效率更高,并且事件输出更加一致。v1 版本的 API 将被弃用,取而代之的是 v2 版本,并将在 0.4.0 版本中被移除。
以下是 API 的 v1 和 v2 版本之间的变更列表。
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 的名称已更新,以使其更加一致。
如果你是通过事件名称进行过滤,请检查是否需要更新你的过滤条件。