docs: defer candidate decision data loop

This commit is contained in:
QiuSW
2026-07-26 20:16:42 +08:00
parent ce875af889
commit 6dcecbdc03
11 changed files with 154 additions and 7 deletions
+34
View File
@@ -446,6 +446,40 @@ T-205 的最小 execution 表中提前伪造。
- 任务参考图上传可接受 JPEG/PNG/WebP,但后端必须先真实解码、限制字节与像素,再
统一规范化为匿名 JPEG;未来 Android 读取的资产不能依赖原始扩展名或声明 MIME。
### 后置候选决策数据集(T-208)
T-207 先完成候选、事件、截图和最小结果回传。T-208 在 `task_executions` 下增加
独立、不可变的数据层,不把整批候选塞进 `task_events`、`purchase_tasks` JSON 或
一段不可查询的自由文本:
| 表 | 主要内容 |
| --- | --- |
| `candidate_search_runs` | execution、需求快照 hash、搜索词、App/拼多多版本、开始/结束时间 |
| `candidate_observations` | run、ordinal、可选平台商品 ID/规范化 URL、可见标题/规格/价格、采集状态和截图 asset |
| `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、确定性策略版本和简短理由 |
| `candidate_human_reviews` | run、最终 outcome、选择项、actor、理由 schema、时间和可空 `supersedes_review_id` |
| `candidate_human_review_items` | review 下每个候选的 `ACCEPT/REJECT`、主要理由和可选备注 |
| `candidate_human_review_reasons` | review item 的多值结构化理由码 |
四层数据语义不可混用:
- observation 是 App 当时实际看到的页面事实。
- prediction 是特定模型版本的输出。
- recommendation 是本地确定性规则的结果。
- human label 是采购人员明确提交的结论,才可作为离线准确率标签。
现有 `assets.purpose` 在 T-207/T-208 migration 中按实际需要扩展
`CANDIDATE_SCREENSHOT`、`CANDIDATE_IMAGE` 和 `EXECUTION_EVIDENCE`。第三方商品或
图片 URL 只保存为长度受限、规范化的辅助观测值;后端不得盲目请求该 URL。主要证据
必须是 App 上传后由 assetstore 校验、脱敏和受鉴权访问的时间点快照。
人工理由使用版本化 allowlist。接受或拒绝至少有一个理由且指定主要理由;
`OTHER` 才要求 4-200 字备注。拒绝推荐后改选必须同时产生一条原推荐项负标签和一条
替代项正标签;全部无匹配时每个曝光候选都有负标签。人工修正追加新 review 并引用
旧 review,不能覆盖历史。模型理由可以展示给人员参考,但不能自动成为人工理由。
## 六、API 和并发边界
- 合约以 [`api.md`](api.md) 为准。