Gradio 入门实战:几行代码部署你的 AI 模型界面

前言

你是否训练了一个机器学习模型,却不知道怎么展示给别人看?Gradio 就是为你量身定制的工具!

一、Gradio 简介

Gradio 是一个用来快速为 Python 函数、机器学习模型构建 Web 界面的工具。

它的特点:

  • 用 Python 写前端!
  • 支持文本、图片、音频、视频等输入/输出
  • 无需 HTML/JS/CSS
  • 适配 Hugging Face、Torch、TF 等主流模型

二、安装与快速启动

安装方式

pip install gradio

最小运行示例

import gradio as gr

def greet(name):
    return f"你好,{name}!"

gr.Interface(fn=greet, inputs="text", outputs="text").launch()

默认运行在:http://127.0.0.1:7860
在这里插入图片描述

三、案例:部署一个情感分析模型

第一步:准备模型函数

这里用最简单的情感分类做示例:

def predict_sentiment(text):
    if "好" in text:
        return "积极"
    elif "差" in text:
        return "消极"
    else:
        return "中性"

第二步:构建显示界面

import gradio as gr

demo = gr.Interface(
    fn=predict_sentiment,
    inputs=gr.Textbox(label="输入你的句子"),
    outputs=gr.Label(label="预测情感")
)

demo.launch()

第三步:查看页面效果

  • 打开浏览器即可看到界面
  • 输入一段话,点击提交,即可返回预测结果

在这里插入图片描述

四、适配 AI 模型的范例

使用Hugging Face Transformers

pip install transformers
pip install torch
pip install huggingface_hub[hf_xet]
pip install hf_xet
from transformers import pipeline
import gradio as gr

classifier = pipeline("sentiment-analysis")

def classify(text):
    result = classifier(text)[0]
    return f"标签: {result['label']}, 分数: {result['score']:.2f}"

gr.Interface(classify, inputs="image", outputs="text").launch()

支持的输入类型

  • 文本:Textbox, TextArea
  • 图像:Image
  • 音频:Audio
  • 视频:Video
  • 文件上传:File
    在这里插入图片描述

五、自定义布局与增强交互

Gradio 还支持 Blocks 构建更复杂的界面:

with gr.Blocks() as demo:
    text = gr.Textbox(label="请输入问题")
    btn = gr.Button("提交")
    output = gr.Textbox(label="回答")

    def reply(msg):
        return "你刚才说:" + msg

    btn.click(reply, inputs=text, outputs=output)

demo.launch()

在这里插入图片描述

六、部署与分享

方式步骤简述
本地运行运行 .launch() 后访问浏览器端口即可
远程部署(推荐)上传 GitHub,部署到 Hugging Face Spaces

在 Hugging Face Spaces 免费托管:

pip install gradio

上传你项目的 app.py + requirements.txt 至 Hugging Face 即可

七、总结

优点限制
极易上手,专为 AI 打造不适合复杂网页或多页面项目
组件丰富,UI 自动美化样式自定义能力较弱
支持多模态输入(图音文)功能定位于模型交互,不适合 CMS

一句话总结: 如果你想用最短时间,让别人体验你的模型,Gradio 是首选!
你学会了么?如需本项目素材,可留言获取完整项目包。

aiofiles==24.1.0
annotated-types==0.7.0
anyio==4.9.0
certifi==2025.6.15
charset-normalizer==3.4.2
click==8.2.1
colorama==0.4.6
exceptiongroup==1.3.0
fastapi==0.115.13
ffmpy==0.6.0
filelock==3.18.0
fsspec==2025.5.1
gradio==5.34.2
gradio_client==1.10.3
groovy==0.1.2
h11==0.16.0
hf-xet==1.1.5
httpcore==1.0.9
httpx==0.28.1
huggingface-hub==0.33.0
idna==3.10
Jinja2==3.1.6
markdown-it-py==3.0.0
MarkupSafe==3.0.2
mdurl==0.1.2
mpmath==1.3.0
networkx==3.4.2
numpy==2.2.6
orjson==3.10.18
packaging==25.0
pandas==2.3.0
pillow==11.2.1
pydantic==2.11.7
pydantic_core==2.33.2
pydub==0.25.1
Pygments==2.19.2
python-dateutil==2.9.0.post0
python-multipart==0.0.20
pytz==2025.2
PyYAML==6.0.2
regex==2024.11.6
requests==2.32.4
rich==14.0.0
ruff==0.12.0
safehttpx==0.1.6
safetensors==0.5.3
semantic-version==2.10.0
shellingham==1.5.4
six==1.17.0
sniffio==1.3.1
starlette==0.46.2
sympy==1.14.0
tokenizers==0.21.1
tomlkit==0.13.3
torch==2.7.1
tqdm==4.67.1
transformers==4.52.4
typer==0.16.0
typing-inspection==0.4.1
typing_extensions==4.14.0
tzdata==2025.2
urllib3==2.5.0
uvicorn==0.34.3
websockets==15.0.1

gradio入门苏黎世的从前927于 2024-12-31 22:08:37 发布阅读量955 收藏 23点赞数 27分类专栏: 工具 文章标签: 前端框架版权工具专栏收录该内容1 篇文章订阅专栏快速入门import gradio as gr def greet(name): return "h1 " + name + "!" gr.Interface( fn=greet, inputs="text", outputs="text", title="Greeting Interface", description="This interface greets the user with the provided name." ).launch(share=True)文件名为app.py,直接在终端运行python app.py。即会出现一个链接,打开链接,就会在浏览器界面出现内容。但是使用这种方法,当需要更改代码时,更改后,需要将服务停掉,重新运行,很不方便。所以,第二种方法,使用debug模式运行。方法:将接口赋值给demo(固定写法,debug模式必须在demo的命名空间下启动),然后用demo启动,最后在终端运行gradio app.pyimport gradio as gr def greet(name): return "h1 " + name + "!" demo = gr.Interface( fn=greet, inputs="text", outputs="text", title="Greeting Interface", description="This interface greets the user with the provided name." ) demo.launch(share=True)Gradio 学习笔记:构建简单的 AI 交互界面1. Gradio 简介Gradio 是一个 Python 库,可以快速为机器学习模型创建友好的 Web 界面。它的特点是:简单易用,几行代码即可创建界面支持多种输入输出类型可以快速分享和部署适合原型开发和演示2. 基本安装和使用# 安装pip install gradio# 基本导入import gradio as gr3. 常用组件3.1 输入组件gr.Textbox(): 文本输入框gr.Number(): 数字输入框gr.Slider(): 滑动条gr.Radio(): 单选按钮gr.Checkbox(): 单个复选框gr.CheckboxGroup(): 多选框组gr.Image(): 图片上传gr.Audio(): 音频上传3.2 输出组件gr.Textbox(): 文本显示gr.Label(): 标签显示gr.Image(): 图片显示gr.Plot(): 图表显示4. 界面布局4.1 基本布局元素with gr.Blocks() as demo:    # Markdown 支持    gr.Markdown("# 标题")        # 标签页    with gr.Tab("标签1"):        # 内容        # 行布局    with gr.Row():        # 并排组件5. 实战示例:多功能演示程序import gradio as grdef greet(name, is_shouting=False):    if is_shouting:        return f"你好, {name.upper()}!"    return f"你好, {name}!"def calculator(num1, num2, operation):    if operation == "加":        return str(num1 + num2)    elif operation == "减":        return str(num1 - num2)    elif operation == "乘":        return str(num1 * num2)    elif operation == "除":        return str(num1 / num2) if num2 != 0 else "除数不能为零"with gr.Blocks() as demo:    gr.Markdown("# 多功能演示程序")        with gr.Tab("问候程序"):        gr.Markdown("## 问候功能")        with gr.Row():            name = gr.Textbox(label="请输入您的名字")            is_shouting = gr.Checkbox(label="大写模式")            greet_output = gr.Textbox(label="问候语")        name.change(fn=greet, inputs=[name, is_shouting], outputs=greet_output)        is_shouting.change(fn=greet, inputs=[name, is_shouting], outputs=greet_output)        with gr.Tab("计算器"):        gr.Markdown("## 计算器功能")        with gr.Row():            num1 = gr.Number(label="第一个数")            num2 = gr.Number(label="第二个数")            operation = gr.Radio(["加", "减", "乘", "除"], label="运算")            result = gr.Textbox(label="结果")                calculate_btn = gr.Button("计算")        calculate_btn.click(            fn=calculator,            inputs=[num1, num2, operation],            outputs=result        )demo.launch()6. 事件处理Gradio 支持多种事件:click(): 点击事件change(): 值改变事件submit(): 提交事件7. 部署和分享本地运行:demo.launch()公开分享:demo.launch(share=True)自定义端口:demo.launch(server_port=7860)8. 实用技巧1. 使用 gr.Markdown() 添加格式化文本使用 with gr.Row() 创建水平布局使用 with gr.Tab() 创建多标签页界面使用 value= 参数设置默认值使用 label= 参数设置组件标签9. 注意事项1. 确保函数输入输出与界面组件匹配2. 处理异常情况(如除零错误)合理组织界面布局,提高用户体验添加适当的提示信息和说明文字10. 总结Gradio 是一个强大而简单的工具,特别适合:快速创建演示界面展示机器学习模型创建简单的 Web 应用原型验证和测试通过这些基础知识,你已经可以创建实用的交互界面了。随着深入学习,你还可以探索更多高级功能,如自定义主题、API集成等。
03-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

勤奋的知更鸟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值