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

AI 功能的并发控制:同一用户重复提交怎么办

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

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

连点 5 次「生成」,实际执行几次、花几笔钱?

用户会重复点

"提交"按钮点两下 ✔、网络慢时反复刷新 ✔、多设备同时操作 ✔ ——

AI 功能里,重复提交的代价比普通接口高得多 ✗:每次都可能真的花一笔钱 ✔。

并发与重复提交要显式处理 ✔,不能指望用户手稳 ✔。

一、三层防护(缺一不可)

1. 前端:提交后置灰按钮 + 显示进行中状态 ✔(最直接 ✔);

2. 幂等键:同一逻辑请求带同一 idempotency_key ✔(服务端去重 ✔ —— 见接线那篇 ✔);

3. 配额与限流:同一用户并发上限(例如 1~2 个同时进行 ✔ —— 见多租户限流那篇 ✔)。

只做前端是不够的 ✗ —— 接口直接调用、脚本重放都能绕过 ✔。

二、幂等键怎么定

```

key = hash(user_id + feature + 归一化后的输入 + 客户端请求序号)

```

· 相同 key 的重复请求 → 返回第一次的结果 ✔(而不是重新生成 ✔);

· 有效期(例如 10 分钟 ✔ —— 用户确实想再跑一次时要能跑 ✔);

· 要能显式"重新生成" ✔(带新 key ✔ —— 但界面要提示会再消耗额度 ✔)。

三、多设备/多标签页

· 同一会话在两处编辑 → 用版本号检测冲突 ✔(至少提示"另一处已更新" ✔ —— 见状态与恢复那篇 ✔);

· 同一用户两处提交 → 幂等键含客户端实例标识 ✔,或明确提示"已有一个任务在进行" ✔。

四、该观测什么

· 重复提交拦截率(拦截了多少次真实重复 ✔ —— 这就是省下来的钱 ✔);

· 并发上限触发次数(是不是设得太紧 ✔);

· "重新生成"使用率(用户确实需要多试 ✔ → 说明首次成功率不够 ✔);

· 因重复提交产生的成本占比 ✔(异常升高要查前端 ✔)。

五、三个反模式

· 只靠按钮置灰 ✗;

· 幂等键用时间戳 ✗(每次都不同,等于没有 ✔ —— 这是最常见的假实现 ✔);

· 重复提交直接报错 ✗(应该返回已有结果 ✔,用户不关心是谁先发的 ✔)。

一条判据

> 连点 5 次"生成" ✔,实际执行几次、花几笔钱 ✔?

> 超过 1 次,说明幂等没做对 ✗。

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

相关文章

顺序阅读

← 上一篇:把评测结论写进发布说明
下一篇:把检索范围交给用户:透明的范围控制 →

第 140 / 171 篇

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

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