10分钟掌握Gradio:轻松构建AI模型的交互式界面

文摘   2024-08-29 18:04   新加坡  

在人工智能和机器学习快速发展的今天,如何将精心设计的模型呈现给用户已成为exit一个关键问题。传统方法往往需要前端开发技能或大量时间学习复杂的Web框架。

而Gradio库很好地解决了这些难题,让你能轻松构建漂亮、交互式的Web界面,使AI模型更易于展示和分享。

Gradio简介

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

Gradio官网地址:https://www.gradio.app/

Gradio的优势

  1. 简单易用:几行Python代码即可创建功能齐全的Web应用,无需前端开发经验。
  2. 快速部署:支持本地测试和一键云端部署,轻松分享成果。
  3. 多样化组件:提供丰富的输入输出组件,如滑块、单选框、文本框等,满足各种需求。
  4. 实时协作:支持生成临时链接,便于团队即时体验和反馈。
  5. 开源免费:拥有活跃的开发者社区,持续更新和支持。

Gradio 的应用场景包括:

  1. 快速原型设计:通过 Gradio,开发者可以快速构建交互式原型,以便在项目早期收集反馈
  2. 模型测试与评估:Gradio 可以帮助开发者更方便地测试和评估模型性能
  3. 模型展示与分享:Gradio 可以将模型部署为 Web 应用,方便与他人分享和展示

相比于类似的工具(如Streamlit),Gradio更专注于机器学习模型的演示,提供了更简洁的API和更快的上手体验。

代码示例

下面我们通过一个简单的代码示例来演示如何使用 Gradio。假设我们有一个将英文文本翻译成中文的模型,我们希望通过 Gradio 构建一个交互式应用

首先,安装 Gradio

Gradio要求运行在Python 3.8 或更高版本上,安装 Gradio 库,我用Google Colab运行,其他环境也是类似的。

pip install gradio

验证安装

  1. 安装完成后,可以通过以下步骤验证 Gradio 是否安装成功:
import gradio as gr
  1. 如果没有报错,说明 Gradio 已成功安装。

创建第一个应用

你可以在你喜欢的代码编辑器 比如VS Code、Jupyter Notebook、Google Colab 或任何你编写 Python 的地方运行 Gradio。让我们编写你的第一个 Gradio 应用程序:

import gradio as gr  # 导入Gradio库,并将其命名为gr,方便后续使用

def greet(name):
    # 定义一个名为greet的函数,接收一个参数name,代表用户输入的名字
    return "Hello " + name + "!"  # 返回一个问候语字符串,格式为“Hello [name]!”

# 创建一个Gradio的Interface实例,定义Web应用程序的输入和输出
demo = gr.Interface(
    fn=greet,        # 指定要调用的函数是greet
    inputs="text",   # 定义输入类型为文本
    outputs="text"   # 定义输出类型为文本
)

demo.launch()  # 启动Gradio的Web应用程序,打开一个网页以展示这个应用

把上边代码保存到 gradio_app.py 文件中,然后执行以下命令:

python gradio_app.py

运行这段代码后,Gradio 会自动生成一个交互式界面,我们在浏览器输入地址 http://127.0.0.1:7860 即可访问。

如果你在输入框输入“蔡荔谈AI”,你会看到输出框的输出如下:

代码中greet(name)函数的输入参数name会捕获到输入框的输入,greet(name)函数的输出会填充到输出框,就是这么简单。

分享刚才的演示

Gradio 可让您轻松分享机器学习演示,而无需担心在 Web 服务器上托管的麻烦。只需设置 share=True,launch() 就会为您的演示创建一个可公开访问的 URL。让我们重新查看示例演示,但将最后一行更改为如下:

import gradio as gr  # 导入Gradio库,并将其命名为gr,方便后续使用

def greet(name):
    # 定义一个名为greet的函数,接收一个参数name,代表用户输入的名字
    return "Hello " + name + "!"  # 返回一个问候语字符串,格式为“Hello [name]!”

# 创建一个Gradio的Interface实例,定义Web应用程序的输入和输出
demo = gr.Interface(
    fn=greet,        # 指定要调用的函数是greet
    inputs="text",   # 定义输入类型为文本
    outputs="text"   # 定义输出类型为文本
)

demo.launch(share=True)  # 只需一个额外的参数即可分享你的演示。

当你运行此代码时,几秒钟内就会为你的演示生成一个公共 URL,如下所示:

👉 https://abae6cc7f32c6ca6e7.gradio.live/ 

这个链接上运行后自动生成的,默认保留72小时)

Gradio的一些局限性:

  • 功能相对较简单:Gradio适合构建简单的交互式界面,但对于复杂的界面需求可能不够灵活。
  • 缺乏高级定制选项:Gradio提供了一些基本的界面定制选项,但对于高级定制需求可能不够满足

结语

Gradio极大简化了AI模型的展示流程,推动了AI技术的普及。Gradio是我认为这么多低代码web UI 中最简单的一个,上手非常容易,用来展示和验证应用远远足够了。

学新东西建议都从最简单的入手,不满足再去研究更复杂的。循序渐进地学习更容易持续,也会更有成就感。

Gradio 官网的文档和教程都非常清晰和易懂,还有一个在线的编辑器给你快速体验效果。如果有需要,强烈建议尝试一下。


蔡荔谈AI
AI科普 AI培训 超级个体 创业
 最新文章