diff --git a/交接文档.md b/交接文档.md new file mode 100644 index 0000000..809a010 --- /dev/null +++ b/交接文档.md @@ -0,0 +1,168 @@ +# 云大智能问答系统 - 项目交接文档 + +## 项目概述 + +云大智能问答系统(backserver)是一个基于Spring Boot 3.2.4的后端服务,主要功能是提供智能问答和深度研究服务。系统采用前后端分离架构,支持用户注册、登录、聊天会话管理和AI问答等功能。 + +### 技术栈 +- **框架**: Spring Boot 3.2.4 + Spring Security + Spring AI +- **数据层**: MyBatis-Flex + MySQL +- **认证**: JWT Token +- **AI集成**: Spring AI OpenAI (使用GPT-4o-mini模型) +- **文档**: SpringDoc OpenAPI 3.0 + Swagger UI +- **构建工具**: Maven + +## 已实现功能 + +### 1. 用户认证模块 (`com.yundage.chat.controller.AuthController`) +- **用户注册**: 支持邮箱验证码注册 +- **用户登录**: JWT Token认证 +- **密码重置**: 邮件验证码重置密码 +- **登录状态检查**: 验证用户登录状态 + +**核心文件**: +- `src/main/java/com/yundage/chat/controller/AuthController.java` +- `src/main/java/com/yundage/chat/service/UserService.java` +- `src/main/java/com/yundage/chat/util/JwtUtil.java` + +### 2. 智能问答模块 (`com.yundage.chat.controller.ChatController`) +- **智能问答**: `/qa/ask` - 支持普通聊天和深度研究两种模式 +- **流式输出**: `/qa/ask/stream` - 支持Server-Sent Events的流式回复 +- **会话管理**: 获取用户会话列表和消息历史 + +**功能特点**: +- 支持两种问答模式: `chat`(普通聊天) 和 `research`(深度研究) +- 会话持久化存储 +- 消息序列化管理 +- Token使用统计 + +**核心文件**: +- `src/main/java/com/yundage/chat/controller/ChatController.java:24` +- `src/main/java/com/yundage/chat/service/ChatService.java:30` +- `src/main/java/com/yundage/chat/dto/ChatRequest.java` +- `src/main/java/com/yundage/chat/dto/ChatResponse.java` + +### 3. 用户管理模块 (`com.yundage.chat.controller.UserController`) +- **个人信息**: 获取和更新用户基本信息 +- **用户类型**: 支持普通用户和高级用户类型 + +### 4. 数据模型 +- **User**: 用户信息表,包含认证提供商、用户类型等字段 +- **Conversation**: 会话表,支持不同聊天模式 +- **Message**: 消息表,支持用户和助手消息 +- **PasswordResetToken**: 密码重置令牌表 + +## 数据库配置 + +当前使用MySQL数据库,连接信息在 `application.yml:4` 中配置: +```yaml +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://101.200.154.78:3306/yunda_qa + username: root + password: mysql_Jt3yzh +``` + +## AI模型配置 + +当前使用第三方OpenAI API服务,配置在 `application.yml:20-26`: +```yaml +spring: + ai: + openai: + api-key: sk-5gAxnpuwJ9KIsea51cD05e21F1Ac4b6a99C8A97278C1F837 + base-url: https://www.jzhengda-api.com + chat: + options: + model: gpt-4o-mini +``` + +## 需要优化的部分 + +### 1. 🔴 Token管理优化 (高优先级) + +**现状问题**: +- JWT Token存储在内存中,无法跨实例共享 +- 缺乏Token黑名单机制 +- 无法实现用户强制下线功能 + +**建议方案**: +```xml + + + org.springframework.boot + spring-boot-starter-data-redis + +``` + +**需要修改的文件**: +- `src/main/java/com/yundage/chat/util/JwtUtil.java:39` - 添加Redis Token存储 +- `src/main/java/com/yundage/chat/config/JwtAuthenticationFilter.java` - 增加Token验证逻辑 +- `application.yml` - 添加Redis配置 + +### 2. 🟡 AI响应优化 (中优先级) + +**现状问题**: +- `ChatService.java:234-238` 中AI响应生成逻辑过于简单 +- 缺乏错误重试机制 +- Token统计不准确 + +**需要改进**: +- 完善AI响应生成逻辑 +- 添加响应缓存机制 +- 实现更精确的Token计算 + +### 3. 🟡 数据库连接池优化 (中优先级) + +**建议**: +- 配置HikariCP连接池参数 +- 添加数据库连接监控 +- 实现读写分离 + +### 4. 🟢 邮件服务配置 (低优先级) + +**现状**: `application.yml:8-19` 中邮件配置使用的是示例配置 +**需要**: 配置真实的SMTP服务 + +### 5. 🟢 日志和监控 (低优先级) + +**建议**: +- 添加业务日志记录 +- 集成APM监控 +- 添加健康检查端点 + +## API接口文档 + +系统已集成Swagger UI,可通过以下地址访问: +- Swagger UI: `http://localhost:8080/swagger-ui.html` +- OpenAPI文档: `http://localhost:8080/api-docs` + +详细的接口设计说明请参考 `docs/chat.md` + +## 部署信息 + +项目包含Docker配置: +- `Dockerfile` - 容器化配置 +- `docker-compose.yml` - 本地开发环境 +- `deploy.sh` - 部署脚本 + +## 开发环境启动 + +1. 确保MySQL服务运行 +2. 配置 `application.yml` 中的数据库连接 +3. 运行 `mvn spring-boot:run` 启动服务 +4. 访问 `http://localhost:8080/swagger-ui.html` 查看API文档 + +## 安全注意事项 + +⚠️ **重要**: 当前配置中包含敏感信息,生产环境需要: +- 使用环境变量替换硬编码的密码和API密钥 +- 更新JWT密钥为更安全的值 +- 配置HTTPS访问 +- 限制数据库访问权限 + +--- + +*文档生成时间: 2025-07-28* +*当前版本: 0.0.1-SNAPSHOT* \ No newline at end of file