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

让 AI 逻辑可单测:把可测的部分拆出来

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

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

改模板后能否不调用模型就发现「变量漏了」?

AI 逻辑也可以被单测

"AI 部分没法测" ✗ 是最常见的借口 ✔ —— 其实大部分逻辑是可测的 ✔,

只是要把"模型调用"从"业务逻辑"里分出来 ✔。

让 AI 逻辑可单测 ✔,收益很大 ✔:改起来快、回归便宜、bug 定位准 ✔。

一、把可测的部分拆出来(四类)

| 部分 | 可测性 | 怎么测 |

|---|---|---|

| 组装(模板 + 变量 → 最终提示) | 完全可测 ✔ | 快照测试(snapshot ✔) |

| 解析与校验(输出 → 结构化对象 ✔) | 完全可测 ✔ | 用构造的输出样本单测 ✔ |

| 路由与降级(选哪个模型/走哪条路 ✔) | 完全可测 ✔ | 输入条件 → 期望路径 ✔ |

| 模型本身的行为 | 不可单测 ✗ | 用评测集(见评测那几篇 ✔) |

关键:前三类覆盖了大部分 bug ✗→✔(格式错、解析崩、路由错 ✔),

而且它们不需要调用模型 ✔(毫秒级跑完 ✔)。

二、具体做法(三个)

1. 注入模型客户端(依赖注入 ✔)→ 单测里用假客户端返回固定输出 ✔;

2. 快照测试提示词 ✔(模板改动会体现为快照差异 ✔,便于 review ✔);

3. 用真实输出做测试夹具 ✔(从线上收集的"疑难输出"存成 fixture ✔ —— 见边界用例库 ✔)。

三、快照测试的两个注意点

· 快照要能解释 ✗→✔(差异要人看懂:是变量变了还是措辞变了 ✔);

· 不要盲目更新快照 ✗("一键接受"会让测试失去意义 ✔ —— 每次更新都应说明原因 ✔)。

四、哪些不该单测

· 模型输出的具体措辞 ✗(会随版本变 ✔ → 应测"是否符合结构/是否含必需字段" ✔);

· 端到端质量 ✗(那是评测集的活 ✔)。

判断标准 ✔:这个断言在同一系统版本下是否稳定 ✔?

稳定 → 单测 ✔;不稳定 → 评测 ✔。

五、一条判据

> 修改提示词模板后 ✔,你能否在不调用模型的情况下发现"变量漏了/格式错了" ✔?

> 不能,说明组装与解析还没有单测覆盖 ✗。

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

相关文章

顺序阅读

← 上一篇:把模型选择交给用户:快与准的取舍
下一篇:用表单代替自由文本:引导式输入设计 →

第 156 / 171 篇

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

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