问题域/PD-522

多 LLM 后端适配

Multi-LLM Backend Adapter

通过策略模式统一适配多个 LLM/Embedding 提供商,支持按步骤配置不同模型

子问题

1.LLM 提供商协议统一

2.Embedding 后端抽象

3.客户端通信层选择

4.按工作流步骤分配模型 profile

5.多模态 Embedding 的提供商特有能力暴露(如 Doubao 视频/图片 embedding)

6.provider 默认值自动推导(切换 provider 时 base_url/api_key/model 联动变更)

各项目的解法1 solutions

Signals

横向对比

维度memU
后端抽象LLMBackend 基类 + 4 子类策略模式,字典注册表工厂查找
通信层httpx / OpenAI SDK / LazyLLM 三种客户端按 config 选择
Profile 机制LLMProfilesConfig 多命名 profile,工作流步骤按名引用
Embedding 适配独立 EmbeddingBackend 层 + Doubao 多模态 embedding 扩展
懒加载策略客户端按 profile 首次使用时创建并缓存,可选依赖延迟 import
协议兼容复用GrokBackend 继承 OpenAILLMBackend 零代码复用兼容协议

最佳实践

1.Backend 基类定义 payload 构建和响应解析接口

2.懒加载可选依赖避免安装全部 SDK

3.LLM Profile 配置与工作流步骤解耦

4.兼容协议的提供商通过继承复用零代码(如 Grok 继承 OpenAI Backend)

5.LLMProfilesConfig 用 model_validator 自动注入 default 和 embedding 两个必需 profile

6.HTTPLLMClient 内联轻量 Embedding Backend 避免跨模块循环依赖