@@ -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` | 引擎能力和健康 |