不写一行前端,用Python快速搭出AI模型演示界面
【免费下载链接】gradioBuild and share delightful machine learning apps, all in Python. 🌟 Star to support our work!项目地址: https://gitcode.com/GitHub_Trending/gr/gradio
模型调通了,但效果只停留在终端里。想给同事看个效果,对方不会跑脚本;想发给领导演示,总不能截图加讲解。Gradio 就是解决这件事的开源 Python 库:把本地函数直接包成一个可交互的机器学习演示网页,文本、图像、音频、视频输入输出开箱即用,不要求你会写前端。
🎯 项目定位与适用人群
Gradio 的定位很直接:为机器学习模型、API 或任意 Python 函数生成可交互的网页演示,并在几秒内生成可分享的链接。它内置了 30 多个面向机器学习的组件,例如gr.Image()、gr.Label()、gr.HTML()(见gradio/components/目录)。
适合的人:刚训完模型想快速展示的研究者、需要给评审做演示的数据工程师、想把模型挂进教学课堂的讲师。不适合的人:需要高度定制生产级前端的开发者——Gradio 的界面结构和交互逻辑由 Python 侧声明,前端自由度有限,这类需求建议直接写 Web 框架。
📦 安装与首次运行
环境要求只有一个:Python 3.10 或更高版本。终端执行:
pip install --upgrade gradio官方建议把 Gradio 装进虚拟环境再开始。装完后写一个文件、运行一下,从开始到浏览器打开页面大约 1 分钟。Google Colab 同样适用,第一条单元格执行同样的安装命令即可。
🧩 最简示例逐行讲解
把下面代码存为app.py,这是整个 Gradio 的核心形态(仓库demo/hello_world/run.py即此结构):
import gradio as gr def greet(name): return f"Hello, {name}!" demo = gr.Interface(fn=greet, inputs="text", outputs="text") demo.launch()gr.Interface(...)负责给一个函数套上界面外壳,核心参数就三个:fn是被包装的函数,inputs声明输入组件,outputs声明输出组件;- 组件名可以直接写字符串
"text",也可以传组件实例如gr.Textbox(); - 执行
python app.py后,控制台会提示打开http://127.0.0.1:7860;在 notebook 里运行则直接内嵌显示。
demo/hello_world_4/run.py展示了两参数的写法:inputs=["text", "slider"]与fn的两个参数一一对应。注意组件顺序必须与函数签名严格对齐,这是官方文档反复强调的约束。
🚀 进阶玩法:布局、流式与并发
用 Blocks 编排布局。gr.Interface只适合"一进一出",需要多按钮、分组布局或让输出再作为下一步输入时,切换到gr.Blocks。仓库demo/streaming_simple/run.py用 9 行代码搭建了双栏布局:gr.Row()里放两列,左右各一个gr.Image(),事件通过input_img.stream(...)绑定,支持把输出结果继续喂给后续函数。
流式输出。长任务不必等全部跑完。Blocks的事件方法支持stream_every参数,按间隔逐段推送结果。demo/stream_frames/run.py演示了摄像头场景:stream_every=0.1表示每 0.1 秒推一帧,实现实时感。
并发与队列。每个事件监听器自带队列,可通过concurrency_limit参数设定并发上限;多张 GPU 的场景还能用concurrency_id让多个事件共享同一条队列。详见guides/04_additional-features/01_queuing.md。
⚠️ 新手常见坑
第一,组件数量对不上。inputs列表的长度必须等于函数参数个数,outputs同理,多一个少一个都会直接报错,先看报错再检查签名。第二,默认端口 7860 被占用。本机若同时开着多个 demo 或上次进程没退干净,launch()会提示端口冲突,停掉旧进程即可。第三,注意share=True的含义:它会生成公网可访问的临时链接,任何人拿到链接都能调用你的模型,敏感数据千万别这样暴露;且该链接默认有效期为一周(见guides/04_additional-features/07_sharing-your-app.md)。在 Colab 里launch()会自动生成代理链接,本机则默认只监听本地。
🧭 适用边界
推荐场景:模型效果演示、论文或教学配套展示、内部评审、数据采集原型(配 flagging 功能可把用户输入存成数据集)。不太适合:带复杂业务逻辑的生产产品、对界面像素级定制有要求的官网,这类场景 Gradio 力不从心。如果只需要后端能力、自己写前端,官方提供了gradio_client和 Server 模式(guides/09_gradio-clients-and-lite/)两条互补路径。
想动手的话,第一步就按第 3 节代码把 hello demo 跑起来,打开浏览器确认输入输出都正常,然后再去翻 示例目录——里面有几百个可直接运行的案例,照着抄比自己空想快得多。
【免费下载链接】gradioBuild and share delightful machine learning apps, all in Python. 🌟 Star to support our work!项目地址: https://gitcode.com/GitHub_Trending/gr/gradio
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考