一个轻量级的个人知识库系统,基于 RAG(检索增强生成)技术,支持文档管理、语义搜索和智能问答。
当前仓库按 Linux 环境维护,开发和部署入口统一为 start.sh / stop.sh。
- 📄 文档管理:支持上传和管理文本文档
- 🔍 语义搜索:基于向量相似度的智能搜索
- 💬 智能问答:基于知识库内容的 AI 问答
- 🏷️ 标签分类:支持标签管理和分类
- 💾 本地存储:数据存储在本地,保护隐私
- 后端: Python + FastAPI
- 向量数据库: ChromaDB
- 嵌入模型: ONNX MiniLM-L6-V2 (无需 PyTorch)
- 前端: HTML/CSS/JavaScript (现代响应式设计)
pip install -r requirements.txt项目现在默认要求管理员令牌,未配置时不会启动。
- 复制环境变量模板
cp .env.example .env- 生成一个足够长的随机令牌
openssl rand -hex 32- 把生成的值写入
.env
MINI_RAG_ADMIN_TOKEN=把这里替换成你的随机令牌
MINI_RAG_DEBUG=false
MINI_RAG_CORS_ORIGINS=http://localhost:8000说明:
start.sh会自动读取项目根目录的.envstart.sh会以后台方式启动服务,并把日志统一写到log/- 浏览器第一次打开页面时,会提示输入这个访问令牌
- 公网部署时,把
MINI_RAG_CORS_ORIGINS改成你的实际域名,例如https://rag.example.com - 更完整的配置说明见
docs/CONFIGURATION.md - 中文配置说明见
docs/CONFIGURATION.zh-CN.md
方式一:前台启动(调试)
python run.py方式二:后台启动(推荐)
bash start.sh查看日志:
tail -f log/app.log
tail -f log/access.log
tail -f log/launcher.log方式一:快捷键停止
- 仅在前台运行
python run.py时使用Ctrl + C
方式二:命令行停止
bash stop.sh如果你需要,也可以继续使用 python stop.py;它同样基于 pkill 停止服务进程。
打开浏览器访问 http://localhost:8000
首次访问会要求输入 .env 中配置的 MINI_RAG_ADMIN_TOKEN。
mini-rag/
├── app/
│ ├── __init__.py
│ ├── main.py # FastAPI 主应用
│ ├── models.py # 数据模型
│ ├── database.py # 数据库管理
│ ├── rag.py # RAG 核心逻辑
│ └── config.py # 配置文件
├── frontend/
│ ├── index.html # 主页面
│ ├── css/
│ │ └── style.css # 样式文件
│ └── js/
│ └── app.js # 前端逻辑
├── data/ # 数据存储目录
├── requirements.txt # Python 依赖
├── run.py # 启动脚本
└── README.md # 项目说明
- 添加文档: 点击"添加文档"按钮,输入标题和内容
- 搜索: 在搜索框输入关键词,系统会进行语义搜索
- 问答: 在问答框输入问题,系统会基于知识库回答
MIT License