feat(#115): move PDD recognition aliases into rules
This commit is contained in:
@@ -2,8 +2,8 @@
|
||||
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
|
||||
wiki_page: Business-Rules-and-Glossary
|
||||
wiki_url: https://git.ilapage.cn/OPC/goauto/wiki/Business-Rules-and-Glossary.-
|
||||
wiki_revision: 26618d4312a1e7091f6b483111c31e67f70f26eb
|
||||
synchronized_at: 2026-08-27T09:57:37Z
|
||||
wiki_revision: b208729957c26801012279a8e89fc18b350f3a87
|
||||
synchronized_at: 2026-08-27T10:14:02Z
|
||||
<!-- gitea-wiki-mirror:end -->
|
||||
|
||||
# 业务规则与术语
|
||||
@@ -171,6 +171,7 @@ synchronized_at: 2026-08-27T09:57:37Z
|
||||
- 服务端顺云宝(SYB)登录例外:允许调用配置的线上 OCR 服务识别登录验证码(见 [#48](https://git.ilapage.cn/OPC/goauto/issues/48))。验证码图片会离开本项目发送到该服务,更换服务地址前必须重新评估。此例外只适用于 SYB 登录,不扩大到 Agent 端或任何 PDD 相关流程。
|
||||
- 采购阶段的规格匹配由服务端决策(见 [#46](https://git.ilapage.cn/OPC/goauto/issues/46)、[#62](https://git.ilapage.cn/OPC/goauto/issues/62)):Agent 本地不得自行猜测规格或点击相近候选,只执行服务端下发的精确规格;AI Provider 只有一个 OpenAI-compatible 配置,由管理员维护。根据 #62 已确认的内部部署例外,API Key 明文保存在专用设置表,并只向管理员设置接口返回以便查看和替换;它仍不得写入代码、日志、工单、Wiki、任务快照、采购员接口或 Android 接口。Provider Base URL 不限制内网或公网,支持 HTTP/HTTPS;HTTP 不加密传输中的 API Key,生产环境建议 HTTPS。
|
||||
- 采购规则的 `openSpecPanel` 默认不写死页面文字。Agent 只在已由页面语义确认的规格入口或底部购买入口中选择;规则若提供 `textAliases`,只能进一步缩小这些安全候选,不能把任意同名页面文字变成可点击入口。
|
||||
- PDD 采集规则的 `collector.textAliases` 是规格面板、维度标题、选择摘要、评价入口、售罄主商品证据和购买入口等只读识别文案的服务端下发事实源;缺省字段只为旧快照兼容使用 Agent 内置默认值。颜色/尺码分类不得再用代码字面量扩大 `dimensionAliases`。订单和支付文字可以参与只读页面判定,但 Agent 内不可配置的创建订单/确认订单/支付/付款点击拒绝清单始终优先,规则不能放宽;修改地址和收货地址在只读及点击字段中都禁止。
|
||||
- 正式采购规则可以调用独立审核的改地址、创建待付款订单和只读核单动作;采集规则和演练规则不能调用。真机首次安装或验证仍需独立人工授权。
|
||||
- 系统当前不提供自动支付、实时屏幕或管理端远程控制。付款、免密支付及任何等价动作不能配置为点击目标;只读识别字段可以包含支付或订单文字。后续若新增支付能力,必须由独立工单和显式控制重新评估。
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
|
||||
wiki_page: Android-Agent-API-Contract
|
||||
wiki_url: https://git.ilapage.cn/OPC/goauto/wiki/Android-Agent-API-Contract.-
|
||||
wiki_revision: 3d6a43359e015d4d6eaeb896f63dc1920ca601f6
|
||||
synchronized_at: 2026-08-27T09:58:31Z
|
||||
wiki_revision: 0bbe3f1041a0795a156dcd1205dbe85474e80f8c
|
||||
synchronized_at: 2026-08-27T10:14:59Z
|
||||
<!-- gitea-wiki-mirror:end -->
|
||||
|
||||
# MVP 共享 API 契约
|
||||
@@ -153,9 +153,9 @@ v2 完整示例见 [PDD 商品详情规则](rules/pdd-product-detail-v2.proposed
|
||||
- `pageEvidence`:精确的 PDD 包名、Activity 和非空节点证据。
|
||||
- `collector.collectorId: pddProductDetailV1`:引用 Agent 中经过测试的类型化能力,不下发可执行代码。
|
||||
- `hooks.afterSpecPanelOpen`:固定阶段的安全动作;当前只允许对语义目标 `specPanel` 执行 `swipe`,方向为上下左右、单动作次数 1~5、等待 0~2000 毫秒,单阶段最多 8 个动作。
|
||||
- `pageRecovery.transientSoldOut`:商品详情页精确显示“商品已售罄”,或顶部区域出现固定兜底标题“相似商品”且缺少主商品规格/购买强证据时,允许对商品页执行一次有界恢复;默认下拉 2 次、间隔 1000 毫秒。推荐卡片自身的标题、价格和销量不属于主商品证据。`fallbackTopText` 缺省时 Agent 使用“相似商品”兼容旧快照。Agent 必须声明无障碍手势能力,且只把系统回调完成的下拉计为成功。规格面板内的 SKU 售罄不触发。恢复后仍异常时失败码为 `PDD_GOODS_SOLD_OUT`。
|
||||
- `pageRecovery.transientSoldOut`:商品详情页出现规则配置的 `exactText`,或顶部区域出现 `fallbackTopText` 且缺少主商品规格/购买强证据时,允许对商品页执行一次有界恢复;内置默认值仍为“商品已售罄”与“相似商品”,默认下拉 2 次、间隔 1000 毫秒。推荐卡片自身的标题、价格和销量不属于主商品证据。`fallbackTopText` 缺省时 Agent 使用“相似商品”兼容旧快照。Agent 必须声明无障碍手势能力,且只把系统回调完成的下拉计为成功。规格面板内的 SKU 售罄不触发。恢复后仍异常时失败码为 `PDD_GOODS_SOLD_OUT`。
|
||||
- `navigationRecovery.reopenBrowser`:首次跳转未通过精确商品详情页证据时,Agent 重新显式打开任务 `urlSnapshot` 并重放安全导航步骤;最多恢复 1 次,重开后等待 500~5000 毫秒。登录、验证码、风控、无效链接和进入详情页后的采集失败不触发。
|
||||
- `collector.dimensionAliases`、`timeoutsMs` 和 `limits`:分别管理规格标题别名、超时和遍历/SKU 上限。
|
||||
- `collector.dimensionAliases`、`collector.textAliases`、`timeoutsMs` 和 `limits`:分别管理颜色/尺码分类别名、只读页面识别文案、超时和遍历/SKU 上限。`textAliases` 可选;旧规则快照缺省时 Agent 使用当时内置默认值。新规则可在 `specPanel`、`dimension`、`selection`、`review`、`soldOut`、`purchase` 六组中配置面板、维度、选择摘要、评价入口、主商品证据和购买入口文字;每个数组为 1~20 项、单项不超过 30 个 Unicode 字符、不得有首尾空白或重复项。维度分类只依据规则的 `dimensionAliases`,代码不再以“颜色/款式/尺码/尺寸”字面量兜底,因此规则可以真实收窄。订单和支付文字允许作为只读识别证据;`修改地址`、`收货地址` 始终拒绝。用于阻止创建订单、确认订单、支付和付款控件成为采集点击目标的拒绝清单固定保留在 Agent,不能由规则覆盖。
|
||||
|
||||
例如规格面板打开后向上滑动两次,只修改规则:
|
||||
|
||||
|
||||
@@ -83,9 +83,44 @@
|
||||
"size": [
|
||||
"尺码",
|
||||
"尺寸",
|
||||
"套餐"
|
||||
"套餐",
|
||||
"参考分类"
|
||||
]
|
||||
},
|
||||
"textAliases": {
|
||||
"specPanel": {
|
||||
"titleAliases": ["确认款式", "確認款式"],
|
||||
"closeAliases": ["关闭", "關閉"],
|
||||
"confirmAliases": ["确定", "確定", "确认", "確認"],
|
||||
"quantityDecreaseAliases": ["减少数量", "減少數量"],
|
||||
"quantityIncreaseAliases": ["增加数量", "增加數量"],
|
||||
"paymentAreaAliases": ["微信支付", "先用后付", "先用後付", "支付方式"],
|
||||
"orderSubmitAliases": ["提交订单", "提交訂單"],
|
||||
"quickBuyAliases": ["现在买", "現在買"]
|
||||
},
|
||||
"dimension": {
|
||||
"colorSuffixes": ["颜色", "款式"],
|
||||
"sizeSuffixes": ["尺码", "尺寸"],
|
||||
"exactNames": ["规格", "型号", "容量", "类型", "版本", "口味"],
|
||||
"adaptiveAliases": ["套餐"]
|
||||
},
|
||||
"selection": {
|
||||
"summaryPrefixes": ["已选", "请选择", "已選", "請選擇"],
|
||||
"selectedPrefixes": ["已选", "已選"],
|
||||
"specEntryPrefixes": ["请选择", "选择", "已选"],
|
||||
"submitHintAliases": ["选择", "選擇", "颜色", "顏色", "尺码", "尺碼", "规格", "規格"]
|
||||
},
|
||||
"review": {
|
||||
"entryAliases": ["商品评价", "全部评价", "评价详情", "评论", "晒单", "问答"]
|
||||
},
|
||||
"soldOut": {
|
||||
"mainProductExactAliases": ["进店", "单独购买", "发起拼单", "立即购买"],
|
||||
"mainProductPrefixAliases": ["商品评价"]
|
||||
},
|
||||
"purchase": {
|
||||
"buyWords": ["单独购买", "立即购买", "发起拼单", "去拼单", "免拼购买", "购买"]
|
||||
}
|
||||
},
|
||||
"timeoutsMs": {
|
||||
"page": 30000,
|
||||
"specPanel": 10000,
|
||||
|
||||
Reference in New Issue
Block a user