[迁移到 Astream Events v2:提升效率与一致性]

迁移到 Astream Events v2:提升效率与一致性

随着0.2.x版本的发布,我们推出了astream_events API的v2版本。此次更新带来了更高的效率和一致性的事件输出。本文将详细介绍v1和v2版本之间的变化,并提供实用的迁移指导。

主要内容

v1 到 v2 的主要变化

1. on_chat_model_end 输出格式简化

在v1中,on_chat_model_end的输出会因聊天模型是否作为根级可运行项或链的一部分执行而变化:

  • 作为根级可运行项:

    "data": {"output": AIMessageChunk(content="hello world!", id='some id')}
    
  • 作为链的一部分:

    "data": {
        "output": {
            "generations": [
                [
                    {
                        "generation_info": null,
                        "message": AIMessageChunk(content="hello world!", id=AnyStr()),
                        "text": "hello world!",
                        "type": "ChatGenerationChunk",
                    }
                ]
            ],
            "llm_output": null,
        }
    }
    

在v2中,输出将始终为简化的形式:

"data": {"output": AIMessageChunk(content="hello world!", id='some id')}
2. on_retriever_end 输出标准化

on_retriever_end的输出现在将始终返回一个Documents列表:

{
    "data": {
        "output": [
            Document(...),
            Document(...),
            ...
        ]
    }
}
3. 移除 on_retriever_streamon_tool_stream 事件

on_retriever_streamon_tool_stream 事件已被移除,完整的信息可通过各自的 on_retriever_endon_tool_end 事件获得。

4. 可运行项名称传播

可运行项的名称已更新以提高一致性:

在v1中,事件名称为 RunnableConfigurableFields
在v2中,事件名称为 GenericFakeChatModel

5. RunnableRetry 行为优化

使用 RunnableRetry 在LCEL链中生成流式数据时,在v1中会生成一个错误的 on_chain_end 事件。此行为在v2中已被移除。

代码示例

下面是一个使用更新后的API的示例:

import requests

# 假设 {AI_URL} 是 API 的端点
api_url = "{AI_URL}/astream_events/v2/on_chat_model_end"
headers = {'Content-Type': 'application/json'}

# 使用API代理服务提高访问稳定性
response = requests.get(api_url, headers=headers)
data = response.json()

print("Chat Model Output:", data['data']['output'])

常见问题和解决方案

  1. 为何移除了一些事件?

    • 这些事件是实现的遗留产物,通过移除来简化API结构,并避免冗余。
  2. 如何处理网络访问限制?

    • 由于某些地区的网络限制,建议使用API代理服务来提高访问稳定性。

总结与进一步学习资源

在迁移到v2版本的过程中,请确保更新事件过滤器和相关代码逻辑,以使用更新后的事件名称和结构。如果你想了解更多关于astream_events API的使用细节,可以查阅以下资源:

参考资料

  1. Astream Events API PR
  2. 官方版本更新说明

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值