Gradio Agents 和 MCP 黑客马拉松

获奖者
Gradio logo

Gradio 新手?从这里开始:入门指南

查看发布历史

Client

gradio_client.Client(···)

描述

Python 客户端的主要 Client 类。此类用于连接远程 Gradio 应用并调用其 API 端点。

示例用法

from gradio_client import Client

client = Client("abidlabs/whisper-large-v2")  # connecting to a Hugging Face Space
client.predict("test.mp4", api_name="/predict")
>> What a nice recording! # returns the result of the remote API call

client = Client("https://bec81a83-5b5c-471e.gradio.live")  # connecting to a temporary Gradio share URL
job = client.submit("hello", api_name="/predict")  # runs the prediction in a background thread
job.result()
>> 49 # returns the result of the remote API call (blocking call)

初始化

参数
🔗
src: str

要加载的 Hugging Face Space 的名称(例如:"abidlabs/whisper-large-v2"),或者要加载的托管 Gradio 应用的完整 URL(包括 "http" 或 "https")(例如:"http://mydomain.com/app" 或 "https://bec81a83-5b5c-471e.gradio.live/")。

🔗
hf_token: str | Literal[False] | None
默认值 = False

用于访问私有 Spaces 的可选 Hugging Face token。默认情况下,不会发送 token 到服务器。设置 `hf_token=None` 以使用本地保存的 token(如果存在)(警告:仅在加载可信的私有 Space 时提供 token,因为 token 可以被您加载的 Space 读取)。在此处查找您的 token:https://hugging-face.cn/settings/tokens。

🔗
max_workers: int
默认值 = 40

可同时向远程 Gradio 应用发出请求的最大线程工作者数量。

🔗
verbose: bool
默认值 = True

客户端是否应该在控制台打印信息。

🔗
auth: tuple[str, str] | None
默认值 = None
🔗
httpx_kwargs: dict[str, Any] | None
默认值 = None

传递给 `httpx.Client`、`httpx.stream`、`httpx.get` 和 `httpx.post` 的额外关键字参数。这可用于设置超时、代理、HTTP 认证等。

🔗
headers: dict[str, str] | None
默认值 = None

每次请求时发送到远程 Gradio 应用的额外头部信息。默认情况下仅发送 HF 授权和用户代理头部信息。如果与默认头部信息具有相同的键,此参数将覆盖默认头部信息。

🔗
download_files: str | Path | Literal[False]
默认值 = "/tmp/gradio"

客户端应将输出文件从远程 API 下载到本地机器的目录。默认情况下,使用 GRADIO_TEMP_DIR 环境变量的值,如果用户未设置该值,则为机器上的临时目录。如果为 False,则客户端不会下载文件,而是返回一个 FileData 数据类对象,其中包含远程机器上的文件路径。

🔗
ssl_verify: bool
默认值 = True

如果为 False,则跳过证书验证,允许客户端连接到使用自签名证书的 Gradio 应用。

🔗
analytics_enabled: bool
默认值 = True

是否允许基本遥测。如果为 None,将使用 GRADIO_ANALYTICS_ENABLED 环境变量或默认为 True。

事件监听器

描述

事件监听器允许您响应用户与您在 Gradio Blocks 应用中定义的 UI 组件的交互。当用户与元素交互时(例如更改滑块值或上传图像),将调用一个函数。

支持的事件监听器

Client 组件支持以下事件监听器。每个事件监听器接受相同的参数,如下面的事件参数表中列出。

监听器 描述

Client.predict(fn, ···)

调用 Gradio API 并返回结果(这是一个阻塞调用)。参数可以作为位置参数或关键字参数提供(推荐后者)。<br>

Client.submit(fn, ···)

创建一个并返回一个 Job 对象,该对象在后台线程中调用 Gradio API。Job 可用于检索远程 API 调用的状态和结果。参数可以作为位置参数或关键字参数提供(推荐后者)。<br>

Client.view_api(fn, ···)

打印 API 的使用信息。如果 Gradio 应用有多个 API 端点,每个端点的使用信息将分开打印。如果 return_format="dict",信息将以字典格式返回,如下面的示例所示。<br>

Client.duplicate(fn, ···)

复制 Hugging Face Space 到您的账户下,并返回一个新 Space 的 Client 对象。如果 Space 已存在于您的账户中,则不会创建重复项(要覆盖此行为,请使用 to_id 为新 Space 提供新名称)。要使用此方法,您必须提供 hf_token 或通过 Hugging Face Hub CLI 登录。<br> 新 Space 默认将是私有的,并使用与原始 Space 相同的硬件。可以通过使用 privatehardware 参数进行更改。对于硬件升级(超出基本 CPU 层),您可能需要在 Hugging Face 上提供账单信息:https://hugging-face.cn/settings/billing <br>

Client.deploy_discord(fn, ···)

将上游应用部署为 Discord 机器人。目前仅支持 gr.ChatInterface。

事件参数

参数
🔗
args: <class 'inspect._empty'>

要传递给远程 API 端点的位置参数。参数的顺序必须与 Gradio 应用中输入的顺序匹配。

🔗
api_name: str | None
默认值 = None

要调用的 API 端点的名称,以斜杠开头,例如 "/predict"。如果 Gradio 应用只有一个命名 API 端点,则无需提供此参数。

🔗
fn_index: int | None
默认值 = None

作为 api_name 的替代,此参数接受要调用的 API 端点的索引,例如 0。可以同时提供 api_name 和 fn_index,但如果它们冲突,api_name 将优先。

🔗
kwargs: <class 'inspect._empty'>

要传递给远程 API 端点的关键字参数。