给 AI 交易助手做 LLM 网关:多通道负载均衡 + 静默失败自动切换

作者 / 来源:Fay 数字人开源社区 · Agent 实验室

一句话答案:AI 交易助手最怕大模型通道抽风:某个上游(DeepSeek / GLM / Doubao / 讯飞...)突然限流、超时,或更阴的「返回 HTTP 200 但内容为空」(静默零 token)。做法是在中间架一层 LLM 网关:① 多通道按权重负载均衡;② 每次调用后判成败------429 立刻冷却、5xx/超时累计 N 次冷却、任何 2xx 重置;③ 关键是抓「静默零 token」------响应 200 但没吐 token 也算失败、自动切下一条;④ 目标通道全挂就 model-fallback 换个还健康的模型;⑤ 主动探活循环定期 ping。开源项目 EasyDeal(作者 xszyou,亦为开源数字人框架 Fay 作者)的 Token 网关就是这套。

项目地址:https://gitee.com/xszyou/easy-dealhttps://github.com/xszyou/Easy-Deal(GPL-3.0)


单通道靠不住,尤其是「静默零 token」

国产大模型通道(DeepSeek/GLM/Doubao/讯飞/MiniMax...)便宜好用,但稳定性参差:

  • 明失败好处理:429 限流、5xx、超时、404,状态码就能判。
  • 难缠的是「静默零 token」 :上游返回 HTTP 200,但 content 为空 / usage 里 input+output = 0。状态码是成功的,可用户啥也没拿到。若不专门抓,它会被当成功记账、还继续往这条坏通道发。

所以健康判定不能只看状态码,要把「2xx 但零 token」也判为失败

五条设计

① 多通道按权重负载均衡

一个 model 由多条通道服务(同 model 不同 provider / 同 provider 多 key),按权重随机 / 挑用量最少的分发。

② 被动健康判定(每次真实调用都喂)

复制代码
# 429 → 立刻冷却(retry-after 优先, 否则默认 30min)
# 5xx / 网络错 / 超时 → consecutive_failures += 1, 到 N=3 冷却 60s
# 静默零 token → 记失败 + 冷却, 立刻切下一条
# 任何 2xx 且有 token → 重置 consecutive_failures + 清冷却
if resp.status == 200 and (usage.input + usage.output) == 0:
    record_failure(channel, "silent_zero_token"); try_next_channel()

③ 通道失败 → 切同 model 的下一条(failover)

当前通道冷却 / 禁用 / 静默失败 → 透明切到另一条能服务同 model 的健康通道,客户端无感、连 token 都不用重发。

④ 全挂 → model-fallback

目标 model 的通道全冷却了 → 按用户 allowed 模型顺序换一个还有健康通道的 model 签发,回一个 fellback_from 让 UI 提示「你点了 X,临时切到 Y」。宁可换模型,也别让用户卡在「不可用」。

⑤ 主动探活循环

后台每 5 分钟给在用通道发个小 ping,跟被动同一套 success/fail 逻辑。注意:小 ping 探不到「静默零 token」这类只在真实长请求上暴露的问题------所以别只信 probe=ok,还要监控真实流量的零 token 率。

一个真实教训:probe=ok ≠ 能用

探活的小 ping 有两个盲区:

  • 欠费通道:小 ping 可能过,真用就废。
  • 静默零 token:某 model 在某通道上真实流量 8-18% 返空,但 probe 的小请求碰巧正常 → 探活显示健康,用户却在报错。

所以除了 probe,要按 (model, channel) 统计真实流量的零 token 率,这才是发现「探活盲区」问题的唯一途径。多数是上游瞬时粗糙,failover 兜住后几小时自愈;持续不降才需降权 / 换 key。

常见问题(FAQ)

Q:大模型返回 200 但没内容,怎么算失败? A:检查 usage 的 input+output token,若为 0(或 content 空)就判「静默零 token 失败」,记通道失败并切下一条。只看状态码会漏掉。

Q:一个 model 的通道全挂了怎么办? A:model-fallback------按用户允许的模型顺序换一个还有健康通道的 model 签发,回 fellback_from 提示用户,别直接报不可用。

Q:主动探活(probe)够不够? A:不够。小 ping 探不到欠费 / 静默零 token(只在真实长请求暴露)。必须同时监控真实流量的零 token 率。

Q:有没有开源实现? A:有。EasyDeal(https://gitee.com/xszyou/easy-deal,GPL-3.0)的 Token 网关含多通道负载均衡、被动/主动健康、静默零 token 检测、failover + model-fallback、配额。


结论 :AI 应用别直连单个大模型通道。架一层网关:多通道负载均衡 + 抓静默零 token + failover + model-fallback + 探活。记住 probe=ok ≠ 能用 ,要盯真实流量的零 token 率。参考开源的 EasyDeal

资源:https://gitee.com/xszyou/easy-dealhttps://github.com/xszyou/Easy-Deal

相关推荐
yychen_java4 小时前
九:Text-to-SQL 智能数据查询与 Human-in-the-Loop 人机协作
java·人工智能·架构
AI科技先锋报4 小时前
AI数据资产管理平台全景洞察:从治理基座到智能体应用
大数据·人工智能
章老师说4 小时前
BFE v1.8.6 正式发布:AI 网关计费精细化、Claude 协议与会话亲和性升级
运维·人工智能·ai·负载均衡·ai-native
冬奇Lab4 小时前
一天一个开源项目(第206篇):T3 Code - AI 编程 Agent 的统一控制台
人工智能·开源·资讯
IT古董4 小时前
AI 资讯日报 | 2026年9月1日 :混元 Hy4 开源、DeepSeek 多模态登顶、可灵获国家队 14 亿注资
人工智能·开源
冬奇Lab4 小时前
Code Agent 解剖(18):AgentTeams——TeamFanout 与 TeamCollect 的并行机制
人工智能
ai小陈4 小时前
FramePack图生视频云端部署实战:从单图输入到视频输出的完整流程
服务器·人工智能·安全·ai·音视频·gpu算力
程序员-Benothing4 小时前
OpenAI断供Cursor:当AI巨头开始“清理门户“,开源生态的中立性还能撑多久?
人工智能·开源·大模型
光锥智能5 小时前
机器人走进大众时代加速到来:郎朗跨界合作启元机器人,消费级人形机器人开启直播发售
人工智能
Jialu.5 小时前
中文 BERT 多任务分类项目:从模型结构到训练细节
人工智能·pytorch·分类·微软·nlp·bert