feat: 更新后端配置、Docker部署、API模块及多项文档

- 更新后端 main.py、config.py 核心配置
- 更新 compute API 模块
- 更新 Docker 部署配置(app/compute docker-compose、nginx、环境变量)
- 更新前端 API 模块(dataset、model、request)及 vite 配置
- 更新多项项目文档(架构、部署、开发计划、日志等)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
wuyongtao
2026-07-21 10:09:36 +08:00
parent a67ca2c19c
commit bccd3bf448
21 changed files with 418 additions and 415 deletions

View File

@@ -1,6 +1,6 @@
# 模型微调平台后端接口设计
> 后端建议使用 FastAPI统一挂载 `/api` 前缀。本文根据当前 Vue 前端路由、API 模块、mock 数据和页面交互反推接口,并补充完整微调平台必须具备的用户中心、权限控制、审计、异步任务、文件版本与监控能力。
> 后端建议使用 FastAPI统一挂载 `/modelTF` 前缀。本文根据当前 Vue 前端路由、API 模块、mock 数据和页面交互反推接口,并补充完整微调平台必须具备的用户中心、权限控制、审计、异步任务、文件版本与监控能力。
## 1. 通用约定
@@ -58,7 +58,7 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
### 2.1 登录
`POST /api/login`
`POST /modelTF/login`
请求:
@@ -92,7 +92,7 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
### 2.2 当前用户
`GET /api/me`
`GET /modelTF/me`
用于刷新页面后恢复用户信息和权限,避免完全依赖 localStorage。
@@ -100,11 +100,11 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 | 权限 |
| --- | --- | --- | --- |
| GET | `/api/users` | 用户列表 | `user-settings` |
| POST | `/api/users` | 创建用户 | `user-settings` |
| PUT | `/api/users/{id}` | 更新角色、状态、页面权限 | `user-settings` |
| DELETE | `/api/users/{id}` | 删除用户 | `user-settings` |
| PUT | `/api/users/{id}/password` | 重置密码 | `user-settings` |
| GET | `/modelTF/users` | 用户列表 | `user-settings` |
| POST | `/modelTF/users` | 创建用户 | `user-settings` |
| PUT | `/modelTF/users/{id}` | 更新角色、状态、页面权限 | `user-settings` |
| DELETE | `/modelTF/users/{id}` | 删除用户 | `user-settings` |
| PUT | `/modelTF/users/{id}/password` | 重置密码 | `user-settings` |
创建用户请求:
@@ -133,7 +133,7 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
### 3.1 首页看板
`GET /api/dashboard/overview?period=7d`
`GET /modelTF/dashboard/overview?period=7d`
返回:
@@ -162,7 +162,7 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
### 3.2 健康指标
`GET /api/health`
`GET /modelTF/health`
响应字段兼容前端 `HealthMetrics`
@@ -176,7 +176,7 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
### 3.3 平台性能
`GET /api/system-info`
`GET /modelTF/system-info`
返回 CPU、内存、磁盘、GPU、网络、系统运行时间。GPU 进程字段建议包含 `pid``name``memory_used_gb``task_name``user`
@@ -184,11 +184,11 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| GET | `/api/log-files?date=2026-07-16` | 系统日志文件列表 |
| GET | `/api/log-content?file=system.log` | 系统日志内容 |
| GET | `/api/training-log-files` | 训练日志文件列表 |
| GET | `/api/training-log-content?file=xxx.log` | 训练日志内容 |
| POST | `/api/web-log` | 前端错误/行为日志 |
| GET | `/modelTF/log-files?date=2026-07-16` | 系统日志文件列表 |
| GET | `/modelTF/log-content?file=system.log` | 系统日志内容 |
| GET | `/modelTF/training-log-files` | 训练日志文件列表 |
| GET | `/modelTF/training-log-content?file=xxx.log` | 训练日志内容 |
| POST | `/modelTF/web-log` | 前端错误/行为日志 |
日志内容应支持 `tail``offset``limit` 参数,避免一次返回超大文件。
@@ -198,14 +198,14 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| GET | `/api/model-manage` | 模型列表 |
| GET | `/api/model-manage/{id}` | 模型详情 |
| GET | `/api/model-manage/name/{name}` | 按名称查询 |
| POST | `/api/model-manage` | 创建模型 |
| PUT | `/api/model-manage/{id}` | 编辑模型 |
| DELETE | `/api/model-manage/{id}` | 删除模型 |
| PUT | `/api/model-manage/{id}/purpose` | 修改用途 |
| GET | `/api/model-manage/local-models` | 扫描本地模型目录 |
| GET | `/modelTF/model-manage` | 模型列表 |
| GET | `/modelTF/model-manage/{id}` | 模型详情 |
| GET | `/modelTF/model-manage/name/{name}` | 按名称查询 |
| POST | `/modelTF/model-manage` | 创建模型 |
| PUT | `/modelTF/model-manage/{id}` | 编辑模型 |
| DELETE | `/modelTF/model-manage/{id}` | 删除模型 |
| PUT | `/modelTF/model-manage/{id}/purpose` | 修改用途 |
| GET | `/modelTF/model-manage/local-models` | 扫描本地模型目录 |
创建/编辑请求:
@@ -234,10 +234,10 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| GET | `/api/model-manage/trained-models` | 已训练模型列表 |
| DELETE | `/api/model-manage/trained-models/{id}?type=merged\|lora` | 删除训练产物 |
| POST | `/api/model-manage/merge` | 合并 LoRA 权重 |
| GET | `/api/model-manage/trained-models/{model_name}/export` | 导出模型文件 |
| GET | `/modelTF/model-manage/trained-models` | 已训练模型列表 |
| DELETE | `/modelTF/model-manage/trained-models/{id}?type=merged\|lora` | 删除训练产物 |
| POST | `/modelTF/model-manage/merge` | 合并 LoRA 权重 |
| GET | `/modelTF/model-manage/trained-models/{model_name}/export` | 导出模型文件 |
合并请求:
@@ -264,14 +264,14 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| GET | `/api/dataset-manage` | 数据集列表 |
| GET | `/api/dataset-manage/{id}` | 数据集详情 |
| POST | `/api/dataset-manage` | 创建数据集 |
| PUT | `/api/dataset-manage/{id}` | 更新数据集 |
| DELETE | `/api/dataset-manage/{id}` | 删除数据集 |
| POST | `/api/dataset-manage/upload/{dataset_id}` | 上传文件,字段名 `files` |
| GET | `/api/dataset-manage/download/{dataset_id}` | 打包下载数据集 |
| GET | `/api/dataset-manage/download/{dataset_id}/{file_id}` | 下载单文件 |
| GET | `/modelTF/dataset-manage` | 数据集列表 |
| GET | `/modelTF/dataset-manage/{id}` | 数据集详情 |
| POST | `/modelTF/dataset-manage` | 创建数据集 |
| PUT | `/modelTF/dataset-manage/{id}` | 更新数据集 |
| DELETE | `/modelTF/dataset-manage/{id}` | 删除数据集 |
| POST | `/modelTF/dataset-manage/upload/{dataset_id}` | 上传文件,字段名 `files` |
| GET | `/modelTF/dataset-manage/download/{dataset_id}` | 打包下载数据集 |
| GET | `/modelTF/dataset-manage/download/{dataset_id}/{file_id}` | 下载单文件 |
创建数据集:
@@ -296,12 +296,12 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| GET | `/api/dataset-manage/preview/{file_id}` | 当前版本内容预览 |
| GET | `/api/dataset-manage/versions/{file_id}` | 文件版本列表 |
| GET | `/api/dataset-manage/versions/{file_id}/{version_id}` | 读取历史版本 |
| POST | `/api/dataset-manage/versions/{file_id}` | 保存为新版本 |
| PUT | `/api/dataset-manage/versions/{file_id}/active` | 切换当前版本 |
| DELETE | `/api/dataset-manage/versions/{file_id}/{version_id}` | 删除非当前、非初始版本 |
| GET | `/modelTF/dataset-manage/preview/{file_id}` | 当前版本内容预览 |
| GET | `/modelTF/dataset-manage/versions/{file_id}` | 文件版本列表 |
| GET | `/modelTF/dataset-manage/versions/{file_id}/{version_id}` | 读取历史版本 |
| POST | `/modelTF/dataset-manage/versions/{file_id}` | 保存为新版本 |
| PUT | `/modelTF/dataset-manage/versions/{file_id}/active` | 切换当前版本 |
| DELETE | `/modelTF/dataset-manage/versions/{file_id}/{version_id}` | 删除非当前、非初始版本 |
创建新版本:
@@ -324,15 +324,15 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| GET | `/api/data-process` | 数据处理任务列表 |
| POST | `/api/data-process` | 创建草稿任务 |
| GET | `/api/data-process/{id}` | 任务详情 |
| PUT | `/api/data-process/{id}` | 更新任务配置 |
| DELETE | `/api/data-process/{id}` | 删除任务 |
| POST | `/api/data-process/{id}/start` | 启动处理 |
| POST | `/api/data-process/{id}/stop` | 停止处理 |
| GET | `/api/data-process/{id}/progress` | 查询进度 |
| GET | `/api/data-process/{id}/events` | SSE 实时进度 |
| GET | `/modelTF/data-process` | 数据处理任务列表 |
| POST | `/modelTF/data-process` | 创建草稿任务 |
| GET | `/modelTF/data-process/{id}` | 任务详情 |
| PUT | `/modelTF/data-process/{id}` | 更新任务配置 |
| DELETE | `/modelTF/data-process/{id}` | 删除任务 |
| POST | `/modelTF/data-process/{id}/start` | 启动处理 |
| POST | `/modelTF/data-process/{id}/stop` | 停止处理 |
| GET | `/modelTF/data-process/{id}/progress` | 查询进度 |
| GET | `/modelTF/data-process/{id}/events` | SSE 实时进度 |
创建任务:
@@ -358,10 +358,10 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| POST | `/api/data-process/{id}/source-files` | 上传源文件,字段名 `files` |
| DELETE | `/api/data-process/{id}/source-files/{file_id}` | 移除源文件 |
| POST | `/api/data-process/{id}/external/test` | 测试外部数据源连接 |
| POST | `/api/data-process/{id}/external/pull` | 拉取外部数据并生成源文件 |
| POST | `/modelTF/data-process/{id}/source-files` | 上传源文件,字段名 `files` |
| DELETE | `/modelTF/data-process/{id}/source-files/{file_id}` | 移除源文件 |
| POST | `/modelTF/data-process/{id}/external/test` | 测试外部数据源连接 |
| POST | `/modelTF/data-process/{id}/external/pull` | 拉取外部数据并生成源文件 |
外部数据源请求:
@@ -383,11 +383,11 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| POST | `/api/data-process/{id}/preview/build` | 根据源文件和配置生成预览切片 |
| GET | `/api/data-process/{id}/preview` | 查询预览切片 |
| PUT | `/api/data-process/{id}/preview/{preview_id}` | 编辑切片内容 |
| POST | `/api/data-process/{id}/preview` | 手动新增切片 |
| DELETE | `/api/data-process/{id}/preview/{preview_id}` | 删除切片 |
| POST | `/modelTF/data-process/{id}/preview/build` | 根据源文件和配置生成预览切片 |
| GET | `/modelTF/data-process/{id}/preview` | 查询预览切片 |
| PUT | `/modelTF/data-process/{id}/preview/{preview_id}` | 编辑切片内容 |
| POST | `/modelTF/data-process/{id}/preview` | 手动新增切片 |
| DELETE | `/modelTF/data-process/{id}/preview/{preview_id}` | 删除切片 |
预览切片字段:
@@ -410,11 +410,11 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| POST | `/api/data-process/{id}/generate` | 启动 LLM 生成 |
| GET | `/api/data-process/{id}/results` | 查询结果明细 |
| PUT | `/api/data-process/{id}/results/{result_id}` | 编辑结果 |
| POST | `/api/data-process/{id}/results/{result_id}/restore` | 恢复原始结果 |
| POST | `/api/data-process/{id}/publish` | 发布为数据集 |
| POST | `/modelTF/data-process/{id}/generate` | 启动 LLM 生成 |
| GET | `/modelTF/data-process/{id}/results` | 查询结果明细 |
| PUT | `/modelTF/data-process/{id}/results/{result_id}` | 编辑结果 |
| POST | `/modelTF/data-process/{id}/results/{result_id}/restore` | 恢复原始结果 |
| POST | `/modelTF/data-process/{id}/publish` | 发布为数据集 |
结果字段:
@@ -445,17 +445,17 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| GET | `/api/fine-tune` | 训练任务列表 |
| GET | `/api/fine-tune/{id}` | 训练任务详情 |
| GET | `/api/fine-tune/check-name?name=xxx` | 任务名查重 |
| POST | `/api/fine-tune` | 创建训练任务记录 |
| POST | `/api/fine-tune/start` | 启动训练 |
| PUT | `/api/fine-tune/{id}` | 更新任务 |
| POST | `/api/fine-tune/stop/{id}` | 停止任务 |
| DELETE | `/api/fine-tune/{id}` | 删除任务 |
| GET | `/api/fine-tune/progress/{id}` | 获取训练进度 |
| GET | `/api/fine-tune/{id}/events` | SSE 训练日志/进度 |
| POST | `/api/fine-tune/tensorboard/start` | 启动 TensorBoard |
| GET | `/modelTF/fine-tune` | 训练任务列表 |
| GET | `/modelTF/fine-tune/{id}` | 训练任务详情 |
| GET | `/modelTF/fine-tune/check-name?name=xxx` | 任务名查重 |
| POST | `/modelTF/fine-tune` | 创建训练任务记录 |
| POST | `/modelTF/fine-tune/start` | 启动训练 |
| PUT | `/modelTF/fine-tune/{id}` | 更新任务 |
| POST | `/modelTF/fine-tune/stop/{id}` | 停止任务 |
| DELETE | `/modelTF/fine-tune/{id}` | 删除任务 |
| GET | `/modelTF/fine-tune/progress/{id}` | 获取训练进度 |
| GET | `/modelTF/fine-tune/{id}/events` | SSE 训练日志/进度 |
| POST | `/modelTF/fine-tune/tensorboard/start` | 启动 TensorBoard |
启动训练请求兼容前端 `FineTuneStartPayload`
@@ -496,14 +496,14 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
训练日志页还会联合调用:
- `GET /api/fine-tune/{id}` 获取任务参数。
- `GET /api/dataset-manage/{id}` 获取训练集信息。
- `GET /api/system-info` 获取 GPU 状态。
- `GET /api/training-log-files``GET /api/training-log-content` 获取日志。
- `GET /modelTF/fine-tune/{id}` 获取任务参数。
- `GET /modelTF/dataset-manage/{id}` 获取训练集信息。
- `GET /modelTF/system-info` 获取 GPU 状态。
- `GET /modelTF/training-log-files``GET /modelTF/training-log-content` 获取日志。
建议新增:
`GET /api/fine-tune/{id}/overview`
`GET /modelTF/fine-tune/{id}/overview`
一次返回任务、数据集、GPU、日志摘要、指标曲线减少页面聚合复杂度。
@@ -513,11 +513,11 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| GET | `/api/model-eval` | 评测任务列表 |
| GET | `/api/model-eval/{id}` | 评测详情 |
| POST | `/api/model-eval/start` | 启动评测 |
| DELETE | `/api/model-eval/{id}` | 删除评测 |
| GET | `/api/model-eval/{id}/events` | SSE 评测进度 |
| GET | `/modelTF/model-eval` | 评测任务列表 |
| GET | `/modelTF/model-eval/{id}` | 评测详情 |
| POST | `/modelTF/model-eval/start` | 启动评测 |
| DELETE | `/modelTF/model-eval/{id}` | 删除评测 |
| GET | `/modelTF/model-eval/{id}/events` | SSE 评测进度 |
启动评测:
@@ -550,11 +550,11 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| GET | `/api/dimension` | 维度列表 |
| GET | `/api/dimension/{id}` | 维度详情 |
| POST | `/api/dimension` | 创建维度 |
| PUT | `/api/dimension/{id}` | 编辑维度 |
| DELETE | `/api/dimension/{id}` | 删除维度 |
| GET | `/modelTF/dimension` | 维度列表 |
| GET | `/modelTF/dimension/{id}` | 维度详情 |
| POST | `/modelTF/dimension` | 创建维度 |
| PUT | `/modelTF/dimension/{id}` | 编辑维度 |
| DELETE | `/modelTF/dimension/{id}` | 删除维度 |
维度请求:
@@ -583,17 +583,17 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| GET | `/api/model-compare` | 推理/对比任务列表 |
| GET | `/api/model-compare/{id}` | 任务详情 |
| POST | `/api/model-compare` | 创建任务 |
| DELETE | `/api/model-compare/{id}` | 删除任务 |
| POST | `/api/model-compare/{id}/load` | 加载任务内模型 |
| POST | `/api/model-compare/{id}/unload` | 卸载任务内模型 |
| GET | `/api/model-compare/{id}/load-status` | 查询加载状态 |
| POST | `/api/model-compare/{id}/load-status` | 更新加载状态 |
| POST | `/api/model-compare/{id}/start-model` | 启动单个模型服务 |
| POST | `/api/model-compare/stop-by-pid` | 按 PID 停止模型 |
| POST | `/api/model-compare/all/stop-all` | 停止全部旧模型服务 |
| GET | `/modelTF/model-compare` | 推理/对比任务列表 |
| GET | `/modelTF/model-compare/{id}` | 任务详情 |
| POST | `/modelTF/model-compare` | 创建任务 |
| DELETE | `/modelTF/model-compare/{id}` | 删除任务 |
| POST | `/modelTF/model-compare/{id}/load` | 加载任务内模型 |
| POST | `/modelTF/model-compare/{id}/unload` | 卸载任务内模型 |
| GET | `/modelTF/model-compare/{id}/load-status` | 查询加载状态 |
| POST | `/modelTF/model-compare/{id}/load-status` | 更新加载状态 |
| POST | `/modelTF/model-compare/{id}/start-model` | 启动单个模型服务 |
| POST | `/modelTF/model-compare/stop-by-pid` | 按 PID 停止模型 |
| POST | `/modelTF/model-compare/all/stop-all` | 停止全部旧模型服务 |
创建任务:
@@ -617,12 +617,12 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| POST | `/api/model-compare/stream-chat` | 流式对话,建议 SSE/chunked |
| POST | `/api/model-compare/chat-with-port` | 指定端口非流式对话 |
| POST | `/api/model-chat/batch` | API 模型批量对话 |
| POST | `/api/model-chat/local/chat` | 本地模型对话 |
| POST | `/api/model-chat/local/preload` | 预加载本地模型 |
| POST | `/api/model-chat/trained/preload` | 预加载已训练模型 |
| POST | `/modelTF/model-compare/stream-chat` | 流式对话,建议 SSE/chunked |
| POST | `/modelTF/model-compare/chat-with-port` | 指定端口非流式对话 |
| POST | `/modelTF/model-chat/batch` | API 模型批量对话 |
| POST | `/modelTF/model-chat/local/chat` | 本地模型对话 |
| POST | `/modelTF/model-chat/local/preload` | 预加载本地模型 |
| POST | `/modelTF/model-chat/trained/preload` | 预加载已训练模型 |
流式请求:
@@ -649,10 +649,10 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| POST | `/api/data-convert/jobs` | 创建转换任务multipart 上传源文件 |
| GET | `/api/data-convert/jobs/{id}` | 转换任务详情 |
| GET | `/api/data-convert/jobs/{id}/download` | 下载转换结果 |
| DELETE | `/api/data-convert/jobs/{id}` | 删除转换任务 |
| POST | `/modelTF/data-convert/jobs` | 创建转换任务multipart 上传源文件 |
| GET | `/modelTF/data-convert/jobs/{id}` | 转换任务详情 |
| GET | `/modelTF/data-convert/jobs/{id}/download` | 下载转换结果 |
| DELETE | `/modelTF/data-convert/jobs/{id}` | 删除转换任务 |
请求字段:
@@ -667,11 +667,11 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| GET | `/api/tools` | 工具列表 |
| POST | `/api/tools` | 创建工具 |
| GET | `/api/tools/{id}` | 工具详情 |
| PUT | `/api/tools/{id}` | 编辑工具 |
| DELETE | `/api/tools/{id}` | 删除工具 |
| GET | `/modelTF/tools` | 工具列表 |
| POST | `/modelTF/tools` | 创建工具 |
| GET | `/modelTF/tools/{id}` | 工具详情 |
| PUT | `/modelTF/tools/{id}` | 编辑工具 |
| DELETE | `/modelTF/tools/{id}` | 删除工具 |
字段:`name``description``url``icon``visibility``owner_id`
@@ -706,12 +706,12 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 | 权限 |
| --- | --- | --- | --- |
| GET | `/api/tenants` | 租户列表 | 平台管理员 |
| POST | `/api/tenants` | 创建租户 | 平台管理员 |
| GET | `/api/tenants/{id}` | 租户详情 | 租户管理员 |
| PUT | `/api/tenants/{id}` | 更新租户 | 平台管理员 |
| PUT | `/api/tenants/{id}/quota` | 设置租户配额 | 平台管理员 |
| PUT | `/api/tenants/{id}/retention-policy` | 设置租户留存策略 | 平台管理员 |
| GET | `/modelTF/tenants` | 租户列表 | 平台管理员 |
| POST | `/modelTF/tenants` | 创建租户 | 平台管理员 |
| GET | `/modelTF/tenants/{id}` | 租户详情 | 租户管理员 |
| PUT | `/modelTF/tenants/{id}` | 更新租户 | 平台管理员 |
| PUT | `/modelTF/tenants/{id}/quota` | 设置租户配额 | 平台管理员 |
| PUT | `/modelTF/tenants/{id}/retention-policy` | 设置租户留存策略 | 平台管理员 |
创建租户:
@@ -738,15 +738,15 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| GET | `/api/projects` | 当前用户可访问项目列表 |
| POST | `/api/projects` | 创建项目 |
| GET | `/api/projects/{id}` | 项目详情 |
| PUT | `/api/projects/{id}` | 更新项目 |
| POST | `/api/projects/{id}/archive` | 归档项目 |
| GET | `/api/projects/{id}/members` | 项目成员 |
| POST | `/api/projects/{id}/members` | 添加成员 |
| PUT | `/api/projects/{id}/members/{user_id}` | 修改项目角色 |
| DELETE | `/api/projects/{id}/members/{user_id}` | 移除成员 |
| GET | `/modelTF/projects` | 当前用户可访问项目列表 |
| POST | `/modelTF/projects` | 创建项目 |
| GET | `/modelTF/projects/{id}` | 项目详情 |
| PUT | `/modelTF/projects/{id}` | 更新项目 |
| POST | `/modelTF/projects/{id}/archive` | 归档项目 |
| GET | `/modelTF/projects/{id}/members` | 项目成员 |
| POST | `/modelTF/projects/{id}/members` | 添加成员 |
| PUT | `/modelTF/projects/{id}/members/{user_id}` | 修改项目角色 |
| DELETE | `/modelTF/projects/{id}/members/{user_id}` | 移除成员 |
创建项目:
@@ -772,9 +772,9 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| GET | `/api/resources/{resource_type}/{resource_id}/acl` | 查询资源授权 |
| PUT | `/api/resources/{resource_type}/{resource_id}/acl` | 覆盖资源授权 |
| POST | `/api/resources/{resource_type}/{resource_id}/share` | 快速分享给用户/项目角色 |
| GET | `/modelTF/resources/{resource_type}/{resource_id}/acl` | 查询资源授权 |
| PUT | `/modelTF/resources/{resource_type}/{resource_id}/acl` | 覆盖资源授权 |
| POST | `/modelTF/resources/{resource_type}/{resource_id}/share` | 快速分享给用户/项目角色 |
授权请求:
@@ -801,14 +801,14 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| GET | `/api/approvals` | 审批列表,支持 `type=pending/mine/done` |
| POST | `/api/approvals` | 发起审批 |
| GET | `/api/approvals/{id}` | 审批详情 |
| POST | `/api/approvals/{id}/approve` | 通过 |
| POST | `/api/approvals/{id}/reject` | 驳回 |
| POST | `/api/approvals/{id}/cancel` | 撤回 |
| GET | `/api/approval-templates` | 审批模板列表 |
| PUT | `/api/approval-templates/{id}` | 更新审批模板 |
| GET | `/modelTF/approvals` | 审批列表,支持 `type=pending/mine/done` |
| POST | `/modelTF/approvals` | 发起审批 |
| GET | `/modelTF/approvals/{id}` | 审批详情 |
| POST | `/modelTF/approvals/{id}/approve` | 通过 |
| POST | `/modelTF/approvals/{id}/reject` | 驳回 |
| POST | `/modelTF/approvals/{id}/cancel` | 撤回 |
| GET | `/modelTF/approval-templates` | 审批模板列表 |
| PUT | `/modelTF/approval-templates/{id}` | 更新审批模板 |
发起审批:
@@ -831,28 +831,28 @@ page=1&page_size=20&keyword=xxx&sort=-created_at
### 13.5 算力资源与队列
应用平台对前端暴露 `/api/compute/*`,实际由 Compute Gateway 调用算力平台内部接口。
应用平台对前端暴露 `/modelTF/compute/*`,实际由 Compute Gateway 调用算力平台内部接口。
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| GET | `/api/compute/nodes` | 算力节点列表 |
| POST | `/api/compute/nodes` | 新增算力节点 |
| GET | `/api/compute/nodes/{id}` | 算力节点详情 |
| PUT | `/api/compute/nodes/{id}` | 编辑节点地址、权重、标签、路径和启用状态 |
| POST | `/api/compute/nodes/{id}/test-connection` | 测试 Compute API/File Gateway 连通性 |
| POST | `/api/compute/nodes/{id}/enable` | 启用节点 |
| POST | `/api/compute/nodes/{id}/disable` | 禁用节点,不接收新任务 |
| POST | `/api/compute/nodes/{id}/drain` | 进入维护模式,已有任务跑完后下线 |
| POST | `/api/compute/nodes/{id}/health-check` | 主动触发节点健康检查 |
| GET | `/api/compute/nodes/{id}/engines` | 节点训练引擎和版本 |
| GET | `/api/compute/nodes/{id}/replicas` | 节点本地资源副本 |
| GET | `/api/compute/gpus` | GPU 状态 |
| GET | `/api/compute/queue` | 任务队列 |
| GET | `/api/compute/jobs/{id}` | 算力任务详情 |
| POST | `/api/compute/jobs/{id}/retry` | 重试任务 |
| POST | `/api/compute/jobs/{id}/priority` | 调整优先级 |
| POST | `/api/internal/compute-sync/jobs/poll` | 应用平台主动轮询并同步算力任务状态 |
| POST | `/api/internal/compute-sync/resources` | 调度前同步数据集/模型到目标节点 |
| GET | `/modelTF/compute/nodes` | 算力节点列表 |
| POST | `/modelTF/compute/nodes` | 新增算力节点 |
| GET | `/modelTF/compute/nodes/{id}` | 算力节点详情 |
| PUT | `/modelTF/compute/nodes/{id}` | 编辑节点地址、权重、标签、路径和启用状态 |
| POST | `/modelTF/compute/nodes/{id}/test-connection` | 测试 Compute API/File Gateway 连通性 |
| POST | `/modelTF/compute/nodes/{id}/enable` | 启用节点 |
| POST | `/modelTF/compute/nodes/{id}/disable` | 禁用节点,不接收新任务 |
| POST | `/modelTF/compute/nodes/{id}/drain` | 进入维护模式,已有任务跑完后下线 |
| POST | `/modelTF/compute/nodes/{id}/health-check` | 主动触发节点健康检查 |
| GET | `/modelTF/compute/nodes/{id}/engines` | 节点训练引擎和版本 |
| GET | `/modelTF/compute/nodes/{id}/replicas` | 节点本地资源副本 |
| GET | `/modelTF/compute/gpus` | GPU 状态 |
| GET | `/modelTF/compute/queue` | 任务队列 |
| GET | `/modelTF/compute/jobs/{id}` | 算力任务详情 |
| POST | `/modelTF/compute/jobs/{id}/retry` | 重试任务 |
| POST | `/modelTF/compute/jobs/{id}/priority` | 调整优先级 |
| POST | `/modelTF/internal/compute-sync/jobs/poll` | 应用平台主动轮询并同步算力任务状态 |
| POST | `/modelTF/internal/compute-sync/resources` | 调度前同步数据集/模型到目标节点 |
算力节点设计说明:
@@ -913,13 +913,13 @@ GPU 响应字段:
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| POST | `/compute/jobs` | 创建训练/评测/数据处理/推理任务 |
| GET | `/compute/jobs/{id}` | 查询任务 |
| POST | `/compute/jobs/{id}/stop` | 停止任务 |
| GET | `/compute/jobs/{id}/logs` | 拉取日志 |
| GET | `/compute/resources/gpus` | 查询 GPU |
| POST | `/compute/files/upload` | 上传到算力本地磁盘 |
| GET | `/compute/files/{id}/download` | 下载文件 |
| POST | `/modelTF/compute/jobs` | 创建训练/评测/数据处理/推理任务 |
| GET | `/modelTF/compute/jobs/{id}` | 查询任务 |
| POST | `/modelTF/compute/jobs/{id}/stop` | 停止任务 |
| GET | `/modelTF/compute/jobs/{id}/logs` | 拉取日志 |
| GET | `/modelTF/compute/resources/gpus` | 查询 GPU |
| POST | `/modelTF/compute/files/upload` | 上传到算力本地磁盘 |
| GET | `/modelTF/compute/files/{id}/download` | 下载文件 |
创建算力任务:
@@ -994,13 +994,13 @@ GPU 响应字段:
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| POST | `/api/files/upload-session` | 创建分片上传会话 |
| PUT | `/api/files/upload-session/{id}/parts/{part_no}` | 上传分片 |
| POST | `/api/files/upload-session/{id}/complete` | 完成上传 |
| GET | `/api/files/{id}/preview` | 文件预览 |
| GET | `/api/files/{id}/download-url` | 获取短时下载链接 |
| POST | `/api/import/local-model` | 从算力节点本地路径导入模型 |
| POST | `/api/import/local-dataset` | 从算力节点本地路径导入数据集 |
| POST | `/modelTF/files/upload-session` | 创建分片上传会话 |
| PUT | `/modelTF/files/upload-session/{id}/parts/{part_no}` | 上传分片 |
| POST | `/modelTF/files/upload-session/{id}/complete` | 完成上传 |
| GET | `/modelTF/files/{id}/preview` | 文件预览 |
| GET | `/modelTF/files/{id}/download-url` | 获取短时下载链接 |
| POST | `/modelTF/import/local-model` | 从算力节点本地路径导入模型 |
| POST | `/modelTF/import/local-dataset` | 从算力节点本地路径导入数据集 |
离线导入模型:
@@ -1019,10 +1019,10 @@ GPU 响应字段:
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| GET | `/api/training-engines` | 训练引擎列表 |
| GET | `/api/training-engines/{id}` | 引擎详情 |
| GET | `/api/training-engines/{id}/schema` | 参数 schema |
| POST | `/api/training-engines/{id}/health-check` | 健康检查 |
| GET | `/modelTF/training-engines` | 训练引擎列表 |
| GET | `/modelTF/training-engines/{id}` | 引擎详情 |
| GET | `/modelTF/training-engines/{id}/schema` | 参数 schema |
| POST | `/modelTF/training-engines/{id}/health-check` | 健康检查 |
LLaMA-Factory 引擎声明:
@@ -1042,11 +1042,11 @@ LLaMA-Factory 引擎声明:
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| GET | `/api/fine-tune/{id}/checkpoints` | checkpoint 列表 |
| POST | `/api/fine-tune/{id}/retry` | 失败任务重试 |
| POST | `/api/fine-tune/{id}/resume` | 从 checkpoint 恢复训练 |
| DELETE | `/api/fine-tune/{id}/checkpoints/{checkpoint_id}` | 删除 checkpoint可能触发审批 |
| PUT | `/api/fine-tune/{id}/checkpoint-retention` | 设置 checkpoint 保留策略 |
| GET | `/modelTF/fine-tune/{id}/checkpoints` | checkpoint 列表 |
| POST | `/modelTF/fine-tune/{id}/retry` | 失败任务重试 |
| POST | `/modelTF/fine-tune/{id}/resume` | 从 checkpoint 恢复训练 |
| DELETE | `/modelTF/fine-tune/{id}/checkpoints/{checkpoint_id}` | 删除 checkpoint可能触发审批 |
| PUT | `/modelTF/fine-tune/{id}/checkpoint-retention` | 设置 checkpoint 保留策略 |
默认保留策略:最近 3 个、最优 2 个、已发布模型关联 checkpoint 不自动删除、失败任务保留 14 天。
@@ -1054,13 +1054,13 @@ LLaMA-Factory 引擎声明:
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| GET | `/api/audit-logs` | 操作审计 |
| GET | `/api/login-logs` | 登录审计 |
| GET | `/api/download-logs` | 下载审计 |
| GET | `/api/retention-policies` | 留存策略 |
| PUT | `/api/retention-policies/{id}` | 更新留存策略 |
| GET | `/api/quotas/usage` | 配额使用 |
| GET | `/api/usage/summary` | GPU 小时、磁盘、推理调用统计 |
| GET | `/modelTF/audit-logs` | 操作审计 |
| GET | `/modelTF/login-logs` | 登录审计 |
| GET | `/modelTF/download-logs` | 下载审计 |
| GET | `/modelTF/retention-policies` | 留存策略 |
| PUT | `/modelTF/retention-policies/{id}` | 更新留存策略 |
| GET | `/modelTF/quotas/usage` | 配额使用 |
| GET | `/modelTF/usage/summary` | GPU 小时、磁盘、推理调用统计 |
第一版只做用量统计,不做账单计费;第二期可扩展成本核算。
@@ -1072,88 +1072,88 @@ LLaMA-Factory 引擎声明:
| 页面模块 | 路由/入口 | 接口 | 说明 |
| --- | --- | --- | --- |
| 登录页 | `/login` | `POST /api/login``GET /api/me``POST /api/logout` | 登录、恢复用户、退出 |
| 用户中心 | `/user-settings` | `GET /api/users` | 用户列表、搜索、状态筛选 |
| 创建用户 | `/user-settings/create` | `POST /api/users` | 创建本地用户 |
| 用户权限 | `/user-settings/:id/permission` | `PUT /api/users/{id}``PUT /api/users/{id}/password` | 用户角色、状态、页面权限、重置密码 |
| 无权限页 | `/permission-denied` | 无专属接口,可调用 `GET /api/me` | 展示当前用户权限和返回入口 |
| 登录页 | `/login` | `POST /modelTF/login``GET /modelTF/me``POST /modelTF/logout` | 登录、恢复用户、退出 |
| 用户中心 | `/user-settings` | `GET /modelTF/users` | 用户列表、搜索、状态筛选 |
| 创建用户 | `/user-settings/create` | `POST /modelTF/users` | 创建本地用户 |
| 用户权限 | `/user-settings/:id/permission` | `PUT /modelTF/users/{id}``PUT /modelTF/users/{id}/password` | 用户角色、状态、页面权限、重置密码 |
| 无权限页 | `/permission-denied` | 无专属接口,可调用 `GET /modelTF/me` | 展示当前用户权限和返回入口 |
### 14.2 租户、项目和资源授权
| 页面模块 | 路由/入口 | 接口 | 说明 |
| --- | --- | --- | --- |
| 租户管理 | `/tenants` | `GET /api/tenants``POST /api/tenants` | 租户列表、创建租户 |
| 租户详情 | `/tenants/:id` | `GET /api/tenants/{id}``PUT /api/tenants/{id}``PUT /api/tenants/{id}/quota``PUT /api/tenants/{id}/retention-policy` | 租户配置、配额、留存 |
| 项目列表 | `/projects` | `GET /api/projects``POST /api/projects` | 项目列表、创建项目 |
| 项目详情 | `/projects/:id` | `GET /api/projects/{id}``PUT /api/projects/{id}``POST /api/projects/{id}/archive` | 项目概览、归档 |
| 项目成员 | `/projects/:id/members` | `GET /api/projects/{id}/members``POST /api/projects/{id}/members``PUT /api/projects/{id}/members/{user_id}``DELETE /api/projects/{id}/members/{user_id}` | 成员和项目角色 |
| 资源授权 | 资源详情弹窗或 `/projects/:id/permissions` | `GET /api/resources/{resource_type}/{resource_id}/acl``PUT /api/resources/{resource_type}/{resource_id}/acl``POST /api/resources/{resource_type}/{resource_id}/share` | 模型/数据集/任务级 ACL |
| 租户管理 | `/tenants` | `GET /modelTF/tenants``POST /modelTF/tenants` | 租户列表、创建租户 |
| 租户详情 | `/tenants/:id` | `GET /modelTF/tenants/{id}``PUT /modelTF/tenants/{id}``PUT /modelTF/tenants/{id}/quota``PUT /modelTF/tenants/{id}/retention-policy` | 租户配置、配额、留存 |
| 项目列表 | `/projects` | `GET /modelTF/projects``POST /modelTF/projects` | 项目列表、创建项目 |
| 项目详情 | `/projects/:id` | `GET /modelTF/projects/{id}``PUT /modelTF/projects/{id}``POST /modelTF/projects/{id}/archive` | 项目概览、归档 |
| 项目成员 | `/projects/:id/members` | `GET /modelTF/projects/{id}/members``POST /modelTF/projects/{id}/members``PUT /modelTF/projects/{id}/members/{user_id}``DELETE /modelTF/projects/{id}/members/{user_id}` | 成员和项目角色 |
| 资源授权 | 资源详情弹窗或 `/projects/:id/permissions` | `GET /modelTF/resources/{resource_type}/{resource_id}/acl``PUT /modelTF/resources/{resource_type}/{resource_id}/acl``POST /modelTF/resources/{resource_type}/{resource_id}/share` | 模型/数据集/任务级 ACL |
### 14.3 看板、监控和日志
| 页面模块 | 路由/入口 | 接口 | 说明 |
| --- | --- | --- | --- |
| 服务看板 | `/dashboard` | `GET /api/dashboard/overview``GET /api/health` | 首页聚合、轻量健康指标 |
| 平台性能 | `/hardware` | `GET /api/system-info``GET /api/compute/gpus` | CPU、内存、磁盘、GPU、任务占用 |
| 系统日志 | `/logs` | `GET /api/log-files``GET /api/log-content` | 系统日志列表和内容 |
| 训练日志页 | `/training-log/:id` | `GET /api/fine-tune/{id}/overview``GET /api/training-log-files``GET /api/training-log-content` | 训练日志、指标、GPU 状态 |
| 服务看板 | `/dashboard` | `GET /modelTF/dashboard/overview``GET /modelTF/health` | 首页聚合、轻量健康指标 |
| 平台性能 | `/hardware` | `GET /modelTF/system-info``GET /modelTF/compute/gpus` | CPU、内存、磁盘、GPU、任务占用 |
| 系统日志 | `/logs` | `GET /modelTF/log-files``GET /modelTF/log-content` | 系统日志列表和内容 |
| 训练日志页 | `/training-log/:id` | `GET /modelTF/fine-tune/{id}/overview``GET /modelTF/training-log-files``GET /modelTF/training-log-content` | 训练日志、指标、GPU 状态 |
### 14.4 模型管理
| 页面模块 | 路由/入口 | 接口 | 说明 |
| --- | --- | --- | --- |
| 模型列表 | `/model-manage` | `GET /api/model-manage``DELETE /api/model-manage/{id}``PUT /api/model-manage/{id}/purpose` | 模型列表、删除审批入口、用途变更 |
| 模型创建/编辑 | `/model-manage/create``/model-manage/:id/edit` | `GET /api/model-manage/{id}``POST /api/model-manage``PUT /api/model-manage/{id}``GET /api/model-manage/local-models` | 本地/API 模型登记 |
| 离线导入模型 | 模型创建页或导入弹窗 | `POST /api/import/local-model` | 从算力节点本地路径导入 |
| 已训练模型 | 模型列表/选择弹窗 | `GET /api/model-manage/trained-models``DELETE /api/model-manage/trained-models/{id}` | 训练产物列表和删除 |
| 权重合并 | `/model-manage/merge` | `POST /api/model-manage/merge` | LoRA 合并任务 |
| 模型导出 | 模型列表/详情 | `GET /api/model-manage/trained-models/{model_name}/export` | 导出下载,必要时触发审批 |
| 模型列表 | `/model-manage` | `GET /modelTF/model-manage``DELETE /modelTF/model-manage/{id}``PUT /modelTF/model-manage/{id}/purpose` | 模型列表、删除审批入口、用途变更 |
| 模型创建/编辑 | `/model-manage/create``/model-manage/:id/edit` | `GET /modelTF/model-manage/{id}``POST /modelTF/model-manage``PUT /modelTF/model-manage/{id}``GET /modelTF/model-manage/local-models` | 本地/API 模型登记 |
| 离线导入模型 | 模型创建页或导入弹窗 | `POST /modelTF/import/local-model` | 从算力节点本地路径导入 |
| 已训练模型 | 模型列表/选择弹窗 | `GET /modelTF/model-manage/trained-models``DELETE /modelTF/model-manage/trained-models/{id}` | 训练产物列表和删除 |
| 权重合并 | `/model-manage/merge` | `POST /modelTF/model-manage/merge` | LoRA 合并任务 |
| 模型导出 | 模型列表/详情 | `GET /modelTF/model-manage/trained-models/{model_name}/export` | 导出下载,必要时触发审批 |
### 14.5 数据集与数据处理
| 页面模块 | 路由/入口 | 接口 | 说明 |
| --- | --- | --- | --- |
| 数据集列表 | `/dataset` | `GET /api/dataset-manage``DELETE /api/dataset-manage/{id}``GET /api/dataset-manage/download/{id}` | 数据集列表、删除、打包下载 |
| 数据集创建/编辑 | `/dataset/create``/dataset/:id/edit` | `POST /api/dataset-manage``PUT /api/dataset-manage/{id}``POST /api/dataset-manage/upload/{dataset_id}` | 数据集元数据和文件上传 |
| 离线导入数据集 | 数据集创建页或导入弹窗 | `POST /api/import/local-dataset` | 从算力节点目录导入 |
| 数据集预览 | `/dataset/:id/preview` | `GET /api/dataset-manage/preview/{file_id}``GET /api/dataset-manage/versions/{file_id}``POST /api/dataset-manage/versions/{file_id}``PUT /api/dataset-manage/versions/{file_id}/active``DELETE /api/dataset-manage/versions/{file_id}/{version_id}` | 文件预览、版本、在线编辑 |
| 数据处理列表 | `/data-process` | `GET /api/data-process``DELETE /api/data-process/{id}` | 处理任务列表 |
| 数据处理创建向导 | `/data-process/create` | `POST /api/data-process``POST /api/data-process/{id}/source-files``POST /api/data-process/{id}/preview/build``POST /api/data-process/{id}/generate``POST /api/data-process/{id}/publish` | 创建、上传、预览、生成、发布 |
| 数据处理详情 | `/data-process/:id` | `GET /api/data-process/{id}``GET /api/data-process/{id}/results``GET /api/data-process/{id}/progress``GET /api/data-process/{id}/events` | 详情、结果、进度 |
| 数据转换 | `/data-convert` | `POST /api/data-convert/jobs``GET /api/data-convert/jobs/{id}``GET /api/data-convert/jobs/{id}/download` | JSON/JSONL 转换 |
| 数据集列表 | `/dataset` | `GET /modelTF/dataset-manage``DELETE /modelTF/dataset-manage/{id}``GET /modelTF/dataset-manage/download/{id}` | 数据集列表、删除、打包下载 |
| 数据集创建/编辑 | `/dataset/create``/dataset/:id/edit` | `POST /modelTF/dataset-manage``PUT /modelTF/dataset-manage/{id}``POST /modelTF/dataset-manage/upload/{dataset_id}` | 数据集元数据和文件上传 |
| 离线导入数据集 | 数据集创建页或导入弹窗 | `POST /modelTF/import/local-dataset` | 从算力节点目录导入 |
| 数据集预览 | `/dataset/:id/preview` | `GET /modelTF/dataset-manage/preview/{file_id}``GET /modelTF/dataset-manage/versions/{file_id}``POST /modelTF/dataset-manage/versions/{file_id}``PUT /modelTF/dataset-manage/versions/{file_id}/active``DELETE /modelTF/dataset-manage/versions/{file_id}/{version_id}` | 文件预览、版本、在线编辑 |
| 数据处理列表 | `/data-process` | `GET /modelTF/data-process``DELETE /modelTF/data-process/{id}` | 处理任务列表 |
| 数据处理创建向导 | `/data-process/create` | `POST /modelTF/data-process``POST /modelTF/data-process/{id}/source-files``POST /modelTF/data-process/{id}/preview/build``POST /modelTF/data-process/{id}/generate``POST /modelTF/data-process/{id}/publish` | 创建、上传、预览、生成、发布 |
| 数据处理详情 | `/data-process/:id` | `GET /modelTF/data-process/{id}``GET /modelTF/data-process/{id}/results``GET /modelTF/data-process/{id}/progress``GET /modelTF/data-process/{id}/events` | 详情、结果、进度 |
| 数据转换 | `/data-convert` | `POST /modelTF/data-convert/jobs``GET /modelTF/data-convert/jobs/{id}``GET /modelTF/data-convert/jobs/{id}/download` | JSON/JSONL 转换 |
### 14.6 微调训练
| 页面模块 | 路由/入口 | 接口 | 说明 |
| --- | --- | --- | --- |
| 微调列表 | `/fine-tune` | `GET /api/fine-tune``POST /api/fine-tune/stop/{id}``DELETE /api/fine-tune/{id}` | 训练任务列表、停止、删除 |
| 微调创建 | `/fine-tune/create` | `GET /api/fine-tune/check-name``POST /api/fine-tune``POST /api/fine-tune/start``GET /api/model-manage``GET /api/dataset-manage``GET /api/compute/gpus` | 参数配置、GPU 选择、启动训练 |
| 训练详情/日志 | `/training-log/:id` | `GET /api/fine-tune/{id}``GET /api/fine-tune/progress/{id}``GET /api/fine-tune/{id}/events``GET /api/fine-tune/{id}/checkpoints` | 日志、进度、checkpoint |
| 恢复/重试训练 | 训练详情页 | `POST /api/fine-tune/{id}/retry``POST /api/fine-tune/{id}/resume` | 从 checkpoint 重试或恢复 |
| Checkpoint 管理 | 训练详情页、存储管理页 | `DELETE /api/fine-tune/{id}/checkpoints/{checkpoint_id}``PUT /api/fine-tune/{id}/checkpoint-retention` | 清理策略和删除 |
| TensorBoard | 训练详情页 | `POST /api/fine-tune/tensorboard/start` | 启动 TensorBoard |
| 微调列表 | `/fine-tune` | `GET /modelTF/fine-tune``POST /modelTF/fine-tune/stop/{id}``DELETE /modelTF/fine-tune/{id}` | 训练任务列表、停止、删除 |
| 微调创建 | `/fine-tune/create` | `GET /modelTF/fine-tune/check-name``POST /modelTF/fine-tune``POST /modelTF/fine-tune/start``GET /modelTF/model-manage``GET /modelTF/dataset-manage``GET /modelTF/compute/gpus` | 参数配置、GPU 选择、启动训练 |
| 训练详情/日志 | `/training-log/:id` | `GET /modelTF/fine-tune/{id}``GET /modelTF/fine-tune/progress/{id}``GET /modelTF/fine-tune/{id}/events``GET /modelTF/fine-tune/{id}/checkpoints` | 日志、进度、checkpoint |
| 恢复/重试训练 | 训练详情页 | `POST /modelTF/fine-tune/{id}/retry``POST /modelTF/fine-tune/{id}/resume` | 从 checkpoint 重试或恢复 |
| Checkpoint 管理 | 训练详情页、存储管理页 | `DELETE /modelTF/fine-tune/{id}/checkpoints/{checkpoint_id}``PUT /modelTF/fine-tune/{id}/checkpoint-retention` | 清理策略和删除 |
| TensorBoard | 训练详情页 | `POST /modelTF/fine-tune/tensorboard/start` | 启动 TensorBoard |
### 14.7 评测、推理、对比和服务发布
| 页面模块 | 路由/入口 | 接口 | 说明 |
| --- | --- | --- | --- |
| 评测列表 | `/model-eval` | `GET /api/model-eval``DELETE /api/model-eval/{id}` | 评测任务列表 |
| 评测创建 | `/model-eval/create` | `POST /api/model-eval/start``GET /api/dimension``GET /api/model-manage/trained-models``GET /api/dataset-manage``GET /api/compute/gpus` | 选择模型、数据集、维度、GPU |
| 评测详情 | `/model-eval/:id` | `GET /api/model-eval/{id}``GET /api/model-eval/{id}/events` | 综合结果、样本评分 |
| 评测维度 | `/model-eval/dimension/:id/edit` | `GET /api/dimension/{id}``POST /api/dimension``PUT /api/dimension/{id}``DELETE /api/dimension/{id}` | 维度和 Prompt 管理 |
| 推理列表 | `/model-inference` | `GET /api/model-compare``POST /api/model-compare/{id}/load``POST /api/model-compare/{id}/unload` | 推理任务和加载状态 |
| 推理创建 | `/model-inference/create` | `POST /api/model-compare``GET /api/model-manage``GET /api/model-manage/trained-models``GET /api/compute/gpus` | 选择模型和 GPU |
| 推理对话 | `/model-inference/chat/:id` | `GET /api/model-compare/{id}``POST /api/model-compare/stream-chat``POST /api/model-compare/chat-with-port` | 单模型对话 |
| 模型对比 | `/model-compare/chat/:id``/model-compare/result` | `POST /api/model-chat/batch``POST /api/model-chat/local/chat``POST /api/model-chat/local/preload``POST /api/model-chat/trained/preload` | 多模型对比和预加载 |
| 模型服务治理 | `/model-services``/model-services/:id` | `POST /api/approvals``GET /api/compute/jobs/{id}``GET /api/usage/summary` | 测试/生产服务发布、调用统计、下线审批 |
| 评测列表 | `/model-eval` | `GET /modelTF/model-eval``DELETE /modelTF/model-eval/{id}` | 评测任务列表 |
| 评测创建 | `/model-eval/create` | `POST /modelTF/model-eval/start``GET /modelTF/dimension``GET /modelTF/model-manage/trained-models``GET /modelTF/dataset-manage``GET /modelTF/compute/gpus` | 选择模型、数据集、维度、GPU |
| 评测详情 | `/model-eval/:id` | `GET /modelTF/model-eval/{id}``GET /modelTF/model-eval/{id}/events` | 综合结果、样本评分 |
| 评测维度 | `/model-eval/dimension/:id/edit` | `GET /modelTF/dimension/{id}``POST /modelTF/dimension``PUT /modelTF/dimension/{id}``DELETE /modelTF/dimension/{id}` | 维度和 Prompt 管理 |
| 推理列表 | `/model-inference` | `GET /modelTF/model-compare``POST /modelTF/model-compare/{id}/load``POST /modelTF/model-compare/{id}/unload` | 推理任务和加载状态 |
| 推理创建 | `/model-inference/create` | `POST /modelTF/model-compare``GET /modelTF/model-manage``GET /modelTF/model-manage/trained-models``GET /modelTF/compute/gpus` | 选择模型和 GPU |
| 推理对话 | `/model-inference/chat/:id` | `GET /modelTF/model-compare/{id}``POST /modelTF/model-compare/stream-chat``POST /modelTF/model-compare/chat-with-port` | 单模型对话 |
| 模型对比 | `/model-compare/chat/:id``/model-compare/result` | `POST /modelTF/model-chat/batch``POST /modelTF/model-chat/local/chat``POST /modelTF/model-chat/local/preload``POST /modelTF/model-chat/trained/preload` | 多模型对比和预加载 |
| 模型服务治理 | `/model-services``/model-services/:id` | `POST /modelTF/approvals``GET /modelTF/compute/jobs/{id}``GET /modelTF/usage/summary` | 测试/生产服务发布、调用统计、下线审批 |
### 14.8 审批、审计、算力和存储运维
| 页面模块 | 路由/入口 | 接口 | 说明 |
| --- | --- | --- | --- |
| 审批中心 | `/approvals``/approvals/pending``/approvals/mine``/approvals/:id` | `GET /api/approvals``POST /api/approvals``GET /api/approvals/{id}``POST /api/approvals/{id}/approve``POST /api/approvals/{id}/reject``POST /api/approvals/{id}/cancel` | 审批列表和审批动作 |
| 审批设置 | `/approval-settings` | `GET /api/approval-templates``PUT /api/approval-templates/{id}` | 审批模板 |
| 算力资源 | `/compute``/compute/gpus``/compute/queue``/compute/nodes` | `GET/POST/PUT /api/compute/nodes``POST /api/compute/nodes/{id}/test-connection``POST /api/compute/nodes/{id}/enable``POST /api/compute/nodes/{id}/disable``POST /api/compute/nodes/{id}/drain``GET /api/compute/gpus``GET /api/compute/queue``POST /api/compute/jobs/{id}/retry``POST /api/compute/jobs/{id}/priority` | GPU、节点、队列、节点权重、标签、维护状态、资源副本 |
| 存储管理 | `/storage` | `GET /api/quotas/usage``GET /api/files/{id}/download-url``GET /api/retention-policies``PUT /api/retention-policies/{id}` | 磁盘占用、下载、留存 |
| 审计中心 | `/audit-logs``/login-logs``/download-logs` | `GET /api/audit-logs``GET /api/login-logs``GET /api/download-logs` | 操作、登录、下载审计 |
| 训练引擎管理 | `/training-engines` | `GET /api/training-engines``GET /api/training-engines/{id}``GET /api/training-engines/{id}/schema``POST /api/training-engines/{id}/health-check` | 引擎能力和健康 |
| 审批中心 | `/approvals``/approvals/pending``/approvals/mine``/approvals/:id` | `GET /modelTF/approvals``POST /modelTF/approvals``GET /modelTF/approvals/{id}``POST /modelTF/approvals/{id}/approve``POST /modelTF/approvals/{id}/reject``POST /modelTF/approvals/{id}/cancel` | 审批列表和审批动作 |
| 审批设置 | `/approval-settings` | `GET /modelTF/approval-templates``PUT /modelTF/approval-templates/{id}` | 审批模板 |
| 算力资源 | `/compute``/compute/gpus``/compute/queue``/compute/nodes` | `GET/POST/PUT /modelTF/compute/nodes``POST /modelTF/compute/nodes/{id}/test-connection``POST /modelTF/compute/nodes/{id}/enable``POST /modelTF/compute/nodes/{id}/disable``POST /modelTF/compute/nodes/{id}/drain``GET /modelTF/compute/gpus``GET /modelTF/compute/queue``POST /modelTF/compute/jobs/{id}/retry``POST /modelTF/compute/jobs/{id}/priority` | GPU、节点、队列、节点权重、标签、维护状态、资源副本 |
| 存储管理 | `/storage` | `GET /modelTF/quotas/usage``GET /modelTF/files/{id}/download-url``GET /modelTF/retention-policies``PUT /modelTF/retention-policies/{id}` | 磁盘占用、下载、留存 |
| 审计中心 | `/audit-logs``/login-logs``/download-logs` | `GET /modelTF/audit-logs``GET /modelTF/login-logs``GET /modelTF/download-logs` | 操作、登录、下载审计 |
| 训练引擎管理 | `/training-engines` | `GET /modelTF/training-engines``GET /modelTF/training-engines/{id}``GET /modelTF/training-engines/{id}/schema``POST /modelTF/training-engines/{id}/health-check` | 引擎能力和健康 |