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

缓存、索引与库的版本一致:三份真相别打架

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

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

同一条问题隔 5 分钟问两次,答案会在什么情况下不同?

三份"真相"会对不上

AI 系统里通常有三处数据 ✔:缓存(上次结果 ✔)、索引(检索用的资料 ✔)、数据库(业务记录 ✔)。

三者更新时机不同 ✗ → 就会出现"对不上" ✔:

用户改了资料 → 索引还没更新 → 答案还是旧的 ✔;

缓存没失效 → 结果比库里的还老 ✔。

要让三者有明确的"版本与失效约定" ✔。

一、三种典型不一致

| 现象 | 原因 |

|---|---|

| 回答依据旧资料 ✔ | 索引未重建或版本未切 ✔ |

| 结果与库里不一致 ✔ | 缓存键没带数据版本 ✔ |

| 同一问题两次答案冲突 ✔ | 一次命中缓存、一次回源 ✔ |

第 ③ 项最容易被误判为"模型不稳定" ✗→✔ ——

其实是缓存 ✔(见缓存那篇 ✔)。

二、四条约定

1. 缓存键必须包含数据版本 ✔(索引版本 + 提示词版本 + 模型 ✔ —— 见可复现那篇 ✔);

2. 索引切换用版本号,不用"就地覆盖" ✔(新版本建好再切 ✔ —— 见新鲜度那篇 ✔);

3. 写操作要触发失效 ✔(资料变了 → 主动清相关缓存 ✔);

4. 留一条"旁路"(跳过缓存直读 ✔)—— 供排查与对照 ✔。

三、怎么验证一致性

· 抽样对照:抽 20 个问题,分别走"带缓存"与"旁路" ✔,比较差异 ✔;

· 检查索引滞后时间 ✔(最实用的新鲜度指标 ✔);

· "缓存命中但数据已变"计数 ✔(应接近 0 ✔)。

四、三个反模式

· 缓存键只有用户与问题 ✗(数据变了还命中旧结果 ✔);

· 索引就地覆盖 ✗(切换过程中新旧混合 ✔);

· 没有旁路 ✗(排查时无法判断是缓存还是模型 ✔)。

五、一条判据

> 同一条问题,间隔 5 分钟问两次 ✔,答案会在什么情况下不同 ✔?

> 说不清(缓存?模型?数据?),说明三者的失效约定还不明确 ✗。

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

相关文章

顺序阅读

← 上一篇:成本与质量曲线:找到最优点
下一篇:把用户报告变成可复现用例:四步转换 →

第 166 / 171 篇

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

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