From a28bec2eecfad619216b72d0c808cba1e890a1c6 Mon Sep 17 00:00:00 2001 From: zhangyh Date: Mon, 28 Jul 2025 16:16:44 +0800 Subject: [PATCH] 1 --- 交接文档.md | 168 ---------------------------------------------------- 1 file changed, 168 deletions(-) delete mode 100644 交接文档.md diff --git a/交接文档.md b/交接文档.md deleted file mode 100644 index 809a010..0000000 --- a/交接文档.md +++ /dev/null @@ -1,168 +0,0 @@ -# 云大智能问答系统 - 项目交接文档 - -## 项目概述 - -云大智能问答系统(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