- 安装指令:pip install gradio
- 方法介绍
- Interface=》用于构建一些简单的页面,可以直接用这个指令搞定
- 形式=》接收三个参数分别为处理函数、输入、输出三部分,呈现一般左/上为输入,右或下为输出
- fn:将用户界面 (UI) 包裹起来的函数
- inputs:用于输入的 Gradio 组件,组件数应与函数中的参数数匹配
- outputs:用于输出的 Gradio 组件。组件数应与函数的返回值数匹配
- 案例
- 效果
- 可自定义小组件
- 上传文本小组件inputs=gr.Textbox(lines=5,placeholder='请输入',label='name')
- Textbox是定义多行文本框输入/输出,lines可以设置输入行数,placeholder设置输入内容,label设置左上角的标签
- 效果
- 上传图像小组件inputs=gr.Image()
- Image()是接收文本的上传
- 代码
- 效果
- 上传音频小组件inputs=gr.Audio(sources=['microphone'],type='filepath')
- sources代表文件上传形式,可以选microphone录制,或者upload上传
- type为接收音频文件的保存的路径filepath,或者是numpy数组
- 单选框输入组建gr.Radio(['mali','xiaoming'])
- 内一个类别放置多个元素,作为每个选项
- 效果
- 滑动条选择数值Slider
- 单选框输入组建Checkbox
- 上传文本小组件inputs=gr.Textbox(lines=5,placeholder='请输入',label='name')
- 缺陷=》输出输入都有固定位置,不能随便增加多个组建进行多输入
- 如何实现一个多输入?=》将input变成列表
- eg:inputs=[gr.Audio(sources=['microphone','upload'],type='filepath'),gr.Radio(['mali','xiaoming'])]
- 其它
- 形式=》接收三个参数分别为处理函数、输入、输出三部分,呈现一般左/上为输入,右或下为输出
- launch=》主要功能是启动一个本地服务器,使得用户可以在Web浏览器中查看和交互Gradio应用程序
- 提供多种部署方式,包括本地部署、通过HuggingFace托管、FastAPI挂载以及Gradio-lite浏览器集成
- 常用参数
- queue=》允许用户设置界面的并发请求处理限制,对于控制应用程序在高负载情况下的性能非常有用
- gradio.Interface.queue(···)
- 通过queue方法,用户可以指定在任何给定时间可以处理的请求数量
- ChatInterface=》 用于创建聊天机器人UI 的高级抽象,允许通过几行代码围绕聊天机器人模型创建基于 Web 的演示
- 只需要一个参数:fn,它采用一个函数,根据用户输入和聊天历史记录来控制聊天机器人的响应,其他参数可用于控制演示的外观和行为
- 参数介绍
- TabbedInterface=》允许开发者创建带有多个标签页的界面
- 每个标签页可以包含不同的输入和输出组件,使得用户可以在不同的标签页中切换,查看和操作不同的内容
- 初始化参数
- Blocks =》可让组件布局更加灵活,在不适用Blocks的情况下,组件的布局是默认的垂直布局,通过gr.Row , gr.Column等控制组件的布局
- 提供了更大的灵活性和控制,还提供了将相关演示组合在一起的方法,例如使用选项卡进行组件的布局、 触发函数执行的事件、 数据流(例如,输入可以触发输出,从而触发下一级输出)
- 布局
- 行布局(Row):用于水平排列组件;
- 列布局(Column):用于垂直排列组件;
- 标签页(Tab):允许你将界面分割成多个标签页,每个标签页包含独立的组件和布局;
- 案例
- with gr.Blocks() as demo:作为启动程序,以demo启动
- gr.Tab(label='txt.img')是作为标签页,同级多个那就是指定多个标签
- 看整体布局,先水平还是先垂直,然后依次摆放
- 再同级别下那就代表一个格子里面进行多个垂直/水平布局
- gr.Row():水平布局
- gr.Column():垂直布局
- scale=x参数指定布局比例
- 有的组建是有宽度限制的,因此这时候可以指定参数进行调整
- min_width=x可以指定最小宽度
- variant='primary'参数指定按钮为橘黄色
- 可以使用css美化
- with gr.Group():设置组
- gr.Accordion():伸缩和展开
- Interface=》用于构建一些简单的页面,可以直接用这个指令搞定
- 热加载
- 构建 Gradio 演示时,尤其是在 Blocks 之外,可能会发现不断重新运行代码以测试更改很麻烦
- 为了更快、更方便地编写代码,当在 Python IDE(如 VS Code、Sublime Text、PyCharm 等)中进行开发或通常从终端运行 Python 代码时,可以更轻松地立即“重新加载” Gradio 应用程序。我们还开发了一个类似的“魔术命令”,如果您使用 Jupyter Notebooks(或任何类似的环境,如 Colab),它可以更快地重新运行单元格。
- 所谓热加载就是web页面实时显示你的修改,而不是一遍一遍的去运行python xxx.py;
- 怎么做呢?=》只需要改成gradio xxx.py #例如刚才我们的app.py 则运行gradio app.py
- 常用输入组件
- 音频:gr.Audio(sources=["microphone", 'upload'], type="numpy", label="Audio File"),
- 选项:gr.Checkbox(label="Checkbox"),
- 颜色:gr.ColorPicker(label="Color Picker"),
- 表格:gr.Dataframe(label="Dataframe"),
- 下拉选项:gr.Dropdown(['1','2','3'],label="Dropdown"),
- 单选:gr.Radio(['1','2','3'],label="Radio"),
- 文件:gr.File(label="File",type="binary"),
- 图像:gr.Image(sources=["webcam",'upload'], label="Image"),
- 滑动条:gr.Slider(minimum=0,maximum=10,label="Slider",step=2),
- 文本:gr.Textbox(label="Textbox",lines=3,max_lines=5,placeholder="placeholder"),
- 大文本:gr.TextArea(label="Textbox",lines=3,max_lines=5,placeholder="placeholder"),
- 视频:gr.Video(sources=["webcam",'upload'], label="Video"),
- 复选框:gr.Checkboxgroup(['1','2,3'],label="Checkboxgroup"),
- 案例呈现
- 常用输出组件
- 文本
- 图像
- 音频
- 柱状图
- Gallery=》画廊
- 绘图
- Json
- html
- 结合深度学习使用案例
- 图像分类
- 图像分割
- 目标检测
- 启动功能
- button.click(fn,inputs=输入组件,outputs=输出组件)