- 保证项目代码模块划分清晰,单一职责原则,模块间耦合度低,能够适应进一步的迭代开发
- 库版本使用较新的LTS版本,保证长期可用
- 编写方便查阅的接口文档和设计文档,便于协作和项目交付
- 构建方便的部署脚本,通过docker等工具维持运行环境的统一,方便移植
- 尽量规范开发流程,保留开发历史记录;部署上线后能够保留清晰的日志记录,便于项目维护
| 架构名称 | 技术栈 |
|---|---|
| 后端 | Springboot + JPA |
| 关系型数据库 | MySQL(暂时不需要分库分表) |
| NoSQL数据库 | Redis(缓存),MongoDB(会话数据持久化) |
| 静态资源服务器 | Ngnix |
| 计算服务 | Flask(沿用之前的架构,修改代码 |
| 前端 | React |
| 架构 | 版本 |
|---|---|
| JDK | 17 |
| Maven | 3.9.8 |
| Springboot | 2.7.18 |
| MySQL | 8.0.37 |
| Redis | 6.2.14 |
| MongoDB | 6.0.16 |
-
用户模块:负责用户的注册、登录、权限控制、用户数据管理;
-
数据集模块:负责数据集信息管理(数据集创建、数据集编辑、条件查询数据集和数据集删除)
-
组模块:负责组相关的操作和信息管理(组创建、组信息编辑、组查询、组删除)
-
图片数据模块:负责图片数据信息管理
- 图片上传
- 图片下载
- 图片元信息编辑(包括图片所属分组迁移)
- 图片删除
- 图片条件查询(按数据集查询、按组查询等等))
-
会话数据模块:负责会话数据信息管理
- 会话问答信息保存
- 预定义任务问题管理
- 会话信息删除
- 会话信息查询
-
任务模块:负责所有任务(耗时操作)(数据集创建任务、大模型推理任务)信息的管理
- 任务创建
- 任务执行(调用python计算服务进行)
- 任务进度更新(通过SSE实现消息推送)
- 任务查询
-
�要求数据库定义过程不包含任何外键约束!在业务中通过应用层JPA,或纯业务逻辑来进行判断
-
�数据库每一个字段都要设置为有值(设置为非空或给定‘N/A’作为默认值,不允许出现空值!)