Files
cmshoppe/docs/tasks/T-590.md
T

41 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: T-590
title: AI工场托管模式多图异步生成编排与重启续查
phase: 7
deps: [T-586, T-564]
status: TODO
created: 2026-07-11
---
## 问题 / 背景
AI工场一次可生成 N 张,且每张都要独立计费、失败、重试、停止和续查。T-564 只为普通 tasks 表的一张封面保存一组 task_id/key,不能承载同商品多轮、多源图、多候选任务,需要把 cmhub submit/poll/download 能力复用到 image_studio_jobs。
## 方案
- 抽取可复用的 cmhub 异步生图客户端/服务,以持久化回调或 job repository 注入 task key/id;既有②路径行为保持兼容。
- 对同一源 asset 和同一完整提示词创建 N 条 job:一次调用一张,不按行拆词、不自动补动作、不保证去重。
- 每条 job 在 submit 前落稳定 key,202 后立即落 task_id;poll 成功下载校验后创建 generated asset,记录 main/detail、比例、父 asset、提示词和计费元数据。
- 并发沿用当前最大 5 的 submit+poll/下载双池保护;逐条事件回调供 GUI 显示。
- 停止不删除已提交任务:未开始 job 取消,已提交 job 停止等待并保留 task_id,下次继续查询。
- 本任务只实现 cmhub 托管来源;`generation_source/provider` 固定写入 `cmhub`,只作为状态自描述和后续兼容字段。本轮不展示或实现来源切换,自定义模型后置到 T-596。
## 验收要点
- N=3 产生 3 个不同 job/key/task,使用完全相同 prompt/source;每个成功独立进池。
- submit 响应后、poll 前 task_id 已落库;重启续查不再次 POST、不重复扣点。
- 单张失败不回滚成功图;下载失败不重新提交生成。
- 停止、总预算超时、服务端 failed/expired、幂等冲突和点数不足生命周期正确。
- 计费事件按 job 记录;全程不阻塞 GUI 主线程。
- 既有② AI生成 T-564 路径全量测试不回归。
## 边界(不改什么)
- 不做 BYOK、自定义 Provider、API Key、来源切换、自动去重或自动重生成。
- 不做 GUI、终选、导出、CDP 或蝦皮写操作。
- 不改变 cmhub 单次调用一张、预扣/失败退点契约。
## 执行记录
(完成后记录抽取边界、任务生命周期和回归测试。)