|
|
|
|
@ -15,7 +15,7 @@
|
|
|
|
|
- `500 Internal Server Error`:服务器内部错误。
|
|
|
|
|
- **JWT 身份错误**:使用 `@jwt_required` 的接口在缺少或失效 Token 时会由 Flask-JWT-Extended 返回标准 401 响应;使用 `@int_jwt_required` 的接口若无法将身份标识转换为整数,则返回 `{"error": "无效的用户身份标识"}`(401)。
|
|
|
|
|
- **任务类型代码**:`perturbation`(加噪)、`finetune`(微调)、`heatmap`(热力图)、`evaluate`(评估)。
|
|
|
|
|
- **任务状态代码**:需与 `task_status` 表保持一致(如 `pending`、`processing`、`completed`、`failed` 等)。
|
|
|
|
|
- **任务状态代码**:需与 `task_status` 表保持一致(如 `waiting`、`processing`、`completed`、`failed` 等)。
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
@ -208,7 +208,7 @@
|
|
|
|
|
### GET `/api/task`
|
|
|
|
|
**功能**:以可选筛选条件返回当前用户的所有任务摘要。
|
|
|
|
|
**认证**:是
|
|
|
|
|
**查询参数**:`task_type`=`perturbation|finetune|heatmap|evaluate|all`,`task_status`=`pending|processing|completed|failed|all`。
|
|
|
|
|
**查询参数**:`task_type`=`perturbation|finetune|heatmap|evaluate|all`,`task_status`=`waiting|processing|completed|failed|all`。
|
|
|
|
|
**成功响应** `200 OK`:
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
@ -369,7 +369,7 @@
|
|
|
|
|
- `403 {"error": "普通用户仅可使用人脸数据集"}`
|
|
|
|
|
- `400 {"error": "加噪配置不存在"}`
|
|
|
|
|
- `400 {"error": "非法的 flow_id 参数"}`
|
|
|
|
|
- `500 {"error": "Task status 'pending' is not configured"}` / `{...}`
|
|
|
|
|
- `500 {"error": "Task status 'waiting' is not configured"}` / `{...}`
|
|
|
|
|
- `500 {"error": "创建任务失败: ..."}`
|
|
|
|
|
|
|
|
|
|
##### PATCH `/api/task/perturbation/<task_id>`
|
|
|
|
|
@ -390,7 +390,7 @@
|
|
|
|
|
- `500 {"error": "更新任务失败: ..."}`(数据库提交失败或参数类型转换异常)
|
|
|
|
|
|
|
|
|
|
##### POST `/api/task/perturbation/<task_id>/start`
|
|
|
|
|
**功能**:向异步队列提交该加噪任务。
|
|
|
|
|
**功能**:向异步队列提交该加噪任务,并将任务状态重置为 `waiting`。
|
|
|
|
|
**成功响应** `200 OK`:
|
|
|
|
|
```json
|
|
|
|
|
{"message": "任务已启动", "job_id": "pert_901"}
|
|
|
|
|
@ -435,11 +435,11 @@
|
|
|
|
|
- `404 {"error": "加噪任务不存在或无权限"}`
|
|
|
|
|
- `400 {"error": "仅支持已完成的加噪任务创建热力图"}`
|
|
|
|
|
- `400 {"error": "扰动图片不存在或不属于该任务"}`
|
|
|
|
|
- `500 {"error": "Task type 'heatmap' is not configured"}` 或 `{"error": "Task status 'pending' is not configured"}`
|
|
|
|
|
- `500 {"error": "Task type 'heatmap' is not configured"}` 或 `{"error": "Task status 'waiting' is not configured"}`
|
|
|
|
|
- `500 {"error": "创建热力图任务失败: ..."}`
|
|
|
|
|
|
|
|
|
|
##### POST `/api/task/heatmap/<task_id>/start`
|
|
|
|
|
**功能**:触发热力图任务执行。
|
|
|
|
|
**功能**:触发热力图任务执行,并将任务状态重置为 `waiting`。
|
|
|
|
|
**成功响应** `200 OK`:`{"message": "任务已启动", "job_id": "hm_1201"}`
|
|
|
|
|
**错误响应**:
|
|
|
|
|
- `401 {"error": "无效的用户身份标识"}`
|
|
|
|
|
@ -478,16 +478,21 @@
|
|
|
|
|
{
|
|
|
|
|
"perturbation_task_id": 901,
|
|
|
|
|
"finetune_configs_id": 4,
|
|
|
|
|
"finetune_name": "LoRA-人脸"
|
|
|
|
|
"finetune_name": "LoRA-人脸",
|
|
|
|
|
"data_type_id": 3,
|
|
|
|
|
"custom_prompt": "a photo of sks person"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
> `data_type_id` 为可选参数,若不填则自动继承自加噪任务。
|
|
|
|
|
> `custom_prompt` 为可选参数,用于自定义微调训练时的提示词。
|
|
|
|
|
|
|
|
|
|
**成功响应**:`{"message": "微调任务已创建", "task": {...}}` 任务对象中 `finetune.source` 字段为 `perturbation`。
|
|
|
|
|
**错误响应**:
|
|
|
|
|
- `401 {"error": "无效的用户身份标识"}`
|
|
|
|
|
- `400 {"error": "缺少必要参数: perturbation_task_id 或 finetune_configs_id"}`
|
|
|
|
|
- `404 {"error": "加噪任务不存在或无权限"}`
|
|
|
|
|
- `400 {"error": "微调配置不存在"}`
|
|
|
|
|
- `500 {"error": "Task status 'pending' is not configured"}` 或 `{"error": "Task type 'finetune' is not configured"}`
|
|
|
|
|
- `500 {"error": "Task status 'waiting' is not configured"}` 或 `{"error": "Task type 'finetune' is not configured"}`
|
|
|
|
|
- `500 {"error": "创建微调任务失败: ..."}`
|
|
|
|
|
|
|
|
|
|
##### POST `/api/task/finetune/from-upload`
|
|
|
|
|
@ -496,10 +501,13 @@
|
|
|
|
|
- `finetune_configs_id`(数字,必填)
|
|
|
|
|
- `data_type_id`(数字,必填)
|
|
|
|
|
- `finetune_name`(字符串,可选)
|
|
|
|
|
- `custom_prompt`(字符串,可选)
|
|
|
|
|
- `description`(字符串,可选)
|
|
|
|
|
- `flow_id`(数字,可选)
|
|
|
|
|
- `files`(一个或多个图片文件,可选)
|
|
|
|
|
|
|
|
|
|
> `custom_prompt` 为可选参数,用于自定义微调训练时的提示词。
|
|
|
|
|
|
|
|
|
|
**成功响应** `201 Created`:
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
@ -518,12 +526,12 @@
|
|
|
|
|
- `400 {"error": "缺少必要参数: data_type_id"}`
|
|
|
|
|
- `400 {"error": "数据集类型不存在"}`
|
|
|
|
|
- `400 {"error": "非法的 flow_id 参数"}` 或 `{...}`
|
|
|
|
|
- `500 {"error": "Task status 'pending' is not configured"}` 或 `{...}`
|
|
|
|
|
- `500 {"error": "Task status 'waiting' is not configured"}` 或 `{...}`
|
|
|
|
|
- `500 {"error": "创建微调任务失败: ..."}`
|
|
|
|
|
|
|
|
|
|
##### POST `/api/task/finetune/<task_id>/start`
|
|
|
|
|
成功响应 `{"message": "任务已启动", "job_id": "ft_982"}`。
|
|
|
|
|
**功能**:启动指定微调任务的后台执行。
|
|
|
|
|
**功能**:启动指定微调任务的后台执行,并将任务状态重置为 `waiting`。
|
|
|
|
|
**错误响应**:
|
|
|
|
|
- `401 {"error": "无效的用户身份标识"}`
|
|
|
|
|
- `404 {"error": "任务不存在或无权限"}`
|
|
|
|
|
@ -563,12 +571,12 @@
|
|
|
|
|
- `400 {"error": "该微调任务已存在评估,请勿重复创建"}`
|
|
|
|
|
- `400 {"error": "数值评估仅支持基于加噪任务的微调结果"}`
|
|
|
|
|
- `400 {"error": "微调任务未配置详情"}`
|
|
|
|
|
- `500 {"error": "Task type 'evaluate' is not configured"}` 或 `{"error": "Task status 'pending' is not configured"}`
|
|
|
|
|
- `500 {"error": "Task type 'evaluate' is not configured"}` 或 `{"error": "Task status 'waiting' is not configured"}`
|
|
|
|
|
- `500 {"error": "创建评估任务失败: ..."}`
|
|
|
|
|
|
|
|
|
|
##### POST `/api/task/evaluate/<task_id>/start`
|
|
|
|
|
成功响应 `{"message": "任务已启动", "job_id": "eval_1301"}`。
|
|
|
|
|
**功能**:推送评估任务进入执行队列。
|
|
|
|
|
**功能**:推送评估任务进入执行队列,并将任务状态重置为 `waiting`。
|
|
|
|
|
**错误响应**:
|
|
|
|
|
- `401 {"error": "无效的用户身份标识"}`
|
|
|
|
|
- `404 {"error": "任务不存在或无权限"}`
|
|
|
|
|
@ -818,12 +826,6 @@
|
|
|
|
|
- `403 {"error": "需要管理员权限"}`(预期;当前代码在鉴权阶段可能直接抛出 500)。
|
|
|
|
|
- `500 {"error": "获取系统统计失败: ..."}`(任务状态统计语句抛错)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add:
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Auth 模块补充
|
|
|
|
|
@ -1565,3 +1567,9 @@ Authorization: Bearer <token>
|
|
|
|
|
- `401 {"error": "无效的用户身份标识"}`
|
|
|
|
|
- `404 {"error": "任务不存在或无权限"}`
|
|
|
|
|
- `500 {"error": "读取日志失败: ..."}`
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 文档更新记录
|
|
|
|
|
|
|
|
|
|
- [POST /api/task/finetune/from-perturbation](#post-apitaskfinetunefrom-perturbation):新增 `custom_prompt` 参数。
|
|
|
|
|
- [POST /api/task/finetune/from-upload](#post-apitaskfinetunefrom-upload):新增 `custom_prompt` 参数。
|
|
|
|
|
|