核心要点

  • 抽象统一接口层(adapter),屏蔽各家请求/响应格式差异,业务只调一个内部接口

  • 做路由策略:按成本、能力、可用性给供应商分主备或权重,常用走便宜的、难任务走强的

  • 失败自动 failover:主供应商超时/报错时切到备用,配健康检查和超时阈值

  • 注意各家参数、能力、prompt 兼容性差异,并监控每条通道的质量、延迟、成本

标准回答

第一步:抽象统一接口

写一层 adapter,把「发消息、流式、function calling」等能力封装成统一的内部接口,每家供应商写一个适配器处理各自的请求体、鉴权、响应格式。业务代码只依赖内部接口,换供应商不用改业务。

第二步:路由策略

给每个供应商定优先级或权重,按维度路由:成本敏感的批量任务走便宜模型,复杂推理走能力强的,再叠加可用性(实时健康状态)。可以配主备模式,也可以按比例灰度。

第三步:自动 failover

每次调用设超时,主供应商超时或返回 5xx 时,自动重试到备用供应商(注意幂等)。配健康检查定期探测各通道,连续失败的暂时摘除,恢复后再放回。

第四步:兼容性与监控

各家的参数名、上下文上限、function calling 格式、内容审核策略都不同,prompt 可能要按供应商微调。分通道监控成功率、P95 延迟、成本和输出质量,发现某家劣化就调权重或下线。

常见误区

⚠️ 常见踩坑

以为换供应商只是改个 baseURL——实际各家的参数、能力边界、prompt 效果和返回格式都有差异,不做适配和回归测试,切过去后输出质量可能明显下降。

追问

追问 1failover 切换后输出风格不一致怎么办?

主备模型风格难完全一致,可接受范围内优先保可用性。要减小差异:为每家维护适配过的 prompt、统一输出格式约束(如强制 JSON schema)、对关键场景做跨供应商的回归评测,把风格差异控制在业务可接受范围内。

追问 2怎么避免 failover 把故障放大?

主供应商挂了全量切到备用,备用可能被瞬时流量打垮。要给备用也加限流和并发上限,failover 时配合熔断和降级(必要时返回兜底文案),并对切换设比例上限或渐进放量,而不是一刀切全量倒灌。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。