mozilla-ai/any-llm
Communicate with an LLM provider using a single interface
What it solves
它消除 LLM 提供商接口的碎片化。开发者不必为每个 AI 提供商(例如 OpenAI、Anthropic 或 Mistral)编写不同的代码,只要使用单一、统一的接口即可与任何受支持的模型通信,让切换提供商变得简单,无需重写应用逻辑。
How it works
any-llm 充当轻量包装器,利用官方提供商 SDK 以确保最高兼容性。它提供两种主要的模型交互方式:
- Direct API Functions:一个无状态的
completion函数,适合快速脚本和 notebook 使用。 - AnyLLM Class:一个有状态的类,可复用 client 与连接池,适合生产环境的应用。
它支持流式输出、工具使用以及与 OpenAI 兼容的 Responses API,并允许用户使用单独的 provider 与 model 参数或合并的 provider:model 字符串指定模型。
Who it’s for
想要构建灵活且不依赖特定供应商的 LLM 应用的开发者,避免被单一 AI 厂商锁定或需要自行管理代理服务器。
Highlights
- Unified Interface:只需更改一个字符串即可在供应商之间切换。
- Official SDK Integration:使用官方 SDK,而非重新实现接口,以降低兼容性问题。
- Framework Agnostic:可集成到任何项目,且不受特定代理框架限制。
- Type-Safe:提供完整的 Python 类型提示,提升 IDE 支持。
- No Proxy Required:直接连接到供应商,无需中介服务器。