feat(product-suite): add prompt template settings

This commit is contained in:
chengma
2026-07-16 16:18:11 +08:00
parent 613950c9f3
commit eea3fdd0a9
14 changed files with 1017 additions and 35 deletions
+5 -1
View File
@@ -1,7 +1,7 @@
---
id: T-637
title: 商品套图提示词设置弹窗与实时最终预览
status: TODO
status: DONE
phase: 7
deps: [T-634, T-636]
created: 2026-07-16
@@ -231,3 +231,7 @@ git diff --check
- 2026-07-16 补:按用户要求把默认模板行序对齐 obsidian《虾皮圈电商图生成器提示词组装分析》第三节的组装顺序(用户接受的结构)——强制规则从「文末代码追加」改为四个必需只读占位符(尺寸与长图/禁用内容/价格/尺码)内联在平台行与参考图规则之间;比例强调移至末行;商品一致性与不编造并入 `{参考图规则}` 渲染文本;占位符总数 13→17,必需 8→12。
- 2026-07-16 补:补齐首次初始化和重复占位符语义——内置模板首次复制前同样必须校验,失败时不创建用户文件并阻断生成;重复 `{差异化要求}`的每次出现都必须独占一行,总数为 1 时定点删除全部对应行;历史执行记录标注已被后续结论覆盖。
- 2026-07-16 简:按用户要求简化模板结构——删除 `{分类要求}`、`{差异化要求}`、`{分类序号}`、`{分类总数}`四个占位符及默认模板中的「商品ID:{商品ID}」行;`{套图分类}`改名为 `{套图名称}`并新增 `{补充描述}`(白底图/场景图/卖点图有说明、自定义分类为空);连带去掉弹窗「预览第 X 张」步进器和同类多张差异化机制(第一版沿用源项目依赖模型随机性区分同类多张);占位符 17→14、必需 12→9;`{商品ID}`、`{主参考图序号}`降为可选可插入变量。
- 2026-07-16:新增 `app/default_prompts/product_suite/base.txt` 与 `data/prompts/product_suite/base.txt` 用户路径;实现内置模板首次校验初始化、无效用户模板保留、统一 UTF-8 原子保存和恢复默认。14 个占位符由统一校验器处理,9 个必需变量及四个只读规则变量执行完整结构校验。
- 2026-07-16:`app/product_suite.py` 集中固定分类补充描述、尺寸/禁用内容/价格/尺码规则和单参考图一致性规则;弹窗预览、`build_suite_prompt()` 与 `build_job_specs()` 共用同一个 renderer。新一轮生成在创建项目/job/worker 前加载并冻结模板;历史单张重试继续使用原 `job.prompt`。
- 2026-07-16:新增独立 `ProductSuitePromptDialog`,实现标题行「AI帮写 / 取消 / 提示词设置」布局、左右等宽编辑/只读预览、分类切换、插入变量、200ms 防抖、就地中文校验、保存/恢复默认和未保存关闭三选项;离屏 `920x600` 截图检查无控件重叠。
- 2026-07-16:补齐 prompts、product_suite、GUI 和打包资源测试。当前工作区专项 40 项通过;全仓在隔离工作树验证 518 项 unittest、`py -3.10 -m ruff check app tests main.py`、`py -3.10 -m compileall app main.py`、`git diff --check` 全部通过。当前主工作区原有封面默认文件改名会使旧 `papa1` 单测失败,未纳入、未修改该用户改动。