mozilla-ai/any-llm

Communicate with an LLM provider using a single interface

解决的问题

它解决了 LLM 提供商接口碎片化的问题。由于不同的提供商使用的参数名称和响应格式略有不同,开发人员在切换模型时通常不得不重写代码。any-llm 提供了一个统一的接口,无需更改核心应用程序逻辑即可访问多个 LLM 提供商。

工作原理

该库作为一个轻量级封装,利用官方提供商 SDK 来确保最大的兼容性。它提供了两种主要的模型交互方式:

  1. Direct API Functions:适用于脚本和 notebook 的无状态 completion 函数。
  2. AnyLLM Class:一种重用客户端和连接池的有状态方法,推荐用于生产级应用。

它支持 provider:model 字符串格式或单独的参数,用于将请求路由到 OpenAI、Anthropic、Mistral 和 Ollama 等提供商,还可以连接到自定义的 OpenAI 兼容端点。

适用对象

专为希望轻松切换不同 LLM 提供商的开发人员、正在从 LiteLLM 迁移的用户,以及需要避免依赖托管代理服务器的框架无关型 AI 应用程序构建团队而设计。

亮点

  • 统一接口:通过更改单个字符串即可切换提供商。
  • 官方 SDK 集成:使用官方 SDK 而不是重新实现接口,以保持更好的兼容性。
  • 无需代理:直接在代码和提供商之间运行,不需要托管代理。
  • 开发体验:包含用于 IDE 支持的完整类型提示和清晰的错误消息。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目