Gradio:用 Python 给模型套个 Web 界面,几行代码就够

Gradio 在 GitHub 上已经拿到 43,007 Star 了。

这是一个开源 Python 库,专门干一件事:让你用几行 Python 代码,给机器学习模型、API 或任意 Python 函数套上一个可以直接交互的 Web 界面。不需要写 JavaScript,不需要懂 CSS,不需要折腾服务器部署。

正文顶部截图

1、这东西解决什么问题

做过机器学习 demo 的人都知道,模型训练完只是第一步。想让别人试用你的模型,你得写前端、搭后端、处理部署、配置域名,整套流程下来比训练模型还累。

Gradio 把这些全砍掉了。你写一个 Python 函数,告诉 Gradio 输入是什么类型、输出是什么类型,它自动生成一个 Web 页面。文本框、滑块、图片上传、文件选择,这些交互组件都是现成的。

README区域截图

2、怎么用

安装很简单,一行命令:

pip install --upgrade gradio

要求 Python 3.10 以上版本。

写一个最基础的 demo,代码长这样:

import gradio as gr

def greet(name, intensity):
    return "Hello, " + name + "!" * int(intensity)

demo = gr.Interface(
    fn=greet,
    inputs=["text", "slider"],
    outputs=["text"],
    api_name="predict"
)

demo.launch()

运行之后,浏览器会自动打开一个页面,左边是文本框和滑块,右边显示结果。整个过程不到十行代码。

想分享给别人试用,在 launch() 里加一个参数就行:

demo.launch(share=True)

几秒钟后会生成一个公开链接,任何人都能通过浏览器访问,计算全在你本地跑。

3、三种构建方式

Gradio 提供三个层级的 API,对应不同的需求。

gr.Interface 是最高层的封装,适合标准的"输入处理输出"场景。你只需要传入一个函数、指定输入输出组件类型,剩下的全交给 Gradio。

gr.Blocks 是低层级的方案,适合需要自定义布局的场景。组件放哪里、数据怎么流转、哪些组件根据用户操作动态显示或隐藏,全由你控制。Stable Diffusion 的 Web UI 就是用 Blocks 搭的。

gr.ChatInterface 专门做聊天机器人。传入一个处理函数,Gradio 自动搭好对话界面,支持多轮对话和流式输出。

4、不只是一个 Python 库

Gradio 实际上是一整套生态。

Python 客户端 gradio_client 可以用代码调用任何 Gradio 应用,不需要打开浏览器。JavaScript 客户端 @gradio/client 做同样的事情,面向前端场景。

Hugging Face Spaces 是 Gradio 应用的主要托管平台,免费,部署只需要推代码上去。

gradio.Server 模式让你用 Gradio 的后端能力(队列、流式传输、MCP 协议、ZeroGPU)搭配自己写的前端。

还有一个比较新的功能:AI 编程助手集成。执行 gradio skills add --cursor--claude,就能让 AI 编程工具获得 Gradio 的专属知识,写组件和样式时更准。

5、适合谁用

需要快速给模型做 demo 给同事或客户看的算法工程师。

在搭 AI Agent、需要一个可视化界面调试 Agent 行为的开发者。

做技术分享或教学、想让听众现场体验模型效果的人。

任何写了 Python 函数、想给别人一个可视化入口的场景,Gradio 都能接。

6、实际使用注意几点

组件数量超过 30 种,文本、图片、音频、视频、文件、DataFrame、绘图板都有。输入输出可以是多个组件的组合。

本地开发时用 gradio app.py 启动会有热重载,改代码自动刷新页面。加 --vibe 参数能开启浏览器内对话模式,用自然语言让 AI 帮你写或改 Gradio 应用。

生成的 Web 页面自带 API 文档,访问 /docs 路径就能看到所有接口的定义和调用方式。

数能开启浏览器内对话模式,用自然语言让 AI 帮你写或改 Gradio 应用。

生成的 Web 页面自带 API 文档,访问 /docs 路径就能看到所有接口的定义和调用方式。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐