用途:本指南面向 LiteLLM-RS 项目,说明如何新增 provider、将各 provider 的独立错误类型迁移到统一错误,并保持 66+ provider 实现的一致性。
主要能力:介绍项目采用的统一错误 + Trait Object 架构,对比 Enum Dispatch、Trait Object、混合模式、完全单态化、SNAFU 等方案的调用延迟、二进制体积、编译时间与扩展性;给出 ProviderError 的 24 个变体与工厂方法用法;提供新增 provider 的目录结构、配置实现、LLMProvider 实现、模型信息与注册步骤;并给出旧错误到 ProviderError 的映射对照表与迁移检查清单。
使用方式:新增 provider 时按 src/core/providers/my_provider/ 结构创建 mod.rs、config.rs、provider.rs、model_info.rs、streaming.rs,实现 ProviderConfig 与 LLMProvider,将 type Error 设为 ProviderError,通过工厂方法构造错误,并在 providers/mod.rs 中注册。迁移时删除 error.rs,替换 XxxError::Variant 为 ProviderError 工厂方法,移除 ProviderErrorTrait 与 From 实现。
适用场景:为 LiteLLM-RS 添加新后端、统一错误处理、降低编译时间与二进制体积。
限制:文中性能数据为项目内对比结论,实际表现依环境而定;部分 provider 仍待迁移;具体命令与完整代码示例未在资料中提供。