feat: rename bundled cover prompt template

This commit is contained in:
chengma
2026-07-17 18:24:58 +08:00
parent d1cd50f5c5
commit d853db1c8a
8 changed files with 93 additions and 46 deletions
+1 -1
View File
@@ -457,7 +457,7 @@ data/images/<batch_id>/<slug>/<task_id>_<item_id>_new.<ext> # AI 生成的新
提示词管理:
- **标题提示词**:`data/title_prompt.txt` 是当前工作文本,「保存标题提示词」写入该文件;软件启动时加载该文件回显到输入框(缺失则空)。标题命名模板另存于 `data/prompts/title/*.txt`,左侧模板行提供下拉、新建、保存模板、另存为、重命名、删除;模板只负责被用户选中后载入编辑框,或把当前编辑框内容保存为命名模板,不改变生成读取路径,也不在启动时覆盖 `title_prompt.txt`。T-549 后标题提示词支持 `{旧标题}` 占位符:若提示词含 `{旧标题}`,生成前替换为该任务旧标题且不再自动追加旧标题块;若不含,则保持旧行为自动追加“旧标题:...”块。两种情况都会保留“请只返回新标题,不要解释。”输出约束。
- **封面提示词**:多模板。左侧模板行提供下拉(读 `data/prompts/cover/*.txt`)、新建、保存模板、模板操作(另存为/重命名/删除);重名校验、删除二次确认、删空给默认。
- **封面提示词**:多模板。左侧模板行提供下拉(读 `data/prompts/cover/*.txt`)、新建、保存模板、模板操作(另存为/重命名/删除);重名校验、删除二次确认、删空给默认。T-661 后内置首次播种资源为 `app/default_prompts/cover/cover_prompt.txt`,全新用户初始化为 `data/prompts/cover/cover_prompt.txt`,下拉显示 `cover_prompt`;已有任意用户模板(包括历史 `papa1.txt`)不覆盖、不重命名、不迁移。
- **商品套图提示词**:单一全局基础模板,用户文件为 `data/prompts/product_suite/base.txt`,内置恢复源为 `app/default_prompts/product_suite/base.txt`。商品套图中的「商品卖点与要求」标题行提供「提示词设置」;弹窗左侧编辑模板、右侧按白底图或其他当前分类只读预览最终请求,默认模板首行是“生成目标:{套图名称},{生成目标}”,编辑使用 200ms 防抖。保存与「恢复默认」共用同一个 UTF-8 原子写入服务;恢复默认会先校验内置资源并经确认立即落盘。用户可移动只读规则占位符位置,但不能修改规则内容或删除必需变量;预览和新 job prompt 必须逐字一致。旧版用户模板中的 `{套图名称}` 与 `{补充描述}` 继续兼容,不被启动升级静默替换。
- **变量**:标题提示词本阶段只支持 `{旧标题}`,左侧按钮「插入旧标题」在标题提示词光标处插入 `{旧标题}`。封面提示词支持占位符 `{旧标题}`、`{新标题}`、`{商品id}`、`{店铺}`,生成前用该任务真实值替换(`render_prompt`)。「插入标题」= 在封面提示词光标处插入 `{新标题}`;「预览」= 用某条任务的值替换封面变量后展示,确认实际发送给 AI 的内容。
+1 -1
View File
@@ -358,7 +358,7 @@ render_prompt(template_text, task) -> str
- 「插入旧标题」在标题提示词光标处插入 `{旧标题}`;「插入标题」在封面提示词光标处插入 `{新标题}`;「预览」对选中任务调用 `render_prompt` 后展示封面提示词。
- 生成封面时 `gen_cover` 的 prompt = `render_prompt(当前封面模板, task)`。
- 模板与 `data/title_prompt.txt` 均为可手改的纯文本文件。
- `list_cover_templates()` 不会在启动时创建文件;只有保存/新建/另存为才写 `data/prompts/cover/*.txt`。
- `list_cover_templates()` 本身不创建文件;②AI生成页调用 `ensure_default_prompts()` 时,封面模板目录为空才将内置 `app/default_prompts/cover/cover_prompt.txt` 播种为 `data/prompts/cover/cover_prompt.txt`。已有任意用户模板(包括历史 `papa1.txt`)不覆盖、不重命名、不迁移。
- 模板名不可为空,不允许路径分隔符、`..` 或 Windows 非法文件名字符;重命名时目标重名会报错。
## 商品套图模块(`app/product_suite.py` + `app/image_studio*.py`,已建)
+6 -3
View File
@@ -1,7 +1,7 @@
---
id: T-661
title: 图生图内置默认提示词改为 cover_prompt 模板
status: TODO
status: DONE
phase: 7
deps: [T-579]
created: 2026-07-17
@@ -36,7 +36,7 @@ created: 2026-07-17
## 文档同步
- 实现时更新 `docs/04-architecture.md`、`docs/api.md` 及 T-579 中与首次播种默认模板相关的当前事实表述。
- 实现时更新 `docs/04-architecture.md` 与 `docs/api.md` 中与首次播种默认模板相关的当前事实表述;T-579 保持为历史执行记录,不回写。
- 不修改冻结的 `docs/06-tasks.md`。
## 边界(不改什么)
@@ -57,4 +57,7 @@ git diff --check
## 执行记录
- 待实现。
- 2026-07-17:将提供的 `default_prompts/cover/cover_prompt.txt` 内容复制为正式打包资源 `app/default_prompts/cover/cover_prompt.txt`,SHA-256 一致;移除旧正式资源 `papa1.txt`。
- 2026-07-17:默认播种后全新用户目录生成 `data/prompts/cover/cover_prompt.txt`,模板下拉显示 `cover_prompt`;`ensure_default_prompts()` 仍只在封面模板目录为空时播种,历史 `papa1` 和其他用户模板均不覆盖、不重命名、不迁移。
- 2026-07-17:更新 prompts、GUI 和 PyInstaller 资源回归测试;同步架构与 API 当前事实。根目录 `default_prompts/` 保持为本次提供的来源,不作为运行时资源或提交内容。
- 验证通过:`py -3.10 -m unittest tests.test_prompts tests.test_gui tests.test_packaging`(214 项)、`py -3.10 -m unittest discover -s tests`(592 项)、`py -3.10 -m ruff check app tests main.py`、`py -3.10 -m compileall app main.py`、`git diff --check`。离屏 GUI 测试有 Qt 字体/插件告警,但无测试失败。