v110-v112 自定义模式完善 + 模板导出增强 + 多模态兼容优化

- 自定义模式:分析模型输出 delta 唯一改动指令,生图模板 custom_image_prompt.md({delta} 占位符),不再使用负向提示词;generate_design 按 custom_mode 分支,Pinterest 模式保留原创化指令,两模式互不影响
- 多模态分析 response_format 三级回退(json_schema → json_object → none),兼容 DeepSeek
- 模板导出:details 扩展列(细节1/2/3)、target_audience 扩展列(适用人群1)、固定值风格1=休闲/风格2=运动
- 童装特征库更新 + 标题模板外部化 + 图源映射增强
This commit is contained in:
2026-09-03 18:28:39 +08:00
parent d68cc3b9e3
commit 5ab5cf6586
40 changed files with 1967 additions and 149 deletions
+22 -6
View File
@@ -98,13 +98,17 @@ START → pinterest_init → pinterest_custom_load → pinterest_analyze
保证用户每次重新上传/选择的所有有效图片都会被重新多模态分析;分析批上限按「选品清单总数」截断,
避免对多余图片浪费配额。`pinterest_custom_route` 只在 wait / analyze / done 间流转,从不 search。
**自定义模式提示词独立**
**自定义模式提示词独立(与 Pinterest 模式完全隔离,互不影响)**
- **多模态分析提示词**`prompts/custom_analyze_system.md` / `prompts/custom_analyze_user.md`
(与 Pinterest 模式的 `pinterest_analyze_*` 完全独立,互不影响);
- **生图提示词模板**`config.yaml``custom.prompt_pieces``image_prompt_template` /
`negative_prompt`)可编辑——以参考图片的整体氛围/主题/时代/风格类型为灵感,**明确禁止复制或模仿**
参考图片的印刷 artwork、角色、布局、文字及服装/模特等元素,仅基于观察到的主题/技术/调色板/布局
生成新设计;留空回退代码内置 `CUSTOM_IMAGE_PROMPT_TEMPLATE` / `CUSTOM_NEGATIVE_PROMPT`
(与 Pinterest 模式的 `pinterest_analyze_*` 完全独立)——分析模型只输出**唯一改动指令**
`{"delta": "<一句话>"}`(同主题换姿态 / 换主体 / 换文字 / 改构图,优先保最小改动,绝不复制原图);
- **生图提示词模板**`prompts/custom_image_prompt.md`(优先,可编辑)→
`config.custom.prompt_pieces.image_prompt_template` → 代码内置默认。模板含 `{delta}` 占位符,
运行时用分析产出的 delta 替换——以参考图印花为基底,只应用 delta 这一处改动,其余
(布局 / 元素位置 / 配色 / 阴影 / 纹理 / 线条 / 文字排版)保持不变;
- **不再使用负向提示词**:约束已全部内置进生图模板,`composite_negative` 置空;
- **模式隔离**`generate_design``custom_mode` 分支——Pinterest 模式保留「原创化指令」
(防止复制原图),自定义模式不追加(模板已内置防复制约束),两个模式的生图行为互不影响。
## 目录结构
@@ -127,6 +131,7 @@ pod_trend_agent/
├── prompts/pinterest_analyze_user.md # 多模态分析用户提示词,可配置
├── prompts/custom_analyze_system.md # 自定义模式多模态分析系统提示词(独立于 Pinterest)
├── prompts/custom_analyze_user.md # 自定义模式多模态分析用户提示词(独立于 Pinterest)
├── prompts/custom_image_prompt.md # ★ 自定义模式生图提示词模板({delta} 占位符,可编辑)
├── prompts/title_prompt_1.md # ★ 标题生成提示词(英语市场 US/GB/AU/MX
├── prompts/title_prompt_2.md # ★ 标题生成提示词(日本市场 JP)
├── prompts/title_prompt_3.md # ★ 标题生成提示词(西班牙市场 ES)
@@ -209,6 +214,12 @@ Pinterest 参考模式与自定义图片模式的多模态分析提示词已**
`image_prompt` 二段式结构 / `suitable_for_print` 判定标准等约束(多模态分析不再产出
`negative_prompt`,生图负向约束由固定 `print_suffix` 承担)。
**多模态分析 response_format 三级回退**`openai_compat_backend.analyze_pinterest_images`):
1. `json_schema`OpenAI 原生 strict 输出)→ 2. `json_object`(部分兼容厂商支持,但要求提示词含
"json",自动追加 "Return your answer as a JSON object.",兼容 DeepSeek)→ 3. 无 `response_format`
(依赖 `_extract_json` 兜底解析)。DeepSeek 等厂商直接 json_schema 会 400
"This response_format type is unavailable now",三级回退保证分析不中断。
## 标题生成提示词(可配置)
标题生成提示词已**外部化为独立文件**,无需改代码即可调优:
@@ -305,6 +316,11 @@ config.yaml。模板内 `{year}`/`{month}`/`{season}` 占位符运行时自动
- **SPU 商品属性字段映射**`placket_type→门襟类型``sleeve_type→袖型``sleeve_length_type→袖长`
`breast_pad→胸垫``layout→版型``silhouette→廓形``length_type→长度``belt→腰带`
`occasion→场合``scene→场景``hemline_shape→下摆形状`,各字段独立不覆盖;
- **details 扩展列**:精确匹配「细节1 / 细节2 / 细节3」列(`_find_details_headers`),匹配到即全部填
`spu.details` 值(同一详情写多个扩展列);
- **target_audience 扩展列**:精确匹配「适用人群1」列(`_find_target_audience_headers`),匹配到即填
`target_audience` 映射后的值(童装按性别映射,见下);
- **固定值风格列**:匹配到「风格1」列统一填「休闲」、匹配到「风格2」列统一填「运动」;
- **季节映射(女装)**`spu.season` 的「四季」→「ALL/全球/所有」(`config.yaml``season_map.female` 可配置);
- **印花图案映射(女装)**`spu.pattern` 为「印花」时 →「卡通」(`pattern_map` 可配置);
- **适用人群映射(童装)**`spu.target_audience` 按童装性别映射(`target_audience_map.kids` 可配置),