MoonLightShining/KnowledgeBaseAide
0
个人知识库助手 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
项目结构
.
├── app.py # 主程序入口
├── templates/ # HTML 模板
│ ├── base.html
│ └── index.html
│ ├── login.html
│ ├── register.html
├── static/ # (放CSS和background)
├── uploads/ # 用户上传的文档存储目录
├── instance/ # SQLite 数据库存放目录
├── requirements.txt # Python 依赖
└── README.md # 项目说明文档安装与运行
1. 克隆项目
git clone https://github.com/JLChennn/KnowledgeBaseAide.git
cd KnowledgeBaseAide2. 创建虚拟环境并安装依赖
python -m venv venv
source venv/bin/activate # Mac/Linux
venv\Scripts\activate # Windows
pip install -r requirements.txt3. 配置环境变量
在根目录新建 .env 文件,并添加:
ZHIPUAI_API_KEY=你的智谱AI_API_KEY补充说明:这个 Key 可以在 智谱AI开放平台 https://open.bigmodel.cn/ 获取(注册即送免费额度)
4. 运行项目
python app.py访问 http://127.0.0.1:5000 即可使用。
(可选)若项目运行出错,建议手动初始化数据库,进入项目终端,根目录下依次输入:
flask shell
from app import db
db.create_all()
exit()再重新运行项目
使用说明
- 注册新用户并登录。
- 上传支持格式的文档(
.txt,.md,.pdf),系统会自动解析文档、生成向量并构建知识库。 - 在问答输入框中输入问题,系统会基于知识库进行语义检索并生成答案。
- 可以删除文档,系统会自动更新索引。
注意事项
- API Key 必须有效,否则嵌入与问答功能无法使用。
- 上传 文档 时需保证文档有可提取的文字。
- 默认使用 FAISS 本地索引,每个用户维护独立的向量索引文件。
- 当前运行在 debug 模式,生产环境建议关闭 debug 并配置更安全的
SECRET_KEY。
TODO / 改进方向
- 增加文件夹分类管理文档
- 支持更多文档格式(如 Word, Excel)
- 增加异步任务队列,提高大文档处理效率
- 优化前端 UI/UX
- 增加导出知识库功能
License
本项目仅供学习与个人使用,如需商用请自行修改并遵循相关 API 服务协议。
