Skip to main content

离线流程开发

实现重点​

1772295949601

代码实践​

新建add_file_uploader.py的代码文件

"""
基于Streamlit完成Web网页上传服务

pip install streamlit

streamlit: 当web页面元素发生变化,则代码重新执行一遍
"""
import time
import streamlit as st
from knowledge_base import KnowledgeBaseService

# 添加网页标题
st.title("知识更新服务")

# file_uploader
uploader_file = st.file_uploader(
label="请上传TXT文件",
type=['txt'],
accept_multiple_files=False, # False表示仅接受一个文件的上传
)

# session_state就是一个字典
if "service" not in st.session_state:
st.session_state["service"] = KnowledgeBaseService()


# 提取文件的信息
if uploader_file is not None:
file_name = uploader_file.name
file_type = uploader_file.type
file_size = uploader_file.size / 1024 # KB

st.subheader(f"文件名:{file_name}")
st.write(f"格式:{file_type} | 大小:{file_size:.2f} KB")

# get_value -> bytes -> decode('utf-8')
text = uploader_file.getvalue().decode("utf-8")

with st.spinner("载入知识库中..."):
time.sleep(1)
result = st.session_state["service"].upload_by_str(text, file_name)
st.write(result)

进入到对应文件目录,然后启动:

streamlit run add_file_uploader.py