POD 趋势感知 Agent:缓存热点模式 + 三图合成 + 热点去重/风格去重 + review 兜底

- 缓存热点批量流程(有采集缓存不触发 Google)
- 简报不足直接从采集缓存生成(轻量补齐)
- 三图合成(模特/印花/底图)+ 底图压缩 <2MB
- 热点去重→风格去重自动切换 + 不适合类目 review 兜底
- 透明背景(background=transparent)+ 提示词清洗(敏感词/背景描述)
- 任务前 basemap 校验 + 模板国家校验 + 模特任务级分配
This commit is contained in:
2026-08-22 14:14:01 +08:00
commit f493bde8a9
98 changed files with 10280 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
# 2026-08-19 工作日志
## 创建 SQLite 商品数据库
-`db/` 目录下创建 `spu_sku.db`,含 SPU、SKU 两张表。
- SPU 表 25 个字段:id(主键,自增)、code、material、component_1~3、component_proportion_1~3、pattern、details、collar_style、style、care_Instructions、fabric、target_audience、season、is_transparent、layout、weaving_method、printing_type、fabric_texture_1、fabric_weight_1、fabric_weight_unit_1、lining_texture。
- SKU 表 9 个字段:id(主键,自增)、spu_id(外键→SPU.id,含索引 idx_sku_spu_id)、code、color、size、price(REAL)、stock(INTEGER 默认0)、image_url、status(默认 'active')。
- 建库脚本保留在 `db/create_db.py`,可修改字段后重跑重建。
- SKU 字段为按电商惯例补充设计,用户未指定,待确认是否调整。
## 更新 SKU 表结构(用户指定字段)
- 用户提供完整 SKU 字段定义,重建 SKU 表,共 19 个字段:
id(主键,自增)、spu_id(外键→SPU.id)、code、price(REAL)、color、size、size_group、size_type、shoulder_width、bust、clothing_length、sleeve_length、longest_side、secondary_long_side、shortest_side、img_url_2~img_url_5。
- 尺寸类字段(shoulder_width/bust/clothing_length 等)用 TEXT 存储(兼容区间值/单位),如需要数值计算可改 REAL。
- 注意:删除 db 文件会被沙箱安全机制拦截,create_db.py 已改为 DROP TABLE 方式重建,不再删除文件。
## 从 PG (inkreach) 同步美国商品数据
- PG 连接:localhost:5432, user=postgres, pwd=inkreach, db=inkreachpsycopg2 装在 venv `C:\Users\Admin\.workbuddy\binaries\python\envs\default`)。
- 数据规律:**plates.id IN (2,3,4,5) = 美国男装/女装/童装/家居配饰**SPU = categories(code 去重 59 个)SKU = prices(web_product_id 粒度 218 条);成分=composition,洗涤/英文名/质地/印花工艺=product_extra,图片=color_detail_images,尺码范围=colors.size_range。
- 映射:SPU.code=品类code, material/fabric=品类fabric, component_1~3=composition.comp1~3, style=sub_category, details=english_name, care_Instructions=washing_instructions, target_audience=plates.display_name, printing_type=design_explanation(烫画/热转印), fabric_texture_1=texture, fabric_weight_1=从名称正则提取克重。
- SKU: code=sku, price=price, size_group=colors.size_range, size_type=按尺码范围推断(字母码/儿童码/婴童码/均码/家居尺寸), img_url_2~5=该产品 color_detail_images 第2~5张。
- **留空字段(PG 无对应数据)**pattern、collar_style、season、is_transparent、layout、weaving_method、lining_textureSKU 的 colorweb_sku 与 colors 名无法可靠映射,75 品类中 21 个不一致)、size、shoulder_width、bust、clothing_length、sleeve_length、longest_side、secondary_long_side、shortest_side(尺寸为品类级多值)。
- 结果:SPU 59 条(5000B 无价格故无 SKU)、SKU 218 条,字段未改动。
- 同步脚本 `db/sync_from_pg.py` 可重跑(先 DELETE 清空再插入)。
## SKU 改为颜色×尺码粒度(v2)
- 用户要求:SKU.code 用颜色映射编码(如 DG004-AP01 = colors.code)、color 填颜色名、每个尺码独立一个 SKU、包装规格从原库解析。
- 新数据源(product_extra 表的 JSON 字段):
- `product_size` JSON:尺码表(表头动态列:肩宽/胸围/衣长/袖长/腰围等,第一列=尺码)
- `packaging_spec` JSON:包装规格("包装尺寸(cm)"列 = 长*宽*高,拆分为最长边/次长边/最短边;另有 in/体积/重量列)
- SKU 生成:每个 SPU = colors(按主 category_id) × product_size 尺码表 → 笛卡尔积。
- code=colors.code(颜色映射编码),color=colors.namesize=尺码,size_group=colors.size_rangesize_type=推断
- price=该品类 prices 首条价(颜色尺码粒度无独立价);img_url_2~5=品类首颜色 web_sku 图
- 5000B 无 product_extra → 尺码回退 size_chart;无 prices → price 留空
- **坑**5000B(12色)/DG502(1色) 的 colors.code 是坏数据(存了颜色名/品类码)→ 脚本兜底生成 f"{品类code}-{颜色名}"。
- 结果:SPU 59 / SKU 1400254 个唯一颜色编码)。填充率:code/color/size/size_group/size_type 100%price 1340/1400,包装规格 1326/1400,尺寸字段 75~88%。
## SKU 尺码字段固定值 + SPU 增加国家字段
- 用户要求:SKU.size_group 全部='尺码'SKU.size_type 全部='欧美尺码常规'(不再用推断逻辑)。
- SPU 表新增 `country` 列(TEXT),全部 59 条 SPU 设为 'US'。
- 已同步更新 `create_db.py`SPU 表加 country 列)和 `sync_from_pg.py`SPU 插入含 country='US'SKU 用固定 sgroup/stype),重跑验证通过:SPU 59 / SKU 1400 / country 全 US / size_group、size_type 各 1 个唯一值。
## SKU 增加 package_weight(包装重量)
- SKU 表新增 `package_weight` 列,来源 = `product_extra.packaging_spec` JSON 的"含包装重量(g)"列(单位:克),新增 `parse_weight_json()` 解析函数。
- 匹配兜底(重要):
1. 精确匹配尺码 → 失败则取 '/' 前部分(家居类 '30*40/76.2*101.6' vs '30*40'
2. 均码同义词兜底('Onesize'/'OneSize'/'均码' 互相匹配,YSM02 案例)
- 结果:填充 1340/140095.7%),仅 5000B 无数据(PG 无 packaging_spec,合理留空)。重量范围 16~847 g。
- create_db.py 的 SKU 定义同步加了 package_weight 列。