gradio
Gradio 是一个专为 Python 开发者打造的开源库,旨在让用户无需掌握前端技术,即可快速构建并分享机器学习模型、API 或任意 Python 函数的交互式网页应用。它主要解决了传统 AI 演示开发门槛高的问题:过去展示模型往往需要编写复杂的 HTML、CSS 和 JavaScript 代码,还要配置服务器,而 Gradio 将这些繁琐步骤封装起来,让开发者只需几行 Python 代码就能生成具备美观界面的 Demo。
这款工具非常适合 AI 研究人员、数据科学家以及希望快速验证想法的 Python 开发者使用。无论是需要在论文中展示实验结果,还是想向团队演示新训练模型的成效,Gradio 都能帮助你在几分钟内完成从代码到可交互网页的转化。其独特的技术亮点在于“零前端依赖”的设计理念,内置了丰富的输入输出组件(如文本框、滑块、图像上传等),并支持一键生成公开分享链接,方便他人直接在浏览器中体验。此外,它还自动生成了 API 接口,便于后续集成到其他系统中。凭借简洁的语法和强大的功能,Gradio 已成为连接算法原型与实际应用的高效桥梁,让创意落地变得更加轻松自然。
使用场景
某初创公司的算法工程师刚训练好一个“医疗影像肺炎检测模型”,急需向非技术背景的医院合作方演示效果以争取试点机会。
没有 gradio 时
- 开发门槛高:工程师必须临时学习 HTML、CSS 和 JavaScript,或求助前端同事编写交互界面,耗时数天才能做出一个简单的上传页面。
- 部署流程繁琐:为了让外网访问,需要配置 Nginx、购买云服务器、设置域名解析和 SSL 证书,运维成本极高且容易出错。
- 反馈循环慢:医生只能通过发送图片文件给工程师,由工程师在本地运行代码后口头告知结果,无法实时互动调整参数,沟通效率极低。
- 演示体验差:缺乏直观的滑动条或可视化热力图,合作方难以理解模型是如何判断病灶区域的,信任感建立困难。
使用 gradio 后
- 极速构建界面:工程师仅用 20 行 Python 代码就定义了图片输入和标签输出组件,自动生成了包含上传、推理和结果展示功能的完整网页。
- 一键共享演示:利用 gradio 内置的
share=True功能,瞬间生成一个可公开访问的临时链接,无需任何服务器配置即可发给医院专家测试。 - 实时交互验证:医生直接在网页上传 CT 片,系统秒级返回检测结果及置信度,甚至能通过滑块调整阈值,即时观察模型敏感度变化。
- 专注核心逻辑:团队无需关心前端样式或后端部署,将所有精力集中在优化模型算法本身,将原本一周的演示准备期缩短至一下午。
gradio 让算法工程师能跳过繁琐的全栈开发流程,直接将 Python 模型转化为可交互的 Web 应用,极大地加速了从实验室原型到实际业务价值的转化过程。
运行环境要求
- Linux
- macOS
- Windows
未说明
未说明

快速开始
英文 | 中文
Gradio:用 Python 构建机器学习 Web 应用
Gradio 是一个开源的 Python 包,可让您快速为自己的机器学习模型、API 或任意 Python 函数 构建 一个演示或 Web 应用。您只需几秒钟,即可通过 Gradio 内置的分享功能,将您的演示或 Web 应用 分享 给他人。无需任何 JavaScript、CSS 或 Web 托管经验!
只需几行 Python 代码,即可轻松创建属于自己的演示应用,让我们马上开始吧 💫
安装
前提条件:Gradio 需要 Python 3.10 或更高版本。
我们建议使用 pip 进行安装,因为 Python 默认已包含该工具。在终端或命令提示符中运行以下命令:
pip install --upgrade gradio
[!提示] 最好在虚拟环境中安装 Gradio。关于所有常见操作系统的详细安装说明,请参阅 此处。
构建你的第一个演示
你可以在自己最喜爱的代码编辑器、Jupyter Notebook、Google Colab,或者任何其他你可以编写 Python 代码的地方运行 Gradio。让我们来编写你的第一个 Gradio 应用:
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()
[!提示] 我们将导入的
gradio名称简写为gr。这一命名约定已被广泛采用,以提升代码的可读性。
现在,运行你的代码。如果你将 Python 代码保存在名为 app.py 的文件中,那么你只需在终端中运行 python app.py 即可。
如果从文件中运行,下方的演示将在浏览器中打开,网址为 http://localhost:7860。如果你是在 Jupyter Notebook 中运行,演示将会嵌入到 Notebook 内部显示。

在左侧的文本框中输入你的名字,拖动滑块,然后点击“提交”按钮。你应该会在右侧看到一条友好的问候语。
[!提示] 在本地开发时,你可以将 Gradio 应用置于 热重载模式下运行,只要你在文件中进行修改,Gradio 应用就会自动重新加载。要实现这一点,只需在文件名前输入
<gradio>,而不是直接输入python。在上面的示例中,你可以在终端中输入:gradio app.py。你还可以通过使用--vibe标志启用 Vibe 模式,例如:gradio --vibe app.py,该模式会提供一个浏览器内置的聊天窗口,可用于使用自然语言编写或编辑你的 Gradio 应用。更多详情请参阅 热重载指南。
理解 Interface 类
你会发现,为了构建你的第一个演示,你创建了一个 gr.Interface 类的实例。Interface 类旨在为机器学习模型创建演示,这些模型可以接受一个或多个输入,并返回一个或多个输出。
Interface 类有三个核心参数:
fn:用于包裹用户界面(UI)的函数inputs:用于输入的 Gradio 组件。组件的数量应与函数中的参数数量一致。outputs:用于输出的 Gradio 组件。组件的数量应与函数返回的值数量一致。
fn 参数非常灵活——你可以传递任意你想用 UI 包装的 Python 函数。在上面的示例中,我们看到的是一个相对简单的函数,但这个函数可以是任何东西,从音乐生成器到税务计算器,再到预训练机器学习模型的预测函数。
inputs 和 outputs 参数则接收一个或多个 Gradio 组件。正如我们接下来将看到的那样,Gradio 已经内置了超过 30 种组件(如 gr.Textbox()、gr.Image() 和 gr.HTML() 等组件),这些组件专为机器学习应用而设计。
[!提示] 对于
inputs和outputs参数,你可以以字符串形式(如"textbox")或类的实例(如gr.Textbox())来传入这些组件的名称。
如果你的函数接受多个参数,就像上面的例子一样,可以将输入组件列表传递给 inputs,每个输入组件对应函数的一个参数。同样地,如果你的函数返回多个值,只需将组件列表传递给 outputs 即可。这种灵活性使 Interface 类成为构建演示的极为强大的工具。
在后续的系列文章中,我们将深入探讨 gr.Interface,重点讲解如何构建接口(构建接口)。
分享你的演示
如果一个演示再美观,却无法分享,又有什么意义呢?Gradio 让你轻松分享机器学习演示,而无需担心在 Web 服务器上托管的繁琐流程。只需在 launch() 中设置 share=True,即可为你的演示生成一个公开可访问的 URL。让我们回到之前的示例演示,但将最后一行修改为如下内容:
import gradio as gr
def greet(name):
return "Hello " + name + "!"
demo = gr.Interface(fn=greet, inputs="textbox", outputs="textbox")
demo.launch(share=True) # 仅需一个额外参数,即可与他人共享你的演示 🚀
当你运行这段代码时,你的演示将在几秒钟内生成一个公开的 URL,例如:
👉 https://a23dsf231adb.gradio.live
现在,世界各地的任何人都可以通过浏览器试用你的 Gradio 演示,而机器学习模型和所有计算仍将继续在你电脑本地运行。
如需了解更多关于分享演示的信息,请阅读我们的专属指南——分享你的 Gradio 应用。
Gradio 概述
到目前为止,我们一直在探讨 Interface 类——这是一个高级别类,能够帮助您快速使用 Gradio 构建各种演示应用。不过,Gradio 还有哪些其他功能呢?
使用 gr.Blocks 自定义演示应用
Gradio 提供了一种低级的开发方式,通过 gr.Blocks 类,您可以设计出布局更加灵活、数据流更富于变化的 Web 应用。Blocks 支持多种功能,例如:控制组件在页面中的显示位置、处理多条数据流以及实现更为复杂的交互(例如,输出可以作为其他函数的输入)、根据用户交互动态更新组件的属性或可见性——所有这一切都完全基于 Python 语言来实现。
借助 gr.Blocks(),您可以构建出高度定制化且功能强大的应用程序。以广受欢迎的图像生成工具 Automatic1111 Web UI 为例,其正是基于 Gradio 的 Blocks 功能打造而成。在后续的系列文章中,我们将深入探讨 gr.Blocks 的更多细节,重点介绍如何利用它来构建各类应用(详见 使用 Blocks 构建应用)。
使用 gr.ChatInterface 构建聊天机器人
Gradio 还提供了一个高级别的类——gr.ChatInterface,专为创建聊天机器人界面而设计。与 Interface 类类似,您只需提供一个函数,Gradio 就会自动为您搭建起一个功能完备的聊天机器人界面。如果您对创建聊天机器人感兴趣,可以直接跳转至我们的专属指南——使用 gr.ChatInterface 创建聊天机器人。
Gradio 的 Python 与 JavaScript 生态系统
以上便是 Gradio 核心 Python 库的核心内容,但 Gradio 其实远不止于此!它是一个完整的 Python 和 JavaScript 库生态系统,让您能够使用 Python 或 JavaScript 构建机器学习应用,或者以编程方式对这些应用进行查询与操作。以下是 Gradio 生态系统的其他相关组成部分:
- Gradio Python 客户端(
gradio_client):通过 Python 程序代码,以编程方式查询任意 Gradio 应用。 - Gradio JavaScript 客户端(
@gradio/client):通过 JavaScript 程序代码,以编程方式查询任意 Gradio 应用。 - Hugging Face Spaces:Gradio 应用最热门的托管平台——免费使用!
- 服务器模式(
gradio.Server):借助 Gradio 的后端,构建自定义前端——支持队列、流式处理、MCP、ZeroGPU 以及 Spaces 托管服务。
接下来该做什么?
请持续按顺序学习 Gradio 相关知识,通过 Gradio 指南,您将获得详尽的讲解、示例代码以及嵌入式的交互式演示。接下来,我们将深入探讨 Interface 类的相关内容(详见 Interface 类详解)。
或者,如果您已经掌握了基本知识,并且正寻找特定的功能,也可以查阅更详细的 技术 API 文档。
AI 编程技能
Gradio 提供了一项“技能”,可为 AI 编程助手(如 Cursor、Claude Code、Codex 等)注入 Gradio 特有的知识,从而帮助它们更高效地构建 Gradio 应用。尤其是在创建自定义 Gradio 组件或进行样式设计时,这项技能尤为实用。只需一条命令,即可为您的编程助手安装 Gradio 技能:
gradio skills add --cursor # 或者 --claude, --codex, --opencode
使用 --global 命令,可将其安装于用户级别(适用于所有项目)。您的技能将自动为特定的编程代理所用。
您还可以为某个 特定的 Gradio Space 安装技能,该技能可自动生成 API 使用文档(包括 Python、JS、cURL 等格式):
gradio skills add abidlabs/en2fr --cursor
有问题吗?
如果您想报告错误或提出功能建议,请前往 GitHub 上提交问题(GitHub 问题表单)。如需了解有关使用 Gradio 的通用问题,欢迎随时访问我们的 Discord 服务器(Discord 服务器链接),我们非常乐意为您提供帮助。
如果您喜欢 Gradio,也请在 GitHub 上为我们留下一个 ⭐!
开源生态
Gradio 依托众多优秀的开源库而构建!
许可证
Gradio 采用 Apache License 2.0 许可协议,该协议位于本仓库根目录下的 LICENSE 文件中。
引用文献
此外,还请参阅论文 Gradio: 在真实世界中轻松分享与测试 ML 模型, ICML HILL 2019,并在您的工作中使用 Gradio 时,务必予以引用。
@article{abid2019gradio,
title = {Gradio: 在真实世界中轻松分享与测试 ML 模型},
author = {Abid, Abubakar and Abdalla, Ali and Abid, Ali and Khan, Dawood and Alfozan, Abdulrahman and Zou, James},
journal = {arXiv preprint arXiv:1906.02569},
year = {2019},
}
版本历史
gradio@6.11.02026/04/03@gradio/video@0.20.62026/04/03@gradio/vibeeditor@0.3.82026/04/03@gradio/utils@0.12.22026/04/03@gradio/upload@0.17.82026/04/03@gradio/textbox@0.13.72026/04/03@gradio/tabs@0.5.92026/04/03@gradio/statustracker@0.13.12026/04/03@gradio/slider@0.7.92026/04/03@gradio/simpletextbox@0.3.392026/04/03@gradio/simpleimage@0.9.82026/04/03@gradio/simpledropdown@0.3.372026/04/03@gradio/sidebar@0.2.62026/04/03@gradio/radio@0.10.12026/04/03@gradio/preview@0.16.22026/04/03@gradio/plot@0.10.72026/04/03@gradio/paramviewer@0.9.72026/04/03@gradio/number@0.8.62026/04/03@gradio/navbar@0.2.92026/04/03@gradio/nativeplot@0.10.52026/04/03常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
