python系列&deep_study系列:Gradio中文教程(一)Quickstart




Gradio中文教程(一)Quickstart

快速入门

Gradio 是一个开源的Python包,它允许你快速构建一个演示Web应用程序,用于你的机器学习模型、API,或者任何任意Python函数。然后你可以使用 Gradio内置的分享功能,在几秒钟内就共享出一个链接到你的演示Web应用程序。无需JavaScriptCSS、或Web托管经验

安装

前置条件:Gradio 需要 Python 3.8 或以上版本。

我们建议使用 pip 安装 Gradio,pip 包是默认包含在 Python 中的。在你的终端或命令提示窗口运行以下命令:

pip install gradio

创建你的第一个演示

你可以使用你最喜欢的代码编辑器(如 Visual Studio Code、PyCharm 等)、Jupyter NotebookGoogle 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"],
)

demo.launch()

现在,运行你的代码。如果你已经用Python编写了名为app.py的文件中的Python代码,那么你就会在终端中使用python app.py命令来运行Python代码

python app.py

理解 Interface 类

你将注意到,在创建第一个演示时,你已经实例化了gr.Interface类Interface类是为机器学习模型设计的,可以接受一个或多个输入,并返回一个或多个输出。

Interface 类有三个核心参数:

  • fn:要包装用户界面(UI)的函数

  • inputs:用于输入的 Gradio 组件(组件数量应与函数参数数量匹配)

  • outputs:用于输出的 Gradio 组件(组件数量应与函数返回值数量匹配

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

inputsoutputs 参数接受一个或多个 Gradio 组件Gradio 集成了超过30个预先设计好的组件,专为机器学习应用服务,比如 gr.Textbox()gr.Image()gr.HTML() 等。随着你的需求,你可以根据需要选择和组合这些组件来创建功能丰富的 UI

如果你的函数接受多个参数,就像上面的情况那样,请将输入组件列表传递给inputs,每个输入组件对应于函数中的一个参数,并按顺序排列。同样,如果你的函数返回多个值:简单地传递输出组件列表到outputs。这项灵活性使得Interface类成为创建演示的非常强大的方式。

分享你的演示

Gradio 简化了在云端共享机器学习演示的过程,无需为服务器托管烦恼。只需在调用 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)  # Share your demo with just 1 extra parameter  

当你运行这段代码时,将为您的演示生成一个公共URL,这个过程将在几秒钟内完成,类似于这样的URL

https://a23dsf231adb.gradio.live

现在,世界各地的任何人都可以尝试你的Gradio演示,通过他们的浏览器,而机器学习模型和所有计算继续运行本地在你的计算机上。要了解更多关于分享您的演示,请阅读我们的专用指南,关于分享您的Gradio应用程序。

Gradio概述

到目前为止,我们已经讨论了Interface类,这是一个高级别的类,让我们快速构建演示使用Gradio。但是,Gradio还能做些什么?

Gradio chat机器人

Gradio还包括一个高级别的类,gr. ChatInterface,这个类是专门为创建Chatbot UIs而设计。与Interface类似,你提供一个函数,然后Gradio就生成了一个完全工作的Chatbot UI。如果你对创建chatbot感兴趣,可以直接跳转到我们的关于gr. ChatInterface的指南。

自定义演示gr. Blocks

Gradio还提供了一种低级别的approach来设计web应用程序,使用gr. Blocks类,这个类允许你实现更加灵活的布局和数据流。 Blocks允许你控制组件在页面中的位置、处理复杂的数据流(例如输出可以作为其他函数的输入)和根据用户交互更新组件的属性/可见性——所有这些都可以在Python中实现。

使用gr. Blocks()你可以构建非常自定义且复杂的应用程序。例如,流行的图像生成Auto1111 Web UI就是使用Gradio Blocks构建的。我们在我们的关于Blocks的系列指南中更深入地探讨了gr. Blocks

GradioPython & JavaScript生态系统

那是Gradio核心 Python 库的概要,但是Gradio实际上是一个Python和JavaScript库的整个生态系统,允许你在PythonJavaScript中构建机器学习应用程序或编程查询它们。下面是Gradio生态系统中的其他相关部分:

  • Gradio Python 客户端(gradio_client):在 Python 中编程查询任何 Gradio 应用程序

  • Gradio JavaScript 客户端(@gradio/client):在 JavaScript 中编程查询任何 Gradio 应用程序

  • Gradio-Lite(@gradio/lite):使用 Pyodide 在浏览器中完全运行 Gradio 应用程序(不需要服务器!),以 Python 写作

  • Hugging Face Spaces:Gradio 应用程序的最流行Hosting 地址——免费!







老刘

Gradio中文教程(一)Quickstart

### 如何在 Python 中运行 `demo_gradio_fixed.py` 或 `demo_gradio.py` 文件 要成功运行包含 Gradio 库的 Python 脚本文件(如 `demo_gradio_fixed.py` 和 `demo_gradio.py`),需要完成以下几个方面的配置: #### 1. 安装必要的依赖项 确保安装了脚本所需的全部依赖库。如果尚未安装 Gradio 及其关联库,可以使用以下命令来安装它们: ```bash !pip install gradio ``` 对于更复杂的项目,可能还需要其他依赖库。例如,在引用中提到的内容显示该项目还涉及 Diffusers、Transformers 等工具包[^1]。因此,建议先执行如下命令以确保环境完整: ```bash !pip install -q diffusers==0.14.0 transformers xformers git+https://github.com/huggingface/accelerate.git !pip install -q opencv-contrib-python !pip install -q controlnet_aux ``` 这些命令会帮助设置个适合运行复杂 AI 模型和服务的基础环境。 #### 2. 运行 `.py` 文件的方法 旦所有必需的库都已正确安装,可以通过多种方式运行目标 Python 文件: - **通过终端或命令提示符** 打开系统的终端窗口,并导航到存储有 `demo_gradio_fixed.py` 的目录下。输入以下指令启动程序: ```bash python demo_gradio_fixed.py ``` - **利用 Jupyter Notebook 或 Google Colab** 如果是在交互式的环境中工作,则可以直接加载该文件作为单元格的部分或者上传本地文件后直接运行它。假设已经将文件上传至当前路径,可尝试这样操作: ```python %run demo_gradio.py ``` #### 3. 配置 Gradio 接口 Gradio种快速构建机器学习演示应用程序的工具。通常情况下,`.py` 文件内部定义了个基于 Gradio 的界面函数。当脚本被执行时,这个接口会被自动部署出来供用户测试模型功能。以下是典型代码片段展示如何创建简单的 Gradio UI 并将其连接到预测逻辑上: ```python import gradio as gr def greet(name): return f"Hello {name}!" with gr.Blocks() as demo: name_input = gr.Textbox(label="Enter your name:") greeting_output = gr.Textbox(label="Greeting message will appear here.") submit_button = gr.Button("Submit") submit_button.click(greet, inputs=name_input, outputs=greeting_output) demo.launch() ``` 此段代码展示了基本结构——接收输入数据并通过指定方法返回结果给前端页面呈现。 #### 总结 综上所述,为了顺利开启并体验由 Gradio 提供支持的人工智能应用实例,请按照上述指导逐步准备所需软硬件条件以及熟悉相关框架特性[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坦笑&&life

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值