离线流程开发
实现重点

代码实践
新建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