Mozilla AI 推出的统一 LLM 访问 SDK,通过单一接口连接 30+ 种云端与本地模型,支持 OpenAI 格式输入输出,无需代理服务器。
项目定位#
any-llm 是 Mozilla AI 推出的 Python SDK,旨在解决 LLM 提供商 API 碎片化问题。通过单一统一接口,开发者可以无缝访问 30+ 个主流 LLM 提供商,包括 OpenAI、Anthropic、Mistral、Google Gemini、AWS Bedrock、Azure OpenAI 等云端服务,以及 Ollama、llama.cpp、llamafile、LM Studio、vLLM 等本地部署方案。
核心设计理念:
- 使用官方 SDK:底层调用各提供商官方 SDK,确保最大兼容性与稳定性
- 无代理服务器:直接从应用端连接 LLM 服务,减少网络跳数与架构复杂度
- 标准化输出:将所有返回数据映射为标准 OpenAI Pydantic 模型(ChatCompletion)
- 框架无关:可集成于任意 Python 项目
核心能力#
| 功能类别 | 支持能力 |
|---|---|
| 推理能力 | Chat Completions(同步/流式)、Responses API(OpenResponses 规范)、推理追踪 |
| 多模态 | 图像/视觉能力输入与处理 |
| 向量化 | Embedding 生成 |
| 模型管理 | 模型列表查询(list_models)、批量处理 |
支持的提供商#
云端主流: OpenAI, Anthropic, Mistral, Google Gemini, AWS Bedrock, Azure OpenAI, Cohere
高性能/推理: Cerebras, Groq, Fireworks, Together, Perplexity, Hugging Face
本地/自托管: Ollama, llama.cpp, llamafile, LM Studio, vLLM
安装与使用#
环境要求: Python 3.11+
# 安装特定提供商支持
pip install 'any-llm-sdk[openai]'
# 安装多个提供商
pip install 'any-llm-sdk[mistral,ollama]'
# 安装所有支持的提供商
pip install 'any-llm-sdk[all]'
快速上手代码:
from any_llm import completion
import os
assert os.environ.get('MISTRAL_API_KEY')
response = completion(
model="mistral-small-latest",
provider="mistral",
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)
生产环境使用(AnyLLM 类):
from any_llm import AnyLLM
llm = AnyLLM.create("mistral", api_key="your-mistral-api-key")
response = llm.completion(
model="mistral-small-latest",
messages=[{"role": "user", "content": "Hello!"}]
)
适用场景#
- 快速原型:在单一代码库中横向对比不同模型效果
- 生产环境:通过 AnyLLM 类管理连接池,结合 any-llm-gateway 实现预算控制与多租户管理
- 混合部署:在云端模型与本地模型间无缝切换
- 避免供应商锁定:保持代码灵活性,根据成本或性能随时切换提供商
企业级特性(通过 any-llm-gateway)#
- 预算管理(日/周/月自动重置)
- API 密钥管理(虚拟密钥,不暴露提供商凭证)
- 使用分析(完整的令牌计数、成本和元数据)
- 多租户支持(跨用户和团队的访问和预算管理)
与现有方案对比#
- vs LiteLLM:any-llm 使用官方 SDK 而非重新实现接口,无需代理服务器
- vs AISuite:any-llm 提供更完整的类型支持和活跃维护
- vs 框架特定方案:框架无关,可集成到任何 Python 项目
- vs 代理方案:无需托管代理服务器
项目归属#
由 Mozilla AI 官方维护,已集成到其 any-agent 项目中,为代理构建框架提供底层 LLM 调用支持。
PyPI 包名:any-llm-sdk 最新版本:1.8.5 许可证:Apache License 2.0