LLM API 的 7 大故障模式与生产级应对方案
LLM API 在生产环境中的故障不是随机的——它们有明确的模式。
故障模式分类
基于 70,000 次故障注入测试的经验分类(来源:NeuralBridge SDK 基准测试),LLM API 故障可归纳为 7 大模式:
| # | 故障模式 | 触发条件 | 占比(估) | 应对策略 |
|---|---|---|---|---|
| 1 | 速率限制 | 超出 QPS/TPM 配额 | ~28% | 切换 Provider |
| 2 | 服务端错误 | Provider 内部异常(5xx) | ~15% | 等待重试 + 切换 |
| 3 | 网络超时 | 连接/读取超时 | ~20% | 参数调优 + 降级 |
| 4 | 认证失败 | API Key 过期/无效 | ~3% | 标记不可用 |
| 5 | 输出异常 | 内容过滤/不完整 | ~12% | 输出完整性验证 |
| 6 | 模型负载 | 容量不足/模型下线 | ~10% | 降级到替代模型 |
| 7 | 连接异常 | DNS/SSL/TCP 层故障 | ~12% | 重试 + 切换 |
注意:以上占比是基于受控故障注入环境的分布估算,不同生产环境的实际分布可能不同。
深入的应对方案
1. 速率限制(429)
特征:HTTP 429 + Retry-After 头部
常见误区:
- 在同一 Provider 上重试 → 继续触发限流
- 等待固定时间重试 → 浪费恢复窗口
正确应对:
- 优先切换到备用 Provider(权重:主 Provider 认为暂时不可用)
- 如果必须等待,按
Retry-After头部的值精确等待 - 监控剩余配额,主动降速而非被动限流
2. 服务端错误(5xx)
特征:HTTP 500/502/503
正确应对:
- 500:等待 1-3s 后重试,最多 3 次
- 502/503:立即切换 Provider(说明网关或服务层已异常)
- 连续 3 次重试失败 → 降级 Provider 优先级
3. 网络超时
特征:httpx.ReadTimeout requests.ConnectionError
正确应对:
- 区分连接超时和读取超时
- 连接超时(connect=5s):网络不可达,立即切换
- 读取超时(read=30s-60s):可能模型正在处理长输出,延长等待或降模型
4. 输出异常
特征:响应为空 / 被内容安全策略截断 / 格式异常
正确应对:
- 检查是否被内容安全策略过滤(返回特定错误码)
- 调整 Prompt 后重试(降低敏感度)
- 切换到输出策略更宽松的 Provider
5. 模型负载/容量不足
特征:model_not_available insufficient_quota
正确应对:
- 同 Provider 降级:GPT-4o → GPT-4o-mini(成本降 90%,可用性上升)
- 同架构降级:开启 DeepSeek 的备用模型
- 跨 Provider 切换:走 L3 切换
应对策略的核心原则
原则一:差异对待
不同类型的故障需要不同的应对策略。把所有错误等同看待("都重试 3 次")会:
- 限流错误 → 所有重试继续被限流,浪费配额
- 超时错误 → 继续超时,总恢复时间翻倍
原则二:延迟对齐
恢复延迟应该适配场景:
| 场景 | 可接受恢复时间 | 策略 |
|---|---|---|
| 实时聊天 | < 2s | 优先切换,跳过重试 |
| 批处理 | < 30s | 可以尝试全级联 |
| 流式输出 | < 500ms | 预建立备用连接 |
原则三:输出完整性验证
这是 LLM 场景独有的原则。任何切换后,必须验证输出是否符合合约约束。否则"恢复"比"不恢复"更糟——后者至少用户知道出问题了。
生产环境配置建议
# 典型生产配置
self_healing:
enabled: true
providers:
- name: openai
priority: 1
models: [gpt-4o, gpt-4o-mini]
- name: anthropic
priority: 2
- name: deepseek
priority: 3
quick_retry:
max_attempts: 2
backoff_base: 1s
circuit_breaker:
failure_threshold: 3
recovery_timeout: 30s
output_validation:
schema_check: true
min_similarity: 0.85
NeuralBridge SDK 内置了针对 7 大故障模式的差异应对策略,通过级联自愈引擎(L1 重试 → L2 降级 → L3 切换)自动匹配最优恢复方案。SDK 约 375 KB,仅依赖 httpx。pip install neuralbridge-sdk 即可接入。
Top comments (0)