HuggingChat上的社区工具介绍
今天,我们在 HuggingChat 上发布了最新功能:社区工具 (Community Tools)!它能让你将 HuggingFace 上任何你喜欢的 Space 转换成一个可供模型直接在 HuggingChat 中使用的工具。
通过此功能,我们还扩展了 HuggingChat 中可用的模态。你现在可以使用社区工具来理解图像、生成视频或使用文本转语音模型进行回答。可能性是无穷的,任何人都可以使用 Hugging Face 上的 Space 来创建工具!你可以在此处探索现有工具。
在这篇文章中,我们将探讨几个创建社区工具的用例。
将社区 Space 转换为工具
你可以将任何人的公开 Space 转换为工具。这对于直接在 HuggingChat 中使用最新模型非常方便。让我们以 DamarJati/FLUX.1-RealismLora 为例。
首先,创建一个新工具并填写相应字段。一旦你将 Space 的 URL 输入到 *Hugging Face Space URL* 字段中,你就会看到可用的函数和参数被自动填充。

为了确保工具的最佳性能,有些字段需要正确填写。
- 工具描述 (Tool Description): 这个描述会传递给大语言模型 (LLM),以解释该工具的功能。请保持简短,并描述该工具的用途。
- AI 函数名称 (AI Function Name): 工具以代码函数的形式表示。这是你工具的函数名。请保持简短、独特且易于理解。
- 参数 (Arguments): 这些是 LLM 可以填写的工具参数。它们可以是:
- 必需 (Required): 模型必须填写一个值才能使用此工具。这要求参数有恰当的描述。
- 可选 (Optional): 参数有默认值,但模型可以根据需要覆盖它。
- 固定 (Fixed): 该值在创建工具时是固定的,模型无法更改。
你随时可以查看其他工具的定义,以更好地理解如何创建工具。(示例)

现在我们的工具已经创建好了,我们可以启用它,并开始在兼容工具的模型中使用它了!

自己创建自定义工具
使用现有的 Space 可以满足很多用例,但如果你会编写基础的 Python 代码,那么你也可以轻松地为自己创建自定义工具。让我们来做一个简单的掷骰子工具示例,因为 LLM 本身不擅长选择随机数。
首先,在 Hugging Face 上创建一个新的 Gradio Space。免费的 *CPU Basic* 等级就足够了。你的 Space 必须是公开的,才能在 HuggingChat 中使用。
在你的 Space 代码仓库中创建一个简单的 app.py
应用。以我们的掷骰子示例为例,代码可以是:
import gradio as gr
import random
def roll_dice(sides=6):
return random.randint(1, sides)
demo = gr.Interface(
fn=roll_dice,
inputs=gr.Number(value=6, label="Number of Sides"),
outputs="text",
title="Dice Roller",
description="Enter the number of sides for the dice and get the roll result."
)
demo.launch()
如果你不熟悉 Gradio,它非常容易上手,可以用来创建界面。你可以在这里找到它的文档。
你可以在一个 Space 中包含多个函数,以便更轻松地管理你的工具。
完成后,推送更改。当你的 Space 部署好后,你就可以像我们之前做的那样,在 HuggingChat 中为它创建一个社区工具了。

使用社区工具增强你的助手
你可以直接访问工具页面,选择并激活你喜欢的工具,也可以将工具打包到助手中。
当创建一个助手时,如果使用的是兼容工具调用的模型,你现在可以选择工具。搜索工具的名称,最多可以添加 3 个不同的工具。在我们的例子中,让我们创建一个可以访问图像生成和掷骰子工具的游戏主持人 (Game Master) 助手。
你可以使用系统指令字段来告诉模型何时使用这些工具。

基于你自己的文档创建 RAG 工具
为了配合此次发布,我们创建了一个简单的 RAG 工具,你可以轻松复制它,直接在 HuggingChat 中就你的文档提问。首先,将这个 Space 克隆到你自己的账户中。然后,你可以将想要解析的文件放入该 Space 的 `sources/` 文件夹中。

一旦 Space 启动,你就可以像我们之前介绍的那样,轻松地在 HuggingChat 中为其创建一个工具。

与我们分享你的反馈
随着社区工具的发布,我们希望你能够通过多模态内容和自定义工具来增强你的聊天体验。该功能仍处于实验阶段,所以如果你发现有不支持的 Space 或无法正常工作的工具,请在反馈帖中与我们分享!