2026-07-20 17:23:23 +08:00
|
|
|
---
|
|
|
|
|
id: T-679b
|
|
|
|
|
title: 商品套图自定义网关生成入口与确认交互
|
|
|
|
|
phase: 7
|
|
|
|
|
deps: [T-679a]
|
|
|
|
|
status: TODO
|
|
|
|
|
created: 2026-07-20
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
# T-679b 商品套图自定义网关生成入口与确认交互
|
|
|
|
|
|
|
|
|
|
## 问题 / 背景
|
|
|
|
|
|
2026-07-20 17:35:54 +08:00
|
|
|
**发布门禁:T-679a、T-679b、T-679c 与集成验收 T-679 未全部完成前不得发布**(理由见 T-679a 背景:重复计费提示定义在 T-679c,而跨来源回归由 T-679 覆盖)。
|
2026-07-20 17:30:08 +08:00
|
|
|
|
2026-07-20 17:23:23 +08:00
|
|
|
T-677 按安全边界禁用了自定义网关下⑥的新建套图、重试和价格流程。T-679a 提供来源正确的同步执行能力后,GUI 必须只在配置可用时开放入口,并用清晰中文说明主体一致性、比例近似、费用和停止边界。
|
|
|
|
|
|
|
|
|
|
## 方案
|
|
|
|
|
|
|
|
|
|
- `ProductSuiteGenerateWorker` 在启动时冻结包含当前来源所需配置的快照;自定义网关允许创建 job,默认网关保留现有路径。新 job 的来源必须由冻结快照决定。
|
|
|
|
|
- 自定义网关预检复用 T-678 的图片模型能力检查;未配置、接口类型不符、密钥为空、模型禁用或超时无效时,阻止生成并引导到⑤补齐。
|
|
|
|
|
- 自定义网关不请求 cmhub 模型目录、余额、价格或点数预估;确认框显示“自定义网关不计点数,实际费用以服务商为准”。默认网关确认和计费展示不变。
|
|
|
|
|
- 生成确认框以实际 job specs 展示:生成数量、主图/参考图规则、逐图模式、所选比例;若 T-679a 返回近似比例,明确显示实际输出尺寸和“接近比例生成”。
|
|
|
|
|
- 自定义网关确认框说明“首图作为主要商品参考,参考图效果取决于模型,主体一致性可能弱于默认网关”;该文案不承诺模型必然保留主体。
|
|
|
|
|
- 点击停止后,显示“正在停止,等待当前图片返回后结束”;禁用新的提交入口但不冻结整个 GUI,完成后恢复正常状态。
|
2026-07-20 17:35:54 +08:00
|
|
|
- 生成期间允许切换其他任务、查看日志、历史和已完成图片;当前任务的原图、提示词、比例、分类和生成设置继续锁定,避免用户误以为修改会影响已冻结的 job 快照。
|
2026-07-20 17:23:23 +08:00
|
|
|
- 结果日志、失败提示只显示中文业务信息和来源名“自定义网关”,不显示完整 URL、模型名、密钥或原始上游正文。
|
|
|
|
|
- 「AI 帮写」继续只支持默认网关;自定义网关下置灰并提示中文原因。
|
|
|
|
|
|
|
|
|
|
## 验收要点
|
|
|
|
|
|
|
|
|
|
- [ ] 自定义网关配置合格时可创建、确认并启动套图生成;不合格时在提交前阻止。
|
|
|
|
|
- [ ] 自定义网关流程不访问 cmhub 价格/余额/模型接口,且不显示“0 点”或过期余额。
|
|
|
|
|
- [ ] 确认框完整提示数量、主参考图、参考图、逐图模式、比例映射、费用与主体一致性差异。
|
2026-07-20 17:35:54 +08:00
|
|
|
- [ ] 停止中的视觉与按钮状态准确;可切换任务、查看日志/历史,但当前任务输入不可编辑,GUI 不会整窗冻结。
|
2026-07-20 17:23:23 +08:00
|
|
|
- [ ] 默认网关确认、价格、余额、AI 帮写和原有套图生成不回归。
|
|
|
|
|
|
|
|
|
|
## 测试与文档
|
|
|
|
|
|
|
|
|
|
- `tests/test_product_suite_gui.py`、`tests/test_gui.py`:两来源入口、预检、确认文案、近似比例、停止状态、无 cmhub 价格请求、AI 帮写边界。
|
|
|
|
|
- 更新 `docs/ui/` ⑥效果图及 `docs/ui/README.md`,同步 `docs/routes.md`。
|
|
|
|
|
|
|
|
|
|
## 验证
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
py -3.10 -m unittest tests.test_product_suite_gui tests.test_gui tests.test_workers
|
|
|
|
|
py -3.10 -m ruff check app tests main.py
|
|
|
|
|
py -3.10 -m compileall app main.py
|
|
|
|
|
git diff --check
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 边界(不改什么)
|
|
|
|
|
|
|
|
|
|
- 不改 T-679a 的 HTTP、job 状态机或恢复数据。
|
|
|
|
|
- 不开放自定义网关 AI 帮写,不改 cmhub 协议、Chrome/CDP、Excel 或蝦皮更新。
|
|
|
|
|
|
|
|
|
|
## 关联
|
|
|
|
|
|
|
|
|
|
- T-679a:多来源任务状态机。
|
|
|
|
|
- T-679c:失败卡片、历史和手动重新生成的后续交互。
|
|
|
|
|
|
|
|
|
|
## 执行记录
|
|
|
|
|
|
|
|
|
|
(做完在这里写:变更文件、界面决策、验证命令及结果。)
|