# 商品客服 Skill 覆盖与边界诊断器 ## 诊断流程样例 ### 入口 ```bash cd /Users/bytedance/Documents/job-bu/data-analysis-workspace/projects/2026-05-15-客服知识skill化 python tools/diagnose_kefu_skill_coverage.py \ --db analysis/商品wiki文档场景关系_2026-05-18_v2.db \ --sessions ../2026-05-09-商品领域意图体系迭代/clean/商品域最终体系_用户版层级_session复核_2026-05-13_v31.csv \ --core-docs config/core_product_kefu_docs_19.csv \ --exclude-doc-categories config/excluded_doc_categories.csv \ --out out/skill_coverage_diagnostic_2026-05-25.html ``` ### 输入 | 输入 | 用途 | | --- | --- | | SQLite 场景库 | 统计每篇文档的 original_question_scene、sop_scene_extract、skill_md 数量 | | 44 篇商品客服文档清单 | 固定覆盖率分母,支持审核/治理过滤 | | 核心 19 篇清单 | 做高优先级缺口校验 | | v31 session CSV | 固定线上商品域分母 9,335 | | Skill 命中关系表 | 计算唯一 session、命中关系、命中 Skill、线上原文场景 | ### 检查顺序 1. 分母检查:44 篇、排除审核/治理后的篇数、核心 19 篇是否都在库中。 2. 抽取覆盖:列出 skill_md=0 的文档,并标注是未跑、抽取失败,还是确认无可抽 Skill。 3. 线上命中:用唯一 session 计算命中率,同时单列命中关系数,避免把 543 关系误读为 543 个 session。 4. 边界诊断:对 Top Skill 抽样回源,标出“标题过窄但承接入口更宽”的场景,例如团购套餐/代金券/次卡统一落到团购商品创建入口。 ### 成功/失败信号 | 检查项 | 成功信号 | 失败信号 | 建议动作 | | --- | --- | --- | --- | | 核心文档覆盖 | 核心 19 篇 skill_md 均非 0 或有人工豁免原因 | 任一核心文档为 0 且无原因 | 重新跑该文档抽取并更新 SQLite | | 过滤口径 | 审核/治理排除名单可追溯 | 每次回答重新手工排除 | 固化 config/excluded_doc_categories.csv | | 线上命中 | 同时输出 531 session 与 543 关系 | 只报一个数导致重复计数误解 | HTML 中并排展示分子/分母 | | Skill 边界 | Top Skill 有命名解释和代表 case | 高命中 Skill 被误解成窄问题激增 | 改名或增加 alias/boundary_note 字段 | ### 预期产物 - out/skill_coverage_diagnostic_2026-05-25.html:可浏览诊断页。 - out/skill_coverage_diagnostic_2026-05-25.xlsx:文档覆盖、核心缺口、Top Skill、边界说明四个 sheet。 - out/skill_coverage_diagnostic_2026-05-25.json:供 Night Gym 汇总读取的结构化结果。