Открытый гайд · ИИ-офис

LiteLLM — один шлюз на все модели сразу

Прокси, который прячет десятки модельных API за одним адресом и одним ключом. Разбираем установку, config.yaml, формат Anthropic для Claude Code, бюджеты и тарифы.

Кирилл СандаковКирилл СандаковВайбкодер, предприниматель, продюсерОпубликовано 21.08.202610 мин чтения

LiteLLM — открытый шлюз к языковым моделям: приложение обращается к одному OpenAI-совместимому адресу, а прокси решает, уйдёт запрос в OpenAI, Anthropic, Bedrock или в локальную модель. Ставится командой uv tool install 'litellm[proxy]' и поднимается на порту 4000. Открытая версия бесплатна при своём хостинге и уже умеет виртуальные ключи и бюджеты. Проверено по документации 21 августа 2026 года.

Что узнаешь из гайда

  • Чем шлюз отличается от библиотеки-обёртки
  • Как поставить прокси и не поймать откат версии
  • Как собрать config.yaml со списком моделей
  • Что у шлюза есть специально под Claude Code
  • Где проходит граница между Open Source и Enterprise

Часть 1 · Знакомство

Что такое LiteLLM и какую задачу он решает

Главное

Приложение знает один адрес и один ключ. Всё остальное — маршрутизация, учёт и лимиты — живёт в шлюзе.

Когда в компании работает больше одной модели, начинается знакомая возня: у каждого провайдера свой формат запроса, свой ключ, свой порядок полей и своя тарификация. Код обрастает ветками, ключи расползаются по репозиториям, а вопрос «кто сжёг бюджет за квартал» остаётся без ответа. LiteLLM убирает эту возню в отдельный слой: снаружи — привычный OpenAI-совместимый API, внутри — таблица моделей и правила, куда какой запрос отправить.

У проекта две ипостаси, и путать их не стоит. Python-SDK — библиотека, которую импортируют прямо в код. Прокси (он же AI Gateway) — отдельный сервер, который поднимают рядом с приложением; именно про него дальше весь гайд. Репозиторий BerriAI/litellm собрал 56 913 звёзд, лицензия составная: всё вне каталога enterprise/ идёт по MIT, а содержимое этого каталога — по отдельной лицензии, поэтому в карточке GitHub проект не значится как MIT.

Сколько провайдеров — зависит от того, где прочитать

Описание репозитория говорит про 100+ LLM API. Сайт проекта — про 140+ провайдеров и 1 800+ моделей. Цифры расходятся, потому что считают разное и обновляются в разном темпе; в гайде обе приведены как есть, без усреднения. Практический вывод один: конкретную модель проще проверить в списке поддерживаемых провайдеров, чем полагаться на цифру с обложки.

Слой шлюза даёт не только маршрутизацию. В открытой версии есть виртуальные ключи (клиент получает свой sk-, а настоящие ключи провайдеров не покидают сервер), пользователи и команды, учёт расхода, бюджеты и ограничители по запросам и токенам, фолбэки на запасную модель, логирование запросов и ответов и метрики Prometheus. Про то, из чего вообще складывается счёт за модель, отдельно разобрано в гайде про токены и лимиты Claude.


Часть 2 · Установка

Как установить LiteLLM Proxy

Главное

Ставить через uv, а не голым pip. Прокси поднимается на порту 4000.

терминал · установка и запуск
# установка прокси
uv tool install 'litellm[proxy]'

# запуск на одной модели
litellm --model gpt-3.5-turbo
# INFO: Proxy running on http://0.0.0.0:4000

# подробные логи, если что-то не поднялось
litellm --model gpt-3.5-turbo --detailed_debug

# проверка из другой оболочки (нужен openai 1.0.0+)
litellm --test

Тихий откат версии на Python 3.9

Начиная с релиза 1.84.0 проект требует Python 3.10 и новее. Ловушка описана в самой документации: на Python 3.9 команда pip install 'litellm[proxy]' не падает с ошибкой, а молча ставит 1.83.9 — последнюю версию, которая ещё допускала такой интерпретатор. Человек получает устаревший прокси и не понимает, почему в нём нет половины документированных возможностей. Если версия оказалась неожиданно старой — проверьте python --version. Команда uv tool install этой проблемы лишена: она сама поднимает совместимый Python.

Ключи провайдеров передаются переменными окружения — прокси читает их при старте. Ниже несколько маршрутов из быстрого старта; полный список в документации заметно длиннее и включает Vertex AI, SageMaker, Hugging Face, vLLM, TogetherAI, Replicate, AI21 и Cohere.

терминал · разные провайдеры
# OpenAI
export OPENAI_API_KEY=my-api-key
litellm --model gpt-3.5-turbo

# Anthropic
export ANTHROPIC_API_KEY=my-api-key
litellm --model claude-instant-1

# AWS Bedrock
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
export AWS_REGION_NAME=
litellm --model bedrock/anthropic.claude-v2

# локальная модель через Ollama
litellm --model ollama/<имя-модели>

# любой OpenAI-совместимый эндпоинт
litellm --model openai/<модель> --api_base http://0.0.0.0:3000

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


Часть 3 · Конфиг

config.yaml: список моделей и алиасы

Главное

Одно имя снаружи — несколько развёртываний внутри. На этом же списке работают балансировка и фолбэки.

Флаг --model годится для проверки, дальше конфиг переезжает в файл. Основа файла — список model_list, где у каждой записи два уровня: model_name — имя, которое видит клиент, и litellm_params — настоящие параметры вызова: модель провайдера, адрес и ключ. Одно и то же model_name можно повесить на несколько разных развёртываний — тогда шлюз раскладывает запросы между ними.

config.yaml · список моделей
model_list:
  - model_name: gpt-3.5-turbo        # имя, которое видит клиент
    litellm_params:
      model: azure/<имя-развёртывания>
      api_base: <адрес-azure>
      api_key: <ключ-azure>

  - model_name: gpt-3.5-turbo        # то же имя, другое развёртывание
    litellm_params:
      model: azure/gpt-turbo-small-ca
      api_base: <адрес-второго-региона>
      api_key: <ключ-второго-региона>

Приём с одинаковыми именами и разными развёртываниями — основа отказоустойчивости: если один регион отвалился, запрос уходит в соседний, а приложение об этом даже не узнает. В документации отдельно указано, что на нагрузочных тестах прокси держит 1 500+ запросов в секунду, то есть слой не становится узким местом на обычных объёмах.

Ключи клиентов и ключи провайдеров — разные вещи

Виртуальный ключ выдаётся команде, проекту или конкретному приложению и живёт со своим бюджетом и лимитом частоты. Настоящие ключи провайдеров остаются в конфиге шлюза. Когда сотрудник уходит или ключ утёк в лог, отзывается один виртуальный ключ, а не перевыпускается доступ ко всем моделям разом.


Часть 4 · Claude Code

Формат Anthropic и матрица совместимости

Главное

Эндпоинт /v1/messages доступен у всех провайдеров шлюза, включая тех, кто к Anthropic отношения не имеет.

Обычно шлюз говорит в формате OpenAI. Но у LiteLLM есть и второй фасад — /v1/messages в формате Anthropic, и это ровно тот формат, которым разговаривает Claude Code. Важная деталь: эндпоинт не привязан к провайдеру. Запрос в формате Anthropic можно увести в OpenAI, Bedrock, Vertex AI, Gemini или Azure, и при этом сохранятся учёт расхода, логирование, стриминг, фолбэки, балансировка и ограничители. Рядом в документации лежат разделы /mcp и /skills: через шлюз проходят и MCP-серверы, и Anthropic Skills API — то есть скилы тоже попадают под общий учёт.

Под Claude Code в документации выделен целый раздел: быстрый старт, срезание расходов, авторутер, вход через Okta по JWT, работа с подпиской Max, свой ключ, гранулярный учёт расхода, статус-строка бюджета, маршрутизация кэша промптов, веб-поиск через всех провайдеров, MCP, неантроповские модели и маркетплейс плагинов с управляемыми скилами. Соседние страницы того же раздела — Claude Desktop, OpenCode, Cursor, GitHub Copilot, Gemini CLI, Qwen Code CLI и Codex. Если задача уже, чем «шлюз на всё», и нужно просто подставить одного альтернативного провайдера, короче будет путь из гайда про подключение GLM к Claude Code.

Самое полезное на этой странице — матрица совместимости. Её пересобирает не человек, а ежедневный автоматический прогон: настоящий CLI Claude Code гоняют против свежего стабильного прокси на каждом провайдере, параллельно на Haiku 4.5, Sonnet 4.6 и Opus 4.7. Ячейка зеленеет, только если проходят все три модели. Снимок на момент проверки подписан так: LiteLLM v1.97.0, Claude Code 2.1.228, сгенерировано 20 августа 2026 года. Строк в таблице пятнадцать, красных ячеек в них было три.

Что не прошлоГдеПричина из подсказки
ThinkingBedrock (Converse)На Opus 4.7 в потоке событий не встретился блок thinking
PDF на входBedrock (Converse)Падает на Haiku 4.5
Поиск инструментов MCPBedrock (Invoke)400 на Haiku 4.5: тип инструмента tool_search_tool_regex_20251119 не входит в список допустимых для маршрута

Снимок матрицы от 20 августа 2026 года. Она обновляется ежедневно — состав красных ячеек к моменту чтения наверняка другой.

Матрица и текст под ней расходятся

Под таблицей идёт раздел «Known issues» с разбором красных ячеек. На дату снимка он описывает как проваленные те комбинации, которые в самой матрице зелёные: extended thinking на Bedrock Invoke и Vertex AI и «весь столбец Converse целиком». Объяснение простое: таблицу пересобирает робот каждый день, а текст под ней правят руками, и он отстаёт. Ориентироваться стоит на дату генерации в шапке таблицы, а прозу под ней читать как историю уже случившихся поломок.


Часть 5 · Деньги

Сколько стоит LiteLLM

Главное

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

ПланЦенаЧто внутри
Open Source0, самостоятельный хостинг100+ провайдеров через один OpenAI API, виртуальные ключи, пользователи и команды, учёт расхода, бюджеты и ограничители, фолбэки, логирование запросов и ответов, метрики Prometheus
EnterpriseПо запросу, годоваяВсё из открытой версии плюс SSO и SCIM, OIDC/JWT, журнал аудита, менеджеры секретов и ротация ключей, админы организаций и команд, мультирегиональный control plane, поддержка 24/7 с SLA, режим air-gapped

Тарифы сверены по странице цен 21 августа 2026 года.

Цену Enterprise проект не публикует вовсе, но принцип расчёта на странице тарифов описан прямо: от годовой ёмкости шлюза по запросам, архитектуры развёртывания и нужного уровня поддержки, «никогда не за токены». Заявлены SOC 2 Type 2 и ISO 27001, целевые сроки ответа поддержки — час на полное падение боевого трафика, шесть часов на частичное, сутки на вопросы настройки и трое суток на уязвимость. Пощупать можно без разговора с продажами: выдаётся пробный ключ Enterprise на 30 дней без карты.

Оплата из России

Сам LiteLLM ничего не стоит и ставится на свой сервер — платить здесь не за что. Упирается всё в другое: за шлюзом стоят ключи OpenAI, Anthropic и остальных, а их подписки и пополнения картами российских банков не оплачиваются. Пути обычные — зарубежная карта, корпоративный счёт облака, где модель уже подключена, или посредник вроде «Оплати по миру». Отдельный плюс шлюза как раз в том, что менять способ оплаты приходится в одном месте, а не в каждом приложении.

Коротко

  • LiteLLM — шлюз: один OpenAI-совместимый адрес снаружи, десятки провайдеров внутри.
  • Установка — uv tool install 'litellm[proxy]', порт по умолчанию 4000, проверка — litellm --test.
  • На Python 3.9 обычный pip тихо ставит 1.83.9 вместо свежей версии; нужен Python 3.10 и новее.
  • Модели описываются в model_list; одинаковые model_name у разных развёртываний включают балансировку.
  • Формат Anthropic /v1/messages работает у всех провайдеров, под Claude Code есть отдельный раздел документации.
  • Открытая версия бесплатна навсегда; Enterprise считается от годовой ёмкости запросов, «никогда не за токены».

Вопросы

Частые вопросы

Что такое LiteLLM и зачем нужен прокси перед моделями?

LiteLLM — открытый шлюз, который прячет все модельные API за одним OpenAI-совместимым адресом. Приложение ходит в один эндпоинт и одним ключом, а куда именно уйдёт запрос — в OpenAI, Anthropic, Bedrock, Vertex AI или локальную Ollama — решает конфиг шлюза. Заодно на этом слое считается расход, режутся бюджеты и включаются фолбэки на запасную модель.

Как установить LiteLLM Proxy и на каком порту он поднимается?

Команда установки — uv tool install 'litellm[proxy]', запуск — litellm --model с именем провайдера и модели. Прокси поднимается на порту 4000, проверить его можно командой litellm --test из другой оболочки. Начиная с версии 1.84.0 нужен Python 3.10 или новее; uv сам подтягивает подходящий интерпретатор.

Почему pip install litellm ставит старую версию?

Это описанная в документации ловушка Python 3.9. На нём голый pip install 'litellm[proxy]' не выдаёт ошибку, а молча откатывается до 1.83.9 — последнего релиза, который ещё допускал такую версию Python. Лечится проверкой python --version и обновлением до 3.10 либо установкой через uv tool install.

Можно ли подключить Claude Code через LiteLLM?

Да, у шлюза есть эндпоинт /v1/messages в формате Anthropic, и работает он для всех поддерживаемых провайдеров, а не только для самой Anthropic. В документации под Claude Code выделен отдельный раздел: быстрый старт, свой ключ, подписка Max, учёт расхода по проектам, маршрутизация кэша промптов и MCP.

Насколько совместим Claude Code с LiteLLM на разных облаках?

У проекта есть матрица совместимости, которую ежедневно пересобирает автоматический прогон CLI Claude Code на Haiku 4.5, Sonnet 4.6 и Opus 4.7 сразу. В снимке от 20 августа 2026 года из пятнадцати строк красными были три ячейки: thinking и PDF на Bedrock Converse и поиск инструментов MCP на Bedrock Invoke. Остальные комбинации проходили.

Сколько стоит LiteLLM?

Открытая версия бесплатна навсегда при самостоятельном хостинге и уже включает виртуальные ключи, команды, учёт расхода, бюджеты, ограничители, фолбэки и метрики Prometheus. Enterprise добавляет SSO и SCIM, журнал аудита, менеджеры секретов и поддержку с SLA; цена в открытом виде не публикуется и считается от годовой ёмкости шлюза по запросам, а не за токены.

Читать дальше

Соседние гайды

ИИ-офис
Собери свой ИИ-офис и перестань делать руками то, что делает нейросеть

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

Посмотреть, что внутри

telegram

Канал с полезными материалами про нейросети

Разборы, новые инструменты и приёмы по ИИ — то, чем пользуюсь сам, без воды. Подпишись, чтобы не потерять.

Перейти в канал
Кирилл Сандаков

Об авторе

Кирилл Сандаков

Вайбкодер, предприниматель, продюсер

Завайбкодил контент-ферму на США в Instagram (более 300 тыс. подписчиков, среди читателей Дональд Трамп Младший), создатель платформы и сообщества ИИ-офис, автор блога о нейросетях «Выжимаем из ИИ Максимум».

Все статьи автора