主题
多模型如何动态路由、重试和故障切换?
题型:追问 · 先做能力过滤,再做策略选择,最后讲安全重试。
建议回答
路由先根据任务硬约束过滤候选,例如是否支持 Tool Calling、JSON Schema、视觉输入、上下文长度和数据驻留;再按租户策略、质量等级、实时健康、P95 延迟和成本评分选择。为避免同一会话体验抖动,可以在会话或任务级保持模型粘性,只有故障或策略变更时切换。
重试要基于统一错误分类。限流、网关超时和临时不可用可以指数退避并抖动;参数错误、上下文超限和内容策略拒绝不应原样重试。流式生成如果已经向用户输出部分内容,切换模型可能造成重复或语义断裂,应发送明确的重试事件、重新开始一个 generationId,或在产品策略上停止并提示重试。
进一步追问
- 如何防止故障模型被大量请求持续击穿?
- 主备模型答案风格不同如何处理?
- 评估分数和线上反馈怎样反哺路由权重?
易错点
- Failover 前要确认备选模型满足数据合规和能力要求。
- Embedding 模型不能在同一向量集合上随意切换。