关注公众号 funNLPer 白嫖畅读全文
gradio是一个能够快速建立机器学习demo web应用的工具,仅需简单的几行代码就能构建机器学习模型的可视化交互demo,并分享给你的朋友使用。
与gradio相同功能的竞品有Streamlit,相比Gradio,Streamlit相对复杂,完全熟练使用需要一定时间。
如下展示了一个简单的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)
gr.Interface(fn, inputs, outputs, ···)
fn
是一个包装函数,通常为机器学习模型的推理部分inputs
输入,通常是gradio的组件,如gr.Image()
, 对于文本、图片等简单类型可直接写成[“text”, “image”]outputs
输出,同输入gr.Blocks()
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()
gr.Markdown()
gr.Files()
gradio.Slider(···)
gradio.Radio(choices, value, label)
choice
: 选择项listvalue
: 默认选定值label
: 组件名称gradio.Button(value)
value
: 按钮的名称gradio.Button.click(fn, inputs, outputs)
gradio.ClearButton(components, value)
components
: 要清除的组件value
: 按钮名称gradio.ClearButton.add(components, ···)
以及click()
方法联合使用gr.Tab()
gradio.Row()
gradio.Column()
gradio.Accordion(label, ···)
这里我们使用Block和以上部分组件搭建了一个case
def chat(name, lan, repeat=1, machine_name="小明"):
if lan