Недавно возникла задача много и активно тестировать модели разных провайдеров доступных по API. Не у всех есть официальныые клиенты, да и отдельный пакет импортировать и таскать для каждого провайдера не очень удобно.
Видимо, Эндрю Ын и его команда столкнулись с такой же проблемой и выпустили микро фреймворк, который представляет единый интерфейс для большого количества провайдеров. Сейчас официально плддерживаются: OpenAI, Anthropic, Azure, Google, AWS, Groq, Mistral, HuggingFace Ollama, Sambanova and Watsonx.
Если чего-то не хватает, то можно добавить свою реализацию.
В репозитории есть много примеров, включая всякие расширения типа tool_calling.
Работать с AWS Bedrock стало точно в разы приятнее. Не нужно вручную создавать boto сессии и заниматься дополнительным парсингом данных на вход и выход. Все зашито в интерфейс:
import aisuite as ai
client = ai.Client()
provider = "aws"
model_id = "meta.llama3-1-405b-instruct-v1:0" # Model ID from Bedrock
messages = [
{"role": "system", "content": "Respond in Pirate English."},
{"role": "user", "content": "Tell me a joke."},
]
response = client.chat.completions.create(
model=f"{provider}:{model_id}",
messages=messages,
)
Делитесь другими полезными инструментами для работы с LLM API провайдерами на каждый день в комментариях 🙂