SuperAPI AI 工具集

provider-architecture

编程与开发

查看项目

更新于 10-16 09:31

技能介绍

用途:本文档是 LiteLLM-RS 的 Provider 架构指南,面向需要新增或维护 LLM 提供商的 Rust 开发者,说明如何以统一模式接入 66+ 家提供商。

主要能力与设计:核心是 Trait Object + 统一错误架构。文档通过对照表说明放弃 Enum Dispatch 的原因:方法调用延迟略高(约 480ns 对约 5,900ns),但换来更小二进制(约 50MB 降至约 10MB)、更短编译时间(约 10 分钟降至约 2 分钟)以及运行时扩展性和可维护性。文档认为约 5μs 的分发开销相比 500ms 至 5000ms 的 API 延迟可忽略。内容覆盖 LLMProvider trait 定义、ProviderConfig 实现、统一错误映射、GlobalPoolManager 连接池、静态模型注册表与能力声明。

使用方式:新增提供商时按目录结构组织 mod.rs、config.rs、provider.rs、model_info.rs、streaming.rs 与 error.rs;在 config.rs 实现 ProviderConfig(含 validate 与环境变量支持),在 provider.rs 实现 LLMProvider 并使用 ProviderError 工厂方法,在 model_info.rs 用 LazyLock 注册模型与价格,最后在 providers/mod.rs 导出并注册。连接池由 GlobalPoolManager 共享单个 reqwest 客户端,设置 pool_max_idle_per_host(100)、pool_idle_timeout(90s)、timeout(300s)。

适用与限制:适合实现聊天补全、流式补全、嵌入、工具调用、视觉等功能,并提供 HTTP 状态码到统一错误的映射参考(401、404、429、400、500-599 等)。最佳实践要求始终使用错误工厂方法、禁止 unwrap()、使用提供商名称常量。文档未提供具体的安装命令、版本要求或功能效果保证。