山东大学项目实训-基于LLM的中文法律文书生成系统(十)- 前端(3) - Streamlit手册

Streamlit手册

快速开始

Streamlit支持的Python版本很多,所以只要有Python环境就行。

pip install streamlit

Hello world

'''
*** filename hello_streamlit.py
'''
import streamlit as st

st.title('Hello, Streamlit!')

st.write('这是我的第一个Streamlit应用。')

启动Streamlit应用:

streamlit run hello_streamlit.py

主要组件和功能

  • Widgets:Streamlit提供了一系列内置的控件,如按钮、选择框、滑块等,使得用户可以与应用进行互动。这些控件可以非常简单地集成到您的应用中,并且Streamlit会自动管理用户输入和应用状态。
  • Data Caching:Streamlit的数据缓存机制允许应用记住特定函数的结果。当您使用相同的参数多次调用该函数时,Streamlit可以从缓存中检索结果,而不是重新执行计算。这对于处理耗时的数据加载或处理操作尤其有用。
  • Layouts:通过使用列(column)、侧边栏(sidebar)、展开器(expander)等布局组件,您可以创建结构化和美观的应用界面。Streamlit的布局系统灵活且易于使用,允许您轻松地定制应用的外观和感觉。
  • Data Visualization:Streamlit直接支持多种数据可视化库,如Matplotlib、Plotly和Altair。这意味着您可以在Streamlit应用中无缝集成丰富的图表和视觉化元素,以动态展示数据。

交互,表单

  • button:按钮
  • download_button:文件下载
  • file_uploader:文件上传
  • checkbox:复选框
  • radio:单选框
  • selectbox:下拉单选框
  • multiselect:下拉多选框
  • slider:滑动条
  • select_slider:选择条
  • text_input:文本输入框
  • text_area:文本展示框
  • number_input:数字输入框,支持加减按钮
  • date_input:日期选择框
  • time_input:时间选择框
  • color_picker:颜色选择器
import streamlit as st

@st.cache_data
def expensive_computation(a, b):
    # 模拟一些很复杂的计算
    return a * b

input_a = st.number_input("输入a", value=1)
input_b = st.number_input("输入b", value=1)

output = expensive_computation(input_a, input_b)
st.write("计算结果(:", output)


name = st.text_input("请输入您的名字", value="John Doe")
occupation = st.selectbox("请选择您的职业", ("学生", "教师", "工程师"))
age = st.slider("请选择您的年龄", min_value=0, max_value=100, value=30, step=1)

st.write(f"您好,{name}!您是一位{occupation},今年{age}岁。")

多媒体组件

  • image:图片 st.image
  • audio:音频 st.audio
  • video:视频 st.video

页面,侧边栏,布局

  • st.sidebar:侧边栏
  • st.empty:空白占位
  • st.markdown:Markdown
  • st.columns:多列布局
  • st.expander:展开收起
  • st.beta_expander:展开收起
  • st.container:容器
color = st.sidebar.color_picker('Pick A Color', '#00f900')

提示信息

streamlit提供了多种函数用于显示不同类型的消息,以呈现不同级别的通知和反馈。

st.error: 用于显示错误消息。通常用于向用户报告发生的错误或异常。
st.warning: 用于显示警告消息。通常用于向用户提供潜在的问题或需要注意的情况。
st.info: 用于显示一般信息消息。可以用于提供一般性的信息或指导。
st.success: 用于显示成功消息。通常用于向用户报告任务或操作成功完成。
st.exception: 用于显示异常消息。当发生异常时,可以使用此函数将异常信息呈现给用户。

这些函数提供了一种直观的方式来向用户传达不同类型的信息,并帮助改善用户体验。使用适当的消息类型能够更清晰地传达信息的重要性和紧急性。

import streamlit as st
 
st.error('错误信息')
 
st.warning('警告信息')
 
st.info('提示信息')
 
st.success('成功信息')
 
st.exception('异常信息')

显示执行状态

st.progress:用于显示一个进度条,可以设置最小值、最大值和当前值。它通常用于表示长时间运行的非阻塞任务的进度。
st.spinner:用于显示一个旋转的加载器,表示任务正在执行。它通常用于表示短时间运行的任务的执行状态。当任务完成时,加载器将自动消失。

import streamlit as st
import time
 
progress_bar = st.empty()
 
for i in range(10):
    progress_bar.progress(i / 10, '进度')
    time.sleep(0.5)
 
with st.spinner('加载中...'):
    time.sleep(2)

缓存修饰器

@st.cache_data装饰器用于记忆函数的历史执行。当使用@st.cache装饰一个函数时,Streamlit 会将该函数的结果存储在一个缓存中,以便在后续调用中直接返回缓存的结果,而不是重新计算。这可以提高应用程序的性能,特别是在处理大量数据或计算密集型任务时。

参数如下:
func:要缓存的函数。如果提供了函数,则会对该函数的计算结果进行缓存。如果为None,则返回一个可以接受函数作为参数的装饰器。
ttl(int or None):必需。缓存的生存时间,以秒为单位。在缓存的生存时间内,对函数的调用将返回缓存的结果而不是重新计算。如果设置为None,缓存将永不过期。
max_entries(int or None):可选。缓存的最大条目数。当达到指定的最大条目数时,新的计算结果将替换最早的计算结果。
show_spinner(bool):可选。当进行缓存计算时,是否显示加载指示器。默认为True。
persist(bool):可选。是否将缓存数据持久化到磁盘。如果为True,数据将在应用程序重新启动时仍然存在。默认为False。
experimental_allow_widgets(bool):可选。是否允许在被缓存的函数中使用Streamlit小部件。默认为False。启用此选项时,可以在被缓存的函数中使用小部件。
hash_funcs(dictorNone):可选。用于指定自定义哈希函数的字典。键是参数名称,值是哈希函数。如果为None,将使用默认哈希函数。

多页面设置

步骤:

1 创建主的.py文件 (以home.py)为例子

2 和主文件 同目录级下创建 名为 pages或Pages的文件夹(文件夹的名字必须为这两个,换成其他文件名的话,它就不会识别当作子页面了)

image-20240624075252635

image-20240624075305775

posted @ 2024-05-31 08:31  H1S96  阅读(219)  评论(0)    收藏  举报