feat: 更新后端平台模块、数据库、Compute引擎及多项配置文档

- 更新 backend 平台 API、platform_store、session 数据库模块
- 新增 backend SQL 初始化脚本
- 更新 compute 引擎适配器及 README
- 更新 Docker 部署配置(app/compute)
- 更新前端入口、环境类型声明及 README
- 新增 docs/menu-functional-requirements.md 菜单功能需求文档
- 更新多项项目文档

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
wuyongtao
2026-07-21 10:55:44 +08:00
parent bccd3bf448
commit a72b8f1e4b
24 changed files with 571 additions and 630 deletions

View File

@@ -1,10 +1,10 @@
# 第一版系统开发计划
# 当前系统主链路开发计划
> 说明:本计划虽然以“可演示闭环”为阶段目标,但实现内容按正式系统第一版开发,不在工程模块、配置项、接口标签、数据库对象中使用临时代码命名。初始化数据仅作为样例种子数据,后续可在此基础上继续扩展为生产能力
> 说明:本计划描述当前正在开发的系统能力。代码、接口和 SQL 均按后续生产演进基线维护,不以一次性演示、静态 Mock 或样例数据作为开发准则。联调辅助能力必须显式配置启用,并不得成为默认运行路径
## 1. 阶段目标
第一版系统需要在没有完整生产环境、没有真实 GPU 或没有 LLaMA-Factory 运行环境时,仍然可以跑通模型微调平台的主链路:
当前阶段需要完成模型微调平台的主链路工程基础
```text
登录
@@ -12,24 +12,26 @@
-> 数据集管理
-> 创建微调任务
-> 调度算力节点与 GPU
-> 模拟资源副本检查同步
-> 检查同步模型/数据集资源
-> 启动训练任务
-> 查看任务状态、GPU 占用、训练日志、loss 曲线
-> 轮询任务状态、GPU 占用、训练日志、loss 曲线
-> 训练完成后登记训练产物
```
该阶段不是一次性展示代码,而是后续系统继续开发的基础版本。算力、训练框架、资源同步、任务状态机均按真实平台边界设计,当前仅以 `simulator` 模式补齐无 GPU 环境下的可运行能力
该阶段是正式系统的第一批可运行能力,不再初始化业务样例数据。系统只允许初始化内置管理员/运维账号模型、数据集、算力节点、GPU、训练任务和资源副本必须通过页面、接口、算力 Agent 扫描或正式导入流程产生
## 2. 运行模式
| 模式 | 说明 | 当前状态 |
| 模式 | 说明 | 当前要求 |
| --- | --- | --- |
| `simulator` | 模拟 GPU、训练进程、日志、指标、checkpoint 和训练产物 | 第一版默认实现 |
| `real` | 预留真实 `nvidia-smi`、LLaMA-Factory 进程启动、真实日志解析和产物扫描 | 后续接入 |
| `real` | 面向真实部署,等待 Compute API、Agent、File Gateway 和 LLaMA-Factory 执行器回写状态 | 默认模式 |
| `simulator` | 仅用于隔离联调,无真实 GPU 时临时推进任务状态、GPU 状态和训练日志 | 必须显式开启,不得用于生产基线 |
第一版实现必须保留 `real` 模式边界,不允许把训练命令直接写死在应用平台后端。训练相关能力统一沉淀在 `compute/engines/` 适配层
后端默认 `COMPUTE_MODE=real`。在该模式下,任务状态不再按时间自动推进,必须由后续真实算力同步逻辑更新。算力服务默认 `COMPUTE_EXECUTION_MODE=real`,真实训练执行器未完成前,创建训练作业会返回明确的未实现错误,避免误认为已经完成生产训练能力
## 3. 第一批开发范围
训练相关能力必须沉淀在 `compute/engines/` 适配层,不允许在应用平台后端直接拼接或执行训练命令。
## 3. 当前开发范围
### 3.1 应用平台后端
@@ -38,24 +40,27 @@
```text
backend/app/
api/v1/endpoints/platform.py
db/platform_store.py
db/session.py
core/
db/
```
覆盖能力:
建立能力:
- 统一 API 响应结构 `{ code, message, data }`
- 初始化样例用户、模型、数据集、算力节点、GPU 和微调任务
- 登录、当前用户、用户列表与权限
- 模型管理、训练产物列表、权重合并任务占位
- PostgreSQL 运行表初始化,当前执行脚本位于 `backend/app/db/sql/001_platform_runtime.sql`
- 内置管理员账号初始化,业务数据不再自动写入样例记录
- 登录、当前用户、用户列表与权限页面接口
- 模型管理、训练产物列表、权重合并任务入口。
- 数据集管理、文件上传、预览、版本管理和下载。
- 微调任务创建、启动、停止、删除、进度查询、checkpoint 查询。
- 系统健康指标、系统信息、训练日志、系统日志。
- 系统健康指标、系统信息、训练日志、系统日志接口
- 算力节点、GPU、队列、资源副本、资源同步任务接口。
开发约定
- 当前本地可运行存储使用 SQLite配置项为 `LOCAL_DB_PATH`
- 生产数据库仍以 PostgreSQL 为目标,正式表结构以 `docs/postgres-schema.sql` 为准
- `backend/app/db/session.py` 已提供 SQLAlchemy session 入口,后续替换正式 ORM 时从此处收口
待继续开发:
- 接入正式 ORM/Repository/Service 分层和 Alembic 迁移
- 将任务状态更新改为应用侧定时轮询 Compute API/File Gateway 后落库
- 完成项目/模型/数据集级权限隔离校验
- 完成审批流、审计留存、配额、资源申请和多租户上下文。
- 增加正式异常码、接口鉴权、中间件、幂等控制和分页规范。
### 3.2 算力平台服务
@@ -64,72 +69,77 @@ backend/app/
```text
compute/
api/main.py
engines/llama_factory/adapter.py
agent/
engines/llama_factory/
file_gateway/
```
覆盖能力:
建立能力:
- `/modelTF/health``/modelTF/v1/compute/health` 节点健康检查。
- `/modelTF/compute/resources/gpus` GPU 状态模拟
- `/modelTF/compute/jobs` 创建、查询、停止训练任务
- `/modelTF/compute/jobs/{id}/logs` 拉取训练日志与解析指标
- `/modelTF/compute/files/upload``/modelTF/compute/files/{id}/download` 文件网关占位。
- LLaMA-Factory 参数校验、命令生成、日志指标解析。
- LLaMA-Factory 参数校验、命令生成和训练日志指标解析
- Compute API 作业、GPU、文件网关接口壳
- 显式 `simulator` 模式下的内存状态机,用于隔离联调
设计约定
- 多算力节点阶段,每台单机多 GPU 服务器都部署一套 Compute API、Agent、File Gateway 和训练框架
- 应用平台通过 `compute_nodes` 中维护的 `api_base_url``file_gateway_url` 主动轮询算力节点
- 算力节点之间默认不互访,资源副本和同步状态由应用平台统一编排
待继续开发
- 真实 GPU 发现:接入 `nvidia-smi` 或 NVML
- GPU 锁定与释放:一张 GPU 同一时间只分配给一个训练或推理任务
- LLaMA-Factory 真实执行器:生成 YAML/命令、启动进程、停止进程、采集 PID
- 训练日志采集:读取宿主机挂载日志文件,解析 loss、learning rate、epoch 等指标。
- Checkpoint/adapter/merged model 扫描与产物登记。
- File Gateway本地磁盘文件上传、下载、校验、导入和跨节点资源同步。
### 3.3 前端页面
已接入页面:
- `/login`:登录接口。
- `/model-manage`:模型列表模型来源。
- `/dataset``/dataset/:id/preview`:数据集列表、预览版本。
- `/model-manage`:模型列表模型来源、训练产物
- `/dataset``/dataset/:id/preview`:数据集列表、预览版本。
- `/fine-tune``/fine-tune/create`:微调任务创建、启动、状态轮询。
- `/training-log/:id`:训练日志和 loss 曲线。
- `/hardware`:平台 GPU 与系统性能。
- `/compute`算力节点、GPU、队列、资源副本。
新增前端能力:
- `frontend/src/api/modules/compute.ts`:算力节点 API 包装。
- `frontend/src/views/compute/ComputeNodesView.vue`节点、GPU、队列、资源副本四个视图。
- 权限枚举增加 `compute`,菜单增加“算力节点”入口
前端 Mock 默认关闭。仅在隔离前端开发时可设置 `VITE_ENABLE_MOCK=true`,真实联调和后续生产演进均以 `/modelTF` 后端接口为准。
待继续开发:
- 补齐多租户、项目管理、审批中心、审计中心、配额管理页面
- 完成算力节点管理表单,包括节点地址、权重、标签、启用状态和健康检查结果。
- 完成模型/数据集导入页面,支持本地路径扫描和归属项目选择。
- 推理服务页面需接入真实后端任务接口,移除页面内本地假对话路径。
### 3.4 数据库
第一版运行时使用本地 SQLite 以降低开发环境门槛,但数据库模型仍按 PostgreSQL 正式设计推进。
当前运行 SQL
核心表范围:
- 用户、租户、项目、角色、权限。
- 模型、训练产物、数据集、数据集文件、存储对象。
- 微调任务、训练指标、checkpoint、审计日志。
- 算力节点、GPU 设备、算力任务、GPU 分配。
- 资源副本、资源同步任务。
```text
backend/app/db/sql/001_platform_runtime.sql
```
优化方向
- 任务状态、租户/项目隔离字段、资源副本定位字段需要建立索引。
- 审计日志、训练指标、日志归档后续建议按时间分区。
- 大文件只落本地磁盘或对象存储,数据库保存元数据和版本关系。
架构目标 SQL
```text
docs/postgres-schema.sql
```
当前运行 SQL 用于支持已开发接口落库;架构目标 SQL 包含用户中心、多租户、项目隔离、审批、审计、配额、评测等完整模型。后续需要通过 Alembic 将二者收敛为统一迁移体系,生产升级只走迁移脚本,不依赖手工改表。
## 4. 验收标准
第一版完成后应满足:
- 前端不启用静态 Mock 时,可以通过 FastAPI 获取主要页面数据。
- 登录后可以看到模型、数据集、微调任务和算力节点
- 创建微调任务后可以启动任务,任务状态自动流转
- GPU 状态会随任务进入 `syncing``queued``running` 发生变化
- 训练日志持续生成,日志详情页能解析 loss、grad norm、learning rate、epoch
- 任务完成后训练产物出现在模型管理的训练产物列表中
- 算力节点页面可展示节点地址、权重、标签、启用状态、队列和资源副本。
- 工程命名、配置和接口分组均可作为后续正式开发基础。
- 启动后端必须连接 PostgreSQL不允许回退到 SQLite。
- 后端启动只初始化系统内置账号不初始化模型、数据集、算力节点、GPU、训练任务等业务样例数据。
- 前端默认请求真实 `/modelTF` 接口,除非显式设置 `VITE_ENABLE_MOCK=true`
- 默认 `real` 模式下任务状态自动伪造完成,必须等待真实算力同步
- 显式 `simulator` 模式只能用于隔离联调,部署文档必须标注不得用于生产
- 登录后可以进入主界面,并可通过页面/API 创建真实业务记录
- 代码、接口路由、配置项、数据库表名不得使用 `demo` 命名
## 5. 后续开发计划
| 阶段 | 重点 | 说明 |
| --- | --- | --- |
| 第二阶段 | PostgreSQL ORM 与 Alembic | 将 `platform_store.py` 的能力迁移为正式 ORM、迁移脚本和 repository/service 分层 |
| 第三阶段 | 真实 Compute Agent | 接入 `nvidia-smi`、GPU 锁定、进程管理、训练日志文件采集 |
| 第四阶段 | LLaMA-Factory 真实训练 | 生成 YAML/命令、启动训练进程、停止任务、扫描 checkpoint 和 adapter |
| 第五阶段 | 企业治理 | 多租户、项目/模型/数据集隔离、审批流、审计留存、配额和资源申请 |
| 第六阶段 | 多节点调度 | 基于 `compute_nodes`、资源副本和节点标签实现自动/手动调度策略 |
| 阶段 1 | 数据库迁移体系 | 将当前运行 SQL 与架构 SQL 收敛到 Alembic 迁移 |
| 阶段 2 | 后端领域分层 | 拆分用户、模型、数据集、训练、算力、审计等模块 |
| 阶段 3 | 真实 Compute Agent | GPU 发现、资源锁定、进程管理、日志采集 |
| 阶段 4 | LLaMA-Factory 训练执行 | YAML/命令生成、进程启动/停止、checkpoint 和 adapter 扫描 |
| 阶段 5 | 企业治理 | 多租户、项目隔离、审批流、审计留存、配额和资源申请 |
| 阶段 6 | 多算力节点调度 | 基于 `compute_nodes`、标签、权重、资源副本和节点健康实现调度策略 |