问题域/PD-20

多 LLM Provider 统一接入

Multi-Provider LLM Gateway

通过统一接口层接入多个 LLM 提供商,实现模型名到 Provider 的自动路由、API 密钥管理、请求格式适配,降低模型切换成本。

子问题

1.模型名→Provider 自动路由

2.API 密钥和 base_url 管理

3.请求/响应格式适配

4.自定义 OpenAI 兼容端点支持

5.OAuth 认证流程(如 Codex)

6.Gateway 聚合网关的模型前缀剥离与重前缀

7.Provider 特定参数覆盖(如 Kimi K2.5 temperature 下限)

8.Prompt Caching 的 Provider 感知注入

9.消息格式清洗(空内容、非标准 key 剥离)

各项目的解法1 solutions

Signals

横向对比

维度Nanobot
适配层LiteLLM 统一适配 + CustomProvider/CodexProvider 旁路
路由机制ProviderSpec 声明式注册表,find_by_model 关键词匹配 + 显式前缀优先
Gateway 支持三级检测(config key → api_key 前缀 → api_base 关键词),strip_model_prefix 重前缀
认证方式API Key 环境变量自动映射 + OAuth 独立流程(Codex/Copilot)
Provider 数量16 个内置 Provider(含 4 个 Gateway + 1 个本地 + 2 个 OAuth)
扩展方式添加 ProviderSpec 记录 + ProvidersConfig 字段,零逻辑代码修改

最佳实践

1.使用 LiteLLM 作为统一适配层,通过 registry 注册表实现 model→provider 映射

2.支持 gateway 模式统一转发,避免 if-elif 链式判断

3.frozen dataclass 注册表替代 if-elif 链,新增 Provider 只改数据不改逻辑

4.三级 Gateway 检测(config key → api_key 前缀 → api_base 关键词)避免误判

5.env_extras 模板化环境变量映射,解决 LiteLLM 对特定环境变量名的依赖

6.is_direct/is_oauth 标记实现旁路分发,特殊 Provider 不强制走统一适配层