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

输入规范化:先把用户输入弄干净

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

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

把文本分成自然语言段与结构化段,只对前者做激进规范化。

脏输入是"模型变笨"的常见原因

用户从 Word 复制来的文本带零宽字符 ✔、从 PDF 复制的带换行错乱 ✔、

从表格复制的是制表符混空格 ✔ —— 这些"看不见的脏"会破坏匹配 ✔、

让格式校验莫名失败 ✔、让检索召回落空 ✔。

在进入模型之前先把输入规范化 ✔,比事后调提示词有效得多 ✔。

一、六个规范化动作(按优先级)

1. Unicode 归一化(NFC/NFKC ✔)—— 处理组合字符与全角/半角 ✔;

2. 去零宽与不可见字符(U+200B~200D、U+FEFF ✔)—— 它们会静默破坏匹配 ✔;

3. 统一换行(\r\n → \n ✔)与压缩连续空行 ✔;

4. 去首尾空白、去掉重复分隔符 ✔;

5. 编码修复(非法字节替换或拒绝 ✔,别让乱码进链路 ✔);

6. 长度与类型校验(超长截断并标注 ✔ —— 见长尾输入那篇 ✔)。

第 2 条最容易被忽略 ✗:零宽字符肉眼不可见 ✔,但会让"看起来一样"的两段文本比对失败 ✔。

二、规范化要"可解释"

· 记录做了什么改动(去掉多少字符、是否截断 ✔);

· 改动大时提示用户 ✔("已去除 12 个不可见字符" ✔)——

这比静默处理更让人放心 ✔;

· 原始输入要保留(用于复现与审计 ✔ —— 见可复现那篇 ✔)。

三、什么不该被"规范化"掉

· 代码块里的空格与缩进 ✗(一改语义就变 ✔);

· 数学公式与符号(如 ≤、× ✔);

· 多语言混排中的原始写法(日文假名、阿拉伯文 ✔);

· URL/ID/哈希(大小写敏感 ✔ —— 归一化大小写会直接搞坏 ✔)。

做法:把文本分成"自然语言段"与"结构化段"(代码/公式/ID ✔),

只对前者做激进规范化 ✔。

四、该观测什么

· 规范化改动率(去掉了多少字符 ✔ —— 异常升高说明上游有问题 ✔);

· 规范化后校验通过率的提升 ✔(这是它价值的直接证据 ✔);

· 因脏输入导致的失败占比 ✔(分类型统计 ✔)。

五、一个最小实现

```

① 统一换行 → ② 去零宽/不可见 → ③ Unicode 归一化

④ 分段(自然语言 vs 代码/公式/ID)→ ⑤ 只对自然语言段做空白压缩与截断

⑥ 记录改动摘要 + 保留原始输入

```

一条判据

> 同样的内容,分别从网页、Word、PDF 复制进系统 ✔,模型的行为是否一致 ✔?

> 不一致,说明输入规范化没做全 ✗。

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

相关文章

顺序阅读

← 上一篇:把评测失败分类成可行动的类型
下一篇:把老员工的经验写进系统:规则、示例与反馈三条路 →

第 107 / 171 篇

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

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