OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  代码  ›  Gradio — AI Web UI 框架

Gradio — AI Web UI 框架

 
  omniai ·  2026-02-28 00:42:39 · 3 次点击  · 0 条评论  
Gradio 5.0 - the easiest way to build AI web apps | Product Hunt gradio-app%2Fgradio | Trendshift [![gradio-backend](https://github.com/gradio-app/gradio/actions/workflows/test-python.yml/badge.svg)](https://github.com/gradio-app/gradio/actions/workflows/test-python.yml) [![gradio-ui](https://github.com/gradio-app/gradio/actions/workflows/tests-js.yml/badge.svg)](https://github.com/gradio-app/gradio/actions/workflows/tests-js.yml) [![PyPI](https://img.shields.io/pypi/v/gradio)](https://pypi.org/project/gradio/) [![PyPI downloads](https://img.shields.io/pypi/dm/gradio)](https://pypi.org/project/gradio/) ![Python version](https://img.shields.io/badge/python-3.10+-important) [![Twitter follow](https://img.shields.io/twitter/follow/gradio?style=social&label=follow)](https://twitter.com/gradio) [官网](https://gradio.app) | [文档](https://gradio.app/docs/) | [指南](https://gradio.app/guides/) | [快速开始](https://gradio.app/getting_started/) | [示例](demo/)
English | [中文](readme_files/zh-cn#readme)

Gradio:用 Python 构建机器学习 Web 应用

Gradio 是一个开源的 Python 包,可以让你快速为机器学习模型、API 或任意 Python 函数构建演示界面或 Web 应用。然后,你可以利用 Gradio 内置的分享功能,在几秒钟内分享一个指向你演示界面或 Web 应用的链接。无需 JavaScript、CSS 或 Web 托管经验!

只需几行 Python 代码即可创建你自己的演示界面,让我们开始吧 💫

安装

前提条件:Gradio 需要 Python 3.10 或更高版本

我们推荐使用 Python 默认包含的 pip 来安装 Gradio。在终端或命令提示符中运行:

pip install --upgrade gradio

[!TIP]
最好在虚拟环境中安装 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()

[!TIP]
我们将导入的名称从 gradio 简写为 gr。这是为了更好的代码可读性而广泛采用的约定。

现在,运行你的代码。如果你将 Python 代码写在名为 app.py 的文件中,那么你需要在终端中运行 python app.py

如果从文件运行,下面的演示将在浏览器中打开 http://localhost:7860。如果在 notebook 中运行,演示将嵌入在 notebook 中。

hello_world_4 演示

在左侧的文本框中输入你的名字,拖动滑块,然后按下提交按钮。你应该会在右侧看到一个友好的问候。

[!TIP]
在本地开发时,你可以以热重载模式运行你的 Gradio 应用,该模式会在你对文件进行更改时自动重新加载 Gradio 应用。为此,只需在终端中输入 gradio 而不是 python,后面跟上文件名。在上面的例子中,你可以在终端中输入:gradio app.py。你还可以使用 --vibe 标志启用氛围模式,例如 gradio --vibe app.py,这会在浏览器中提供一个聊天界面,可以用自然语言编写或编辑你的 Gradio 应用。在热重载指南中了解更多信息。

理解 Interface

你会注意到,为了创建第一个演示,你实例化了 gr.Interface 类。Interface 类旨在为机器学习模型创建演示,这些模型接受一个或多个输入,并返回一个或多个输出。

Interface 类有三个核心参数:

  • fn: 要为其包装用户界面(UI)的函数。
  • inputs: 用于输入的 Gradio 组件。组件的数量应与函数参数的数量匹配。
  • outputs: 用于输出的 Gradio 组件。组件的数量应与函数返回值的数量匹配。

fn 参数非常灵活——你可以传递任何你想用 UI 包装的 Python 函数。在上面的例子中,我们看到了一个相对简单的函数,但这个函数可以是任何东西,从音乐生成器到税务计算器,再到预训练机器学习模型的预测函数。

inputsoutputs 参数接受一个或多个 Gradio 组件。正如我们将看到的,Gradio 包含超过 30 个内置组件(例如 gr.Textbox()gr.Image()gr.HTML() 组件),这些组件专为机器学习应用设计。

[!TIP]
对于 inputsoutputs 参数,你可以将这些组件的名称作为字符串("textbox")或类的实例(gr.Textbox())传入。

如果你的函数接受多个参数(如上例所示),请将输入组件列表传递给 inputs,每个输入组件按顺序对应函数的一个参数。如果你的函数返回多个值,情况也类似:只需将组件列表传递给 outputs。这种灵活性使得 Interface 类成为创建演示的一种非常强大的方式。

我们将在关于构建 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)  # 只需 1 个额外参数即可分享你的演示 🚀

当你运行此代码时,将在几秒钟内为你的演示生成一个公共 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 构建的。我们将在关于使用 Blocks 构建的系列文章中更深入地探讨 gr.Blocks

使用 gr.ChatInterface 创建聊天机器人

Gradio 包含另一个高级类 gr.ChatInterface,专门用于创建聊天机器人 UI。与 Interface 类似,你提供一个函数,Gradio 会创建一个功能齐全的聊天机器人 UI。如果你有兴趣创建聊天机器人,可以直接跳转到我们关于 gr.ChatInterface 的专用指南

Gradio Python 和 JavaScript 生态系统

以上就是核心 gradio Python 库的要点,但 Gradio 实际上远不止这些!它是一个完整的 Python 和 JavaScript 库生态系统,让你可以用 Python 或 JavaScript 构建机器学习应用程序,或以编程方式查询它们。以下是 Gradio 生态系统的其他相关部分:

下一步该做什么?

继续按顺序学习 Gradio 指南,其中包含解释以及示例代码和嵌入式交互式演示。接下来:让我们更深入地了解 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 上创建一个 issue。有关使用的一般问题,我们可以在 Discord 服务器上提供帮助。

如果你喜欢 Gradio,请在 GitHub 上给我们留个 ⭐!

开源技术栈

Gradio 建立在许多优秀的开源库之上!

huggingface
python
fastapi
encode
svelte
vite
pnpm
tailwind
storybook
chromatic

许可证

Gradio 根据 Apache License 2.0 授权,许可证文件位于此仓库根目录的 LICENSE 文件中。

引用

也请查看论文 Gradio: Hassle-Free Sharing and Testing of ML Models in the Wild, ICML HILL 2019,如果你在工作中使用了 Gradio,请引用它。

@article{abid2019gradio,
  title = {Gradio: Hassle-Free Sharing and Testing of ML Models in the Wild},
  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},
}
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor