# rag-ai **Repository Path**: 51tech/rag-ai ## Basic Information - **Project Name**: rag-ai - **Description**: 基于Spring-AI的RAG检索增强生成系统,支持文档资料库搜索的数据库自动查询两种模式。 1、底座使用ruoyi框架,springboot3和vue3版本 2、数据库使用MariaDB,支持向量搜索 3、嵌入模型使用ollama,模型可根据自己服务器性能选择,开发阶段使用deepseek-r1:7b做测试 - **Primary Language**: Java - **License**: LGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-06 - **Last Updated**: 2026-02-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RAG-AI 智能问答与检索增强生成系统 ## 项目简介 RAG-AI 是一个基于 RuoYi 框架扩展的智能问答与检索增强生成(RAG)系统,它整合了多种 AI 能力,为用户提供智能化的对话交互、数据检索和知识问答服务。系统采用前后端分离架构,支持 WebSocket 实时通信,具备高效、可扩展的特点。 ## 主要功能 ### 智能对话引擎 - **RAG 引擎**:基于向量检索的增强生成,实现知识库问答 - **QA 引擎**:专业问答系统,支持上下文理解和多轮对话 - **数据库引擎**:自然语言转 SQL,智能查询数据库 - **流式响应**:支持 SSE 和 WebSocket 实时推送响应内容 ### 知识库管理 - **文档管理**:支持多种格式文档的上传、训练和检索 - **数据源配置**:支持多种数据库连接和表结构配置 - **字段映射**:灵活配置数据库字段与问答系统的映射关系 - **增量训练**:支持实时更新和重新训练知识库 ### 对话管理 - **会话历史**:保存和检索历史对话记录 - **上下文记忆**:维护多轮对话的上下文连贯性 - **角色配置**:支持不同场景的专家角色配置 - **权限控制**:基于 RuoYi 框架的细粒度权限管理 ### 系统监控 - **在线用户**:实时监控用户登录状态 - **操作日志**:记录用户操作轨迹 - **服务监控**:监控服务器资源使用情况 - **缓存管理**:Redis 缓存状态监控 ## 技术栈 ### 后端技术 - **核心框架**:Spring Boot 3.5.10 - **安全框架**:Spring Security + JWT - **缓存技术**:Redis - **数据库**:MySQL + Druid 连接池 - **AI 框架**:Spring AI - **WebSocket**:Spring WebSocket - **任务调度**:Quartz - **代码生成**:MyBatis-Plus + Velocity ### 前端技术 - **框架**:Vue3 + Vite - **状态管理**:Pinia - **UI 组件**:Element Plus - **路由管理**:Vue Router - **HTTP 客户端**:Axios - **富文本编辑**:WangEditor ## 快速开始 ### 环境要求 - JDK 21+ - MariaDB 11.8.5+ - Redis 3.0+ - Node.js 16.0+ ### 后端部署 1. **创建数据库** ```sql CREATE DATABASE java_ai DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. **导入 SQL 脚本** ```bash mysql -u root -p java_ai < sql/java_ai.sql ``` 3. **修改配置文件** ```yaml # application-druid.yml spring: datasource: url: jdbc:mysql://localhost:3306/java_ai username: your_username password: your_password redis: host: localhost port: 6379 # application.yml ai: vector-similarity: 0.7 vector-limit: 10 ``` ### 前端部署 1. **安装依赖** ```bash cd ui npm install ``` 2. **启动开发服务器** ```bash npm run dev ``` 3. **构建生产版本** ```bash npm run build:prod ``` ## 访问地址 - **后端服务**:`http://localhost:8080` - **前端界面**:`http://localhost:80` - **API 文档**:`http://localhost:8080/swagger-ui.html` ## 目录结构 ``` rag-ai/ ├── src/main/java/com/ruoyi/ │ ├── chat/ # 聊天相关模块 │ │ ├── common/ # 公共组件 │ │ ├── config/ # 配置类 │ │ ├── controller/ # 控制器 │ │ ├── domain/ # 实体类 │ │ ├── engine/ # 聊天引擎 │ │ ├── response/ # 响应处理 │ │ ├── service/ # 服务层 │ │ └── ws/ # WebSocket │ ├── rag/ # RAG 核心模块 │ │ ├── advisor/ # AI 顾问 │ │ ├── controller/ # 控制器 │ │ ├── domain/ # 实体类 │ │ ├── engine/ # 引擎实现 │ │ ├── mapper/ # 数据映射 │ │ ├── service/ # 服务层 │ │ ├── tools/ # 工具类 │ │ ├── utils/ # 工具类 │ │ └── vo/ # 视图对象 │ └── ... # 其他模块 ├── ui/ # 前端项目 │ ├── src/ │ │ ├── api/ # API 接口 │ │ ├── views/ # 视图组件 │ │ ├── store/ # 状态管理 │ │ └── utils/ # 工具类 │ └── ... └── sql/ # SQL 脚本 ``` ## API 接口 ### 聊天接口 | 接口 | 方法 | 说明 | |------|------|------| | `/ai/chat/rag/{userId}` | GET | RAG 问答流式响应 | | `/ai/chat/qa/{userId}` | GET | QA 问答流式响应 | | `/ai/chat/db/{userId}` | GET | 数据库查询流式响应 | | `/ai/chat/stream/{userId}` | GET | 通用聊天流式响应 | ### RAG 配置接口 | 接口 | 方法 | 说明 | |------|------|------| | `/rag/config` | CRUD | AI 配置管理 | | `/rag/document` | CRUD | 文档管理 | | `/rag/table` | CRUD | 数据表管理 | | `/rag/field` | CRUD | 字段管理 | | `/rag/datasource` | GET | 数据源列表 | ## 许可证 本项目基于 MIT 许可证开源。