章节 01
导读 / 主楼:any-llm:统一接口访问多 LLM 提供商的 Python SDK
Mozilla AI 推出的开源 Python SDK,通过单一统一接口与 OpenAI、Anthropic、Mistral、Ollama 等多个 LLM 提供商通信,支持直接调用和可选的网关代理模式,简化多模型集成与成本管理。
正文
Mozilla AI 推出的开源 Python SDK,通过单一统一接口与 OpenAI、Anthropic、Mistral、Ollama 等多个 LLM 提供商通信,支持直接调用和可选的网关代理模式,简化多模型集成与成本管理。
章节 01
Mozilla AI 推出的开源 Python SDK,通过单一统一接口与 OpenAI、Anthropic、Mistral、Ollama 等多个 LLM 提供商通信,支持直接调用和可选的网关代理模式,简化多模型集成与成本管理。
章节 02
当前的大语言模型(LLM)生态系统呈现出高度碎片化的状态。虽然 OpenAI 的 API 已成为事实上的行业标准,但不同提供商在参数命名、响应格式和功能实现上存在细微但重要的差异。这种碎片化给开发者带来了实际困扰:当需要在项目中切换或同时使用多个 LLM 提供商时,通常需要为每个提供商编写不同的集成代码,维护成本高且容易出错。
Mozilla AI 推出的 any-llm 项目正是为了解决这一问题。它提供了一个统一的 Python SDK,让开发者能够使用单一接口与多个 LLM 提供商通信,只需更改模型字符串即可在不同提供商之间切换,无需修改核心代码逻辑。
章节 03
在 any-llm 出现之前,社区已有一些尝试解决多提供商集成问题的方案,但各自存在局限。LiteLLM 是目前最流行的解决方案之一,但它选择重新实现各提供商的接口而非使用官方 SDK,这可能导致兼容性问题和更新延迟。AISuite 采用了更清晰的模块化设计,但缺乏积极维护、全面测试和现代 Python 类型标准支持。
一些代理框架如 Agno 要么依赖 LiteLLM,要么自行实现提供商集成,进一步加剧了生态碎片化。此外,像 OpenRouter 和 Portkey 这样的解决方案要求通过托管代理服务器转发所有请求,引入了额外的延迟和隐私顾虑,不适合对数据安全性要求高的场景。
章节 04
any-llm 的设计遵循几个关键原则。首先,它优先使用官方提供商 SDK,确保最大兼容性和及时的功能更新。其次,它保持框架无关性,可以在不同项目和用例中灵活使用,不绑定特定应用框架。第三,它不需要代理服务器,直接连接到 LLM 提供商,降低延迟和复杂性。最后,它提供完整的 Python 类型提示,带来更好的 IDE 支持和更清晰的错误信息。
该项目已在 Mozilla AI 自己的生产工具(如 any-agent)中得到实战验证,证明了其可靠性和实用性。
章节 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)即可完成迁移。
章节 06
any-llm 提供了两种主要的使用方式,适用于不同场景。
直接 API 函数(completion)适合脚本、笔记本和单次请求场景。这种方式每次调用都会创建新的客户端实例,是无状态的设计,使用简单直接。
AnyLLM 类(AnyLLM.create)则更适合生产应用和多次请求场景。它会复用客户端连接,支持连接池,在需要频繁调用时提供更好的性能。两种方式支持完全相同的功能特性,包括流式响应、工具调用和 Responses API。
章节 07
对于需要预算管理、使用分析和多租户支持的生产环境,any-llm 提供了可选的 any-llm-gateway。这是一个基于 FastAPI 的代理服务器,提供企业级功能:
预算管理方面,支持设置每日、每周或每月的支出限额,并自动重置。API 密钥管理允许发行、撤销和监控虚拟 API 密钥,无需暴露真实的提供商凭证。使用分析功能追踪每次请求的完整令牌数、成本和元数据。多租户支持则允许跨用户和团队管理访问权限和预算。
网关位于应用和 LLM 提供商之间,暴露 OpenAI 兼容的 API,可与任何支持的提供商配合使用。对于希望使用托管服务的用户,any-llm 平台(any-llm.ai)提供了管理控制平面,用于密钥管理、使用追踪和跨提供商成本可视化。
章节 08
any-llm 支持广泛的 LLM 提供商,包括 OpenAI、Anthropic、Mistral、Ollama(本地部署)、Azure OpenAI、vLLM、LiteLLM 代理等。对于 Anthropic 的 Claude 模型,可以通过 LiteLLM 代理或直接支持进行调用。
模型选择方面,any-llm 将模型标识符直接传递给提供商,因此可以使用各提供商支持的任何模型。用户可以通过提供商文档或 any-llm 的 list_models API(如果提供商支持)查询可用模型列表。