Skip to content

Repository files navigation

Mini-RAG 个人知识库

一个轻量级的个人知识库系统,基于 RAG(检索增强生成)技术,支持文档管理、语义搜索和智能问答。

当前仓库按 Linux 环境维护,开发和部署入口统一为 start.sh / stop.sh

功能特点

  • 📄 文档管理:支持上传和管理文本文档
  • 🔍 语义搜索:基于向量相似度的智能搜索
  • 💬 智能问答:基于知识库内容的 AI 问答
  • 🏷️ 标签分类:支持标签管理和分类
  • 💾 本地存储:数据存储在本地,保护隐私

技术栈

  • 后端: Python + FastAPI
  • 向量数据库: ChromaDB
  • 嵌入模型: ONNX MiniLM-L6-V2 (无需 PyTorch)
  • 前端: HTML/CSS/JavaScript (现代响应式设计)

快速开始

安装依赖

pip install -r requirements.txt

安全配置(必需)

项目现在默认要求管理员令牌,未配置时不会启动。

  1. 复制环境变量模板
cp .env.example .env
  1. 生成一个足够长的随机令牌
openssl rand -hex 32
  1. 把生成的值写入 .env
MINI_RAG_ADMIN_TOKEN=把这里替换成你的随机令牌
MINI_RAG_DEBUG=false
MINI_RAG_CORS_ORIGINS=http://localhost:8000

说明:

  • start.sh 会自动读取项目根目录的 .env
  • start.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            # 项目说明

使用说明

  1. 添加文档: 点击"添加文档"按钮,输入标题和内容
  2. 搜索: 在搜索框输入关键词,系统会进行语义搜索
  3. 问答: 在问答框输入问题,系统会基于知识库回答

许可证

MIT License

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages