知识库质量控制
质量标准
知识库质量不是单一维度,而是五个标准共同满足:
| 标准 | 含义 | 反例 |
|---|---|---|
| 准确 | 符合商家真实规则与平台政策 | 写"包邮 5 公里",实际是 3 公里 |
| 清晰 | 客户能听懂、模型能引用 | 用"分钟级"代替"15 分钟" |
| 可引用 | 标题和正文足以支撑回答片段 | 标题写"配送说明",正文却只列电话 |
| 可维护 | 后台能搜到、有责任人 | 散落在不同分类、无修改记录 |
| 边界明确 | 说明 AI 能说什么、不能承诺什么 | 没注明"具体退款金额需老板确认" |
五个标准需要同时满足。任何一项缺失都会在某个真实会话里暴露。
五类常见质量问题
1. 内容过长
正文超过 200 字,模型引用后回答啰嗦,客户读不完。修复方式是拆条:把"营业 + 配送 + 优惠"拆成三条独立知识,每条 80-120 字。
2. 同义词过宽
同义词把不相关 query 也召回。例如把"退款"列入"配送"的同义词,会让"退款怎么办"也命中"配送范围"。修复方式是收窄同义词到真正的近义表达,每条不超过 10 个。
3. 规则没有时间范围
活动已过期但仍被回答。修复方式是给活动类知识加 valid_from / valid_to 字段(或在正文里写明"截止日期"),过期后自动归档或在后台高亮提示。
4. 售后内容缺边界
正文写"可以退款",模型可能承诺具体金额。修复方式是显式声明边界:
我们支持因菜品质量、漏餐、错餐发起退款,具体金额需要老板根据情况确认。我可以先帮您建工单,老板会在 30 分钟内回复。
5. 食品安全过于乐观
正文写"少量过敏可以尝试"。这是高风险表述。所有食品安全类知识必须明确:
- 海鲜过敏 → 不建议下单 + 转人工
- 异味 / 死虾死蛤 → 立即转人工 + 建工单
- 疑似食物中毒 → 紧急联系老板 + 建议就医
质检流程
每周抽查高命中和高无用反馈条目,对比四个维度:
客户原问题 ─┬─> 召回的知识条目 ─┬─> AI 回答 ─┬─> 质检评分
│ │ │
└─ 是否真的相关? ────┘ │
│
是否被模型正确引用? ────────────────┘
质检不是只看后台文本,而是把知识放回真实会话链路里检查。一条条目「准确度」可能很高,但「检索召回率」很低,依然算质量问题——客户问到了它没出来。
改进动作矩阵
| 问题表现 | 改进动作 | 责任人 |
|---|---|---|
| 命中高 + 有用率低 | 改写正文、缩小同义词、加边界声明 | 商家 + 运营 |
| 命中低 + 内容重要 | 补充同义词、改标题、加 chunking | 运营 |
| 命中高 + 同时召回多条 | 检查是否冗余、合并或差异化 | 运营 |
| 完全零命中(30 天) | 复核是否仍有效、归档或重写 | 商家 |
| 引用后 AI 越权 | 加边界声明、同步调整 Prompt | 产品 + 运营 |
每个动作都要记录原因(写入 kb_articles.change_log 或 synonyms 字段历史),方便后续复盘改写是否有效。
与质检系统的连接
LLM 自动质检(参见 06-data/04-quality-eval)的五维度评分中,dim_accuracy(准确性) 和 dim_resolution(解决度) 直接反映知识库质量。低准确分会自动标记缺失或错误的知识;低解决分会触发知识补充建议。
质检结果回流到知识库的具体动作:
- 质检 dim_accuracy < 3 → 标记本次会话引用的知识需要复核
- 质检 dim_resolution < 3 + 知识无命中 → 进入"待补充知识"队列
- 质检 dim_compliance < 3 → 检查是否需要加边界声明
改进节奏建议
| 节奏 | 检查内容 | 投入时间 |
|---|---|---|
| 每天 | fallback top10、待处理工单 | 5 分钟 |
| 每周 | 命中率/有用率分布、Top 投诉 | 30 分钟 |
| 每月 | 全库准确度抽样、归档审核 | 2 小时 |
| 每季度 | 食品安全 / 过敏 / 退款全量复核 | 半天 |
中小商家通常没有专职运营,因此节奏被刻意设计成"短而频"——每天 5 分钟比每月一次大扫除更可持续。