mcpField
G
gradio

gradio

github.com/gradio-app开发43.9k94 次安装今天更新
代码仓库

关于 gradio

Gradio 是面向开发者的 Python 库,用于构建交互式网页界面和机器学习演示。本技能介绍其 API 与常用模式,涵盖高层界面、事件布局、聊天界面和自定义组件。

主要功能

  1. 01围绕 Python 函数构建界面
  2. 02使用 Blocks 和事件创建布局
  3. 03通过 ChatInterface 构建聊天界面
  4. 04创建可视化节点式工作流
  5. 05自定义 HTML 组件与服务器行为

适用场景

  1. 01构建交互式机器学习演示
  2. 02将界面事件连接到 Python 函数
  3. 03创建聊天机器人界面
  4. 04添加自定义 HTML、CSS 和 JavaScript 组件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/gradio-app/gradio --skill gradio

安装后在 Claude Code 中输入/gradio确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
api-signatures.md
event-listeners.md
examples.md

详细介绍

Gradio

Gradio 是一个用于构建交互式 Web UI 和 ML 演示的 Python 库。本技能涵盖核心 API、模式与示例。

参考资料

  • references/examples.md - 展示核心 Gradio API 的示例。
  • references/api-signatures.md - 常用组件的 API 签名。
  • references/event-listeners.md - 各组件支持的事件的 API 签名。

指南

特定主题的详细指南(在相关时阅读这些内容):

核心模式

Interface(高层):用输入/输出组件包装一个函数。

import gradio as gr

def greet(name):
    return f"Hello {name}!"

gr.Interface(fn=greet, inputs="text", outputs="text").launch()

Blocks(底层):灵活的布局,显式绑定事件。

import gradio as gr

with gr.Blocks() as demo:
    name = gr.Textbox(label="Name")
    output = gr.Textbox(label="Greeting")
    btn = gr.Button("Greet")
    btn.click(fn=lambda n: f"Hello {n}!", inputs=name, outputs=output)

demo.launch()

ChatInterface:聊天机器人 UI 的高层封装。

import gradio as gr

def respond(message, history):
    return f"You said: {message}"

gr.ChatInterface(fn=respond).launch()

Workflow:从 Hugging Face Spaces、模型、数据集和 Python 函数构建可视化、基于节点的流水线。gr.Workflow 是一个独立应用,因此不要在 gr.Blocks 上下文中创建它。

import gradio as gr

def clean(text: str) -> str:
    return text.strip().lower()

def tag(text: str) -> str:
    return f"[processed] {text}"

gr.Workflow(
    bind={"clean": clean, "tag": tag},
    edges=[("clean", "tag")],
).launch()

自定义 HTML 组件

如果任务需要对现有组件进行大量自定义,或需要一个 Gradio 中不存在的组件,你可以使用 gr.HTML 创建一个。它支持 html_template(使用 ${} JS 表达式和 {{}} Handlebars 语法)、用于作用域样式的 css_template,以及用于交互的 js_on_load——其中 props.value 更新组件值,trigger('event_name') 触发 Gradio 事件。如需复用,可继承 gr.HTML 并定义 api_info() 以支持 API/MCP。

参见完整指南以及 references/examples.md 中的示例

服务器模式

当用户请求以下任意内容时,使用 gr.Server 而非 gr.Blocks:

  • 由 Gradio 后端驱动的完全自定义 UI(你自己的 HTML、React、Svelte 等)。
  • 除了 Gradio API 端点之外,完全控制 FastAPI 服务器(自定义 GET/POST 路由、中间件、依赖注入)

参见完整指南以及 references/examples.md 中的示例。

如果用户的用例可以通过 Gradio 的内置组件或可自定义的 HTML 组件处理,则尽量不使用 gr.Server。

评论

支持 Markdown