any-llm:访问任何大型语言模型提供商的统一API

社区文章 发布于2025年7月22日

Introducing any-llm: A unified API to access any LLM provider

汤姆·塞德曼-弗洛伊德 / 《兔子为什么没有尾巴》,一个祖鲁童话

在使用大型语言模型 (LLM) 时,问题不仅仅是选择哪个模型,还在于选择谁来提供 LLM 以及它部署在哪里。正如我们之前撰写的那样,有多种访问 LLM 的方式可供选择。您选择的提供商可能会对成本、延迟和安全性产生影响。大多数 AI 实验室提供自己的提供商平台(OpenAI、Google、Mistral 等),而其他提供商平台(Azure、AWS、Cerebras 等)提供对各种 LLM 的访问。但是,如果您想构建您的 LLM 应用程序,而又不想担心被某个提供商锁定,该怎么办?

今天,我们很高兴地宣布发布我们的新 Python 库:any-llm!any-llm 提供了一个简单统一的接口,可以访问最流行的提供商。通过仅更改一个配置参数,您可以轻松地在不同提供商和模型之间切换。

from any_llm import completion
import os

# Make sure you have the appropriate environment variable set
assert os.environ.get('MISTRAL_API_KEY')
# Basic completion
response = completion(
    model="mistral/mistral-small-latest", # <provider_id>/<model_id>
    messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)

any-llm 通过以下几个关键设计原则填补了 LLM 提供商接口领域的空白:

  1. 使用提供商 SDK:any-llm 在可用时利用官方提供商 SDK,从而减轻维护负担并确保兼容性。
  2. 致力于积极维护:any-llm 与 any-agent 集成,any-agent 是我们最受社区欢迎的项目之一,因此我们有动力维护它。
  3. 无需代理或网关服务器:无需设置另一个服务作为网关:下载 any-llm SDK,即可与所有受支持的提供商进行通信,而无需通过其他第三方提供商发送您的数据。

您可以在此处查看我们支持的提供商列表。

OpenAI API 标准

OpenAI API 已成为 LLM 提供商接口的标准。尽管有些提供商与 OpenAI API 标准完美兼容,但其他提供商(如 Mistral、Anthropic 等)在预期的输入参数和输出值方面可能与 OpenAI 标准略有不同。

为了方便在这些提供商之间切换,需要轻量级包装器来优雅地处理这些差异,同时尽可能保持一致的接口。

any-llm 通过将输出标准化为返回 OpenAI ChatCompletion 对象来解决此问题,无论底层使用哪个提供商。对象作为 OpenAI Pydantic 模型返回,因此您可以像使用官方 OpenAI API SDK 一样访问它们。

您可以在此处查看 any-llm API 文档。要了解它与现有解决方案的关系,请继续阅读。

现有解决方案的不足之处

目前已有一些出色的开源 Python 库旨在解决与各种 LLM 提供商交互的挑战,但每个库都有其自身的局限性。

一个流行的解决方案,LiteLLM,因其对不同提供商和模态的广泛支持而备受推崇,使其成为许多开发人员的绝佳选择。然而,它重新实现了提供商接口,而不是利用由提供商自行管理和发布的 SDK。因此,这种方法可能导致兼容性问题和意想不到的行为修改,使其难以跟上所有提供商的变化。

另一个选项,AISuite,由 Andrew NG 创建,并提供了清晰的模块化设计。但是,它没有积极维护(上次发布是在 2024 年 12 月),并且缺乏一致的 Python 类型接口。

此外,许多特定于框架的解决方案,例如 Agno 中的解决方案,要么依赖于 LiteLLM,要么实现自己的提供商集成。这些实现可能很健壮,但由于它们与周围已构建的软件紧密耦合,因此难以集成到其他软件解决方案中。

最后,像 OpenRouterPortkey 这样的代理/网关解决方案要求用户设置一个托管代理服务器,作为其代码和 LLM 提供商之间的中介。尽管这可以有效地抽象出开发人员复杂的逻辑,但它增加了额外的复杂性和对外部服务的依赖,这可能不适用于所有用例。

💡 我们希望 any-llm 能成为现有解决方案的有用替代品。请查看我们的仓库文档,并立即试用!

社区

注册登录发表评论