2.0 KiB
2.0 KiB
id, title, phase, deps, status, created
| id | title | phase | deps | status | created | |
|---|---|---|---|---|---|---|
| T-601 | AI工场 BYOK 异步 submit/poll 接入 image_studio_jobs | 8 |
|
TODO | 2026-07-11 |
问题 / 背景
BYOK 生图不能回到客户端直连 OpenAI、同步等待几百秒的旧路径。即使用用户自己的 Key,也必须经 cmhub 授权代理提交任务,并复用 AI工场的 job 持久化、重启续查、下载失败不重提交流程。
方案
- 在 AI工场生成来源显式选择“cmhub 托管 / 自定义模型”;默认仍是 cmhub 托管。
- 自定义来源 submit 请求带 device credential、product、provider、模型档位、加密 task secret 引用和 image_studio_job key;不把明文 Key 写入 DB 或日志。
- 复用 T-590/T-594 的 job 生命周期:pending/submitted/running/succeeded/failed/expired/cancelled;已有 task_id 只 poll,不重新 submit。
- poll 成功后走同一下载与图片校验管线,生成 asset、比例、父图、提示词、provider 和使用记录。
- BYOK
points_cost=0,但日志和 UI 显示“费用由模型服务商收取”,并保留 provider/task_id/call_id 便于排障。
验收要点
- 自定义来源 N 张生成产生 N 个 job/key/task;停止、重启、下载失败、单张失败语义与 cmhub 托管一致。
- 无套餐/设备、Key 无效、Provider 不允许、模型不允许、上游失败、内容拒绝都有中文错误和可恢复状态。
- BYOK 失败不扣 cmhub 点数;cmhub 托管失败不静默切到 BYOK。
- 旧② AI生成、AI工场 cmhub 托管和 T-590/T-594 测试不回归。
- 运行 ruff、compileall、unittest、
git diff --check;不使用真实 Key 作为自动化测试前提。
边界(不改什么)
- 不实现自动上传蝦皮,不改变终选/导出行为。
- 不支持同步长等待,不支持客户端 direct,不支持任意 URL。
- 不在本任务做完整安全审计收口,集中到 T-602。
执行记录
(完成后记录接口字段、job 状态映射和回归结果。)