Gradio 是什么?
Gradio 是一个开源的 Python 软件包,可以快速为你的机器学习模型、API 或任意 Python 函数构建一个演示或 Web 应用程序。你可以通过 Gradio 内置的共享功能在几秒钟内分享你的演示链接。不需要 JavaScript、CSS 或 Web 托管经验!
只需几行 Python 代码即可创建你自己的演示,下面开始学习 💫
安装 Gradio
前提条件:Gradio 需要 Python 3.10 或更高版本。
推荐使用 pip
安装 Gradio,它是 Python 默认包含的包管理工具。运行以下命令:
pip install --upgrade gradio
提示: 最好在虚拟环境中安装 Gradio。详细的安装说明适用于所有常见操作系统,参考此处。
创建你的第一个演示
Gradio 可以在你喜欢的代码编辑器、Jupyter Notebook、Google Colab 或任何其他可以运行 Python 的环境中运行。以下是第一个 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()
提示: 将 gradio
缩写为 gr
是一种广泛采用的约定,可提高代码的可读性。
运行代码后:
- 如果代码保存在名为
app.py
的文件中,请在终端中运行:python app.py
。 - 如果在文件中运行,演示将在浏览器中打开,访问地址为
http://localhost:7860
。 - 如果在 Jupyter Notebook 中运行,演示会嵌入 Notebook 界面。
使用演示
演示界面有以下组件:
- 左侧的文本框用于输入姓名。
- 滑块用于选择“强度”。
- 点击“Submit”按钮后,在右侧可以看到程序的问候输出。
热加载模式
开发本地 Gradio 应用时,可以使用 热加载模式,这样每当文件发生更改时,Gradio 应用会自动重新加载。只需在终端中键入以下命令,而不是运行 python
:
gradio app.py
更多信息请参考热加载指南。
理解 Interface
类
为了创建第一个演示,我们创建了一个 gr.Interface
类的实例。Interface
类的作用是快速为接受输入并返回输出的函数构建 UI(用户界面)。
核心参数:
fn
:需要构建 UI 的函数。inputs
:用于接收输入的 Gradio 组件。输入组件的数量应与函数的参数数量一致。outputs
:用于输出结果的 Gradio 组件。输出组件的数量应与函数返回值的数量一致。
在上例中:
fn=greet
是函数;inputs
包含text
和slider
;outputs
包含text
。
共享你的演示
演示漂亮却不能分享有什么意义?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 演示,而计算仍在你的本地计算机上运行。