主模型挂了怎么办?备用模型 + 网络排查
单模型总有波动的时候——上游维护、高峰拥堵、临时故障。这篇讲怎么配置备用模型实现自动Failover,以及出问题时怎么快速排查网络。核心就一件事:用户不应该感知到模型挂了。
为什么需要备用模型
上游波动是常态。维护窗口、高峰拥堵、临时故障——单模型总有不可用的时候。
自动Failover
python
MODEL_CHAIN = ["glm-5.2", "deepseek-v4", "qwen3.7-max"]
def call_with_fallback(messages):
for model in MODEL_CHAIN:
try:
return client.chat.completions.create(
model=model, messages=messages
), model
except Exception as e:
status = getattr(e, 'status_code', None)
if status in {400, 401, 402, 403, 404}:
raise
continue
raise RuntimeError("所有模型不可用")
按任务类型配不同的备用链:
python
FALLBACK_MAP = {
"code": ["glm-5.2", "deepseek-v4"],
"chat": ["glm-5.2", "kimi-k2.6", "deepseek-v4"],
"writing": ["kimi-k2.6", "glm-5.2"],
} 网络排查
检查项 操作
关代理 直连,代理增加延迟且容易断
确认节点 国内用户走国内节点
检查防火墙 企业网络可能切断长连接
DNS预热 启动时先发一个请求 快速诊断:
bash
延迟
ping api.openstarry.com
TLS握手
curl -w "TLS: %{time_appconnect}s\n" -o /dev/null -s
https://api.openstarry.com/v1/models
完整请求
curl -w "总耗时: %{time_total}s\n"
-H "Authorization: Bearer sk-xxx"
-H "Content-Type: application/json"
-d '{"model":"glm-5.2","messages":[{"role":"user","content":"Hi"}],"max_tokens":10}'
https://api.openstarry.com/v1/chat/completions
这篇解决一个问题:模型不可用时服务怎么办。
备用模型部分:自动Failover的Python实现、按任务类型配置不同的备用链、Failover日志怎么记录方便追踪。
网络排查部分:代理、防火墙、DNS等常见坑的检查清单,以及用ping和curl快速诊断的脚本。