llmbroker
llmbroker объединяет несколько бесплатных языковых моделей в единый интерфейс. Если одна модель недоступна или исчерпала лимит запросов, брокер обращается к следующей. Платная подписка и крупные зависимости наподобие LangChain не нужны.
Быстрый старт
Установите llmbroker. Для доступа к бесплатным моделям нужны
API-ключи провайдеров. Следующая команда создаст заготовку .env и укажет, где
получить каждый ключ:
llmbroker env freetier > .env
Укажите хотя бы один ключ, затем создайте брокер и отправьте запрос:
import llmbroker
broker = llmbroker.Broker()
print(broker.ask("Привет, как дела?").text)
Отдельный файл конфигурации не нужен. Broker() загружает поддерживаемый список
бесплатных моделей, читает ключи из переменных окружения и файла .env в рабочем
каталоге, а затем автоматически обновляет список.
Модели без ключей просто не используются. Если провайдер временно ограничил число запросов, брокер переходит к следующей доступной модели. Ошибка возвращается только в том случае, если ни одна модель не может ответить.
Возможности
- Работа без конфигурации —
Broker()не требует аргументов, а список бесплатных моделей обновляется автоматически. - Автоматический переход к другой модели — брокер перебирает модели, пока
одна не ответит. Если это невозможно, поле
reasonисключенияNoLLMAvailableErrorуказывает причину. - Диалоги, инструменты и агенты — методы
askиchat, а также готовый цикл вызова инструментов. - Асинхронные вызовы и потоковая выдача — API с
awaitи получение ответа частями по мере генерации, в том числе из синхронного кода. - Прямой вызов платной модели —
direct("opus")обращается к модели по постоянному псевдониму, независимо от пула. - Выбор по качеству — оценки ответов влияют на порядок моделей для следующих запросов.
- Ключи где угодно — окружение,
.env, БД, AWS, Vault или своё хранилище; свой ключ на пользователя. - Масштабирование без изменения кода — общая база данных для нескольких процессов и серверов, а также собственные модели в пуле.
- Наблюдение за работой — состояние пула, журнал вызовов и
статистика, поиск по
trace_idи предупреждения о снижении доступности. - Отключение моделей вручную.