一个很常见的局面
一家二十来家店的连锁,陆陆续续接了三个 AI 功能:称重台的商品识别、门店的语音问询、总部市场部用的文案生成。
三个功能,三个供应商,三套账号,三张账单。
于是出现了这些事:
- 市场部做活动那天,文案生成跑了一整天,把整个账号的额度用掉大半,晚上门店的识别开始报错——因为额度是共享的。
- 其中一家供应商涨价,要换另一家,结果发现调用逻辑写死在三个系统里,改一处不够。
- 月底财务问「AI 这部分钱花在哪」,只有一张总额账单,说不清是哪个功能、哪个区域。
- 某天门店说「识别没反应」,总部不知道是网络、是设备、还是上游服务,因为没有任何一处记录了请求和耗时。
这些问题不是模型的问题,是调用没有被管起来的问题。
网关这一层管什么
AI 网关的位置很单纯:所有 AI 调用先经过它,再由它转发出去。业务系统只认一个地址、一套接口,剩下的差异在这一层消化。
它做的事,对应上面四个麻烦:
按维度限流。 可以给市场部设一个上限、给门店识别设一个上限。一个功能跑量,不会把另一个功能挤掉。粒度最好能细到门店——某家店设备异常反复重试时,只影响它自己。
供应商可换。 上游接口差异在网关内部适配,业务系统不用改。主供应商超时或报错时切到备用,这件事在网关做一次,比在每个系统里做三次可靠。
按维度记账。 每次调用记下是谁、哪个功能、用了多少 token、花了多久。月底能出「按门店」「按功能」的账,而不是一个总数。
留痕可查。 出问题时能查到那一刻的请求、状态码、耗时。只记平均值不够,要看长尾——顾客抱怨的永远是慢的那几次。
门店场景里两个容易忽略的点
多了一跳,就多了一个故障点。 网关在调用链路上,它挂了,所有 AI 功能一起不可用。上之前要想清楚兜底:是保留一条应急直连通道,还是降级到规则方案(比如识别不可用时先走人工输入)。这一条必须在方案里写出来,不能等出事再想。
日志里不要落顾客的东西。 排查问题需要请求记录,但门店的请求里可能带图片、带语音、带会员信息。日志该记的是耗时、状态、模型名、token 数这类元数据,原始内容要么不落盘,要么设很短的保留期并限制访问。这一点和「数据不出店」是两件事,别混为一谈。
另外,多一跳带来的延迟通常不大(毫秒级),但如果网关部署在异地,或者要串行做内容审核,累积起来就会体现在顾客的等待上。这一点在语音问询这种长交互里比较明显。
什么规模值得上
不是所有门店都需要这一层。判断标准大致是三条,中两条以上才值得考虑:
| 情况 | 判断 |
|---|---|
| AI 功能在 3 个以上,且由不同团队维护 | 值得 |
| 有 2 家以上供应商,或者明确要留切换余地 | 值得 |
| 需要按门店、按区域、按功能核算成本 | 值得 |
| 单店、单个功能、单个供应商 | 不需要 |
| 全部推理都在设备本地,不走网络 | 不需要,网关管不到 |
| 一年几千次调用 | 收益抵不上维护成本 |
还有一种中间状态:暂时不上网关,但先把两件事做好——密钥集中管理(不要每个系统一份)、调用记录统一(至少能查到最后一次失败是什么)。这两件事做到,将来接网关会顺很多。
上之前要问的六个问题
- 网关自己挂了怎么办? 有没有直连兜底,切换是自动还是人工。
- 密钥谁管? 应用拿到的是网关签发的凭证,还是直接拿到上游密钥。
- 限流粒度到哪一级? 能不能按门店设,超限时是排队还是直接拒绝。
- 日志记什么、留多久? 有没有可能落进顾客的图片和语音。
- 换供应商要不要改应用? 这是上这一层最主要的理由,要当场验证。
- 账单按什么维度出? 门店、功能、时间段,能不能对上财务的口径。
这六条里有两条答不上来,这一层上了也只是多一跳延迟。
小结
AI 网关不改模型效果,它解决的是「调用怎么被管住」:谁能用、用多少、出问题查哪里、钱算在谁头上。
功能少、供应商单一的时候,把密钥和日志集中起来就够了。等到功能变多、开始按门店核算成本、或者需要留一手随时换供应商,这一层的价值才真正出现。