CoolFace
Apppublic

MoonLightShining/KnowledgeBaseAide

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
App README

个人知识库助手 KnowledgeBaseAide

一个基于 Flask + SQLite + FAISS + ZhipuAI(智谱AI) 的个人知识库管理与智能问答系统。 用户可以 注册/登录账号,上传文档(支持 .txt / .md / .pdf),系统会自动解析文档内容,切分为片段并生成向量索引,之后用户可以在知识库中进行语义检索与智能问答。


功能特性

  • 用户管理:注册、登录、登出,保证知识库的私密性。
  • 文档上传与解析:支持 .txt.md.pdf 文件。
  • 分块与向量化:文档会被分段处理,并通过 ZhipuAI Embedding API 生成向量表示。
  • FAISS 检索:基于向量相似度检索相关文档片段。
  • 智能问答:结合相关片段内容,调用 ZhipuAI Chat API (glm-4) 回答问题。
  • 文档管理:支持删除文档,自动重建索引。
  • Web 界面:基于 Flask + Jinja2 模板,提供简洁的操作界面。

技术栈

  • 后端框架:Flask
  • 数据库:SQLite (通过 SQLAlchemy ORM)
  • 向量数据库:FAISS
  • AI 服务:ZhipuAI (embedding + chat)
  • 用户认证:Flask-Login
  • 表单处理:Flask-WTF
  • 文件处理:PyMuPDF (fitz) 解析 PDF

项目结构

bash
.
├── app.py                # 主程序入口
├── templates/            # HTML 模板
│   ├── base.html
│   └── index.html
│   ├── login.html
│   ├── register.html
├── static/              # (放CSS和background)
├── uploads/              # 用户上传的文档存储目录
├── instance/             # SQLite 数据库存放目录
├── requirements.txt      # Python 依赖
└── README.md             # 项目说明文档

安装与运行

1. 克隆项目

bash
git clone https://github.com/JLChennn/KnowledgeBaseAide.git
cd KnowledgeBaseAide

2. 创建虚拟环境并安装依赖

bash
python -m venv venv
source venv/bin/activate   # Mac/Linux
venv\Scripts\activate      # Windows

pip install -r requirements.txt

3. 配置环境变量

在根目录新建 .env 文件,并添加:

ini
ZHIPUAI_API_KEY=你的智谱AI_API_KEY

补充说明:这个 Key 可以在 智谱AI开放平台 https://open.bigmodel.cn/ 获取(注册即送免费额度)

4. 运行项目

bash
python app.py

访问 http://127.0.0.1:5000 即可使用。

(可选)若项目运行出错,建议手动初始化数据库,进入项目终端,根目录下依次输入:

flask shell
from app import db
db.create_all()
exit()

再重新运行项目


使用说明

  1. 1.注册新用户并登录。
  2. 2.上传支持格式的文档(.txt, .md, .pdf),系统会自动解析文档、生成向量并构建知识库。
  3. 3.在问答输入框中输入问题,系统会基于知识库进行语义检索并生成答案。
  4. 4.可以删除文档,系统会自动更新索引。

注意事项

  • API Key 必须有效,否则嵌入与问答功能无法使用。
  • 上传 文档 时需保证文档有可提取的文字。
  • 默认使用 FAISS 本地索引,每个用户维护独立的向量索引文件。
  • 当前运行在 debug 模式,生产环境建议关闭 debug 并配置更安全的 SECRET_KEY

TODO / 改进方向

  • 增加文件夹分类管理文档
  • 支持更多文档格式(如 Word, Excel)
  • 增加异步任务队列,提高大文档处理效率
  • 优化前端 UI/UX
  • 增加导出知识库功能

License

本项目仅供学习与个人使用,如需商用请自行修改并遵循相关 API 服务协议。