note10-Gradio使用示例

173 阅读2分钟

Gradio 是一个用于快速创建和分享机器学习模型交互界面的 Python 库。它允许开发者通过简单的代码构建用户友好的 Web 界面,方便用户与机器学习模型进行交互,而无需编写复杂的前端代码。Gradio 特别适合用于演示、测试和部署机器学习模型。

主要特点

  1. 简单易用:只需几行代码即可创建交互界面。
  2. 支持多种输入输出:支持文本、图像、音频、视频、表格等多种输入输出格式。
  3. 快速分享:可以生成可分享的链接,方便他人远程访问。
  4. 与主流框架兼容:支持 TensorFlow、PyTorch、Scikit-learn 等主流机器学习框架。
  5. 可嵌入:可以将界面嵌入到 Jupyter Notebook 或网页中。

安装

我在安装过程中一直提示安装失败, 最后换了一下解释器, 选择系统本地解释器, 换到 python3.13 版本, 然后安装成功了。

使用 pip 安装 Gradio:

pip install gradio

分享界面

Gradio 支持通过 share=True 参数生成一个公共链接,方便他人远程访问:

iface.launch(share=True)

适用场景

  • 模型演示:快速展示机器学习模型的功能。
  • 原型开发:在开发初期快速测试模型效果。
  • 教学与学习:帮助学生或初学者理解模型的工作原理。
  • 团队协作:方便团队成员测试和反馈模型。

Gradio 是一个功能强大且易于使用的工具,特别适合需要快速构建和分享机器学习模型交互界面的场景。

demo1

import gradio

def hello(name):
    return f"Hello {name}"

demo = gradio.Interface(
    fn = hello,
    inputs = [
        gradio.Text(label = '姓名', value = 'runningTurtle', lines = 5)
    ],
    outputs = [
        gradio.Text(label = '输出', lines = 5)
    ]
)

if __name__ == '__main__':
    demo.launch()

image.png

demo2 女仆聊天机器人

import time
import gradio

# 调整页面宽度和占位
css = '''
.gradio-container { max-width: 850px !important; margin: 20px auto !important; }
.message { padding: 10px !important; font-size: 14px !important;}
'''

def talk(message, history):
    pos = message.find('吗')
    time.sleep(1)
    if pos != -1:
        return '喵呜,主人我已经' + message[:pos]
    else:
        return '喵呜,主人' + message

demo = gradio.ChatInterface(
    css = css,
    title = '女仆聊天机器人',
    chatbot = gradio.Chatbot(height = 400, bubble_full_width = False),
    theme = gradio.themes.Default(spacing_size = 'sm', radius_size = 'sm'),
    textbox = gradio.Textbox(placeholder = '开始跟女仆聊天吧', container = False, scale = 7),
    examples = ['你在干什么呢?', '摸摸头', '该做家务了'],
    submit_btn = '发送命令',
    fn = talk
)

if __name__ == '__main__':
    demo.launch(debug = True)

image.png