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,并允许用户使用单独的 providermodel 参数或合并的 provider:model 字符串指定模型。

Who it’s for

想要构建灵活且不依赖特定供应商的 LLM 应用的开发者,避免被单一 AI 厂商锁定或需要自行管理代理服务器。

Highlights

  • Unified Interface:只需更改一个字符串即可在供应商之间切换。
  • Official SDK Integration:使用官方 SDK,而非重新实现接口,以降低兼容性问题。
  • Framework Agnostic:可集成到任何项目,且不受特定代理框架限制。
  • Type-Safe:提供完整的 Python 类型提示,提升 IDE 支持。
  • No Proxy Required:直接连接到供应商,无需中介服务器。