Files
cmshoppe/docs/tasks/T-679b.md
T

3.3 KiB

id, title, phase, deps, status, created
id title phase deps status created
T-679b 商品套图自定义网关生成入口与确认交互 7
T-679a
TODO 2026-07-20

T-679b 商品套图自定义网关生成入口与确认交互

问题 / 背景

T-677 按安全边界禁用了自定义网关下⑥的新建套图、重试和价格流程。T-679a 提供来源正确的同步执行能力后,GUI 必须只在配置可用时开放入口,并用清晰中文说明主体一致性、比例近似、费用和停止边界。

方案

  • ProductSuiteGenerateWorker 在启动时冻结包含当前来源所需配置的快照;自定义网关允许创建 job,默认网关保留现有路径。新 job 的来源必须由冻结快照决定。
  • 自定义网关预检复用 T-678 的图片模型能力检查;未配置、接口类型不符、密钥为空、模型禁用或超时无效时,阻止生成并引导到⑤补齐。
  • 自定义网关不请求 cmhub 模型目录、余额、价格或点数预估;确认框显示“自定义网关不计点数,实际费用以服务商为准”。默认网关确认和计费展示不变。
  • 生成确认框以实际 job specs 展示:生成数量、主图/参考图规则、逐图模式、所选比例;若 T-679a 返回近似比例,明确显示实际输出尺寸和“接近比例生成”。
  • 自定义网关确认框说明“首图作为主要商品参考,参考图效果取决于模型,主体一致性可能弱于默认网关”;该文案不承诺模型必然保留主体。
  • 点击停止后,显示“正在停止,等待当前图片返回后结束”;禁用新的提交入口但不冻结整个 GUI,完成后恢复正常状态。
  • 结果日志、失败提示只显示中文业务信息和来源名“自定义网关”,不显示完整 URL、模型名、密钥或原始上游正文。
  • 「AI 帮写」继续只支持默认网关;自定义网关下置灰并提示中文原因。

验收要点

  • 自定义网关配置合格时可创建、确认并启动套图生成;不合格时在提交前阻止。
  • 自定义网关流程不访问 cmhub 价格/余额/模型接口,且不显示“0 点”或过期余额。
  • 确认框完整提示数量、主参考图、参考图、逐图模式、比例映射、费用与主体一致性差异。
  • 停止中的视觉与按钮状态准确,GUI 其余非破坏性操作不被整窗冻结。
  • 默认网关确认、价格、余额、AI 帮写和原有套图生成不回归。

测试与文档

  • tests/test_product_suite_gui.py、tests/test_gui.py:两来源入口、预检、确认文案、近似比例、停止状态、无 cmhub 价格请求、AI 帮写边界。
  • 更新 docs/ui/ ⑥效果图及 docs/ui/README.md,同步 docs/routes.md。

验证

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:失败卡片、历史和手动重新生成的后续交互。

执行记录

(做完在这里写:变更文件、界面决策、验证命令及结果。)