v106-v109 童装支持 + 标题模板外部化 + 模板导出增强
- 新增男童/女童检测(gender_from_category 优先判童装)与童装场景图生成
(configs/kids_features.yaml:模特/场景/服装风格,同一商品固定同一组)
- 童装 SPU 字段映射:kids_type→SPU商品属性-类型、kids_age→适用年龄段、
target_audience 按性别映射、kids_type_map 女童「上衣」→「针织上衣」
- 标题生成提示词外部化:prompts/title_prompt_{1,2,3}.md + config.yaml 路由表
- 模板多站点匹配:经营站点可配多个,命中任意一个即匹配
- 种草图生成失败自动重试(seed_shot.retries,换场景/模特/风格)
- 模板导出新增 Preview 文件夹(成功产品 _composite.oss.jpg + result.xlsx)
- 修复 SKU 尺码未按从小到大排序(_size_rank 支持单一年龄码 6Y/10Y)
This commit is contained in:
@@ -117,6 +117,7 @@ pod_trend_agent/
|
||||
│ ├── countries/ # 各国 Google Trends 种子词(US|GB|JP|AU|MX|DE|BR|SA|PL|ES|IT|CA|KR.yaml)
|
||||
│ ├── pinterest/ # 各国 Pinterest 种子词池(<CC>.yaml)
|
||||
│ ├── model_features.yaml # 模特特征库(按性别分组 female/male,种草图用)
|
||||
│ ├── kids_features.yaml # ★ 童装特征库(男童/女童:模特、场景、服装风格,种草图用)
|
||||
│ ├── seed_shot_templates.yaml # 种草图提示词模板
|
||||
│ └── style_features.yaml
|
||||
├── prompts/<country>/ # ★ 每个国家不同的提示词单独文件夹
|
||||
@@ -126,6 +127,9 @@ pod_trend_agent/
|
||||
├── prompts/pinterest_analyze_user.md # 多模态分析用户提示词,可配置
|
||||
├── prompts/custom_analyze_system.md # 自定义模式多模态分析系统提示词(独立于 Pinterest)
|
||||
├── prompts/custom_analyze_user.md # 自定义模式多模态分析用户提示词(独立于 Pinterest)
|
||||
├── prompts/title_prompt_1.md # ★ 标题生成提示词(英语市场 US/GB/AU/MX)
|
||||
├── prompts/title_prompt_2.md # ★ 标题生成提示词(日本市场 JP)
|
||||
├── prompts/title_prompt_3.md # ★ 标题生成提示词(西班牙市场 ES)
|
||||
├── graph/
|
||||
│ ├── state.py # AgentState(共享状态)
|
||||
│ ├── validate.py # with_fallback 兜底 + 数据校验
|
||||
@@ -158,6 +162,7 @@ pod_trend_agent/
|
||||
├── design_briefs.json/md # 设计简报(含 image_prompt / composite_prompt)
|
||||
├── designs/ # 纯印花设计稿
|
||||
├── product/ # 三合一合成图 + 已填写商品模板 <SKU>_已填写.xlsx
|
||||
├── Preview/ # ★ 成功导入模板产品的 _composite.oss.jpg 压缩图 + result.xlsx(货号|中文标题|英文标题)
|
||||
└── report.md # 各阶段统计 + 兜底错误记录
|
||||
```
|
||||
|
||||
@@ -204,6 +209,18 @@ Pinterest 参考模式与自定义图片模式的多模态分析提示词已**
|
||||
`image_prompt` 二段式结构 / `suitable_for_print` 判定标准等约束(多模态分析不再产出
|
||||
`negative_prompt`,生图负向约束由固定 `print_suffix` 承担)。
|
||||
|
||||
## 标题生成提示词(可配置)
|
||||
|
||||
标题生成提示词已**外部化为独立文件**,无需改代码即可调优:
|
||||
|
||||
- `prompts/title_prompt_1.md`——英语市场(US/GB/AU/MX),输出 `en_title` + `cn_title`;
|
||||
- `prompts/title_prompt_2.md`——日本市场(JP),输出 `en_title` + `cn_title` + `ja_title`;
|
||||
- `prompts/title_prompt_3.md`——西班牙市场(ES),输出 `es_title` + `cn_title`。
|
||||
|
||||
**路由表**在 `config.yaml` 的 `title_templates.route`(国家 → 模板编号),新增国家/改路由只需编辑
|
||||
config.yaml。模板内 `{year}`/`{month}`/`{season}` 占位符运行时自动替换为当前时间;md/yaml 缺失时
|
||||
回退代码内置默认模板,标题生成不中断。
|
||||
|
||||
## 生成可靠性 / 错误处理
|
||||
|
||||
- **致命 503(图像服务不可用,如 "No available compatible accounts")**:端到端识别
|
||||
@@ -231,10 +248,27 @@ Pinterest 参考模式与自定义图片模式的多模态分析提示词已**
|
||||
|
||||
`configs/model_features.yaml` 的模特特征按性别分组(`female` / `male`)。种草图生成时读取商品上传
|
||||
模板的「类目」表头值:
|
||||
- 类目含「男童」→ 固定从 **boy_kids** 组随机取模特(童装)
|
||||
- 类目含「女童」→ 固定从 **girl_kids** 组随机取模特(童装)
|
||||
- 类目含「男」(如 `男士时尚>男装>男装T恤`)→ 固定从 **male** 组随机取模特
|
||||
- 类目含「女」→ 固定从 **female** 组随机取模特
|
||||
- 都不含 → 男女混合随机
|
||||
|
||||
**判定顺序**:先判「男童/女童」再判「男/女」(因为"男童"也含"男"、"女童"也含"女")。
|
||||
|
||||
## 童装场景图生成(男童 / 女童)
|
||||
|
||||
检测到模板类目为男童/女童时,种草图**不再套用** `seed_shot_templates.yaml`,而是直接使用
|
||||
`configs/kids_features.yaml` 里配置的**完整场景提示词**(同一商品全套图固定同一组 模特+场景+服装风格):
|
||||
|
||||
- `model_features.boy_kids` / `model_features.girl_kids`——童装模特特征
|
||||
- `scene_features.boy_kids` / `scene_features.girl_kids`——童装场景完整提示词(支持
|
||||
`[商品名称]`/`[材质]`/`[模特特征]`/`[服装风格]` 占位符)
|
||||
- `style_features.boy_kids` / `style_features.girl_kids`——童装服装风格
|
||||
|
||||
**种草图重试**:`config.yaml` 的 `seed_shot.retries`(默认 3)——生成失败(如图像 API 安全策略拦截)
|
||||
时自动换一组 场景/模特/风格 重试,全部失败则返回空、不中断流水线;成人模式失败时换模板/特征重试。
|
||||
|
||||
## 生图尺寸(读 config,不硬编码)
|
||||
|
||||
| 图片类型 | 配置项 | 默认 |
|
||||
@@ -273,6 +307,16 @@ Pinterest 参考模式与自定义图片模式的多模态分析提示词已**
|
||||
`occasion→场合`、`scene→场景`、`hemline_shape→下摆形状`,各字段独立不覆盖;
|
||||
- **季节映射(女装)**:`spu.season` 的「四季」→「ALL/全球/所有」(`config.yaml` 的 `season_map.female` 可配置);
|
||||
- **印花图案映射(女装)**:`spu.pattern` 为「印花」时 →「卡通」(`pattern_map` 可配置);
|
||||
- **适用人群映射(童装)**:`spu.target_audience` 按童装性别映射(`target_audience_map.kids` 可配置),
|
||||
如女童模板「男童」→「女童」、男童模板「女童」→「男童」;
|
||||
- **童装字段映射**:检测到男童/女童模板时,`spu.kids_type` →「SPU商品属性-类型」、`spu.kids_age` →「适用年龄段」;
|
||||
**kids_type 值映射**:`kids_type_map.girl_kids`(可配置)仅女童模板生效,如「上衣」→「针织上衣」,男童保留原值;
|
||||
- **SKU 尺码升序排序**:写入模板前按 `sku.size` 从小到大排序(`_size_rank` 支持数字码/字母码/童装年龄码
|
||||
6Y/10Y/1-2Y/均码等),保证每个 SPU 块内尺码有序,不受 db 存储顺序影响;
|
||||
- **多站点模板匹配**:模板「经营站点」表头下可配置多个站点(逐行读取),当前国家命中其中任意一个即视为
|
||||
匹配,不再只认第一个站点;
|
||||
- **Preview 文件夹**:模板导出成功后生成 `output/<国家>/<ts>/Preview/`——复制成功导入模板产品的
|
||||
`_composite.oss.jpg` 压缩图 + 生成 `result.xlsx`(货号 | 中文标题 | 英文标题),仅含成功产品;
|
||||
- **详情图文**:由全部主图 + 种草图组成(不再拼接 img_url_2);
|
||||
- 规格类型2 = `{size}*{color}`;币种=CNY;发货仓1~N 取模板顶头按「、」分隔,库存均 200;
|
||||
- 模板文件被占用(打开中)时自动换名 `<SKU>_已填写_N.xlsx`,不中断导出;
|
||||
|
||||
Reference in New Issue
Block a user