# RAG-Ai-应用系统-2班7组 **Repository Path**: hyo-ja/rag-ai-application-system-class2-group7 ## Basic Information - **Project Name**: RAG-Ai-应用系统-2班7组 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2025-08-15 - **Last Updated**: 2025-08-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于 RAG+AI 的知识问答应用系统 ## 📋 项目概述 本项目是一个基于 RAG(检索增强生成)技术和 AI 的智能知识问答系统,旨在为用户提供高效、准确的知识检索和问答服务。系统支持多种文档格式上传,通过向量化技术实现智能检索,并提供多端访问能力。 ### 🎯 项目目标 - 构建完整的 RAG 知识问答系统 - 支持多种格式文档的智能处理 - 提供管理后台和多端用户应用 - 实现基于权限的文档访问控制 - 提供智能对话式知识检索体验 ### 📈 技术特色 - **RAG 技术**: 结合检索和生成,提供精准回答 - **向量检索**: 基于语义相似度的智能搜索 - **多模态支持**: 文本、图片等多种格式文档处理 - **多端适配**: 小程序、H5、App 全平台覆盖 - **权限管理**: 灵活的文档访问权限控制 ## 🏗️ 技术架构 ### 后端技术栈 - **框架**: .NET 8 Web API - **架构模式**: 整洁架构 (Clean Architecture) + 领域驱动设计 (DDD) - **数据库**: PostgreSQL 15+ - **向量存储**: pgvector 扩展 / 专用向量数据库 - **AI 集成**: OpenAI API / 国产大模型 - **文档处理**: 多格式文档解析和向量化 ### 前端技术栈 - **管理后台**: Vue 3 + Element UI Plus + TypeScript - **多端应用**: Uniapp 框架 - 微信小程序/支付宝小程序/字节跳动小程序 - H5 端(移动端浏览器) - App 端(iOS/Android/HarmonyOS) - **特点**: 一套代码,多端发布,统一开发体验 ### 支持的文档格式 - 📄 文本文档: TXT、Markdown - 📋 Office 文档: PDF、Word(.doc/.docx)、PowerPoint(.ppt/.pptx)、Excel(.xls/.xlsx) - 🖼️ 图片文件: PNG、JPG/JPEG ## 📚 文档结构 ``` docs/ ├── 需求文档.md # 详细的功能需求规格说明 ├── 项目结构模板.md # 推荐的项目组织结构 ├── 开发指南.md # 详细的开发步骤和代码示例 ├── API文档.md # API接口文档(待补充) ├── 部署文档.md # 部署说明和运维指南(待补充) └── 用户手册.md # 用户使用说明(待补充) ``` ## 🚀 快速开始 ### 环境要求 - .NET 8 SDK - PostgreSQL 15+ (含 pgvector 扩展) - Node.js 18+ - Docker & Docker Compose (可选) ### 本地开发环境运行 #### 1. 克隆项目 ```bash git clone https://github.com/your-org/rag-ai-application-system.git cd rag-ai-application-system ``` #### 2. 数据库设置 ```bash # 启动PostgreSQL (如果使用Docker) docker run --name postgres-rag \ -e POSTGRES_DB=ragdb \ -e POSTGRES_USER=raguser \ -e POSTGRES_PASSWORD=ragpass \ -p 5432:5432 \ -d pgvector/pgvector:pg15 # 安装pgvector扩展 psql -h localhost -U raguser -d ragdb -c "CREATE EXTENSION IF NOT EXISTS vector;" ``` # 启动后端服务 cd backend dotnet restore dotnet ef database update # 运行数据库迁移 dotnet run --project RAG.Api # API 服务将在 http://api-rag.monkeymeerkat.cn 启动 # 启动管理后台 cd frontend/admin npm install npm run dev # 访问 http://rag-backend-management.monkeymeerkat.cn/ # 启动 Uniapp 应用 cd frontend/uniapp npm install # 使用 HBuilderX 打开项目,或使用命令行 npm run dev:h5 # H5 端开发 npm run dev:mp-weixin # 微信小程序开发 # H5 端访问 http://rag-ai-miniprogram.monkeymeerkat.cn/ #### 4. 前端启动 ```bash # 管理后台 cd frontend/admin npm install npm run dev # 访问 http://localhost:3000 # H5端 cd frontend/mobile/h5 npm install npm run dev # 访问 http://localhost:3001 ``` ### Docker 一键部署 ```bash # 设置环境变量 export OPENAI_API_KEY=your_openai_api_key # 启动所有服务 docker-compose up -d # 查看服务状态 docker-compose ps ``` 服务访问地址: - 管理后台: http://rag-backend-management.monkeymeerkat.cn/ - API 文档: http://localhost:5000/swagger - Uniapp H5 端: http://rag-ai-miniprogram.monkeymeerkat.cn/ - 小程序端: 使用微信开发者工具打开 ## 📱 功能特性 ### 管理后台功能 - ✅ 文档上传和管理(支持批量上传) - ✅ 文档权限设置(对内/对外公开) - ✅ 向量化处理状态监控 - ✅ 用户对话记录查看 - ✅ 系统统计和分析 ### 用户端功能 - ✅ 智能问答对话 - ✅ 历史对话记录 - ✅ 文档浏览和搜索 - ✅ 多端同步访问 - ✅ 权限验证和访问控制 ### AI 能力 - 🧠 基于 RAG 的智能问答 - 🔍 语义相似度检索 - 📊 回答可信度评分 - 🎯 相关文档引用 - 💬 上下文理解 ## 🗂️ 项目结构 ``` rag-ai-application-system-class2-group7/ ├─ readme.md # 项目说明文档 ├─ docker-compose.yml # Docker 部署编排 ├─ docs/ # 项目文档 ├─ backend/ # 后端 API 服务(整洁架构 + DDD) │ ├─ RAG.Api/ # 接口层(Controllers/Middleware/Program) │ ├─ RAG.Application/ # 应用层(Services/DTOs/Commands/Queries) │ ├─ RAG.Domain/ # 领域层(Entities/DomainEvents/Repositories) │ ├─ RAG.Infrastructure/ # 基础设施层(EF Core/Repositories/Migrations) │ └─ RAG.Tests/ # 测试项目 ├─ frontend/ # 前端应用 │ ├─ admin/ # 管理后台(Vue3 + Element Plus) │ │ └─ src/ # 业务源码(views/router/stores/utils...) │ └─ uniapp/ # 多端应用(UniApp) │ ├─ api/ # API 接口 │ ├─ pages/ # 页面 │ ├─ store/ # 状态管理 │ ├─ utils/ # 工具方法 │ └─ static/ # 静态资源 ├─ database/ # 数据库脚本(初始化/迁移/种子数据) ├─ deployment/ # 部署配置(Nginx 等) └─ uploads/ # 文件上传目录 ``` ## 🔧 开发指南 详细的开发指南请参考:[开发指南.md](docs/开发指南.md) 包含以下内容: - 环境搭建步骤 - 项目初始化 - 核心功能开发示例 - 数据库设计 - API 设计规范 - 前端组件开发 - 测试编写 ## 📋 开发计划 ### 第一周 (Day 1-7) - [x] 项目结构搭建和环境配置 - [x] 数据库设计和基础 API 开发 - [x] 文档上传和处理功能 - [ ] RAG 核心功能实现 - [ ] 管理后台基础界面 ### 第二周 (Day 8-14) - [ ] 用户端应用开发(小程序、H5、App) - [ ] 功能完善和性能优化 - [ ] 测试和部署 - [ ] 文档完善 ## 📊 考评标准 本项目将从以下维度进行考评: ### 项目完成度 (40%) - 核心功能实现完整性 - 系统稳定性和性能 - 用户体验设计 - 代码质量和规范性 ### 文档完整度 (30%) - 需求分析文档 - 技术设计文档 - API 接口文档 - 用户使用手册 ### README 完善度 (30%) - 项目介绍清晰度 - 环境搭建说明 - 部署方案完整性 - 运行效果展示 ## 🎨 项目截图 _注:此处将在项目完成后添加实际运行截图_ ### 管理后台界面 - 登录页面 ![](https://lemik.oss-cn-shenzhen.aliyuncs.com/202508131131804.png) - 注册页面 ![](https://lemik.oss-cn-shenzhen.aliyuncs.com/202508131134981.png) - 忘记密码页面 ![](https://lemik.oss-cn-shenzhen.aliyuncs.com/202508131134429.png) ![](https://lemik.oss-cn-shenzhen.aliyuncs.com/202508131136372.png) - 仪表盘页面 ![20250813171542](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813171542.png) ![20250813172919](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172919.png) ![20250813172930](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172930.png) - 用户管理页面 ![20250813171621](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813171621.png) ![20250813171637](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813171637.png) ![20250813171656](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813171656.png) ![20250813171724](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813171724.png) ![20250813171803](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813171803.png) ![20250813172036](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172036.png) - 角色管理页面 ![20250813171904](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813171904.png) ![20250813171915](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813171915.png) ![20250813171931](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813171931.png) ![20250813172001](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172001.png) ![20250813172014](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172014.png) ![20250813172116](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172116.png) - 权限管理页面 ![20250813172130](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172130.png) ![20250813172309](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172309.png) ![20250813172325](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172325.png) ![20250813172356](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172356.png) ![20250813172412](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172412.png) - 知识库管理页面 ![20250813172432](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172432.png) ![20250813172445](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172445.png) ![20250813172500](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172500.png) ![20250813172520](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172520.png) ![20250813172535](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172535.png) ![20250813172546](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172546.png) - 文档管理页面 ![20250813171304](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813171304.png) ![20250813172612](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172612.png) ![20250813172622](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172622.png) ![20250813172636](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172636.png) - 对话记录查看 ![20250813172704](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172704.png) ![20250813172719](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172719.png) ![20250813172732](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172732.png) - 向量管理页面 ![20250813172748](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172748.png) ![20250813172803](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172803.png) ![20250813172816](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172816.png) ![20250813172827](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172827.png) - 系统统计面板 ![20250813172840](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172840.png) ![20250813172851](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813172851.png) ### 用户端界面 - 登录界面 ![20250813174802](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813174802.png) - 注册界面 ![20250813174820](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813174820.png) - 忘记密码界面 ![20250813174855](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813174855.png) ![20250813174922](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813174922.png) - 智能问答界面 ![20250813175007](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813175007.png) ![20250813175021](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813175021.png) - 历史记录页面 - ![20250813175032](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813175032.png) - 个人信息界面 ![20250813175052](https://lemik.oss-cn-shenzhen.aliyuncs.com/20250813175052.png) - 移动端适配效果 ## 🌐 在线演示 _项目部署完成后,各组成员的演示地址将在此处更新_ - 管理后台: | 成员 | 地址 | |------|------| | 蔡玮铭 | http://rag-ai-miniprogram.monkeymeerkat.cn | | 陈凯杰 | http://rag-ai-chenkaijie.monkeymeerkat.cn | | 童安棋 | http://rag-ai-tonganqi.monkeymeerkat.cn | | 肖志华 | http://rag-ai-xiaozhihua.monkeymeerkat.cn | | 张怡琴 | http://rag-ai-zhangyiqin.monkeymeerkat.cn | - H5 端: | 成员 | 地址 | |------|------| | 蔡玮铭 | http://rag-backend-management.monkeymeerkat.cn | | 陈凯杰 | http://rag-management-chenkaijie.monkeymeerkat.cn | | 童安棋 | http://rag-management-tonganqi.monkeymeerkat.cn | | 肖志华 | http://rag-management-xiaozhihua.monkeymeerkat.cn | | 张怡琴 | http://rag-management-zhangyiqin.monkeymeerkat.cn | - 小程序: [待发布] ## 📖 参考资源 ### 技术文档 - [.NET 8 官方文档](https://docs.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8) - [PostgreSQL pgvector](https://github.com/pgvector/pgvector) - [Vue 3 文档](https://cn.vuejs.org/) - [Element Plus 组件库](https://element-plus.org/zh-CN/) ### 项目原型 - 原型参考地址:https://gitee.com/myhfw003/rag-prototype.git - 建议先研究原型理解系统架构 ### AI 服务 - [OpenAI API 文档](https://platform.openai.com/docs) - [千问 API 文档](https://help.aliyun.com/zh/dashscope/) - [文心一言 API 文档](https://cloud.baidu.com/doc/WENXINWORKSHOP/index.html) ## 🤝 贡献指南 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/新功能`) 3. 提交更改 (`git commit -am '添加新功能'`) 4. 推送到分支 (`git push origin feature/新功能`) 5. 创建 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情 ## 📞 联系方式 - 项目负责人:[教师姓名] - 邮箱:[teacher@school.edu.cn] - 技术支持:[技术交流群] --- **开发时间**: 2 周 (2025 年 8 月 3 日 - 2025 年 8 月 14 日) **文档更新**: 2025 年 8 月 14 日