基于streamlit可视化向量知识库配置

以上是效果界面图,使用方法:输入知识库名字以及知识库的描述点击创建,则会创建一个空的知识库文件夹,随后在已有知识库中选择你想要添加文本的知识库(可以是原本已有的知识库也可以是空知识库,不会覆盖原有知识),如果要删除就选择已有知识库然后点delete。

代码:

import os

import pandas as pd
import streamlit as st
from utils.db import chroma_source
st.set_page_config(page_title='Qwen-Chatbot')  # 页面标题
st.header('knowledge_base :robot_face:')  # 标题头
st.sidebar.markdown("## Config")

name = st.text_area(
        label="知识库名字",
    )

file_content = st.text_area(
    label="知识库的描述"
)
folder_path = "knowledge_base/"+name
# 创建文件夹
# 获取用户输入的文件内容

# 添加按钮用于创建文件夹并保存文件内容
if st.button("创建知识库文件夹"):
    # 检查文件夹路径和文件内容是否都不为空
    if folder_path.strip() and file_content.strip():
        # 使用os.makedirs()函数创建文件夹
        os.makedirs(folder_path, exist_ok=True)
        # 构造文件路径
        file_path = os.path.join(folder_path, "file.txt")
        # 将用户输入的文件内容写入文件中
        with open(file_path, "w") as f:
            f.write(file_content)
        st.success(f"File saved successfully at '{file_path}'.")
    else:
        st.error("Please enter both folder path and file content.")


# 显示现有知识库
base_name = os.listdir("knowledge_base")
d_base = []
for name in base_name:
    d_base.append(name)

data_base = pd.DataFrame({
    '知识库': d_base,
})

data_base_name = st.selectbox("已有知识库",data_base['知识库'])
base_path = "knowledge_base/"+data_base_name
# 上传文件
uploaded_files = st.file_uploader("Upload files", accept_multiple_files=True)
save_path = "knowledge_base/"+data_base_name+"/knowledge"
if not os.path.exists(save_path):
    os.makedirs(save_path, exist_ok=True)
if uploaded_files:

    for uploaded_file in uploaded_files:
        filename = os.path.join(save_path, uploaded_file.name)
        with open(filename, "wb") as f:
            f.write(uploaded_file.getvalue())

    chroma_source(base_path)
    st.success(f"Files saved successfully at '{save_path}'. and create KnowledgeBase")


# 删除
import shutil


# 添加一个按钮用于删除文件
if st.button("Delete file"):
    # 检查文件是否存在,如果存在则删除
    if os.path.exists(base_path):
        # 删除目录及其内容
        shutil.rmtree(base_path)
        st.success("File deleted successfully.")
    else:
        st.error("File does not exist.")

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 答:streamlit前端可视化是一种基于Python语言开源框架,可以帮助开发者快速构建交互式的数据可视化应用程序。它提供了简单易用的API,可以轻松地创建各种类型的图表、表格、文本等组件,并支持实时更新和交互操作。 ### 回答2: streamlit是一个用于快速创建交互式网页应用程序的Python库。它提供了简单的API和一些内置组件,使得前端可视化变得非常容易。 使用streamlit,我们可以使用Python编写或导入数据处理、机器学习、可视化等各种功能,然后将它们快速转换为网页应用程序。streamlit的API非常简单易懂,只需几行代码就能构建一个基本的应用。 streamlit具有强大的自动重新加载功能。这意味着我们可以在代码更改后,无需重新启动应用程序,它将自动重新加载并显示最新结果。这种即时反馈使得在前端可视化过程中快速迭代变得非常容易,提高了工作效率。 streamlit还提供了一些内置的组件,如文本、按钮、滑块、选择框等,使得用户能够与应用程序进行交互。这些组件可以轻松地集成到应用程序中,使得用户可以根据自己的需求进行操作和选择,从而增强了用户体验。 除了基本的组件,streamlit还提供了一些高级功能,如图表绘制、地图可视化等。我们可以使用各种流行的数据可视化库(如Matplotlib、Seaborn、Plotly等)来创建各种精美的图表和可视化效果,以呈现数据的不同方面。 总而言之,streamlit是一个简单而强大的前端可视化工具,使得我们能够轻松地将Python代码转换为交互式网页应用程序,提供优秀的用户体验和快速的开发速度。无论是数据科学家、机器学习工程师还是前端开发者,都可以使用streamlit来创建令人印象深刻的前端可视化应用程序。 ### 回答3: Streamlit是一个用于快速创建数据科学和机器学习应用程序的Python库。它提供了一个简单易用的前端框架,使用户能够快速构建具有交互性和可视化效果的应用程序。 使用Streamlit,可以通过编写简单的Python脚本来创建一个完整的Web应用程序。用户可以使用Streamlit库提供的各种组件,例如文本输入框、滑块、下拉菜单等,与应用程序进行交互。同时,用户还可以通过添加图表、表格、地图等可视化元素,使应用程序更加生动直观。 Streamlit的一个主要特点是实时更新。一旦代码更改,应用程序会立即刷新,无需手动重新加载。这对于迭代开发非常方便,可以快速查看结果并进行调整。此外,Streamlit还支持通过多个标签页组织应用程序,使用户可以轻松切换和查看不同的内容。 Streamlit还具有与其他Python库的良好集成能力。用户可以利用Streamlit轻松调用和展示Pandas、Matplotlib、Plotly等流行数据科学和可视化库的功能。此外,由于Streamlit使用Pure Python代码,还可以与其他Python生态系统中的库无缝配合使用。 总而言之,Streamlit是一个功能强大且易于使用的前端可视化工具。它使用户能够快速构建具有交互性和可视化效果的应用程序,并支持实时更新和与其他Python库的集成。无论是初学者还是专业人士,都可以通过Streamlit轻松创建令人印象深刻的数据科学和机器学习应用程序。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值