Zing 论坛

正文

any-llm:统一接口访问多 LLM 提供商的 Python SDK

Mozilla AI 推出的开源 Python SDK,通过单一统一接口与 OpenAI、Anthropic、Mistral、Ollama 等多个 LLM 提供商通信,支持直接调用和可选的网关代理模式,简化多模型集成与成本管理。

LLMPython SDKMozilla AI多提供商OpenAIAnthropicAPI 网关开源
发布时间 2026/04/07 01:15最近活动 2026/04/07 01:22预计阅读 4 分钟
any-llm:统一接口访问多 LLM 提供商的 Python SDK
1

章节 01

导读 / 主楼:any-llm:统一接口访问多 LLM 提供商的 Python SDK

Mozilla AI 推出的开源 Python SDK,通过单一统一接口与 OpenAI、Anthropic、Mistral、Ollama 等多个 LLM 提供商通信,支持直接调用和可选的网关代理模式,简化多模型集成与成本管理。

2

章节 02

项目背景与问题定义

当前的大语言模型(LLM)生态系统呈现出高度碎片化的状态。虽然 OpenAI 的 API 已成为事实上的行业标准,但不同提供商在参数命名、响应格式和功能实现上存在细微但重要的差异。这种碎片化给开发者带来了实际困扰:当需要在项目中切换或同时使用多个 LLM 提供商时,通常需要为每个提供商编写不同的集成代码,维护成本高且容易出错。

Mozilla AI 推出的 any-llm 项目正是为了解决这一问题。它提供了一个统一的 Python SDK,让开发者能够使用单一接口与多个 LLM 提供商通信,只需更改模型字符串即可在不同提供商之间切换,无需修改核心代码逻辑。

3

章节 03

现有解决方案的局限性

在 any-llm 出现之前,社区已有一些尝试解决多提供商集成问题的方案,但各自存在局限。LiteLLM 是目前最流行的解决方案之一,但它选择重新实现各提供商的接口而非使用官方 SDK,这可能导致兼容性问题和更新延迟。AISuite 采用了更清晰的模块化设计,但缺乏积极维护、全面测试和现代 Python 类型标准支持。

一些代理框架如 Agno 要么依赖 LiteLLM,要么自行实现提供商集成,进一步加剧了生态碎片化。此外,像 OpenRouter 和 Portkey 这样的解决方案要求通过托管代理服务器转发所有请求,引入了额外的延迟和隐私顾虑,不适合对数据安全性要求高的场景。

4

章节 04

any-llm 的核心设计理念

any-llm 的设计遵循几个关键原则。首先,它优先使用官方提供商 SDK,确保最大兼容性和及时的功能更新。其次,它保持框架无关性,可以在不同项目和用例中灵活使用,不绑定特定应用框架。第三,它不需要代理服务器,直接连接到 LLM 提供商,降低延迟和复杂性。最后,它提供完整的 Python 类型提示,带来更好的 IDE 支持和更清晰的错误信息。

该项目已在 Mozilla AI 自己的生产工具(如 any-agent)中得到实战验证,证明了其可靠性和实用性。

5

章节 05

安装与基本使用

安装 any-llm 非常直观,支持按需安装特定提供商的依赖。例如,只安装 Mistral 和 Ollama 支持可以使用 pip install 'any-llm-sdk[mistral,ollama]',而安装所有支持的提供商则使用 pip install 'any-llm-sdk[all]'。

基本使用只需几行代码。首先设置对应提供商的 API 密钥环境变量,然后导入 completion 函数并调用:

from any_llm import completion

response = completion(
    model="mistral-small-latest",
    provider="mistral",
    messages=[{"role": "user", "content": "Hello!"}]
)

切换提供商只需更改 provider 和 model 参数,代码结构保持不变。对于从 LiteLLM 迁移的用户,any-llm 完全兼容 LiteLLM 的环境变量命名,只需更新导入语句和模型字符串格式(从 openai/gpt-4o 改为 openai:gpt-4o)即可完成迁移。

6

章节 06

两种使用模式对比

any-llm 提供了两种主要的使用方式,适用于不同场景。

直接 API 函数(completion)适合脚本、笔记本和单次请求场景。这种方式每次调用都会创建新的客户端实例,是无状态的设计,使用简单直接。

AnyLLM 类(AnyLLM.create)则更适合生产应用和多次请求场景。它会复用客户端连接,支持连接池,在需要频繁调用时提供更好的性能。两种方式支持完全相同的功能特性,包括流式响应、工具调用和 Responses API。

7

章节 07

any-llm-gateway 企业级功能

对于需要预算管理、使用分析和多租户支持的生产环境,any-llm 提供了可选的 any-llm-gateway。这是一个基于 FastAPI 的代理服务器,提供企业级功能:

预算管理方面,支持设置每日、每周或每月的支出限额,并自动重置。API 密钥管理允许发行、撤销和监控虚拟 API 密钥,无需暴露真实的提供商凭证。使用分析功能追踪每次请求的完整令牌数、成本和元数据。多租户支持则允许跨用户和团队管理访问权限和预算。

网关位于应用和 LLM 提供商之间,暴露 OpenAI 兼容的 API,可与任何支持的提供商配合使用。对于希望使用托管服务的用户,any-llm 平台(any-llm.ai)提供了管理控制平面,用于密钥管理、使用追踪和跨提供商成本可视化。

8

章节 08

支持的提供商与模型

any-llm 支持广泛的 LLM 提供商,包括 OpenAI、Anthropic、Mistral、Ollama(本地部署)、Azure OpenAI、vLLM、LiteLLM 代理等。对于 Anthropic 的 Claude 模型,可以通过 LiteLLM 代理或直接支持进行调用。

模型选择方面,any-llm 将模型标识符直接传递给提供商,因此可以使用各提供商支持的任何模型。用户可以通过提供商文档或 any-llm 的 list_models API(如果提供商支持)查询可用模型列表。