一、Gradio 是什么
Gradio是一个用于创建机器学习模型交互式界面的 Python 库。通过Gradio,可以快速地为模型构建一个可视化的、易于使用的Web界面,无需编写任何Web前端代码。
Gradio 支持多种不同类型的输入(如文本、图像、音频等)和输出(如文本、图像、HTML等),并且可以直接在 Python 脚本中定义这些输入/输出和处理函数之间的关系。这使得 Gradio 非常适合用来演示和测试各种AI/ML模型,或者用来收集用户反馈。
一旦创建了一个Gradio应用,并启动了它,它就会在本地启动一个Web服务器,并生成一个 URL。然后你就可以在浏览器中打开这个URL来与你的模型进行交互。同时,如果需要将应用公开到Internet上供他人使用,也可以通过ngrok等工具实现。
二、简单开始
安装 gradio:
python
pip install gradio -i https://pypi.tuna.tsinghua.edu.cn/simple
简单在 docker 中使用(我进行了端口映射,主机 5000 端口,映射到 docker 7860 端口)
python
import gradio as gr
def greet(text):
return "你输入的是:" + text + "!"
#输入接口组件,label:显示框的标签
input = gr.Text(label = "输入文字")
#输出接口组件,label:显示框的标签
output = gr.Text(label = "输出内容")
#fn设置处理函数
demo = gr.Interface(fn=greet, inputs=input, outputs=output)
demo.launch(server_name="0.0.0.0", server_port=7860)
然后在浏览器输入:http://localhost:5000/
三、组件介绍
Gradio主要由三个组件构成:输入组件、输出组件和界面(Interface)。
-
输入组件(Input Interfaces): 这些是用于接收用户输入的组件。Gradio提供了多种类型的输入接口,包括文本(Text),图像(Image),音频(Audio),绘图(Sketchpad)等等。你可以根据你的模型需要选择合适的输入接口。
-
输出组件(Output Interfaces): 这些是用于展示模型输出结果的组件。Gradio也支持多种类型的输出接口,包括文本(Text),图像(Image),音频(Audio), 标签(Label), HTML, JSON等等。
-
界面(Interface): 界面是将一个或多个输入和输出接口与处理函数连接起来,并启动Web服务器以便用户进行交互。创建一个新界面只需要调用gr.Interface()函数,并传入处理函数、所需输入接口和所需输出接口即可。
Gradio提供了多种输入和输出接口格式以满足不同类型的模型需求。以下是一些常用的接口:
gr.Text
:用于处理文本输入或输出。gr.Image
:用于处理图像输入或输出。可以指定图像大小和颜色通道。gr.Audio
:用于处理音频输入或输出。可以指定采样率。gr.Sketchpad
: 一个绘图板,用户可以在上面进行绘制,通常与手写识别等任务配合使用。gr.CheckboxGroup
: 多选框组,允许用户选择多个选项。gr.Radio
: 单选按钮组,允许用户从多个选项中选择一个。gr.Slider
: 滑块控件,允许用户在一个范围内选择数值。