1. 附加功能
  2. 查看 API 页面

API 页面

您可以通过内置 API 以编程方式使用几乎任何 Gradio 应用程序!在任何 Gradio 应用程序的页脚中,您都会看到一个“通过 API 使用”链接。点击此链接会打开一个详细的 API 文档页面,该页面由 Gradio 根据您 Gradio 应用程序中的函数签名生成。

配置 API 页面

API 端点名称

当您创建 Gradio 应用程序时,API 端点名称会根据函数名称自动生成。您可以使用 gr.Interfacegr.ChatInterface 中的 api_name 参数更改此设置。如果您使用 Gradio Blocks,您可以像这样命名每个事件监听器

btn.click(add, [num1, num2], output, api_name="addition")

控制 API 端点的可见性

在构建复杂的 Gradio 应用程序时,您可能希望控制 API 端点的显示或行为方式。在任何 Blocks 事件监听器中使用 api_visibility 参数来控制此设置

  • "public" (默认):该端点显示在 API 文档中,并且对所有人都可访问
  • "undocumented":该端点在 API 文档中隐藏,但仍可供下游应用程序访问
  • "private":该端点完全禁用且不可访问

要从文档中隐藏 API 端点,同时仍允许以编程方式访问

btn.click(add, [num1, num2], output, api_visibility="undocumented")

禁用 API 端点

如果您想完全禁用 API 端点,以便没有人可以以编程方式访问它,请设置 api_visibility="private"

btn.click(add, [num1, num2], output, api_visibility="private")

注意:设置 api_visibility="private" 也意味着下游应用程序将无法使用 gr.load() 加载您的 Gradio 应用程序,因为此函数在底层使用了 Gradio API。

添加 API 端点

您还可以向 Gradio 应用程序添加与 UI 中的事件不对应的新 API 路由。

例如,在这个 Gradio 应用程序中,我们添加了一个新路由,用于添加数字并切片列表

import gradio as gr
with gr.Blocks() as demo:
    with gr.Row():
        input = gr.Textbox()
        button = gr.Button("Submit")
    output = gr.Textbox()
    def fn(a: int, b: int, c: list[str]) -> tuple[int, str]:
        return a + b, c[a:b]
    gr.api(fn, api_name="add_and_slice")

_, url, _ = demo.launch()

这将创建一个新路由 /add_and_slice,它将显示在“查看 API”页面中。它可以通过 Python 或 JS 客户端(如下所述)以编程方式调用,如下所示

from gradio_client import Client

client = Client(url)
result = client.predict(
        a=3,
        b=5,
        c=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
        api_name="/add_and_slice"
)
print(result)

客户端

此 API 页面不仅列出了可用于查询 Gradio 应用程序的所有端点,还展示了Gradio Python 客户端Gradio JavaScript 客户端的使用方法。

对于每个端点,Gradio 都会自动生成完整的代码片段,其中包含参数及其类型以及示例输入,使您能够立即测试端点。这是一个显示图像文件输入和 str 输出的示例

API 记录器 🪄

您不必通读“查看 API”页面,也可以使用 Gradio 内置的 API 记录器来生成相关的代码片段。只需点击“API 记录器”按钮,像往常一样通过 UI 使用您的 Gradio 应用程序,然后 API 记录器将使用客户端生成代码,以编程方式重新创建您的所有交互。

MCP 服务器

API 页面还包括有关如何将 Gradio 应用程序用作模型上下文协议 (MCP) 服务器的说明,这是一种将函数公开为工具的标准方式,以便它们可以被大型语言模型 (LLM) 使用。

对于 MCP 服务器,每个工具、其描述及其参数都会列出,并附有如何与流行的 MCP 客户端集成的说明。在此处阅读有关 Gradio MCP 集成的更多信息

OpenAPI 规范

您可以在端点 <your-gradio-app-url>/gradio_api/openapi.json 访问 Gradio 应用程序 API 的完整 OpenAPI(以前称为 Swagger)规范。OpenAPI 规范是一种标准化的、与语言无关的 REST API 接口描述,使人类和计算机都能够发现和理解您的服务功能。

gradio