AISuite:GenAI平台统一API

LIBRARY Nov 28, 2024

aisuite 让开发人员能够通过标准化接口轻松使用多个 LLM。使用与 OpenAI 类似的接口,aisuite 可以轻松与最流行的 LLM 交互并比较结果。它是 python 客户端库的薄包装器,允许创建者无缝交换和测试来自不同 LLM 提供商的响应,而无需更改其代码。目前,该库主要专注于聊天完成,团队将在不久的将来扩展它以涵盖更多用例。

当前支持的提供商包括 - OpenAI、Anthropic、Azure、Google、AWS、Groq、Mistral、HuggingFace 和 Ollama。为了最大限度地提高稳定性,aisuite 使用 HTTP 端点或 SDK 来调用提供商。

1、aisuite安装

可以只安装基本 aisuite 包,也可以与 aisuite 一起安装提供商的包。

下面的命令只会安装基本包,而不会安装任何提供商的 SDK:

pip install aisuite

下面的命令将安装 aisuite 以及 anthropic 的库:

pip install 'aisuite[anthropic]'

下面的命令将安装所有特定于提供程序的库:

pip install 'aisuite[all]'

2、aisuite设置

要开始使用,你需要为要使用的提供程序获取 API 密钥。你需要单独安装特定于提供程序的库,或者在安装 aisuite 时安装。

API 密钥可以设置为环境变量,也可以作为配置传递给 aisuite 客户端构造函数。你可以使用 python-dotenvdirenv 等工具手动设置环境变量。请查看 examples文件夹以了解用法。

下面是一个使用 aisuite 从 gpt-4o 和 claude-3-5-sonnet 生成聊天完成响应的简短示例。

设置 API 密钥:

export OPENAI_API_KEY="your-openai-api-key"
export ANTHROPIC_API_KEY="your-anthropic-api-key"

使用 python 客户端:

import aisuite as ai
client = ai.Client()

models = ["openai:gpt-4o", "anthropic:claude-3-5-sonnet-20240620"]

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

for model in models:
    response = client.chat.completions.create(
        model=model,
        messages=messages,
        temperature=0.75
    )
    print(response.choices[0].message.content)

请注意, create() 调用中的模型名称使用格式 <provider>:<model-name>。aisuite 将根据提供程序值使用正确的参数调用适当的提供程序。有关提供程序值的列表,你可以查看目录 aisuite/providers/。受支持的提供程序列表的格式为 <provider>_provider.py,位于该目录中。我们欢迎提供程序通过在此目录中添加实现文件来添加对此库的支持。请参阅下面的部分了解如何做出贡献。

有关更多示例,请查看 examples目录,你可以在其中找到几个可以运行以试验界面的笔记本。

3、添加对提供程序的支持

aisuite让提供商或志愿者可以轻松地添加对新平台的支持。

3.1 提供程序模块的命名约定

aisuite遵循基于约定的方法来加载提供程序,它依赖于模块名称和类名称的严格命名约定。格式基于模型标识符,形式为 provider:model

  • 提供程序的模块文件必须采用 <provider>_provider.py 格式命名。
  • 此模块内的类必须遵循以下格式:提供程序名称首字母大写,后跟后缀 Provider

示例:

  • Hugging Face:提供程序类应在 /huggingface_provider.py 中定义为:
class HuggingfaceProvider(BaseProvider)
  • OpenAI:提供程序类应在 /openai_provider.py 中定义为:
class OpenaiProvider(BaseProvider)

此约定简化了新提供程序的添加,并确保了提供程序实现之间的一致性。


原文链接:Simple, unified interface to multiple Generative AI providers

汇智网翻译整理,转载请标明出处

Tags