Gradio Spaces 是完美的代理工具!
总结:你可以使用 Hub 上的 Spaces 作为 Gradio 和 smolagents 代理的工具。
AI 代理在处理复杂任务和以炫酷方式与世界互动方面变得越来越强大。为了充分发挥其潜力,AI 代理需要广泛的工具。Spaces 是构建和分享这些工具的便捷平台。代理工具可以执行基本的功能性任务,例如数据转换,也可以执行复杂的 AI 任务,例如图像生成。
以下是一些优点:
- 现有功能: 访问 AI 社区中的大量预构建应用程序。
- 增强计算: 通过 ZeroGPU 和专业版订阅,利用免费且可扩展的计算资源。
- 轻松开发: 将你的工具构建并测试为 Gradio 应用程序,然后让 Gradio 处理部署和集成。
工作原理
通过三个步骤指导你将空间设置为代理工具。以下是每个步骤的详细教程参考。
第一步:确定合适的空间
首先,你需要为你的项目找到或构建一个空间。为了帮助你,我创建了一个集合,里面有一些用于数据可视化、测量和图像生成等任务的实用工具。如果你想找更具体的东西,可以在 Hugging Face Hub 上搜索符合你代理需求的 Spaces。
如果你想构建自己的空间,从一个 Gradio Interface
开始非常简单。你可以在 Interface 对象中构建和部署的几乎任何东西都与 smolagents 兼容。如果你想找一个例子,可以看看我制作的Plotly 可视化工具。
在下一节中,我将展示 Gradio 如何呈现一个 smolagents 可以与之交互的 API。
第二步:集成到代理框架中
接下来,你需要将你的代理与你的空间作为工具进行集成。使用 smolagents
API 与 Spaces 上的 Gradio 应用程序进行交互。Smolagents 随后可以处理来自空间的响应,并将其整合到代理的工作流程中。
你可以使用 Tool.from_space() 方法直接从 Hub 导入一个 Space 作为工具。提供 Space 在 Hub 上的 ID、其名称以及一个描述,以帮助你的代理理解其功能。这将通过 Gradio 客户端集成来处理参数和响应。
让我们从 Hub 导入 FLUX.1-dev Space,并用它来生成图像。
image_generation_tool = Tool.from_space(
"black-forest-labs/FLUX.1-schnell", # You can also add localhost url here for testing 🤯
name="image_generator",
description="Generate an image from a prompt"
)
image_generation_tool("A sunny beach")
然后你可以像使用普通的 Python 函数一样使用此工具。Gradio `Interface` 的输入被映射到函数参数,输出以对象形式呈现。
第三步:自定义代理的工具使用
smolagents 库可以像处理其他工具一样处理你的空间,因此你可以自定义提示以处理你的用例。例如,让我们改进提示“一只穿着宇航服的兔子”并生成图像
from smolagents import CodeAgent, HfApiModel
model = HfApiModel("Qwen/Qwen2.5-Coder-32B-Instruct")
agent = CodeAgent(tools=[image_generation_tool], model=model)
agent.run(
"Improve this prompt, then generate an image of it.", additional_args=dict(prompt="A rabbit wearing a space suit")
)
结论
通过使用 Hugging Face Spaces、Gradio 和 smolagents,按照这些步骤,你可以使用 Hub 上现有的 spaces 创建功能强大的 AI 代理。如果你想深入研究这个问题,请查看这些资料。