选型指南 架构设计 含可复制代码

检索里的版本与变更:别让旧版和新版混在一起

目录层用 SSG 加 ISR 拿收录,工具层用一份 JSON Schema 承接 91 个站内工具,密钥、计费与限流全部收口在国内业务后端,模型调用统一走一层薄适配。这篇把我们真实的目录结构、Schema 字段定义、路由闸门、预扣结算伪代码和合规清单完整摊开。

陈
陈默架构组
2026-09-28 · 14 分钟阅读 · 8,432 次浏览

回答里要能说出「依据的是哪个版本」。

版本混在一起,是检索里的"慢性病"

文档会改版:政策更新、接口变更、产品迭代 ✔。如果索引里旧版与新版并存 ✗,

检索会同时召回两者 ✔,模型就可能把旧规则当成现行规则讲出来 ✗ —— 而且很难被发现 ✗。

要求:每个片段都能回答"它属于哪个版本" ✔,并且默认只检索现行版本 ✔。

一、索引里要带的版本字段

```

doc_id(同一份文档的稳定标识 ✔)

version(版本号或日期 ✔)

status(current / superseded / draft ✔)

effective_from / effective_to(生效区间 ✔)

```

要点:doc_id 要在改版前后保持不变 ✗ ✔(否则无法判断"这两段是同一文档的新旧版" ✔)。

二、检索时的默认行为

· 默认只取 status = current ✔(最安全 ✔);

· 需要历史时显式开启("查历史版本" ✔),并在结果里标注版本 ✔;

· 若问题明确指向历史("2023 年的规定是什么" ✔)→ 自动放宽到对应版本 ✔。

关键:默认安全、放宽显式 ✗→✔。

三、迁移与失效怎么处理

· 新版上线后,旧版不要立刻删 ✔(可能仍被引用 ✔)→ 标为 superseded 并保留 ✔;

· 回答里标注生效时间("依据 2024-05 版" ✔);

· 若检索到 superseded 且没有 current → 明确提示"该内容已被新版替代,未找到现行版本" ✔(而不是直接答旧版 ✗)。

四、三个常见坑

1. 同一文档多次入库(改版时新插入而不是更新 ✗)→ 索引膨胀且新旧并存 ✔;

2. effective_to 缺失 ✗ → 无法判断过期 ✔(至少给 superseded 标记 ✔);

3. 版本字段不参与过滤 ✗ → 检索到旧版却浑然不觉 ✔(与权限过滤同一个错误类型 ✔)。

五、怎么验证

· 抽 20 个"规则类"问题 ✔,检查回答依据的版本 ✔ 是否为现行版本 ✔;

· 构造"新旧冲突"样本 ✔(旧版说 A、新版说 B ✔)→ 期望答案用 B 并说明版本 ✔;

· 定期检查:status=current 的片段里,是否存在同一 doc_id 的多个 current ✗(数据错误 ✔)。

一条判据

> 随机抽 10 条回答,能否说出"它依据的是哪个版本" ✔?

> 说不出,说明版本还没有进入检索链路 ✗。

本文由云枢 AI导航整理,内容以官方来源为准。

相关文章

顺序阅读

← 上一篇:把重试做对:什么时候该重试、什么时候该放弃
下一篇:AI 功能的默认值设计:安全默认与显式选择 →

第 89 / 171 篇

术语速查 · 本页出现的 12 个词展开看中文名与一句话解释,点术语看完整条目
  • token词元:模型处理文本的最小单位,中文约 1–2 个汉字;计费与上下文长度都按它算。
  • 转写 / 字幕Transcription:把音视频人声逐句变成带时间戳的文字稿,便于做字幕与章节切分。
  • SSE服务器发送事件:服务器通过长连接持续推送增量文本,是对白逐字出现的常见实现。
  • API应用编程接口:程序之间约定的调用方式;站内工具由服务端调用,浏览器里不出现密钥。
  • CDN内容分发网络:把静态资源缓存到离用户更近的节点,缩短加载时间。
  • 缓存Cache:把结果暂存复用,复用得越多平均耗时越低;需要约定过期与刷新策略。
  • 限流Rate Limit:限制单位时间内的请求次数,防止单用户或异常流量打满服务端。
  • SSG静态站点生成:构建阶段就生成 HTML,访问时直接返回,不必每次请求都渲染。
  • ISR增量静态再生:先返回静态页,再在后台按需重新生成,兼顾速度与更新时效。
  • 灰度发布Canary Release:先让一小部分用户用新版本,确认无误再放量,出问题的爆炸半径最小。
  • 提示词Prompt:交给模型的指令文本;写清角色、任务、输入与输出格式比反复试更省。
  • 积分Credits:站内计费单位:按工具单价预扣,调用失败自动退还;单价以定价页为准。

完整解释与站内出现处见 AI 术语表(40 条)。