feat: 实现 AI 规格候选匹配与审计 (#201)

This commit is contained in:
chengma
2026-08-14 10:08:32 +08:00
parent 2f51126e1d
commit aac289a4d3
15 changed files with 1200 additions and 25 deletions
+21
View File
@@ -583,12 +583,24 @@ CREATE TABLE spec_mappings (
spec_raw TEXT NOT NULL,
mapped_at VARCHAR(35) NOT NULL,
mapped_by VARCHAR(191),
source VARCHAR(16) NOT NULL DEFAULT 'manual', -- manual / rule / ai
source_provider_id VARCHAR(191),
source_model VARCHAR(191),
confidence_bps INT,
source_reason VARCHAR(500),
source_version VARCHAR(64),
context_version CHAR(64),
PRIMARY KEY (shopee_goods_id, spec_key, pdd_goods_id),
KEY idx_spec_mappings_goods (shopee_goods_id),
KEY idx_spec_mappings_pdd (pdd_goods_id)
);
```
v21 增加的来源字段描述当前生效映射。人工在详情页保存时,`source` 固定改为 `manual`
并清空 AI 元数据;规则唯一确定的结果使用 `rule`;通过模型和服务端硬门禁的结果使用
`ai`。这些字段不改变映射唯一键。PDD 重新采集后如果 `pdd_option_key` 已不存在,三种
来源都按同一规则判为失效,不能进入采购任务。
`[必须]` 不加外键。顺运宝明细可能比蝦皮报表更早到达,同步要先创建 skeleton 商品;
PDD 商品还可软删除,映射作为审计和可恢复数据必须保留。
@@ -679,6 +691,15 @@ SELECT rules_version, COUNT(*) AS 无建议决策数
FROM spec_mapping_decisions WHERE suggested_option_key IS NULL GROUP BY rules_version;
```
### 6.4 `ai_spec_match_decisions` AI 决策审计(MySQL v21)
本表只追加,记录一次 AI 匹配动作使用的上下文版本、规则/提示词版本、服务商和模型快照、
候选短编号到真实选项键的映射、置信度、结论和简短原因。它不保存 API Key、完整提示词、
完整请求/响应、顺运宝订单号、店铺账号、用户资料、地址或 Client 信息。
合格映射和成功决策在同一事务提交。低置信度、伪造候选、模型拒绝、超时和格式错误也
追加脱敏结论,但不写 `spec_mappings`。人工后来覆盖当前映射时不会删除本表历史。
## 7. `tasks` 任务
采集任务和采购任务共用一张表,用 `task_type` 区分。