# local-rag-qa **Repository Path**: uwin_tech/local-rag-qa ## Basic Information - **Project Name**: local-rag-qa - **Description**: 基于 RAG (Retrieval-Augmented Generation) 和大语言模型的本地知识库问答系统,支持多种文档格式,完全本地部署,保障数据安全。 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-03-06 - **Last Updated**: 2025-03-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: Express, JavaScript ## README # 本地知识库问答系统 (Local RAG QA) 基于 RAG (Retrieval-Augmented Generation) 和大语言模型的本地知识库问答系统,支持多种文档格式,完全本地部署,保障数据安全。 ## 功能特性 - **多格式文档支持**:支持 PDF、Word、Markdown、纯文本等多种文档格式 - **向量化处理**:自动将文档分块并生成向量表示,支持语义搜索 - **智能问答**:基于大语言模型,结合检索增强生成技术,提供准确的问答服务 - **完全本地部署**:所有组件均可本地部署,无需联网,保障数据安全 - **响应式设计**:支持桌面和移动设备,提供一致的用户体验 - **实时反馈**:流式响应,即时获取回答 - **引用溯源**:清晰展示回答来源,支持查看原文 ## 系统架构 本系统采用前后端分离架构,主要由以下组件构成: - **前端**:基于 Vue 3 + Element Plus 构建的用户界面 - **后端**:基于 Node.js + Express 构建的 API 服务 - **向量数据库**:使用 Milvus 存储文档向量 - **大语言模型**:使用 Ollama 部署的本地大语言模型 ## 系统要求 ### 最低配置 - CPU: 4核 - 内存: 8GB RAM - 存储: 20GB 可用空间 - GPU: 不要求 - 操作系统: - Linux (Ubuntu 20.04+) - macOS 12+ - Windows 10/11 + WSL2 ### 推荐配置 - CPU: 8核或更多 - 内存: 16GB RAM 或更多 - 存储: 50GB SSD - GPU: NVIDIA GPU 8GB+ VRAM (用于加速模型推理) - 操作系统: - Linux (Ubuntu 22.04+) - macOS 13+ - Windows 11 + WSL2 ### 软件依赖 - Docker Engine 24.0+ - Docker Compose v2.0+ - Node.js 18.0+ - npm 8.0+ ### 网络要求 - 首次运行需要下载模型文件(约 8GB) - 建议有稳定的网络连接 ### 模型文件大小 - deepseek-r1:1.5b: ~2GB - nomic-embed-text: ~1GB ### 容器资源分配 - Milvus: 4GB RAM - Ollama: 8GB RAM (使用 GPU 时可降至 4GB) - Backend: 1GB RAM - Frontend: 512MB RAM 注意:以上配置仅供参考,实际资源占用可能因使用场景和负载而异。 ## 快速开始 ### 前置条件 - Node.js >= 18 - Docker 和 Docker Compose ### 安装步骤 1. 克隆仓库 ```bash git clone https://github.com/yourusername/local-rag-qa.git cd local-rag-qa ``` 2. 配置环境变量 复制示例配置文件并根据需要修改: ```bash cp .env.example .env ``` 3. 使用 Docker Compose 启动所有服务 ```bash # 启动所有服务 docker-compose up -d # 查看服务状态 docker-compose ps ``` 这将启动以下服务: - Milvus 向量数据库 - Ollama 模型服务 - 后端 API 服务 - 前端 Web 服务 4. 等待服务初始化 首次启动时,系统会自动: - 拉取必要的 Docker 镜像 - 下载 AI 模型(deepseek-r1:1.5b、nomic-embed-text) - 初始化数据库 5. 访问系统 服务启动完成后,打开浏览器访问: - 前端界面:http://localhost:5173 - API 文档:http://localhost:3000/api/docs ## 使用 Docker 的优势 - 一键部署:使用单个命令启动所有服务 - 环境一致:避免环境配置问题 - 资源隔离:各服务独立运行 - 易于管理:统一的服务编排和监控 - 快速迁移:支持在不同环境间轻松迁移 ## 开发模式 如果需要进行开发,可以选择性地本地运行前后端服务: ```bash # 本地运行后端(需要 Node.js 环境) cd backend npm install npm run dev # 本地运行前端(需要 Node.js 环境) cd frontend npm install npm run dev ``` ## 使用指南 ### 文档管理 1. 在"文档管理"页面上传文档 2. 上传完成后,点击"向量化"按钮处理文档 3. 处理完成后,文档将可用于问答 ### 问答交互 1. 在"问答"页面输入问题 2. 系统会自动检索相关文档内容并生成回答 3. 回答下方会显示引用来源,点击可查看原文 ## 配置说明 ### 后端配置 配置文件位于 `backend/src/config/model.json`,主要配置项包括: - 服务器配置(端口、上传目录等) - Milvus 连接配置 - Ollama 模型配置(模型名称、参数等) ### 前端配置 可通过"设置"页面调整以下配置: - Ollama 服务地址 - 对话模型选择 - 向量模型选择 - 模型参数(温度、top_p、top_k等) ## 技术栈 - **前端**:Vue 3、Vite、Pinia、Element Plus - **后端**:Node.js、Express、Milvus SDK - **数据库**:Milvus 向量数据库 - **AI 模型**:Ollama、deepseek-r1、nomic-embed-text ## 许可证 本项目采用 MIT 许可证 ## 开发指南 ### 项目结构 ``` local-rag-qa/ ├── frontend/ # 前端项目 │ ├── src/ # 源代码 │ │ ├── components/ # 组件 │ │ ├── views/ # 页面 │ │ ├── api/ # API 调用 │ │ ├── store/ # 状态管理 │ │ └── ... ├── backend/ # 后端项目 │ ├── src/ # 源代码 │ │ ├── controllers/ # 控制器 │ │ ├── services/ # 服务层 │ │ ├── routes/ # 路由 │ │ └── ... │ ├── config/ # 配置文件 │ └── data/ # 数据存储 └── docs/ # 文档 ```