feat(t214): persist candidate observation identities

This commit is contained in:
QiuSW
2026-07-28 12:21:55 +08:00
parent acd3c85b5b
commit 56e7a2be33
29 changed files with 622 additions and 94 deletions
+16 -6
View File
@@ -267,12 +267,13 @@ T-102/T-104 在搜索结果后追加一个有界候选步骤:
-> 一次全局返回并复核固定词结果页
```
候选卡只保留语义指纹和计数,详情/规格截图保存在 App 内部 cache。manifest v3 记录
匿名文件名、截图 SHA-256、字节数、尺寸、有界规格语义、已选摘要和严格组合价格,
不保存商品标题或完整页面
原文。T-104/T-213 使用这些证据时必须通过受控 evidence 边界读取,不能让 VLM adapter
自行遍历 cache。Android 10/API 29 及以下不能运行当前截图探针,应在预检时明确
不支持,不使用媒体投影或 shell 绕过。
候选卡只保留语义指纹和计数,详情/规格截图保存在 App 内部 cache。manifest v4 记录
匿名文件名、卡片/详情语义 SHA-256、截图 SHA-256、字节数、尺寸、有界规格语义、
已选摘要、严格组合价格和 best-effort 页面可见标题;不保存完整页面原文。标题最多
160 字,动作、价格和纯数字文本不会作为标题。T-104/T-213/T-214 使用这些证据时
必须通过受控 evidence 边界读取,不能让 VLM adapter 自行遍历 cache。Android
10/API 29 及以下不能运行当前截图探针,应在预检时明确不支持,不使用媒体投影或
shell 绕过。
`CandidateEvidenceSource` 只接受当前 workflow 内存中的连续 ordinal 元数据,文件名
固定为 `candidate-01-detail.png`/`candidate-01-specification.png` 至第五组;每张
@@ -539,6 +540,7 @@ T-208 已在 T-207 的候选、事件、截图和最小结果回传基础上,
| --- | --- |
| `candidate_search_runs` | execution、需求快照 hash、搜索词、App/拼多多版本、开始/结束时间 |
| `candidate_observations` | run、ordinal、可选平台商品 ID/规范化 URL、可见标题/规格/价格、采集状态和截图 asset |
| `candidate_observation_identities` | execution-scoped candidate key、原 ordinal、卡片/详情语义签名、详情/规格证据 hash 和 identity 版本 |
| `model_runs` | provider/model、prompt/schema/阈值版本、耗时、token/成本和请求/结果 hash |
| `candidate_evaluations` | observation/model run、decision、score/confidence、matched/missing/rejection reasons |
| `candidate_recommendations` | run、推荐 observation、conclusion、确定性策略版本和简短理由 |
@@ -558,6 +560,14 @@ T-208 已在 T-207 的候选、事件、截图和最小结果回传基础上,
图片 URL 只保存为长度受限、规范化的辅助观测值;后端不得盲目请求该 URL。主要证据
必须是 App 上传后由 assetstore 校验、脱敏和受鉴权访问的时间点快照。
T-214 后,v7 以后写入的每个 observation 在同一事务内生成
`candidate_observation_identities`。`candidate_key` 使用版本域、execution ID、原始
ordinal、详情语义签名和规格证据 hash 生成,只标识该次 execution 的持久 observation,
不冒充拼多多全局商品 ID。App 按 `DETAIL`、`SPECIFICATION` 顺序提交两个不同的
evidence asset ID;后端逐一核对其实际 SHA-256 后才接受候选。Admin API/Web 展示
key、四个指纹和受控截图;后续选品授权必须引用 key 并绑定任务内容 hash 和 review
版本,不能只信 URL 或列表 ordinal。
人工理由使用版本化 allowlist。接受或拒绝至少有一个理由且指定主要理由;
`OTHER` 才要求 4-200 字备注。拒绝推荐后改选必须同时产生一条原推荐项负标签和一条
替代项正标签;全部无匹配时每个曝光候选都有负标签。人工修正追加新 review 并引用