2.8 KiB
2.8 KiB
免唤醒判决日志
"免唤醒"指车机上不需要每次说"小爱同学"的免唤醒指令模式(如开/关空调、调温度)。每次请求都会经过免唤醒判决——是否让这条 query 直接执行而不是走闲聊/拒识。
三个视角,两张表
| # | 业务视角 | 日志位置 | 命令 |
|---|---|---|---|
| 1 | 拒识模块视角:每次请求拒识模块整体输出(含所有子策略,含调用免唤醒的结果) | aiservice_duplex_rejection_lcs_log* 整条 rejectInfo |
--preset reject |
| 2 | 拒识里的免唤醒子字段:拒识调免唤醒那一次的入参出参 | 同表,rejectInfo.strategy_info.reject.KEY_WORD_FREE_RESTRIC |
--preset reject --json-path rejectInfo.strategy_info.reject.KEY_WORD_FREE_RESTRIC |
| 3 | 免唤醒模块视角:免唤醒模块被后处理调到时自己写的日志(独立的另一张表) | nlp_post_processing_lcs-* 中 moduleName=keyword-free-log |
--preset kwfree |
1 和 2 同表同条记录,2 只是取子字段;3 是完全独立的另一张表。
关键字段
视角 2:拒识里的免唤醒子字段
路径前缀 rejectInfo.strategy_info.reject.KEY_WORD_FREE_RESTRIC:
process— 是否走到免唤醒判决(true / false)skipped_reason— 被跳过原因(如post_processing_takeover表示让后处理接管,进入视角 3)keywordFreeTypeisCodeMatchgetProcessedQueryFunction List
视角 3:后处理免唤醒模块自身
JSON 字段 message 顶层:
process— 是否实际走到处理skipReason— 未处理原因(如rejectedByOtherStrategy已被其他策略先拒)route.flow/route.enableFullMigration/route.clawEnabledrequest.queryrequest.keywordFreeType(如INSTRUCTION_KEY_WORD_FREE)request.zone(如DRIVER)request.appId/maskUid/maskDeviceIdfallback.oldRejectType/fallback.oldDomain
排查 Playbook
问题:免唤醒为什么没生效?
-
先查视角 2,看拒识有没有调到免唤醒:
python elk_query.py <rid> --preset reject \ --json-path rejectInfo.strategy_info.reject.KEY_WORD_FREE_RESTRICprocess=true→ 走到免唤醒判决了,看keywordFreeType等子字段process=false→ 没走到,看skipped_reason:post_processing_takeover→ 进视角 3 看后处理免唤醒- 其他原因 → 拒识自己挡了
-
视角 3——后处理免唤醒模块自身:
python elk_query.py <rid> --preset kwfree --json-path messageprocess=false时看skipReason(rejectedByOtherStrategy表示已被先拒)
字段 schema
完整 schema 见 ../INDEX_CATALOG.md 中 aiservice_duplex_rejection_lcs_log* 和 nlp_post_processing_lcs-* 两节。