灵果 灵果
高可用

多模型 故障切换

在贵司信任的所有模型之间,声明式地定义一条备援链——秒级切换、流式响应无感继续。三家提供方串成一条链,等价于 99.99% 可用性。

秒级切换 覆盖 12+ 国产 / 开源模型 流式输出连贯 区域锁定
< 280ms
故障决策 + 重试 P99
12+
已接入国产与开源模型,可热切换
99.99%
三家备援链组合后的等效可用性
0
客户端不再需要维护重试逻辑

某家模型「今天状态不好」的时候,
你的产品也跟着一起。

模型服务抖动、限流、风控误判、版本下线——业务端最后看到的全是 5xx。多数团队的应对是写一堆 try/catch 串起来,然后祈祷下一次值班的同事知道这段代码在哪。

灵果 把这一切换成一条声明式备援链:秒级切换,每次请求实际命中了谁,看板上一目了然。

六个信号,一次决策

01

健康探针

每个「提供方 + 模型」每 10 秒做一次探测:时延、错误率、风控触发率。降级在被业务感知前就标记为不健康。

02

实时错误分类

5xx、限流、风控、上下文超限、鉴权失败——每类触发不同的重试策略。429 在同一家继续重试;风控直接跳到下一家。

03

流式感知重试

流式输出中途失败时,只重放断点之后的部分。客户端看到的是一条连续不断的 SSE 流,无可见切换。

04

预算感知兜底

备援链遵守预算策略。「成本优先」的路由不会自动跌到更贵的模型;「质量优先」的路由会。

05

区域锁定

按路由配置数据驻留规则。境内流量只能在境内提供方之间兜底;私有化模型只在 VPC 内调用——即使在全网抖动时也不破例。

06

逐请求审计

每条响应头都带上命中的提供方、重试次数与决策原因。事故可复现,不用翻日志。

三家提供方,一条路由

一条典型的生产路由:DeepSeek 主选、通义千问中转、VPC 内私有部署的开源模型作为最后兜底。任何不可恢复错误,灵果 都会顺链走下去。

# routes/customer-support.yaml name: customer-support aliases: [smart/balanced] candidates: - provider: deepseek model: deepseek-v3 weight: 100 timeout_ms: 8000 - provider: qwen model: qwen3-max timeout_ms: 8000 - provider: private-vpc model: qwen3-72b-instruct timeout_ms: 12000 region: cn-north-private retry: on: [5xx, timeout, content_filter, rate_limit] max_attempts: 3 backoff_ms: 80

每一次重试,实时可见

所有路由决策汇总成实时事件流,SRE 与值班同学可以按路由 / 提供方 / 错误类型筛选。点开任一切换事件,可看到当时各提供方的健康快照——不需要事后翻日志拼时间线。

实时 · routes/customer-support · 最近 60 秒
时间 请求 提供方 状态 时延
14:32:04req_8a91…deepseek-v3● 200412ms
14:32:03req_8a8e…deepseek → qwen3-max↻ 切换 · 2001.1s
14:32:01req_8a7c…deepseek-v3● 200388ms
14:31:58req_8a6f…deepseek-v3● 200421ms
14:31:54req_8a5a…deepseek → qwen3-max↻ 切换 · 200980ms

最近的切换事件高亮标出。本分钟内 DeepSeek 返回了两次 overloaded_error;通义千问无缝接管。

把贵司的备援链跑在真实流量上

30 分钟解决方案演示——带上当前在用的模型清单,我们现场画出备援链。