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

AI 功能的错误码设计:给机器看也给用户看

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

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

调用方不看文档就知道要不要重试,才算服务好了机器。

错误码是给两类读者看的

AI 功能的错误处理常走向两个极端 ✗:要么只给用户一句"出错了" ✔,

要么把内部堆栈直接抛给前端 ✔。错误要同时服务机器与用户 ✔。

一、给机器看的:稳定、可判定

```

{ "error": {

"code": "RATE_LIMITED", // 稳定枚举,别改 ✔

"retryable": true, // 是否可重试(机器据此决定 ✔)

"retry_after_ms": 3000, // 建议等待(若有 ✔)

"category": "quota", // 大类:input/quota/upstream/policy ✔

"trace_id": "..." // 便于排查 ✔

} }

```

要点:

· retryable 是最重要的字段 ✗→✔(决定调用方要不要重试 ✔);

· code 用稳定枚举(别用自然语言 ✔ —— 文案会改,代码不会 ✔);

· trace_id 必带(用户报问题时能直接定位 ✔)。

二、给用户看的:可行动、不甩锅

| 别写 | 改写 |

|---|---|

| 请求失败 | 当前处理请求较多,请 3 秒后重试,或换更短的内容 |

| 超出限制 | 输入超过 20000 字,请拆分后提交(当前 31200 字) |

| 内部错误 | 服务暂时不可用,你的内容已保存,可稍后重试 |

| 403 | 你的账号暂无该功能权限,请联系管理员开通 |

要点:说清发生了什么、怎么办、我的数据还在不在 ✔(见降级提示那篇 ✔)。

三、错误分类(决定处理方式)

```

① 输入类(可修正):格式错、超长、缺字段 → 提示用户改 ✔

② 权限类(不可重试):无权限、需确认 → 明确说明 ✔

③ 配额类(可等待):限流、额度用尽 → 给等待时间或替代方案 ✔

④ 上游类(可重试):5xx、超时 → 自动重试 + 降级 ✔

⑤ 策略类(不可重试):内容不合规、越权 → 明确拒绝 + 原因 ✔

```

每一类对应不同的前端处理 ✔(别用一套提示覆盖全部 ✗)。

四、两个容易忽略的点

· 别泄露内部细节 ✗(路径、服务名、提示词、密钥名 ✔ —— 见红队那篇 ✔);

· 错误也要埋点 ✔(按 code 统计 ✔ —— 哪类错误在涨就是系统在退化 ✔)。

一条判据

> 调用方拿到的错误里,能否不看文档就知道"要不要重试" ✔?

> 不能,说明错误结构没有服务好机器 ✗。

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

相关文章

顺序阅读

← 上一篇:从零建评测集:第一周该做什么
下一篇:把外部依赖管起来:供应商变更与退出预案 →

第 116 / 171 篇

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

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