← Ко всем open source проектам

LiteLLM

BerriAI/litellm

LiteLLM — Python SDK и прокси для работы с разными LLM-провайдерами через единый интерфейс.

Форки 9,225
Автор BerriAI
Язык Python
Лицензия NOASSERTION
Обновлено 2026-06-27

Что это такое

LiteLLM — инструмент для команд, которые работают не с одной моделью, а с несколькими поставщиками LLM. Он дает общий интерфейс вызова, чтобы код приложения меньше зависел от конкретного API.

Проект вырос из практической проблемы: у разных поставщиков отличаются форматы запросов, имена моделей, ошибки, лимиты и стоимость. LiteLLM пытается привести это к одному рабочему слою.

Что внутри репозитория

В репозитории есть Python SDK, прокси-сервер, настройки маршрутизации, учет расходов, правила доступа, интеграции с популярными провайдерами и примеры развертывания. Он может использоваться как библиотека или как отдельный сервис между приложением и моделями.

Особенно важен прокси-режим: он позволяет централизовать ключи, лимиты, логи и выбор модели. Это удобно для команды, где несколько продуктов или сервисов обращаются к LLM.

Как используют

LiteLLM используют, когда нужно быстро переключать модели, сравнивать поставщиков, ограничивать расходы или давать внутренним командам общий адрес для вызова моделей. Приложение отправляет запрос в один слой, а выбор конкретной модели можно менять конфигурацией.

Перед внедрением нужно внимательно настроить хранение ключей, журналирование и обработку пользовательских данных. Инструмент упрощает интеграцию, но не решает за команду вопросы приватности и политики доступа.

Сильные стороны и ограничения

Сильная сторона LiteLLM — снижение привязки к одному поставщику и единый контроль расходов. Это особенно полезно, когда продукт быстро экспериментирует с моделями.

Ограничение — дополнительный слой в критическом пути. Его нужно мониторить, обновлять и понимать, как он преобразует ошибки, потоковую выдачу и нестандартные параметры моделей.

В больших командах LiteLLM часто становится местом договоренностей: какие модели разрешены, где хранятся ключи, какие лимиты выставлены, какие запросы логируются и как быстро переключиться при сбое поставщика. Без этих правил единый слой вызова моделей быстро становится непрозрачным.

Еще одна практическая деталь — поведение потоковой выдачи и ошибок. Разные поставщики возвращают разные форматы, поэтому обертка должна не только отправить запрос, но и аккуратно передать отмену, таймауты, повторы и частичный ответ.

Пример

Единый вызов модели

Пример показывает идею SDK: приложение вызывает completion через LiteLLM, а конкретный поставщик выбирается именем модели.

Язык: Python
from litellm import completion

response = completion(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "Суммируй текст"}],
)

print(response.choices[0].message.content)