T-564 async cmhub image tasks
This commit is contained in:
+8
-2
@@ -3,7 +3,7 @@ id: T-564
|
||||
title: 生图对接 cmhub 异步任务接口(submit + 轮询 + task_id 续查),替代 900s 同步长等待
|
||||
phase: 7
|
||||
deps: [T-526, T-529, T-546]
|
||||
status: TODO
|
||||
status: DONE
|
||||
created: 2026-07-08
|
||||
---
|
||||
|
||||
@@ -92,4 +92,10 @@ cmhub 侧已实现并测试通过异步任务化接口(新增 `/generate/image
|
||||
|
||||
## 执行记录
|
||||
|
||||
(做完在这里写:改了什么文件、跑了什么验证命令及结果、遇到的阻塞、关键决策。)
|
||||
- 2026-07-08:完成 T-564。
|
||||
- `app/db.py`:新增 `tasks.image_task_id` / `tasks.image_task_key` schema 与 ad-hoc 迁移,补 `Task` dataclass 字段;新增 `ensure_image_task_key()`、`set_image_task_submitted()`、`clear_image_task()`;`reset_generated(..., reset_cover=True)` 会清空异步生图状态,只重置标题时保留。
|
||||
- `app/ai.py`:②批量 cmhub 生图切到 `POST /api/v1/generate/image/tasks` + `GET /api/v1/generate/image/tasks/{task_id}`;submit 带 `Idempotency-Key` / `X-Client-Version`,submit 成功后立即落库 `image_task_id`;已有 `image_task_id` 时直接续查;poll `succeeded` 后复用原图片下载/保存;poll `failed/expired` 清空 key/id;poll 超时或用户停止保留 key/id;单独 `gen_cover()` 保留旧同步接口兼容。
|
||||
- `tests/test_db.py`:覆盖新列、幂等键稳定、submit 落库、清空、重置标题/封面生命周期。
|
||||
- `tests/test_ai.py`:覆盖 submit 后 poll 前已落库、已有 task_id 续查不 POST、failed 任务清 key、停止轮询保留 task_id,以及既有下载/并发回归。
|
||||
- 文档:同步 `docs/04-architecture.md`、`docs/api.md`、`docs/cmhub-integration-design.md`、`docs/routes.md`、`docs/ui/tab5-settings.svg`;按仓库规则未手动覆盖 `docs/current-state.md`,未修改冻结 `docs/06-tasks.md`。
|
||||
- 验证通过:`py -3.10 -m unittest tests.test_ai tests.test_db`、`python -m ruff check app tests main.py`、`py -3.10 -m compileall app main.py`、`py -3.10 -m unittest discover -s tests`、`git diff --check`。
|
||||
|
||||
Reference in New Issue
Block a user