first
demo
This commit is contained in:
40
doc/TASK001-项目基础架构搭建.md
Normal file
40
doc/TASK001-项目基础架构搭建.md
Normal file
@ -0,0 +1,40 @@
|
||||
# TASK001 - 项目基础架构搭建
|
||||
|
||||
## 任务信息
|
||||
- **任务编号**: TASK001
|
||||
- **任务名称**: 项目基础架构搭建
|
||||
- **版本**: V1.0
|
||||
- **状态**: 完成
|
||||
|
||||
## 任务描述
|
||||
搭建海角AI后端项目的基础架构,包括Spring Boot项目初始化、Maven依赖配置、项目目录结构规划、基础配置文件设置和开发环境配置。
|
||||
|
||||
## 验收标准清单
|
||||
- [x] Spring Boot 3.x项目创建完成
|
||||
- [x] Maven依赖配置完整,包括web、jpa、security、jwt、redis、mysql等核心依赖
|
||||
- [x] 项目目录结构规范,包含controller、service、repository、entity、dto、config等包结构
|
||||
- [x] application.yml配置文件完成基础配置(数据库、服务器端口、日志等)
|
||||
- [x] 开发环境profiles配置(dev、test、prod)
|
||||
- [x] 项目能正常启动并访问健康检查接口
|
||||
- [x] 集成Swagger/OpenAPI文档工具
|
||||
- [x] 配置跨域处理
|
||||
- [x] 添加统一的日志配置
|
||||
|
||||
## 注意事项
|
||||
1. 使用Spring Boot 3.x最新稳定版本,确保与Java 17+兼容性
|
||||
2. Maven依赖版本要保持一致性,避免版本冲突
|
||||
3. 包命名遵循com.lxy.hsend的约定
|
||||
4. 配置文件中敏感信息使用环境变量或配置中心
|
||||
5. 预留AI服务调用的HTTP客户端配置(如RestTemplate或WebClient)
|
||||
6. 考虑文件上传大小限制配置
|
||||
7. 设置合理的数据库连接池配置
|
||||
8. 添加actuator健康检查端点
|
||||
9. 配置时区为Asia/Shanghai
|
||||
10. 预留Redis配置用于会话管理和缓存
|
||||
|
||||
## 相关文件
|
||||
- pom.xml
|
||||
- src/main/resources/application.yml
|
||||
- src/main/resources/application-dev.yml
|
||||
- src/main/java/com/lxy/hsend/config/
|
||||
- src/main/java/com/lxy/hsend/HsEndApplication.java
|
||||
41
doc/TASK002-数据库设计和初始化.md
Normal file
41
doc/TASK002-数据库设计和初始化.md
Normal file
@ -0,0 +1,41 @@
|
||||
# TASK002 - 数据库设计和初始化
|
||||
|
||||
## 任务信息
|
||||
- **任务编号**: TASK002
|
||||
- **任务名称**: 数据库设计和初始化
|
||||
- **版本**: V1.0
|
||||
- **状态**: 完成
|
||||
|
||||
## 任务描述
|
||||
根据API文档设计数据库表结构,创建用户、会话、消息、收藏、文件等核心业务表,建立表之间的关联关系,编写数据库初始化脚本和JPA Entity实体类。
|
||||
|
||||
## 验收标准清单
|
||||
- [x] 完成数据库表结构设计,包括:用户表、会话表、消息表、收藏表、文件表
|
||||
- [x] 建立表之间的外键关系和索引
|
||||
- [x] 编写SQL初始化脚本(schema.sql和data.sql) - 使用Flyway迁移脚本V1__Create_initial_tables.sql
|
||||
- [x] 创建对应的JPA Entity实体类 - User、Session、Message、Favorite、File
|
||||
- [x] 配置JPA/Hibernate相关属性 - application.yml中已配置
|
||||
- [x] 添加数据库版本管理工具(Flyway或Liquibase) - 已添加Flyway依赖和配置
|
||||
- [x] 创建Repository接口 - UserRepository、SessionRepository、MessageRepository、FavoriteRepository、FileRepository
|
||||
- [x] 验证数据库连接和表创建成功 - 测试通过,数据库连接正常
|
||||
- [x] 编写基础的数据库操作测试 - DatabaseConnectionTest测试基本CRUD操作成功
|
||||
|
||||
## 注意事项
|
||||
1. 用户表需包含:id、email、password_hash、nickname、avatar_url、created_at、updated_at等字段
|
||||
2. 会话表需包含:session_id(UUID)、user_id、title、message_count、last_message_time、created_at等字段
|
||||
3. 消息表需包含:message_id(UUID)、session_id、role(user/assistant)、content、timestamp、model_used、is_favorited等字段
|
||||
4. 收藏表需包含:favorite_id、user_id、message_id、session_id、created_at等字段
|
||||
5. 文件表需包含:file_id、user_id、session_id、filename、file_path、file_size、file_type、upload_time等字段
|
||||
6. 所有主键使用UUID或雪花ID,避免数据泄露
|
||||
7. 敏感字段需要考虑加密存储(如密码使用BCrypt)
|
||||
8. 添加软删除字段(deleted_at)用于数据恢复
|
||||
9. 时间字段统一使用BIGINT存储时间戳
|
||||
10. 考虑分表分库的预留设计(如用户ID取模)
|
||||
11. 为高频查询字段添加索引(如session_id、user_id、timestamp等)
|
||||
12. 设置合理的字符集(utf8mb4)支持emoji
|
||||
|
||||
## 相关文件
|
||||
- src/main/resources/db/migration/
|
||||
- src/main/java/com/lxy/hsend/entity/
|
||||
- src/main/java/com/lxy/hsend/repository/
|
||||
- src/main/resources/application.yml(数据库配置)
|
||||
43
doc/TASK003-基础配置和公共组件.md
Normal file
43
doc/TASK003-基础配置和公共组件.md
Normal file
@ -0,0 +1,43 @@
|
||||
# TASK003 - 基础配置和公共组件
|
||||
|
||||
## 任务信息
|
||||
- **任务编号**: TASK003
|
||||
- **任务名称**: 基础配置和公共组件
|
||||
- **版本**: V1.0
|
||||
- **状态**: ✅ 完成
|
||||
|
||||
## 任务描述
|
||||
实现项目的基础配置和公共组件,包括统一响应格式、全局异常处理、请求参数验证、跨域配置、JWT工具类、Redis配置等公共功能模块。
|
||||
|
||||
## 验收标准清单
|
||||
- [x] 创建统一响应格式类(ApiResponse) - 完成,支持成功/失败响应和各种错误类型
|
||||
- [x] 实现全局异常处理器(GlobalExceptionHandler) - 完成,覆盖所有异常类型和错误码
|
||||
- [x] 配置参数验证注解和自定义验证器 - 完成,包括@ValidEmail、@ValidPassword等
|
||||
- [x] 实现JWT工具类(生成、验证、解析token) - 完成,支持token生成、验证、黑名单机制
|
||||
- [x] 配置Redis连接和序列化器 - 完成,包括缓存管理器和序列化配置
|
||||
- [x] 创建通用工具类(时间处理、字符串工具、加密工具等) - 完成TimeUtil、StringUtil、CryptoUtil
|
||||
- [x] 实现自定义注解(如@RequireAuth用于权限验证) - 完成@RequireAuth、@RequestLog、@RateLimit等
|
||||
- [x] 配置Web MVC相关设置 - 完成CORS、静态资源、拦截器配置
|
||||
- [x] 创建常量类和枚举类 - 完成Constants、ErrorCode枚举
|
||||
- [x] 实现分页工具类 - 完成PageUtil,支持分页查询和响应转换
|
||||
|
||||
## 注意事项
|
||||
1. ApiResponse格式需严格按照API文档中的统一响应格式:error、body、message、success字段
|
||||
2. 异常处理需要覆盖所有API文档中定义的错误码(1001-5002)
|
||||
3. JWT工具类需要支持token生成、验证、刷新和黑名单机制
|
||||
4. 参数验证需要支持邮箱格式、密码强度、文件大小等自定义规则
|
||||
5. Redis配置需要支持session存储和缓存功能
|
||||
6. 工具类方法需要线程安全
|
||||
7. 时间处理统一使用时间戳格式
|
||||
8. 密码加密使用BCrypt算法
|
||||
9. 文件上传需要支持类型验证和大小限制
|
||||
10. 异常信息不应暴露敏感的系统内部信息
|
||||
11. 添加请求日志记录功能
|
||||
12. 配置合理的超时时间和重试机制
|
||||
|
||||
## 相关文件
|
||||
- src/main/java/com/lxy/hsend/common/
|
||||
- src/main/java/com/lxy/hsend/config/
|
||||
- src/main/java/com/lxy/hsend/util/
|
||||
- src/main/java/com/lxy/hsend/exception/
|
||||
- src/main/java/com/lxy/hsend/annotation/
|
||||
37
doc/TASK004-用户认证模块.md
Normal file
37
doc/TASK004-用户认证模块.md
Normal file
@ -0,0 +1,37 @@
|
||||
# TASK004 - 用户认证模块
|
||||
|
||||
## 任务信息
|
||||
- **任务编号**: TASK004
|
||||
- **任务名称**: 用户认证模块
|
||||
- **版本**: V1.0
|
||||
- **状态**: ✅ 完成
|
||||
|
||||
## 任务描述
|
||||
实现用户认证相关功能,包括用户注册、登录、登出、获取用户信息等接口,集成JWT认证机制,实现用户数据的增删改查操作。
|
||||
|
||||
## 验收标准清单
|
||||
- [x] 实现用户注册接口(/api/auth/register) - 完成,支持邮箱、密码、昵称注册
|
||||
- [x] 实现用户登录接口(/api/auth/login) - 完成,返回JWT token和用户信息
|
||||
- [x] 实现用户登出接口(/api/auth/logout) - 完成,token加入黑名单机制
|
||||
- [x] 实现获取用户信息接口(/api/user/info) - 完成,支持当前用户和公开用户信息
|
||||
- [x] 集成JWT认证拦截器 - 完成,自动验证token和设置用户上下文
|
||||
- [x] 实现密码加密和验证 - 完成,使用BCrypt加密
|
||||
- [x] 实现邮箱格式验证和重复性检查 - 完成,注册时检查邮箱唯一性
|
||||
- [x] 创建UserService、UserController和相关DTO - 完成,完整的服务层和控制层
|
||||
- [x] 实现token黑名单机制 - 完成,使用Redis存储黑名单token
|
||||
- [x] 添加登录失败次数限制 - 完成,Redis记录失败次数,15分钟锁定
|
||||
|
||||
## 注意事项
|
||||
1. 注册时需要验证邮箱格式和唯一性
|
||||
2. 登录成功后返回JWT token和用户基本信息,不能返回密码
|
||||
9. 邮箱字段需要转换为小写存储
|
||||
12. 注册时可以设置默认头像
|
||||
13. 需要记录用户最后登录时间
|
||||
14. 实现用户状态管理(正常、锁定、删除)
|
||||
|
||||
## 相关文件
|
||||
- src/main/java/com/lxy/hsend/controller/AuthController.java
|
||||
- src/main/java/com/lxy/hsend/controller/UserController.java
|
||||
- src/main/java/com/lxy/hsend/service/UserService.java
|
||||
- src/main/java/com/lxy/hsend/dto/auth/
|
||||
- src/main/java/com/lxy/hsend/config/JwtAuthenticationFilter.java
|
||||
41
doc/TASK005-聊天会话管理模块.md
Normal file
41
doc/TASK005-聊天会话管理模块.md
Normal file
@ -0,0 +1,41 @@
|
||||
# TASK005 - 聊天会话管理模块
|
||||
|
||||
## 任务信息
|
||||
- **任务编号**: TASK005
|
||||
- **任务名称**: 聊天会话管理模块
|
||||
- **版本**: V1.0
|
||||
- **状态**: ✅ 完成
|
||||
|
||||
## 任务描述
|
||||
实现聊天会话的管理功能,包括创建会话、获取会话列表、获取会话消息、删除会话、清空会话等操作,支持会话的搜索和分页功能。
|
||||
|
||||
## 验收标准清单
|
||||
- [ ] 实现创建会话接口(/api/chat/session)
|
||||
- [ ] 实现获取会话列表接口(/api/chat/sessions)
|
||||
- [ ] 实现获取会话消息接口(/api/chat/messages)
|
||||
- [ ] 实现删除会话接口(/api/chat/session/{session_id})
|
||||
- [ ] 实现清空会话接口(/api/chat/session/{session_id}/clear)
|
||||
- [ ] 支持会话关键词搜索功能
|
||||
- [ ] 实现会话列表分页查询
|
||||
- [ ] 创建SessionService、SessionController和相关DTO
|
||||
- [ ] 实现会话权限验证(用户只能操作自己的会话)
|
||||
- [ ] 添加会话统计信息更新机制
|
||||
|
||||
## 注意事项
|
||||
1. 会话ID使用UUID格式,确保全局唯一性
|
||||
2. 创建会话时需要验证用户登录状态和标题合法性
|
||||
3. 获取会话列表需要按最后消息时间倒序排列
|
||||
4. 关键词搜索需要支持标题和消息内容的模糊匹配
|
||||
5. 分页参数需要设置合理的默认值和最大值限制
|
||||
6. 删除会话时需要级联删除相关的消息和收藏记录
|
||||
7. 清空会话只删除消息,保留会话本身
|
||||
8. 用户只能访问和操作自己创建的会话
|
||||
10. 需要实时更新会话的消息数量和最后消息时间
|
||||
12. 考虑会话的软删除机制,便于数据恢复
|
||||
14. 会话列表需要返回消息数量和最后消息时间
|
||||
|
||||
## 相关文件
|
||||
- src/main/java/com/lxy/hsend/controller/SessionController.java
|
||||
- src/main/java/com/lxy/hsend/service/SessionService.java
|
||||
- src/main/java/com/lxy/hsend/dto/session/
|
||||
- src/main/java/com/lxy/hsend/repository/SessionRepository.java
|
||||
37
doc/TASK006-消息处理模块.md
Normal file
37
doc/TASK006-消息处理模块.md
Normal file
@ -0,0 +1,37 @@
|
||||
# TASK006 - 消息处理模块
|
||||
|
||||
## 任务信息
|
||||
- **任务编号**: TASK006
|
||||
- **任务名称**: 消息处理模块
|
||||
- **版本**: V1.0
|
||||
- **状态**: ✅ 完成
|
||||
|
||||
## 任务描述
|
||||
实现消息发送和处理功能,包括用户消息存储、AI响应生成、消息历史查询等核心聊天功能,为后续AI服务集成做好接口预留。
|
||||
|
||||
## 验收标准清单
|
||||
- [x] 实现发送消息接口(/api/chat/send)
|
||||
- [x] 实现消息存储和查询功能
|
||||
- [x] 创建消息实体和相关DTO类
|
||||
- [x] 实现消息分页查询
|
||||
- [x] 添加消息内容验证和过滤
|
||||
- [x] 实现消息角色区分(user/assistant)
|
||||
- [x] 创建MessageService、MessageController
|
||||
- [x] 预留AI服务调用接口
|
||||
- [x] 实现消息时间戳记录
|
||||
- [x] 添加消息状态管理
|
||||
|
||||
## 注意事项
|
||||
1. 消息ID使用UUID格式确保唯一性
|
||||
8. 支持深度思考和联网搜索的参数传递
|
||||
9. 消息发送失败时需要返回明确的错误信息
|
||||
10. 考虑消息的编辑和删除功能预留
|
||||
12. 需要统计每个会话的消息数量
|
||||
14. 预留消息附件(图片、文件)的关联字段
|
||||
15. 实现消息的软删除机制
|
||||
|
||||
## 相关文件
|
||||
- src/main/java/com/lxy/hsend/controller/MessageController.java
|
||||
- src/main/java/com/lxy/hsend/service/MessageService.java
|
||||
- src/main/java/com/lxy/hsend/dto/message/
|
||||
- src/main/java/com/lxy/hsend/repository/MessageRepository.java
|
||||
45
doc/TASK007-收藏功能模块.md
Normal file
45
doc/TASK007-收藏功能模块.md
Normal file
@ -0,0 +1,45 @@
|
||||
# TASK007 - 收藏功能模块
|
||||
|
||||
## 任务信息
|
||||
- **任务编号**: TASK007
|
||||
- **任务名称**: 收藏功能模块
|
||||
- **版本**: V1.0
|
||||
- **状态**: ✅ 完成
|
||||
|
||||
## 任务描述
|
||||
实现用户消息收藏功能,包括添加收藏、取消收藏、获取收藏列表等操作,支持收藏消息的搜索和分页查询功能。
|
||||
|
||||
## 验收标准清单
|
||||
- [x] 实现收藏消息接口(/api/favorites/add)
|
||||
- [x] 实现取消收藏接口(/api/favorites/remove)
|
||||
- [x] 实现获取收藏列表接口(/api/favorites/list)
|
||||
- [x] 创建收藏实体和相关DTO类
|
||||
- [x] 实现收藏状态查询和更新
|
||||
- [x] 支持收藏列表分页功能
|
||||
- [x] 添加收藏重复性检查
|
||||
- [x] 创建FavoriteService、FavoriteController
|
||||
- [x] 实现收藏权限验证
|
||||
- [x] 添加收藏数量统计功能
|
||||
|
||||
## 注意事项
|
||||
1. 收藏记录需要关联用户ID、消息ID和会话ID
|
||||
2. 同一条消息不能被同一用户重复收藏
|
||||
3. 取消收藏时需要验证收藏记录的存在性
|
||||
4. 用户只能操作自己的收藏记录
|
||||
5. 收藏列表需要显示消息内容和所属会话标题
|
||||
6. 收藏列表按收藏时间倒序排列
|
||||
7. 删除消息时需要同步删除相关收藏记录
|
||||
8. 删除会话时需要同步删除相关收藏记录
|
||||
9. 收藏ID使用UUID格式确保唯一性
|
||||
10. 需要在消息查询时返回收藏状态
|
||||
11. 收藏列表支持按会话标题搜索
|
||||
12. 设置用户收藏数量的合理上限
|
||||
13. 收藏操作需要添加操作日志
|
||||
14. 考虑收藏的分类和标签功能预留
|
||||
15. 收藏列表需要显示消息的完整上下文信息
|
||||
|
||||
## 相关文件
|
||||
- src/main/java/com/lxy/hsend/controller/FavoriteController.java
|
||||
- src/main/java/com/lxy/hsend/service/FavoriteService.java
|
||||
- src/main/java/com/lxy/hsend/dto/favorite/
|
||||
- src/main/java/com/lxy/hsend/repository/FavoriteRepository.java
|
||||
47
doc/TASK008-文件上传模块.md
Normal file
47
doc/TASK008-文件上传模块.md
Normal file
@ -0,0 +1,47 @@
|
||||
# TASK008 - 文件上传模块
|
||||
|
||||
## 任务信息
|
||||
- **任务编号**: TASK008
|
||||
- **任务名称**: 文件上传模块
|
||||
- **版本**: V1.0
|
||||
- **状态**: 跳过该模块,暂时进行不开发
|
||||
|
||||
## 任务描述
|
||||
实现文件上传功能,支持txt、pdf、md等格式文件的上传、存储和管理,为AI文档分析功能提供基础支持。
|
||||
|
||||
## 验收标准清单
|
||||
- [ ] 实现文件上传接口(/api/files/upload)
|
||||
- [ ] 支持多种文件格式验证(txt、pdf、md、docx等)
|
||||
- [ ] 实现文件大小限制和安全检查
|
||||
- [ ] 创建文件存储和管理功能
|
||||
- [ ] 实现文件元数据记录
|
||||
- [ ] 添加文件访问权限控制
|
||||
- [ ] 创建FileService、FileController和相关DTO
|
||||
- [ ] 实现文件内容解析预处理
|
||||
- [ ] 添加文件删除和清理功能
|
||||
- [ ] 实现文件上传进度反馈
|
||||
|
||||
## 注意事项
|
||||
1. 文件大小限制在10MB以内,防止服务器资源耗尽
|
||||
2. 支持的文件类型:.txt、.pdf、.md、.docx、.doc、.xlsx、.xls
|
||||
3. 文件名需要重命名,使用UUID+原扩展名避免冲突
|
||||
4. 上传的文件需要进行病毒扫描和安全检查
|
||||
5. 文件存储路径需要按日期分层组织(如/files/2024/01/01/)
|
||||
6. 记录文件的原始名称、存储路径、大小、类型等元数据
|
||||
7. 用户只能访问自己上传的文件
|
||||
8. 文件上传需要关联到具体的会话
|
||||
9. 实现文件的软删除,定期清理无效文件
|
||||
10. 添加文件上传失败的重试机制
|
||||
11. 支持断点续传功能(可选)
|
||||
12. 文件存储考虑使用OSS或本地文件系统
|
||||
13. 需要生成文件的访问URL
|
||||
14. 添加文件下载接口用于预览
|
||||
15. 实现文件内容的文本提取功能
|
||||
16. 设置用户文件数量和总大小限制
|
||||
|
||||
## 相关文件
|
||||
- src/main/java/com/lxy/hsend/controller/FileController.java
|
||||
- src/main/java/com/lxy/hsend/service/FileService.java
|
||||
- src/main/java/com/lxy/hsend/dto/file/
|
||||
- src/main/java/com/lxy/hsend/repository/FileRepository.java
|
||||
- src/main/java/com/lxy/hsend/util/FileUtil.java
|
||||
46
doc/TASK009-AI服务集成.md
Normal file
46
doc/TASK009-AI服务集成.md
Normal file
@ -0,0 +1,46 @@
|
||||
# TASK009 - AI服务集成
|
||||
|
||||
## 任务信息
|
||||
- **任务编号**: TASK009
|
||||
- **任务名称**: AI服务集成
|
||||
- **版本**: V1.0
|
||||
- **状态**: 计划中
|
||||
|
||||
## 任务描述
|
||||
集成外部AI服务接口,实现多模型支持、深度思考模式、联网搜索等AI增强功能,为用户提供智能对话服务。
|
||||
|
||||
## 验收标准清单
|
||||
- [ ] 集成腾讯混元AI模型接口
|
||||
- [ ] 实现基础模型和增强模型切换
|
||||
- [ ] 集成深度思考模式功能
|
||||
- [ ] 实现联网搜索功能
|
||||
- [ ] 创建AI服务抽象层和实现类
|
||||
- [ ] 实现AI响应的流式处理
|
||||
- [ ] 添加AI服务的错误处理和重试机制
|
||||
- [ ] 实现会话上下文管理
|
||||
- [ ] 添加AI调用的监控和日志
|
||||
- [ ] 实现AI服务的负载均衡
|
||||
|
||||
## 注意事项
|
||||
1. AI模型支持:Hunyuan(混元)、基础模型、增强模型
|
||||
2. 深度思考模式需要调用更强的推理模型,响应时间较长
|
||||
3. 联网搜索需要整合搜索引擎API获取实时信息
|
||||
4. AI服务调用需要添加超时控制(如30秒)
|
||||
5. 实现AI响应的流式输出,提升用户体验
|
||||
6. 会话上下文需要控制长度,避免token超限
|
||||
7. AI服务异常时需要返回友好的错误提示
|
||||
8. 记录AI调用的token消耗和成本统计
|
||||
9. 实现AI服务的API密钥管理和轮换
|
||||
10. 添加AI内容的安全过滤和合规检查
|
||||
11. 支持AI模型的动态配置和热切换
|
||||
12. 实现AI响应的缓存机制优化性能
|
||||
13. 添加AI服务的限流和降级策略
|
||||
14. 文件上传后需要提取内容传递给AI分析
|
||||
15. 实现AI对话的记忆管理和遗忘机制
|
||||
16. 支持自定义AI系统提示词配置
|
||||
|
||||
## 相关文件
|
||||
- src/main/java/com/lxy/hsend/service/ai/
|
||||
- src/main/java/com/lxy/hsend/config/AIConfig.java
|
||||
- src/main/java/com/lxy/hsend/dto/ai/
|
||||
- src/main/java/com/lxy/hsend/integration/
|
||||
46
doc/TASK010-安全性和权限控制.md
Normal file
46
doc/TASK010-安全性和权限控制.md
Normal file
@ -0,0 +1,46 @@
|
||||
# TASK010 - 安全性和权限控制
|
||||
|
||||
## 任务信息
|
||||
- **任务编号**: TASK010
|
||||
- **任务名称**: 安全性和权限控制
|
||||
- **版本**: V1.0
|
||||
- **状态**: 计划中
|
||||
|
||||
## 任务描述
|
||||
加强系统安全性,实现接口鉴权、参数验证、防攻击措施、数据加密等安全功能,确保用户数据安全和系统稳定运行。
|
||||
|
||||
## 验收标准清单
|
||||
- [ ] 实现JWT token验证和刷新机制
|
||||
- [ ] 添加接口访问频率限制(Rate Limiting)
|
||||
- [ ] 实现参数校验和SQL注入防护
|
||||
- [ ] 添加XSS攻击防护
|
||||
- [ ] 实现CSRF防护机制
|
||||
- [ ] 配置HTTPS和安全响应头
|
||||
- [ ] 实现敏感数据加密存储
|
||||
- [ ] 添加操作日志和审计功能
|
||||
- [ ] 实现IP白名单和黑名单机制
|
||||
- [ ] 配置跨域访问控制
|
||||
|
||||
## 注意事项
|
||||
1. 所有需要登录的接口都必须验证JWT token
|
||||
2. 实现token的自动续期机制,提升用户体验
|
||||
3. 对高频接口添加访问频率限制(如每分钟最多100次请求)
|
||||
4. 用户输入必须进行严格的参数验证和过滤
|
||||
5. 密码、密钥等敏感信息需要加密存储
|
||||
6. 记录所有重要操作的日志,包括用户行为和系统异常
|
||||
7. 生产环境必须启用HTTPS,禁用HTTP
|
||||
8. 配置安全响应头:X-Frame-Options、X-XSS-Protection等
|
||||
9. 实现账户锁定机制,防止暴力破解
|
||||
10. 文件上传需要检查文件类型和内容安全性
|
||||
11. AI生成内容需要进行敏感信息过滤
|
||||
12. 数据库查询需要使用预编译语句防止SQL注入
|
||||
13. 会话管理需要防止会话劫持
|
||||
14. 实现接口访问的白名单机制
|
||||
15. 添加异常访问的监控和告警
|
||||
16. 配置合理的CORS策略
|
||||
|
||||
## 相关文件
|
||||
- src/main/java/com/lxy/hsend/security/
|
||||
- src/main/java/com/lxy/hsend/config/SecurityConfig.java
|
||||
- src/main/java/com/lxy/hsend/filter/
|
||||
- src/main/java/com/lxy/hsend/aspect/SecurityAspect.java
|
||||
46
doc/TASK011-性能优化和缓存.md
Normal file
46
doc/TASK011-性能优化和缓存.md
Normal file
@ -0,0 +1,46 @@
|
||||
# TASK011 - 性能优化和缓存
|
||||
|
||||
## 任务信息
|
||||
- **任务编号**: TASK011
|
||||
- **任务名称**: 性能优化和缓存
|
||||
- **版本**: V1.0
|
||||
- **状态**: 计划中
|
||||
|
||||
## 任务描述
|
||||
实现系统性能优化和缓存机制,包括Redis缓存、数据库优化、接口性能监控等功能,提升系统响应速度和并发处理能力。
|
||||
|
||||
## 验收标准清单
|
||||
- [ ] 配置Redis缓存和缓存策略
|
||||
- [ ] 实现热点数据缓存(用户信息、会话列表等)
|
||||
- [ ] 优化数据库查询和索引
|
||||
- [ ] 实现分页查询优化
|
||||
- [ ] 添加接口性能监控和统计
|
||||
- [ ] 实现数据库连接池优化
|
||||
- [ ] 配置异步处理机制
|
||||
- [ ] 实现AI响应结果缓存
|
||||
- [ ] 添加静态资源CDN配置
|
||||
- [ ] 实现数据预加载机制
|
||||
|
||||
## 注意事项
|
||||
1. 用户信息、会话列表等热点数据使用Redis缓存,设置合理的过期时间
|
||||
2. 缓存更新策略采用Cache-Aside模式,确保数据一致性
|
||||
3. 数据库查询添加必要的索引,特别是用户ID、会话ID等关联字段
|
||||
4. 分页查询使用游标分页替代传统offset分页,提升大数据量查询性能
|
||||
5. 接口响应时间监控,记录慢查询和异常情况
|
||||
6. 数据库连接池配置合理的最大连接数和超时时间
|
||||
7. AI服务调用使用异步处理,避免阻塞主线程
|
||||
8. 相同问题的AI响应可以缓存一定时间,减少重复调用
|
||||
9. 静态资源(头像、文件)使用CDN加速访问
|
||||
10. 系统启动时预加载常用配置和数据字典
|
||||
11. 实现数据库读写分离,提升查询性能
|
||||
12. 使用连接池管理Redis连接,避免连接泄露
|
||||
13. 实现缓存雪崩和缓存穿透的防护机制
|
||||
14. 大文件上传使用分片上传技术
|
||||
15. 配置JVM参数优化内存使用
|
||||
16. 实现系统资源使用率监控
|
||||
|
||||
## 相关文件
|
||||
- src/main/java/com/lxy/hsend/config/CacheConfig.java
|
||||
- src/main/java/com/lxy/hsend/config/RedisConfig.java
|
||||
- src/main/java/com/lxy/hsend/aspect/PerformanceAspect.java
|
||||
- src/main/java/com/lxy/hsend/service/cache/
|
||||
48
doc/TASK012-集成测试和文档完善.md
Normal file
48
doc/TASK012-集成测试和文档完善.md
Normal file
@ -0,0 +1,48 @@
|
||||
# TASK012 - 集成测试和文档完善
|
||||
|
||||
## 任务信息
|
||||
- **任务编号**: TASK012
|
||||
- **任务名称**: 集成测试和文档完善
|
||||
- **版本**: V1.0
|
||||
- **状态**: 计划中
|
||||
|
||||
## 任务描述
|
||||
编写完整的单元测试和集成测试,完善API文档和部署文档,确保系统功能正确性和可维护性,为项目上线做好准备。
|
||||
|
||||
## 验收标准清单
|
||||
- [ ] 编写单元测试覆盖所有Service层方法
|
||||
- [ ] 编写集成测试覆盖所有API接口
|
||||
- [ ] 实现数据库测试和Mock数据准备
|
||||
- [ ] 完善Swagger API文档注解
|
||||
- [ ] 编写部署文档和运维手册
|
||||
- [ ] 实现健康检查和监控接口
|
||||
- [ ] 添加系统性能基准测试
|
||||
- [ ] 创建Docker镜像和部署脚本
|
||||
- [ ] 编写用户使用手册
|
||||
- [ ] 实现自动化测试流程
|
||||
|
||||
## 注意事项
|
||||
1. 单元测试需要达到80%以上的代码覆盖率
|
||||
2. 集成测试需要覆盖所有API接口的正常和异常场景
|
||||
3. 使用TestContainers进行数据库集成测试
|
||||
4. Mock外部依赖(AI服务、文件存储等)进行隔离测试
|
||||
5. Swagger文档需要包含完整的参数说明和示例
|
||||
6. 部署文档需要包含环境要求、配置说明、启动步骤
|
||||
7. 健康检查接口需要检查数据库、Redis、外部服务连通性
|
||||
8. 性能测试需要模拟并发用户和大数据量场景
|
||||
9. Docker镜像需要优化大小和启动速度
|
||||
10. 测试数据需要支持自动清理和重置
|
||||
11. 文档需要包含常见问题解答和故障排查指南
|
||||
12. 实现CI/CD流水线自动化构建和部署
|
||||
13. 添加代码质量检查和安全扫描
|
||||
14. 准备压力测试报告和性能调优建议
|
||||
15. 编写数据库备份和恢复方案
|
||||
16. 制定系统监控和告警策略
|
||||
|
||||
## 相关文件
|
||||
- src/test/java/com/lxy/hsend/
|
||||
- docker/Dockerfile
|
||||
- docs/deployment.md
|
||||
- docs/api-guide.md
|
||||
- docs/troubleshooting.md
|
||||
- scripts/deploy.sh
|
||||
149
doc/任务总览.md
Normal file
149
doc/任务总览.md
Normal file
@ -0,0 +1,149 @@
|
||||
# 海角AI后端开发任务总览
|
||||
|
||||
## 项目概述
|
||||
海角AI是一个智能对话产品,采用经典的两栏式布局,为用户提供AI聊天、会话管理、消息收藏、文件上传等功能。本文档详细规划了后端开发的所有任务。
|
||||
|
||||
## 任务列表概览
|
||||
|
||||
| 任务编号 | 任务名称 | 版本 | 状态 | 优先级 | 预估工期 |
|
||||
|---------|---------|------|------|-------|---------|
|
||||
| TASK001 | 项目基础架构搭建 | V1.0 | 计划中 | 高 | 2天 |
|
||||
| TASK002 | 数据库设计和初始化 | V1.0 | 计划中 | 高 | 3天 |
|
||||
| TASK003 | 基础配置和公共组件 | V1.0 | 计划中 | 高 | 3天 |
|
||||
| TASK004 | 用户认证模块 | V1.0 | 计划中 | 高 | 4天 |
|
||||
| TASK005 | 聊天会话管理模块 | V1.0 | 计划中 | 中 | 3天 |
|
||||
| TASK006 | 消息处理模块 | V1.0 | 计划中 | 高 | 4天 |
|
||||
| TASK007 | 收藏功能模块 | V1.0 | 计划中 | 中 | 2天 |
|
||||
| TASK008 | 文件上传模块 | V1.0 | 计划中 | 中 | 3天 |
|
||||
| TASK009 | AI服务集成 | V1.0 | 计划中 | 高 | 5天 |
|
||||
| TASK010 | 安全性和权限控制 | V1.0 | 计划中 | 高 | 3天 |
|
||||
| TASK011 | 性能优化和缓存 | V1.0 | 计划中 | 中 | 3天 |
|
||||
| TASK012 | 集成测试和文档完善 | V1.0 | 计划中 | 中 | 4天 |
|
||||
|
||||
**总计预估工期:39天**
|
||||
|
||||
## 开发阶段规划
|
||||
|
||||
### 第一阶段:基础建设(7-8天)
|
||||
- TASK001:项目基础架构搭建
|
||||
- TASK002:数据库设计和初始化
|
||||
- TASK003:基础配置和公共组件
|
||||
|
||||
### 第二阶段:核心功能(11-13天)
|
||||
- TASK004:用户认证模块
|
||||
- TASK005:聊天会话管理模块
|
||||
- TASK006:消息处理模块
|
||||
- TASK009:AI服务集成
|
||||
|
||||
### 第三阶段:扩展功能(8-10天)
|
||||
- TASK007:收藏功能模块
|
||||
- TASK008:文件上传模块
|
||||
- TASK010:安全性和权限控制
|
||||
|
||||
### 第四阶段:优化完善(7天)
|
||||
- TASK011:性能优化和缓存
|
||||
- TASK012:集成测试和文档完善
|
||||
|
||||
## 技术栈说明
|
||||
|
||||
### 后端框架
|
||||
- **Spring Boot 3.x**:主要开发框架
|
||||
- **Spring Security**:安全认证框架
|
||||
- **Spring Data JPA**:数据持久层框架
|
||||
- **MySQL 8.0**:主数据库
|
||||
- **Redis**:缓存和会话存储
|
||||
|
||||
### 开发工具
|
||||
- **Maven**:项目构建和依赖管理
|
||||
- **JWT**:用户认证令牌
|
||||
- **Swagger/OpenAPI**:API文档生成
|
||||
- **Docker**:容器化部署
|
||||
- **Flyway**:数据库版本管理
|
||||
|
||||
### 外部服务
|
||||
- **腾讯混元AI**:AI对话服务
|
||||
- **文件存储**:本地存储或OSS
|
||||
- **搜索引擎API**:联网搜索功能
|
||||
|
||||
## API接口概览
|
||||
|
||||
### 用户认证模块(4个接口)
|
||||
- POST /api/auth/register - 用户注册
|
||||
- POST /api/auth/login - 用户登录
|
||||
- POST /api/auth/logout - 用户登出
|
||||
- GET /api/user/info - 获取用户信息
|
||||
|
||||
### 聊天模块(6个接口)
|
||||
- POST /api/chat/session - 创建会话
|
||||
- POST /api/chat/send - 发送消息
|
||||
- GET /api/chat/sessions - 获取会话列表
|
||||
- GET /api/chat/messages - 获取会话消息
|
||||
- DELETE /api/chat/session/{session_id} - 删除会话
|
||||
- POST /api/chat/session/{session_id}/clear - 清空会话
|
||||
|
||||
### 收藏模块(3个接口)
|
||||
- POST /api/favorites/add - 收藏消息
|
||||
- DELETE /api/favorites/remove - 取消收藏
|
||||
- GET /api/favorites/list - 获取收藏列表
|
||||
|
||||
### 文件上传模块(1个接口)
|
||||
- POST /api/files/upload - 上传文件
|
||||
|
||||
## 数据库表设计概览
|
||||
|
||||
### 核心业务表
|
||||
- **users**:用户表
|
||||
- **sessions**:会话表
|
||||
- **messages**:消息表
|
||||
- **favorites**:收藏表
|
||||
- **files**:文件表
|
||||
|
||||
### 系统表
|
||||
- **operation_logs**:操作日志表
|
||||
- **system_configs**:系统配置表
|
||||
|
||||
## 部署环境要求
|
||||
|
||||
### 硬件要求
|
||||
- **CPU**:4核心以上
|
||||
- **内存**:8GB以上
|
||||
- **存储**:50GB以上SSD
|
||||
|
||||
### 软件要求
|
||||
- **Java 17+**
|
||||
- **MySQL 8.0+**
|
||||
- **Redis 6.0+**
|
||||
- **Nginx**(反向代理)
|
||||
|
||||
## 风险控制
|
||||
|
||||
### 技术风险
|
||||
1. **AI服务依赖**:外部AI服务不稳定,需要实现降级和重试机制
|
||||
2. **并发处理**:高并发情况下的性能瓶颈,需要优化缓存和数据库
|
||||
3. **数据安全**:用户数据和会话内容的安全保护
|
||||
|
||||
### 业务风险
|
||||
1. **内容安全**:AI生成内容的合规性检查
|
||||
2. **用户体验**:响应时间和系统稳定性
|
||||
3. **扩展性**:后续功能扩展的架构支持
|
||||
|
||||
## 质量保证
|
||||
|
||||
### 代码质量
|
||||
- 代码覆盖率达到80%以上
|
||||
- 遵循阿里巴巴Java开发规范
|
||||
- 使用SonarQube进行代码质量检查
|
||||
|
||||
### 测试策略
|
||||
- 单元测试:所有Service层方法
|
||||
- 集成测试:所有API接口
|
||||
- 性能测试:并发用户场景模拟
|
||||
|
||||
### 文档要求
|
||||
- API文档:Swagger自动生成
|
||||
- 部署文档:详细的环境配置和部署步骤
|
||||
- 运维文档:监控、备份、故障处理指南
|
||||
|
||||
---
|
||||
|
||||
**备注**:本任务规划基于当前需求和技术选型,在实际开发过程中可能需要根据具体情况进行调整。建议采用敏捷开发模式,按阶段交付,及时收集反馈并迭代优化。
|
||||
Reference in New Issue
Block a user