基于python的大模型可视化开发

        接触到大模型后,会发现很多为了简化可视化,不需要像flask那般,直接借助python完成web界面的可视化,下面介绍几种库:

gradiostreamitdash
主要使用场景可交互小 Demo工作流、DashBoardDashBoard、生产环境的复杂演示应用
上手难度简单简单中等
组件丰富度
综合扩展性
Jupyter Notebook 内支持
是否完全开源部分企业级功能未开源
github stars13.4k23.1k18.2k
案例列表https://github.com/gradio-app/awesome-demoshttps://streamlit.io/galleryhttps://dash.gallery/Portal/

(1)gradio

安装: pip install gradio -i https://pypi.tuna.tsinghua.edu.cn/simple

使用:

Gradio 基于 svelte,官方文档Gradio, 提供两个类来构建应用程序UI:

  1. gr.Interface:gr.Interface模块用于创建简易场景下的应用界面。它是使用Gradio构建交互式应用程序的核心模块之一。通过gr.Interface,您可以快速定义输入和输出函数,并将它们与界面组件进行关联,以创建一个具有交互性的应用程序。这个模块提供了简洁的API和直观的界面,使得构建应用程序变得简单易懂。
  2. gr.Blocks:gr.Blocks模块用于定制化场景下的应用界面。它提供了更高级的界面定制和扩展功能,适用于需要更精细控制界面布局和组件交互的情况。通过gr.Blocks,您可以使用不同的布局块(Blocks)来组织界面组件,以实现更灵活、复杂的界面设计。这个模块适用于那些需要对界面进行高度定制的开发者,可以根据具体需求构建独特的应用界面。

Gradio的应用界面模块提供了不同的选择,根据开发者的需求和技术水平,可以选择使用gr.Interface进行简易场景的应用界面开发,或使用gr.Blocks进行更定制化的界面设计。其常见组件如下:

输入输出组件:

    • gr.Image(图像):用于处理图像输入和输出。
    • gr.Textbox(文本框):用于接收和显示文本输入和输出。
    • gr.DataFrame(数据框):用于处理表格数据的输入和输出。
    • gr.Dropdown(下拉选项):用于创建下拉选项菜单,方便用户进行选择。
    • gr.Number(数字):用于处理数值输入和输出。
    • gr.Markdown:用于渲染和显示Markdown格式的文本。
    • gr.Files:用于处理文件的输入和输出。

控制组件:

    • gr.Button(按钮):用于创建按钮,用户可以点击按钮执行特定的操作。
    • gr.Slider(滑块):用于创建可拖动的滑块,用于选择范围内的数值。
    • gr.Checkbox(复选框):用于创建复选框,用户可以选择或取消选择。
    • gr.Radio(单选框):用于创建单选框,用户可以从多个选项中选择一个。
    • gr.Switch(开关):用于创建开关按钮,用户可以切换开关的状态。
    • gr.ColorPicker(颜色选择器):用于选择颜色的输入和输出。
    • 等等

布局组件:

    • gr.Tab(标签页):用于创建多个标签页,使界面更加有组织和易于导航。
    • gr.Row(行布局):用于将组件水平排列在一行中。
    • gr.Column(列布局):用于将组件垂直排列在一列中。

简单使用案例:

###基于gr.Interface
import gradio as gr
 
def greet(name):
    return "Hello " + name + "!"
 
demo = gr.Interface(
    fn=greet,
    inputs=gr.Textbox(lines=2, placeholder="Name Here..."),
    outputs="text",
)
demo.launch()

###基于gr.Blocks
####with gr.Tab分页, with gr.Accordion可折叠框,with gr.Row()行内显示
import numpy as np
import gradio as gr
 
 
def flip_text(x):
    return x[::-1]
 
 
def flip_image(x):
    return np.fliplr(x)
 
 
with gr.Blocks() as demo:
    gr.Markdown("Flip text or image files using this demo.")
    with gr.Tab("Flip Text"):
        text_input = gr.Textbox()
        text_output = gr.Textbox()
        text_button = gr.Button("Flip")
    with gr.Tab("Flip Image"):
        with gr.Row():
            image_input = gr.Image()
            image_output = gr.Image()
        image_button = gr.Button("Flip")
 
    with gr.Accordion("Open for More!"):
        gr.Markdown("Look at me...")
 
    text_button.click(flip_text, inputs=text_input, outputs=text_output)
    image_button.click(flip_image, inputs=image_input, outputs=image_output)
 
demo.launch()

具体使用可以参考:Gradio入门到进阶全网最详细教程[一]:快速搭建AI算法可视化部署演示(侧重项目搭建和案例分享) - 知乎

 (2) streamit

安装方式:pip install streamit

基本使用:

streamit基于 React ,它的上手使用也非常之简单,下面是一个简单示例

import streamlit as st
import numpy as np
import pandas as pd
st.title("This is my first app")
# 有很多方式展示数据 (表格、数组、pandas的表格数据结构),magic方法、st.write()方法

# magic方法
st.write("magic方法使用")
df = pd.DataFrame({
    'first column': [1, 2, 3, 4],
    'second column': [10, 20, 30, 40]
})
# pd.DataFrame( data, index, columns, dtype, copy)
# data数据,index 行标签,columns列标签 默认为np.arange(n),dtype 每一列数据类型,copy 能复制数据默认false

df  # 每当Streamlit在自己的行中看到变量或文字值时,它都会使用st.write()自动将其写入您的应用程序。

# st.write()方法,可以自动渲染 文本、数据、Matplotlib图形、Altair图表等等。
st.write("write() 方法使用")
st.write(pd.DataFrame({
    'first column': [1, 2, 3, 4],
    'second column': [10, 20, 30, 40]
}))

运行Streamlit的另一种方法是将其作为Python模块运行。这在配置 PyCharm 等 IDE 以使用 Streamlit 时很有用:

# Running

python -m streamlit run your_script.py

# is equivalent to:

streamlit run your_script.py

对其基础使用可以参考streamlit 入门之基本概念 - 知乎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaomu_347

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值