@abidlabs:我们如何为复杂工作流构建最佳的智能体友好且用户友好的界面:https://huggingface.co/blog/…
摘要
Gradio 推出了 Workflow 功能,该功能通过将步骤描述为带类型的节点图,结合拖放画布、REST API 以及轻松部署到 Hugging Face Spaces 的方式,实现了为复杂 AI 工作流构建智能体友好且用户友好的界面。
查看缓存全文
缓存时间: 2026/08/27 13:39
接入、运行、部署:Gradio中的AI工作流
来源:https://huggingface.co/blog/gradio-workflow-guide 大多数有趣的AI应用都是流水线\。你可以生成一张图片,然后根据需要去除背景,或将其编辑成全新的内容\。你可以编写一段脚本,然后生成相应的语音,或在保持脚本不变的情况下更换声音\。我们通常在Python中将这些步骤串联起来,一旦发现异常,就会回到打印调试状态,以找出产生异常值的步骤\。
内置在Gradio中的 gr\.Workflow 将流水线变成了界面本身 \。你将步骤描述为带有类型节点的图,Gradio会提供一个拖放画布,其中每个节点都可以运行,每个中间结果都可见\。同样的图也可以是一个REST API和一键部署到Hugging Face Spaces\。
理解这个概念最好的方式就是看几个工作流的实际运行。下面每个应用都是一个活跃的Hugging Face Space,你可以打开、运行和复现\。
https://huggingface.co/blog/gradio-workflow-guide#edit-an-image编辑图像
上传一张图片,输入编辑指令(例如“把它变成下雪的冬季场景”、“添加太阳镜”、“把汽车变红”),然后获取编辑后的照片。整个应用是一个单一节点,调用 Hugging Face Inference Providers 上的 Qwen-Image-Edit(https://huggingface.co/Qwen/Qwen-Image-Edit)\。
👉尝试图像编辑工作流(https://huggingface.co/spaces/ysharma/gr-workflow-image-editor)
https://huggingface.co/blog/gradio-workflow-guide#chain-real-models-into-a-media-studio将真实模型链接成一个媒体工作室
一个图,三条流水线。从提示词开始,使用 FLUX(https://huggingface.co/black-forest-labs/FLUX.1-schnell)生成一张图像,然后将其传递给一个背景去除 Gradio Space(https://huggingface.co/spaces/not-lain/background-removal)将其变成贴纸。一个主题通过文本转语音 Gradio Space(https://huggingface.co/spaces/mrfakename/MeloTTS)变成画外音,而同一个主题通过 LLM(https://huggingface.co/Qwen/Qwen2.5-7B-Instruct)调用变成一个吸引人的节目标题。
这是一个画布,两次通过 Hugging Face Inference Providers(https://huggingface.co/docs/inference-providers/en/index)的模型调用,以及两次对 Gradio Spaces 的调用。
由于这是一个工作流,三个输出中的每一个也都有自己的 REST 端点:/sticker、/voiceover 和 /episode_title。你可以直接在代码中调用它们中的任何一个,无需打开UI。可参考下面的“从代码调用”(https://huggingface.co/blog/gradio-workflow-guide#call-it-from-code)获取一个可运行的示例\。
👉尝试AI媒体工作室(https://huggingface.co/spaces/ysharma/gr-workflow-04-ai-media-studio)
https://huggingface.co/blog/gradio-workflow-guide#fan-out-image-generation-in-parallel并行展开图像生成
输入一个想法,它会同时生成一组艺术作品:一张来自FLUX的基础图像,两张该图像的AI重新创作(一个柔和的水彩版本和一个霓虹赛博朋克风格的版本),以及一个由LLM编写的画廊标题。
每张图像都由使用 Inference Providers 的模型节点根据提示直接生成,而标题则来自一个调用LLM的 fn 节点。这就是展开模式的实际应用:一个想法可以同时提供给多个操作符,所有操作并行生成\。
👉尝试生成艺术实验室(https://huggingface.co/spaces/ysharma/gr-workflow-01-generative-art-lab)
https://huggingface.co/blog/gradio-workflow-guide#profile-a-hugging-face-dataset分析Hugging Face数据集
输入一个 Hugging Face 数据集 ID,例如 stanfordnlp/imdb 或 mteb/tweet_sentiment_extraction,单个输入会展开到四个操作符节点,这些节点使用 Datasets Server(https://huggingface.co/docs/dataset-viewer)API实时分析数据集。
你会得到一个概览卡片、前几行的预览、逐列统计信息和一个分布图,所有这些都是独立并行计算的。这就是工作流的力量!
👉尝试数据侦探(https://huggingface.co/spaces/ysharma/gr-workflow-03-data-detective)
https://huggingface.co/blog/gradio-workflow-guide#run-your-own-gpu-model运行你自己的GPU模型
到目前为止,每个节点都是连接到Hugging Face的。但一个 fn 节点就是Python函数,这意味着它也可以在Space中使用GPU运行模型。
使用 @spaces.GPU 装饰器绑定函数,当节点运行时,ZeroGPU(https://huggingface.co/docs/hub/spaces-zerogpu)会为该调用获取一个GPU,运行模型,然后释放它。我们并不总是需要依赖 Inference Providers 或现有的 Gradio Spaces。
看看这个演示,它使用通过 Diffusers 加载的 Lightricks/LTX-Video(https://huggingface.co/Lightricks/LTX-Video-0.9.7-distilled)来为静态图像制作动画,完全通过一个节点运行。gr.Workflow 不需要了解你的GPU设置的任何信息。它只是调用绑定的函数\。
👉尝试ZeroGPU动画制作器(https://huggingface.co/spaces/ysharma/gr-workflow-zerogpu-animate)
https://huggingface.co/blog/gradio-workflow-guide#how-it-works-in-a-nutshell工作原理简述
每个工作流都是一个包含三种节点的图:引用(你的输入)、操作符(执行工作的步骤)和对象(你的输出)。操作符可以是你自己的Python函数、Hugging Face Inference Providers上的模型、另一个Gradio Space或Hub数据集中的行。你通过拖拽连接带类型的端口,点击运行,然后观察每个结果在原地出现。
https://huggingface.co/blog/gradio-workflow-guide#call-it-from-code从代码调用
你构建的每个工作流也是一个API,无需额外工作。每个输出都变成一个以其标签命名的REST端点,你可以使用Gradio客户端从Python调用它。这是一个针对多端点演示Space的实时示例,无需令牌,完全原样:
from gradio_client import Client
client = Client("ysharma/gr-workflow-multi-endpoint-API")
print(client.predict("hello there friend", api_name="/word_count")) # -> 3
print(client.predict(20, api_name="/fahrenheit")) # -> 68.0
调用模型或Space的端点在Hugging Face令牌下运行,因此在创建客户端时传入一个:
from gradio_client import Client, handle_file
client = Client("ysharma/gr-workflow-image-editor", token="hf_...")
edited = client.predict(
handle_file("dog.jpg"),
"turn it into a snowy winter scene",
api_name="/edited_image",
)
更喜欢使用纯HTTP?每个端点也可以通过 curl 访问:
curl -s https://ysharma-gr-workflow-multi-endpoint-API.hf.space/gradio_api/call/word_count \
-H "Content-Type: application/json" -d '{"data": ["hello there friend"]}'
https://huggingface.co/blog/gradio-workflow-guide#build-your-own构建你自己的工作流
最快的方式是打开上面的任何演示,点击 Duplicate,然后开始重新连接。从Python开始,代码非常简短:
import gradio as gr
def your_function(text: str) -> str:
pass
gr.Workflow(bind=[your_function]).launch()
有关完整的教程、操作符类型、JSON模式和可重用模式,请参阅 Gradio 文档中的官方 gr.Workflow 指南(https://gradio.app/guides/workflows)。
你甚至可以使用 gr.Workflow 构建像 AUTOMATIC1111(https://github.com/automatic1111/stable-diffusion-webui)这样复杂的项目。请关注我们的下一篇文章,我们将逐步构建它。这里先剧透一下 😉👇
相似文章
连接、运行、部署:Gradio 中的 AI 工作流
本文介绍了 Gradio 中的 `gr.Workflow`,该功能允许用户通过拖放节点构建交互式、可视化的 AI 流水线,配备实时示例,并可轻松部署至 Hugging Face Spaces。
智能体工作流可视化工具:反馈与修正
介绍了一款用于可视化AI智能体工作流的工具,支持多种智能体框架,包括Langgraph、CrewAI、AutoGen、Google ADK和OpenAI Agents SDK。创作者正在寻求社区的反馈与修正。
有了 GraphARC,AI 代理从未如此可解释!
GraphArc 是一个开源工具,可将 AI 代理工作流可视化为交互式实时图形,使用户能够在执行前检查、调试和批准代理操作,从而让代理式 AI 更具可解释性和可控性。
@svpino: AG-UI 使得构建智能体应用变得极其容易。以下是它的工作原理。这是一个简单聊天机器人的模型…
AG-UI 是 CopilotKit 提供的一个协议,用于构建智能体应用,它流式传输生命周期事件、工具调用和状态更新,能够在多种框架中实现人机协同工作流。CopilotKit SDK 实现了此协议。
@ataiiam: 所有UI都将变成AI 这是你需要给你的Agent提供前端的文章。Agent-用户协作是未来…
该推文推广了一篇关于AI改变UI并实现Agent-用户协作的文章。