🙃关注公众号 funNLPer 白嫖畅读全文🙃
文章目录
1. Intro
gradio是一个能够快速建立机器学习demo web应用的工具,仅需简单的几行代码就能构建机器学习模型的可视化交互demo,并分享给你的朋友使用。
与gradio相同功能的竞品有Streamlit,相比Gradio,Streamlit相对复杂,完全熟练使用需要一定时间。
2. quick start
如下展示了一个简单的case,其他所有的case都可套用该模板
import gradio as gr
# 定义处理函数/模型推理
def greet(name):
return "Hello " + name + "!"
# interface中三个必要参数: 推理函数、输入、输出
demo = gr.Interface(fn=greet, inputs="text", outputs="text")
# 是否开启公网分享
demo.launch(share=False)
可得到如下的界面

3. 基础组件
3.1 应用界面
- 简易界面通常使用
gr.Interface(fn, inputs, outputs, ···)fn是一个包装函数,通常为机器学习模型的推理部分inputs输入,通常是gradio的组件,如gr.Image(), 对于文本、图片等简单类型可直接写成[“text”, “image”]outputs输出,同输入
- 定制化场景通常使用
gr.Blocks()
block一般应用在定制化的复杂场景,可以自己定义很多模块,进行组合,后面会做详细介绍
3.2 输入输出组件
- 图像
gr.Image(value, label, show_label)value: 输入的图像,支持pil, np_array, path, url等格式label: 组件名称show_label: 是否展示组件名称
- 文本
gradio.Textbox(value, lines, placeholder, show_copy_button)value: 输入文本lines: 文本框最少展示行数placeholder: 一般用作提示语show_copy_button: 是否展示复制按钮
- 数字
gr.Number(choices, value, label) - 数据框
gr.DataFrame() - 下拉选项
gr.Dropdown() - markdown
gr.Markdown() - 文件
gr.Files() - 调节带
gradio.Slider(···) - 单选
gradio.Radio(choices, value, label)choice: 选择项listvalue: 默认选定值label: 组件名称
3.3 触发组件
- 按钮组件:
gradio.Button(value)value: 按钮的名称- 通常和click组件联合使用
gradio.Button.click(fn, inputs, outputs)
- 清除按钮:
gradio.ClearButton(components, value)components: 要清除的组件value: 按钮名称- 通常和
gradio.ClearButton.add(components, ···)以及click()方法联合使用
3.4 布局组件
- 标签页:
gr.Tab() - 行布局:
gradio.Row() - 列布局:
gradio.Column() - 折叠项:
gradio.Accordion(label, ···)
3.5 demo
这里我们使用Block和以上部分组件搭建了一个case
def chat(name, lan, repeat=1, machine_name="小明"):
if lan == "chinese":
reply = "你好,"+name+",我叫"+machine_name
elif lan == "english"

本文介绍了gradio工具,它能帮助开发者快速创建机器学习模型的交互式DEMO。gradio与Streamlit相比更简洁易用,通过几个基础组件如输入输出、触发和布局组件,可以构建简易或复杂的UI。文中还提供了基础和进阶组件的使用示例,包括图像、文本、数字、布局等,并鼓励读者探索更优雅的界面设计。
最低0.47元/天 解锁文章
585

被折叠的 条评论
为什么被折叠?



