Gradio团队发布了Daggr,这是一个新的开源Python库,旨在简化多步骤AI工作流程的构建与调试过程。使用Daggr,开发人员可以用Python编程方式定义工作流程,同时系统会自动生成可视化界面,这些界面能够清晰地展示流程中每个阶段的中间状态、输入数据以及输出结果。
Daggr通过将工作流程组织成有向图的形式,使得开发者能够独立检查并重新执行流程中的各个节点。这种设计大大提升了调试效率,也加快了迭代速度,因为它有效解决了在开发过程中后期出现故障时需要重新运行整个工作流程所带来的繁琐问题。
该库采用了“代码优先”的开发理念:开发人员直接用Python定义节点及它们之间的连接关系,Daggr则会生成相应的可视化界面供开发者查看。这与那些依赖GUI驱动的工作流程构建工具不同,后者往往会牺牲版本控制能力和灵活性。而Daggr的可视化层是直接由代码生成的,因此工作流程的可复现性得到了保障,同时也便于其他开发者进行审查。
Daggr支持三种主要的节点类型:GradioNode可以直接与Gradio应用程序或Hugging Face Spaces集成,这样现有的演示示例和工具就可以被重新利用作为工作流程的组成部分;FnNode可以用来封装任意的Python函数,从而允许在流程中添加自定义的前处理或后处理逻辑;InferenceNode则用于与通过Hugging Face Inference Providers提供的模型进行交互,因此无需额外的适配器,就可以将托管的模型集成到工作流程中。
Daggr的一个关键特性是能够持久保存工作流程的状态、缓存结果、输入数据以及可视化界面的布局。这样一来,开发人员可以随时暂停或继续执行工作流程,而不会丢失之前的设置信息。对于那些长度较长的工作流程来说,或者对于需要比较同一步骤的不同实现方式的情况而言,这一功能尤其实用。
由于Daggr是由Gradio团队开发的,因此它与Gradio生态系统有着紧密的集成关系。用户可以在本地运行这些工作流程,并且浏览器会显示相应的可视化界面;也可以通过Gradio提供的隧道功能,使用公共链接来分享这些工作流程。对于那些需要长期使用的场景来说,只需将Daggr作为依赖项添加到Hugging Face Spaces上,就可以将这些工作流程托管在那里了。
开发者们对Daggr的反应主要集中在它将编程控制与可视化反馈相结合这一特点上。Sebastian Buzdugan在评论这款库的发布时写道:“将终端接口与Gradio结合在一起,确实是一个非常聪明的设计。”
还有其他人指出了Daggr在快速进行实验时的实用性。他们认为,Daggr为实验工作提供了极大的便利。
需要说明的是,Daggr目前还只是一个处于测试阶段的轻量级项目。随着用户的使用体验不断积累,它的API接口也可能会发生变化。虽然工作流程的状态是保存在本地设备上的,但在进行更新时仍有可能导致数据丢失,因此它更适合作为开发工具或原型设计工具使用,而不是用于生产环境。Daggr目前以开源Python包的形式提供,对于Python 3.10及更高版本,可以通过pip或uv进行安装。其源代码、示例以及相关文档都发布在GitHub上。随着这个库的不断发展,开发团队也欢迎大家提出反馈意见或为它的完善做出贡献。