当前位置:新闻资讯 > 模型抖了 42 秒,三条业务线卡住:AI 功能缺的那层兜底

模型抖了 42 秒,三条业务线卡住:AI 功能缺的那层兜底

拜腾科技
浏览量10 时间20小时前

演示时不觉得,出事时才发现没有兜底。超时分级、熔断阈值、输出归一化、降级期复核。

大多数公司评估 AI 功能,看的是它答得对不对。但我们陪客户做上线验收时,问的是另一个问题:模型不答的那几十秒,页面返回什么。

这篇拆一次真实的故障复盘。11 月 9 日,一位开发者在掘金公开了他们的经历:主模型区域性抖动,三条业务链路集体卡住,最长的一条等了 42 秒还在转圈。事后复盘,他发现网关层连一个像样的降级开关都没有。

这不是个案。把 AI 接进业务系统,模型就是外部供应商。它会抖、会慢、会挂。你控制不了它,只能提前设计它挂掉时的样子。

这篇写给两种人:要签字的人,和要写代码的人。

一、42 秒里发生了什么

先说事实,不做演绎。

那天的主模型不是彻底挂掉,是区域性抖动:一部分请求正常,一部分超时,一部分返回 5xx。用的人感觉不到区别,只觉得"今天这个 AI 有点慢"。

真正的问题是三条链路同时走同一个模型。客服问答、工单归类、报表摘要,业务上各自独立,瓶颈却是同一个。一条卡住,用户的感受是三个功能一起坏。

最长的请求等了 42 秒还在转圈。42 秒之后,人早就关了页面。前端没设超时,后端没有兜底,网关没有开关——请求就那么挂着,直到浏览器自己放弃。

复盘结论只有一句:可用性完全交给了上游。

很多企业想上 AI,却不知道从哪切进去,怕花了钱只买了个聊天框。这个担心有道理,但真正的风险不在"像不像聊天框",而在这个聊天框最脆弱的地方:模型一抖,它连一句"稍后再试"都说不出来。

AI 功能最尴尬的不是答错,是不答。答错了用户会追问,不答用户就走了。
二、只加超时和重试,救不了

出事之后最常见的两个动作:加超时、加重试。方向都对,但都不够。

只加超时,页面不再转圈了,但用户看到的是一个报错框。功能等于没有。

只加重试,上游正在抖的时候,重试等于给已经过载的服务再压一层。而且如果调用方自己还有三层重试,网关收到的流量会成倍放大。

那位开发者的做法是分级。主模型超时给 8 秒,备用模型给 15 秒。原因很实在:备用往往是尺寸小一些的模型,冷启动更慢,第一次调用有额外开销,用同一个数字卡它,切过去也照样超时。

还有一条更细的:熔断期间,要把主模型的超时预算分一部分给备用。否则预算全留在主模型那条路上,备用模型拿到的是一个不够用的额度。

这里的原则是:超时不是一个数字,是一条预算。谁在跑,预算就按谁的特性重新分配。

三、熔断器的三个参数,别抄默认值

熔断器的逻辑和电路一样:错误率超过阈值,就把开关拉下来,请求不再往上游打,改走备用路径。

难的是参数。那位开发者用的组合是:30 秒滑动窗口、200 次最小样本量、错误率超过 25% 打开熔断。

三个数字都不是网上抄的,是拿历史流量回放出来的。原因在于模型调用的延迟天生长尾,P99 偶尔抖一下,就能把瞬时错误率打穿,开关跟着乱跳。

窗口太短会误伤正常请求,太长则失效太慢。200 次最小样本,是为了避免流量低谷时三五个失败就触发熔断。

最容易抄错的是阈值。如果你的调用方本身带三次重试,同样的 25% 会让熔断窗口被重试流量灌满——越熔断,失败越多,越不容易恢复。这种情况反而要把阈值调低、最小样本量调高。

判断自己属于哪一种,只需看一件事:失败请求里,有多少是重试打进来的。

一次模型抖动,请求在网关里的五个去向
熔断器不是加个开关,是给一条链路定好退路:几秒放弃、什么条件切、切过去之后谁兜底。
四、切过去才发现:两个模型的输出对不上

这一节最容易被低估。

熔断打开,流量切到备用模型,页面恢复正常。看着问题解决了。真正的麻烦从这里开始。

主模型习惯输出带解释的 JSON,先写一句"以下是结果",再跟对象。备用模型不一定。主模型的枚举值稳定写 pending,备用偶尔写成 PENDING。字段缺失时,两个模型的默认行为也可能不一样。

而业务代码是按主模型的格式写的。切过去之后,解析失败、状态判断错、数据写歪,比宕机更难查。

他们的解法,是把 schema 校验从业务层抽到网关层。所有响应先过一遍归一化:去掉首尾的自然语言包裹,枚举值统一大小写,字段缺失走默认值。归一化失败的样本进死信队列,不进业务。

三个动作,换来的是"换模型不用改业务代码"。这件事的价值不在故障当天,在第二次换模型的时候。

AI 功能的可用性:四层兜底与验收要点
五、降级那几小时,没人知道质量掉了

故障过去,监控曲线平了。但降级的那几个小时里,备用模型的回答质量是下降的。

监控只看错误率和延迟,两个指标都正常。等用户投诉,往往已经过了三天。

补救办法叫影子对比:降级窗口内的请求,事后把同一批 prompt 回放到主模型,比对两次结论的一致性,每天出一份漂移报告。

这个功能平时用不上。它唯一的作用,是出事之后能告诉你有多少答案需要重查。

成本也得说清。多模型冗余意味着养两家供应商的配额,那位开发者实测成本增加约 18%。前提是缓存做好——降级期间备用模型的输入如果能命中主模型那套缓存,实际推理调用增加不到 6%。

18% 换一条不断的路,值不值,取决于这个功能停一小时损失多少。这个数只有业务方算得出来,技术方替不了。

降级成功不等于业务没损失。系统活着,答案变差了,损失只是换了个地方发生。
六、上线前,把这五句话问清楚

甲方不需要懂熔断器。五句话就够:

一、模型不可用时,页面返回什么?是转圈、报错,还是一句"稍后再试"加人工入口?
二、主模型超时设几秒,备用设几秒?两个数字为什么不一样?
三、切到备用模型,业务代码要不要改?之前出过格式对不上的问题吗?
四、降级期间的答案,事后怎么复核?有没有一致性报告?
五、多模型冗余一年多少钱,算在开发报价里还是运维预算里?

如果供应商的回答是"我们用的是大厂模型,不会挂"——这句话本身就是风险项。

还有个现实问题:这些要求如果在验收时才提,多半会被算成变更,改一次报价一次。要在签合同前问,不是在验收会上问。

带熔断与降级的 AI 功能参考架构
这五句话写进合同附件,比在验收会上争论管用得多。
结论:可用性不是模型给的,是自己设计的

AI 功能能不能用,不取决于你接了哪个模型,取决于模型挂掉的那几十秒你准备了什么。

四件事:超时分级、熔断阈值、输出归一化、降级期复核。

前三件决定它能不能用,第四件决定你敢不敢信。

你们在用的 AI 功能,模型不可用时页面显示什么?留言说说,我一条条回。

如果你正在评估类似方案,可以带上看懂的价格:把你的场景留言或私信给我们,免费出一份「流程图+架构图+报价明细」方案。
15730313844(同微信)|官网 www.byten.com.cn

—— 拜腾科技,帮企业把 AI 接进业务系统

常见问题

AI 功能为什么会一直转圈不返回?
通常是上游模型区域性抖动或超时,而网关层没有超时限制和熔断机制,请求一直挂着,直到浏览器自己放弃。加超时只是第一步,还要有熔断和降级路径,否则页面只是从"转圈"变成"报错"。

熔断阈值设多少合适?
没有通用值。常见起点是 30 秒滑动窗口、200 次最小样本量、错误率 25% 触发。但如果调用方自带多次重试,阈值要调低、最小样本量要调高,否则重试流量会灌满窗口,越熔断越严重。

备用模型能直接替换主模型吗?
通常不能。两者的输出格式、枚举值大小写、字段默认值经常不一致,直接切换会导致解析失败和状态判断错误。需要在网关层做归一化与 schema 校验,失败样本进死信队列,不进业务。

多模型冗余一年成本增加多少?
公开复盘的口径是成本增加约 18%,因为要同时维护两家供应商的配额。如果降级期间备用模型的输入能命中主模型的缓存,实际推理调用增加可控制在 6% 以内。

成都做企业 AI 应用定制开发多少钱?
单场景 AI 功能 8 万到 25 万,Agent 项目 10 万到 30 万,周期 6 到 12 周。报价应包含超时熔断、降级兜底与输出归一化设计。成都本地可上门,全国远程交付。

Tag: 成都直播开发,成都直播系统开发,成都app开发,成都软件开发,软件定制开发
多一次沟通多一份选择 联系我们

157-3031-3844

24小时售前咨询

微信洽谈

关注公众号

商务洽谈: 157-3031-3844

微信号码: yelijun1193

成都:天府五街200号1号楼201室
重庆:大渡口区翠柏路101号 天安数码城云谷3栋602

Copyright ©️2018-2022版权所有:拜腾科技(成都)有限公司.All Rights Reserved. 蜀ICP备19023477号

在线咨询

电话咨询

电话咨询

微信咨询

微信咨询
AI开发/大模型部署 了解 · 157-3031-3844