新的开源 Python 库AISuite 提供统一的跨 LLM API

liftword5个月前 (12-07)技术文章48

Andrew Ng最近宣布,aisuite旨在围绕目前最流行的大型语言模型 (LLM) 提供类似 OpenAI 的 API,以便开发人员可以轻松尝试它们并比较结果或从一个 LLM 切换到另一个 LLM,而无需更改他们的代码。

据 Andrew Ng 介绍,在同一个应用程序中使用多个 LLM 提供程序可能会很麻烦,而aisuite旨在使其变得非常简单,只需在实例化其主组件时更改一个字符串即可选择所需的 LLM 提供程序。例如,要使用 OpenAI GPT-4o,您需要将“openai:gpt-4o”作为参数传递model到创建聊天完成代理的调用aisuite中。以下代码片段进一步显示了这一点:

import aisuite as ai
client = ai.Client()

messages = [
    {"role": "system", "content": "Respond in Pirate English."},
    {"role": "user", "content": "Tell me a joke."},
]

response = client.chat.completions.create(
    model="openai:gpt-4o",
    messages=messages,
    temperature=0.75
)
print(response.choices[0].message.content)

response = client.chat.completions.create(
    model="anthropic:claude-3-5-sonnet-20240620",
    messages=messages,
    temperature=0.75
)
print(response.choices[0].message.content)

安装aisuite只需运行pip install aisuite。该库还提供了安装 LLM 提供程序库的快捷方式。例如,您可以运行pip install 'aisuite[anthropic]'来安装基础库和 Anthropic 支持。

几位用户回复了 Andrew Ng 的公告,表达了同样的感受,这aisuite确实解决了部署 LLM 时真正的痛点。Reddit 用户比较了代理库的可用性,例如aisuite数据库抽象层,可以从测试中的 sqlite 切换到生产中的另一个数据库。

虽然总体反响不错,但一些 X 和 Reddit 用户指出了 的一些局限性aisuite,包括它尚不支持流媒体,也不支持速率限制、令牌使用监控等其他细节。同样,目前还不清楚它对使用自定义云部署 LLM 的支持程度如何aisuite。无论如何,值得记住的是,该库仍处于起步阶段,正在积极开发中。

aisuite并不是目前唯一可用于解决 LLM 交叉兼容性的解决方案。具体来说,LiteLLM似乎是一种更成熟且功能更齐全的解决方案,它能够使用相同的类似 OpenAI 的 API 调用多个 LLM,包括支持按项目逐个限制费率和预算。同样值得一提的是OpenRouter,它还提供自己的基于 Web 的 UI。

aisuite目前支持 OpenAI、Anthropic、Azure、Google、AWS、Groq、Mistral、HuggingFace 和 Ollama。该库用 Python 编写,要求开发人员拥有他们想要使用的任何 LLM 提供商的 API 密钥。该库使用每个 LLM 提供商发布的 API 或 SDK 来最大限度地提高稳定性。目前,它主要专注于聊天完成,但其维护者表示,未来将涵盖新的用例。