Product Docs

知识库版本管理

返回作品总览

知识库版本管理

为什么需要版本

外卖知识经常变化:价格调整、活动过期、配送范围扩缩、菜品上下架、售后政策更新、过敏标注修订。如果没有版本管理:

  • 模型某次回答出错时,无法追溯当时引用的是哪一版知识
  • 商家不知道是模型问题还是知识过期问题
  • 改写后效果不好无法回滚
  • 跨周对比改写有效性缺乏证据

版本管理把知识库从"一份当前文档"变成"一条带时间轴的演进记录",让运营改进可解释、可复盘、可回滚。

版本字段

kb_articles 表保留以下字段支持版本:

字段用途
version自增整数,每次发布性修改 +1
statusdraft / active / archived
created_at首次创建时间
updated_at最近修改时间
change_log修改原因(自由文本)
synonyms[]同义词数组(独立维护历史)
hit_count / helpful_count / unhelpful_count累积命中与反馈

active 版本参与 RAG 检索;archived 版本保留审计、不参与检索;draft 版本仅商家可见、用于灰度测试。

版本切换规则

操作数据库变化何时使用
新建新增一行 status='draft'候选条目入库
发布草稿 status='active',旧版本 status='archived'审核通过
回滚旧版本 status='active',新版本 status='archived'改写后效果不好
归档status='archived'失效或不再使用
重新激活status='archived''active'节假日规则重新生效

发布操作在数据库 transaction 内完成:先把旧版本归档,再激活新版本,确保任意时刻只有一个 active 版本存在,避免检索召回多版本。

与 Prompt 的关系

知识库版本和 Prompt 版本要分开管理。两者关注不同问题:

维度知识库版本Prompt 版本
回答的问题事实是什么如何使用事实
修改频率高(每周)低(每月或每季度)
修改责任人商家 + 运营产品 + AI 训练师
影响范围单条召回全部会话

当知识内容变化时(例如价格更新),不一定要改 Prompt;当同一知识被模型反复误用时(例如总把"咨询"当成"承诺"),才需要同步调整 Prompt 规则。

两者的协同点:知识库的"边界声明"(参见 03-quality)和 Prompt 的"禁止承诺清单"必须保持一致。例如知识库写"金额需老板确认",Prompt 也必须有"不承诺具体退款金额"。

灰度发布

涉及高风险或大幅改写的知识,建议灰度发布:

  1. 修改后先以 status='draft' 保存
  2. /widget/demo 用 3-5 种问法测试,包括边界情况
  3. 测试通过后再发布
  4. 发布后 48 小时内重点观察 hit_countunhelpful_count、相关会话质检分

如果观察到异常(如有用率突然下降、相关 fallback 增加),立即回滚到上一版本。回滚操作只是把 archived 版本重新设为 active,不会丢失数据。

回滚案例

一个典型的回滚场景:

周一 14:00:商家把"配送范围 5 公里"改写成"配送范围 3-5 公里(高峰可能延长)"
周一 18:00:客户开始反馈"3 公里还是 5 公里到底是多少"
周一 19:30:fallback 数据显示同一问题被追问 7 次
周一 20:00:商家在后台点击"回滚到上一版",恢复"配送范围 5 公里"
周一 20:01:旧版本重新 active,新版本归档保留
周二 上午:商家重新设计文案,分开做成两条知识:
   - "配送范围多远"(5 公里)
   - "高峰期会延长配送时间吗"(晚 21-23 点常延长 10-15 分钟)

整个回滚 + 重做的过程不到 24 小时,且没有任何技术介入。这正是版本管理的核心价值。

复盘价值

版本管理可以解释数据变化:

  • 某周退款 FAQ 改写后,无用反馈下降 → 知识改写有效
  • 某次活动更新后 fallback 上升 → 同义问法不足,需要补充
  • 某条食品安全条目长期零修改但季度复核显示仍然准确 → 内容稳定,可降低复核频率

版本是运营实验的证据。配合每日聚合指标(参见 06-data/01-metrics-system),可以把"我觉得这次改写有效"变成"上周改写后有用率从 47% 提升到 71%"。

数据保留策略

归档版本保留多久?建议规则:

类别保留期
食品安全 / 过敏类永久
退款 / 售后类3 年
价格 / 活动类1 年
营业 / 配送类2 年
其他1 年

保留期满后才允许物理删除,删除需要单独审计日志。这样在出现客户投诉"两年前你们的退款规则不是这样"时,仍能追溯当时的有效规则。