# rag_kb **Repository Path**: dzyuan/rag_kb ## Basic Information - **Project Name**: rag_kb - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-06 - **Last Updated**: 2026-03-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RAG 知识库系统 基于 DeepSeek 大模型的本地知识库问答系统,实现准确、无幻觉的专业知识问答。 ## 系统架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ 前端界面 (Vue 3) │ │ 知识库管理 │ 文档上传 │ 智能问答 │ 系统设置 │ └─────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ FastAPI 后端服务 │ │ 认证模块 │ 知识库管理 │ 文档处理 │ RAG Pipeline │ └─────────────────────────────────────────────────────────────┘ │ ┌─────────────────────┼─────────────────────┐ ▼ ▼ ▼ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ MySQL │ │ Qdrant │ │ DeepSeek │ │ (用户/知识库)│ │ (向量存储) │ │ (LLM) │ └──────────────┘ └──────────────┘ └──────────────┘ ``` ## 核心特性 - **多知识库支持**:创建和管理多个独立的知识库 - **用户认证**:完整的注册、登录、权限管理 - **多格式文档支持**:TXT、Markdown、PDF、Word、图片(OCR) - **RAG 完整流程**:Embedding → Vector Search → Rerank → LLM Generation - **本地部署**:数据完全本地存储,保护隐私 - **流式响应**:支持实时流式输出 ## 快速开始 ### 1. 环境准备 ```bash # 克隆或下载项目后,进入目录 cd rag_kb # 创建虚拟环境(推荐) python -m venv venv venv\Scripts\activate # Windows # source venv/bin/activate # Linux/Mac # 安装依赖 pip install -r requirements.txt ``` ### 2. 配置环境变量 ```bash # 复制配置模板 copy .env.example .env ``` 编辑 `.env` 文件,配置以下内容: ```env # 数据库配置 DB_HOST=localhost DB_PORT=3306 DB_NAME=rag_kb DB_USER=root DB_PASSWORD=your_password # JWT认证 SECRET_KEY=your-secret-key-change-in-production # DeepSeek API DEEPSEEK_API_KEY=your_deepseek_api_key DEEPSEEK_BASE_URL=https://api.deepseek.com DEEPSEEK_MODEL=deepseek-chat # Embedding配置 USE_LOCAL_EMBEDDING=true EMBEDDING_MODEL=bge-small-zh-v1.5 EMBEDDING_DEVICE=cpu # Rerank配置 USE_RERANK=true RERANK_MODEL=bge-reranker-base ``` ### 3. 启动 Qdrant 向量数据库 ```bash # 使用 Docker 启动 Qdrant docker run -p 6333:6333 -p 6334:6334 -v qdrant_storage:/qdrant/storage qdrant/qdrant ``` ### 4. 启动服务 ```bash # Windows start.bat # 或手动启动 python main.py ``` 服务启动后访问:http://localhost:8000 ## 使用指南 ### 1. 注册/登录 首次访问需要注册账号,注册后自动创建默认知识库。 ### 2. 创建知识库 1. 点击"创建知识库"按钮 2. 输入知识库名称和描述 3. 可选择是否公开知识库 ### 3. 上传文档 1. 选择知识库 2. 拖拽或点击选择文件上传 3. 支持格式:TXT、Markdown、PDF、Word、图片 ### 4. 智能问答 1. 切换到"智能问答"视图 2. 选择知识库 3. 输入问题,系统会: - 检索相关文档 - 重排序提高精度 - 调用大模型生成答案 ## 技术栈 | 组件 | 技术 | |------|------| | 后端 | FastAPI, SQLAlchemy | | 数据库 | MySQL, Qdrant | | Embedding | BGE (bge-small-zh-v1.5) | | Rerank | BGE Reranker | | LLM | DeepSeek Chat | | 前端 | Vue 3 | ## 性能优化 - 文档自动分块(默认500字符,重叠50字符) - 向量检索使用余弦相似度 - Rerank 提升检索精度 - 异步文档处理,不阻塞主流程 - Embedding 结果缓存 ## 目录结构 ``` rag_kb/ ├── backend/ # 后端模块 │ ├── auth.py # 认证模块 │ ├── database.py # 数据库连接 │ ├── models.py # 数据模型 │ ├── document_processor.py # 文档处理 │ ├── embedding.py # 嵌入模型 │ ├── vector_store.py # 向量存储 │ ├── reranker.py # 重排序 │ └── llm.py # 大模型客户端 ├── frontend/dist/ # 前端静态文件 │ ├── index.html │ ├── css/main.css │ └── js/app.js ├── uploads/ # 上传文件存储 ├── main.py # 应用入口 ├── requirements.txt # Python依赖 ├── .env.example # 配置模板 └── start.bat # 启动脚本 ``` ## 常见问题 ### Q: 上传文档后需要等待处理吗? A: 文档上传后会异步处理,处理完成后自动更新状态。 ### Q: 如何选择 Embedding 模型? A: 默认使用 bge-small-zh-v1.5,适合中文。如果有更高精度需求可使用 bge-base-zh-v1.5。 ### Q: Rerank 是必须的吗? A: Rerank 能显著提升检索精度,建议启用。如果追求响应速度可关闭。 ## License MIT License