【AI 探索之旅:从基础认知到前沿突破的深度游六】工具介绍Gradio:WebUI框架

前言

细心的你可能已经发现,我们之前实现的大模型对话都是起一个cmd命令框,通过在CMD命令框展示输入的内容或者输出的内容,这种操作既不方便也不美观。所以它来了:Gradio,一个能让我们拥有可视化界面,方便操作模型的UI框架,本文主要介绍下Gradio的使用,后面就不用在又丑又黑的黑屏框上操作了0.0.

Gradio是什么

Gradio 是一个用于快速构建机器学习模型的交互式Web应用的Python库,它主要是用在简化模型的演示和测试过程,通过一些简单的代码和组件布局,而不需要精通 HTML、CSS 或 Javascript 等,就能让开发者能够快速搭建起一个可视化的界面。

用于展示模型的输入和输出。这不仅有助于模型开发者更好地理解模型的行为,也为最终用户提供了一个可以更直观地输入数据并查看模型的预测结果

安装

bash 复制代码
pip install gradio
# 查看已安装的版本
pip list  | grep gradio

使用

创建一个python文件,假如名字为gradio_test.py

python 复制代码
import gradio as gr

def greet(name, intensity):
    return "Hello, " + name + "!" * int(intensity)

demo = gr.Interface(
    fn=greet,
    inputs=["text", "slider"],
    outputs=["text"],
)

# 运行程序
if __name__ == "__main__":
    demo.launch()

然后运行即可,这里运行程序有2种方式

第一种是普通的加载模式,即是直接使用python demo.py运行,这种方式启动后如果代码有变动,则需要重新启动才能生效;

第二种为热重载,gradio gradio_test.py ,只要对文件进行了更改,该模式就会自动重新加载 Gradio 应用程序,使你的代码改动立即生效。

功能介绍

Interface类

在 Gradio 中, Interface 类是一种高级抽象,只需要指定输入和输出类型就可以快速的为任何 Python 函数创建演示界面。

  • fn:包装用户界面的函数
  • inputs: 输入类型,它的数量应该与函数中的参数相匹配,示例中有「text」,「slider」,那么 userFn函数就需要接受 2 个参数
  • outputs:输出类型,它的数量需要与函数返回的数量相匹配,示例中指定了「text」,那么 greet函数就返回了 1 个字符串

上面的 「input」,「output」是使用的字符串,如果需要自定义输出字段和加上其它可控的属性,那么就需要使用组件类。比如 「gr.Textbox」,「gr.Slider」这种方式了。

详细使用描述,请参考官网文档

Gradio Interface Docs

Blocks

上面的 Interface 是一种高级的 API ,仅仅几个配置就能快速生成界面了,但是它的缺点是不够灵活,不方便自定义界面.

另一种就是使用低级的 API 那就是 Blocks ,它可以创建更加灵活、复杂和细致的用户界面,比如可以创建多列布局,网络布局等,可以单独控制组件的大小、间距、对齐方式等。

python 复制代码
def analyze_data(report_text):
    """
    根据输入的报告数据分析
    """
    if not report_text:
        gr.Info("请先填写报告数据")
    
    return report_text

# 使用'with'语法和Blocks API构造Gradio界面
with gr.Blocks() as demo:
    # 设置标题
    gr.Markdown("## 数据分析")
    # 创建行布局
    with gr.Row():
        # 创建列布局
        with gr.Column():
            # 创建输入框
            input = gr.Textbox(label="销售数据", placeholder="请输入销售数据...")
            # 创建点击按钮
            analyze_button = gr.Button("分析")
            output = gr.Markdown(label="分析结果")
    
    analyze_button.click(analyze_data, inputs=input, outputs=output)


# 运行程序
if __name__ == "__main__":
    demo.launch()

自己再加上连接openai对话的相关代码,不就妥妥一个聊天软件了吗。

以上只是一个简单的 Gradio 入门基础,如果需要更详细深入的学习和研究,可通过参考网址去官网进行学习,Gradio 本身是一个很复杂的库,先掌握一点基础,需要深入的时候 ,再去找相应的模块进行学习即可。

最后

学如逆水行舟不进则退,大家一定记得多练习

相关推荐
aminghhhh4 分钟前
多模态融合【十九】——MRFS: Mutually Reinforcing Image Fusion and Segmentation
人工智能·深度学习·学习·计算机视觉·多模态
格林威7 分钟前
Baumer工业相机堡盟工业相机的工业视觉是否可以在室外可以做视觉检测项目
c++·人工智能·数码相机·计算机视觉·视觉检测
pumpkin8451430 分钟前
一次讲清 FP32 / FP16 / BF16 / INT8 / INT4
ai
陈苏同学34 分钟前
MPC控制器从入门到进阶(小车动态避障变道仿真 - Python)
人工智能·python·机器学习·数学建模·机器人·自动驾驶
努力毕业的小土博^_^1 小时前
【深度学习|学习笔记】 Generalized additive model广义可加模型(GAM)详解,附代码
人工智能·笔记·深度学习·神经网络·学习
小小鱼儿小小林2 小时前
用AI制作黑神话悟空质感教程,3D西游记裸眼效果,西游人物跳出书本
人工智能·3d·ai画图
浪淘沙jkp2 小时前
AI大模型学习二十、利用Dify+deepseekR1 使用知识库搭建初中英语学习智能客服机器人
人工智能·llm·embedding·agent·知识库·dify·deepseek
AndrewHZ4 小时前
【图像处理基石】什么是油画感?
图像处理·人工智能·算法·图像压缩·视频处理·超分辨率·去噪算法
Robot2515 小时前
「华为」人形机器人赛道投资首秀!
大数据·人工智能·科技·microsoft·华为·机器人
J先生x5 小时前
【IP101】图像处理进阶:从直方图均衡化到伽马变换,全面掌握图像增强技术
图像处理·人工智能·学习·算法·计算机视觉