迁移到 astream_events(..., version="v2")
我们已在0.2.x版本中添加了v2个astream_events API。有关更多详细信息,请查看此PR。
The v2 版本是对 v1 版本的重写,效率更高,事件输出更一致。v1 版本的 API 将被弃用,由 v2 版本取代,并将在 0.4.0 中移除。
以下是 API 的 v1 和 v2 版本之间的变更列表。
output for on_chat_model_end
在v1中,与on_chat_model_end相关的输出取决于聊天模型是作为根级可运行对象运行,还是作为链的一部分运行。
作为根级别的可运行项,输出为:
"data": {"output": AIMessageChunk(content="hello world!", id='some id')}
作为链的一部分,输出为:
"data": {
"output": {
"generations": [
[
{
"generation_info": None,
"message": AIMessageChunk(
content="hello world!", id=AnyStr()
),
"text": "hello world!",
"type": "ChatGenerationChunk",
}
]
],
"llm_output": None,
}
},
截至 v2,输出将始终为更简单的表示形式:
"data": {"output": AIMessageChunk(content="hello world!", id='some id')}
注意
非聊天模型(即常规大语言模型)目前将始终与更冗长的格式相关联。
output for on_retriever_end
on_retriever_end 输出将始终返回一个 Documents 的列表。
之前:
{
"data": {
"output": [
Document(...),
Document(...),
...
]
}
}
已移除 on_retriever_stream
The on_retriever_stream 事件是实现的产物,已被移除。
与该事件关联的完整信息已存在于 on_retriever_end 事件中。
请使用 on_retriever_end 代替。
移除 on_tool_stream
The on_tool_stream 事件是实现的产物,已被移除。
与该事件关联的完整信息已存在于 on_tool_end 事件中。
请使用 on_tool_end 代替。
传播名称
可运行对象的名称已更新,以使其更加一致。
model = GenericFakeChatModel(messages=infinite_cycle).configurable_fields(
messages=ConfigurableField(
id="messages",
name="Messages",
description="Messages return by the LLM",
)
)
在 v1 中,事件名称为 RunnableConfigurableFields。
在v2中,事件名称为GenericFakeChatModel。
如果您正在按事件名称进行筛选,请检查是否需要更新您的筛选条件。
RunnableRetry
在 LCEL 链中流式使用 RunnableRetry 会在被重试的失败可运行调用处生成一个错误的 on_chain_end 事件,该事件对应于 v1。此事件已在 v2 中被移除。
此更改无需任何操作。