Cloudflare Workflows为持久化的AI管道提供了Python支持
来源: InfoQ - 云计算
Workflows是Cloudflare的一项服务,它提供了一个持久的执行引擎,用于构建多步骤的应用程序编排。最初,它只支持TypeScript,现在它提供了支持Python的beta版本,因为据该公司称,Python是数据管道、人工智能/机器学习以及数据工程师任务自动化的首选语言。
Cloudflare Workflows建立在Workers和Durable Objects的基础架构之上。后者提供了长时间运行过程所需的状态持久化和协调功能,确保工作流保持其状态,并在失败时可以重试单个步骤。
该公司一年前引入了Workflows,并详细说明了其功能:
每个Workflow的核心构建块是步骤:在应用程序中,可单独重试的组件可以选择性地发出状态。随后,即便后续步骤失败,该状态也会持久化保存。这意味着应用程序不必重新启动,从而允许它更快地从失败场景中恢复,并避免冗余工作。
在最近关于Python支持的博客文章中,作者解释说:
多年来,我们一直在为开发人员提供在Cloudflare上用Python构建这些应用程序的工具。在2020年,我们通过Transcrypt将Python引入Workers,然后在2024年直接将Python集成到workerd中。今年早些时候,我们在Workers中添加了对CPython的支持,以及在Pyodide中构建的包,如matplotlib和pandas。现在,Python Workflows也得到了支持,因此开发者可以使用他们最熟悉的语言创建强大的应用程序。
Cloudflare Workflows使用了持久化执行的基础架构,同时为Python用户提供了一种符合Python习惯的方式来编写工作流。此外,该公司旨在实现JavaScript和Python SDK之间的完全功能对等,现在这已经成为可能,因为Cloudflare Workers原生支持Python。
公司的一个重要关注点是确保Python SDK的感觉符合“Pythonic”(即遵循Python的风格和习惯)。该平台提供了内置的异步操作和并发支持,使开发者能够管理跨步骤的依赖关系,即便任务可能会并发运行。
这是通过两种方法实现的:一种利用Python的asyncio.gather进行并发执行,它将JavaScript promise(thenables)代理到Python awaitable,另一种更符合Python习惯的方法是使用Python装饰器(@step.do)来定义步骤和依赖关系,允许更清晰地声明有向无环图(Directed Acyclic Graph,DAG)执行流程。引擎自动管理步骤之间的状态和数据流。

(图片来源:X Tweet Matt Silverlock)
引入Python为复杂的、长时间运行的应用程序打开了工作流的大门,如下这些应用程序从能够编排中受益:
AI/ML模型训练:编排像数据集标记、向模型提供数据、等待模型运行完成、评估损失,并在继续循环之前通知人工进行手动调整等序列。
数据管道:通过定义的一组幂等步骤,自动化复杂的摄取和处理管道,确保可靠的数据转换。
AI Agent:构建多步骤的Agent(例如,一个杂货店的Agent,它能够编译列表、检查库存并下订单),其中状态持久化和重试对于形成成功的结论至关重要。
最后,GitHub上提供了可用的Python工作流样例。
查看英文原文:Cloudflare Workflows Adds Python Support for Durable AI Pipelines