多LLM提供商管理
Multi-LLM Provider Management
统一管理多个LLM提供商的API Key、模型路由和回退策略,实现提供商无关的调用接口
子问题
1.API Key统一管理
2.提供商自动检测与回退
3.模型名称前缀映射
4.网关路由
5.阶段特定模型选择(规划/实现用不同模型)
6.网关模型前缀重写(strip原前缀再加网关前缀)
7.per-model参数覆盖(特定模型的特殊约束)
各项目的解法1 solutions
Signals
横向对比
| 维度 | DeepCode |
|---|---|
| 提供商注册 | frozen dataclass 注册表,13 个提供商有序元组,顺序即优先级 |
| 模型路由 | 双路径解析:网关 strip+reprefix,标准 keyword→prefix 自动映射 |
| 密钥管理 | 双层系统:llm_utils YAML优先+env回退,nanobot Pydantic config+registry联动 |
| 网关支持 | 自动检测:API Key前缀(sk-or-)和URL关键词(aihubmix)三级优先级匹配 |
| 参数定制 | model_overrides 字段 per-model 覆盖(如 Kimi K2.5 temperature≥1.0) |
| 阶段模型 | planning_model/implementation_model 支持规划与实现阶段用不同模型 |
最佳实践
1.配置文件优先,环境变量作为回退
2.通过注册表模式管理提供商元数据
3.用 frozen dataclass 保证提供商元数据不可变和线程安全
4.有序元组顺序即优先级,无需额外 priority 字段
5.延迟导入提供商类避免循环依赖