mozilla-ai/any-llm
Communicate with an LLM provider using a single interface
解决的问题
它解决了 LLM 提供商接口碎片化的问题。由于不同的提供商使用的参数名称和响应格式略有不同,开发人员在切换模型时通常不得不重写代码。any-llm 提供了一个统一的接口,无需更改核心应用程序逻辑即可访问多个 LLM 提供商。
工作原理
该库作为一个轻量级封装,利用官方提供商 SDK 来确保最大的兼容性。它提供了两种主要的模型交互方式:
- Direct API Functions:适用于脚本和 notebook 的无状态
completion 函数。
- AnyLLM Class:一种重用客户端和连接池的有状态方法,推荐用于生产级应用。
它支持 provider:model 字符串格式或单独的参数,用于将请求路由到 OpenAI、Anthropic、Mistral 和 Ollama 等提供商,还可以连接到自定义的 OpenAI 兼容端点。
适用对象
专为希望轻松切换不同 LLM 提供商的开发人员、正在从 LiteLLM 迁移的用户,以及需要避免依赖托管代理服务器的框架无关型 AI 应用程序构建团队而设计。
亮点
- 统一接口:通过更改单个字符串即可切换提供商。
- 官方 SDK 集成:使用官方 SDK 而不是重新实现接口,以保持更好的兼容性。
- 无需代理:直接在代码和提供商之间运行,不需要托管代理。
- 开发体验:包含用于 IDE 支持的完整类型提示和清晰的错误消息。
相关
- 项目
theopenco/llmgatewayLLM Gateway 是一个开源 API 网关,提供单一 OpenAI 兼容端点,用于将请求路由到多个 LLM 提供商,集中管理 API 密钥,并提供内置的使用量和性能分析。可作为托管 SaaS 服务使用,或通过 Docker 自托管。
- 项目
fruitbars/simple-one-apisimple‑one‑api 是一个开源的 Go 网关,它通过 OpenAI 兼容的端点统一了多个 LLM 提供商,并增加了容量感知的密钥调度、四层速率限制、内置的 React 聊天 UI、可视化配置控制台以及 Wails 桌面客户端。它可以作为单个二进制文件、Docker 容器或桌面应用运行,并将配置存储在 SQLite 中。
- 项目
BerriAI/litellm一个开源的 AI 网关和 Python SDK,提供统一的 OpenAI 兼容接口,用于调用 100 多个不同的 LLM 提供商。
- 项目
huggingface/AnyLanguageModelAnyLanguageModel 是一个 Swift 包,用统一 API 替代 Apple 的 FoundationModels 导入,支持 Apple、Core ML、MLX、llama.cpp、Ollama、OpenAI、Anthropic、Gemini 等众多 LLM 提供方。它提供 `LanguageModelSession` 用于提示,通过 `@Generable/@Guide` 实现 Swift 结构体的引导生成,支持工具调用并附带代理钩子,可选图像输入,并通过基于特性的依赖选择机制保持二进制文件体积小。安装通过 SwiftPM 完成;通过特性(`CoreML`、`MLX`、`Llama`)启用后端。安全建议警告不要硬编码 API 密钥,推荐将用户密钥存入 Keychain 或使用代理服务器。目标为 Swift 6.1+、iOS 17/macOS 14+,支持设备端和云 API。
- 项目
andrewyng/aisuite一个轻量级的 Python 库,通过极少的代码提供统一的 Chat Completions API 和 Agents API,用于在多个 LLM 提供商之上构建 AI 智能体。