|

Понимание 5 ключевых концепций единого шлюза LiteLLM: руководство по инфраструктуре AI-агентов для новичков

Знакома ли вам ситуация, когда в проекте одновременно используются GPT от OpenAI, Claude от Anthropic и Gemini от Google, и у каждого из них свои SDK, форматы API и даже способы обработки ошибок? Стоит сменить модель, как приходится переписывать половину кода.

Именно эту проблему решает LiteLLM. Если в двух словах: LiteLLM — это «универсальный переводчик» для больших языковых моделей. Вам достаточно освоить один способ вызова (формат OpenAI), а библиотека сама переведет его в API-форматы более чем 100 различных провайдеров.

Ключевая ценность: из этой статьи вы узнаете, что такое LiteLLM, почему его используют все современные фреймворки для AI-агентов и как начать работу с ним буквально за 5 минут.

litellm-beginner-guide-unified-api-gateway-ai-agent-tutorial-ru 图示

Что такое LiteLLM: 5 ключевых концепций

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

Ключевая концепция Простое объяснение Какую проблему решает
Единый интерфейс Все модели вызываются одинаково Не нужно учить отдельный SDK для каждой модели
Provider (Провайдер) Вендоры моделей: OpenAI, Anthropic и др. Управление способами подключения к разным вендорам
Fallback (Отказоустойчивость) Автоматическое переключение на модель B, если модель А упала Гарантия непрерывности сервиса
Virtual Key (Виртуальный ключ) Выдача «субаккаунтов» членам команды Контроль использования и бюджета
Proxy (Прокси-шлюз) Автономный сервис-прокси API Доступ из любого языка программирования и любого инструмента

Какие «боли» решает LiteLLM?

Представьте мир без LiteLLM:

Вызов OpenAI:

from openai import OpenAI
client = OpenAI(api_key="sk-xxx")
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Привет"}]
)

Вызов Anthropic:

import anthropic
client = anthropic.Anthropic(api_key="sk-ant-xxx")
response = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,  # Для Anthropic это обязательно
    messages=[{"role": "user", "content": "Привет"}]
)

Вызов Google Gemini:

import google.generativeai as genai
genai.configure(api_key="AIza-xxx")
model = genai.GenerativeModel("gemini-2.0-flash")
response = model.generate_content("Привет")

Видите? Три модели, три разных SDK, три разных способа написания кода. Если ваш проект должен поддерживать переключение между моделями, код будет переполнен условиями вроде if provider == "openai"... elif provider == "anthropic"....

С LiteLLM всё проще:

import litellm

# Вызов OpenAI
response = litellm.completion(model="gpt-4o", messages=[{"role": "user", "content": "Привет"}])

# Вызов Anthropic — тот же самый синтаксис
response = litellm.completion(model="anthropic/claude-sonnet-4-6", messages=[{"role": "user", "content": "Привет"}])

# Вызов Gemini — всё еще тот же синтаксис
response = litellm.completion(model="gemini/gemini-2.0-flash", messages=[{"role": "user", "content": "Привет"}])

Один метод litellm.completion(), просто меняете параметр model. LiteLLM автоматически выполняет преобразование форматов, адаптацию параметров и стандартизацию ответов.

🎯 Технический совет: Концепция единого интерфейса LiteLLM похожа на APIYI (apiyi.com) — оба решения позволяют вызывать множество моделей через один интерфейс. Разница в том, что LiteLLM — это open-source решение для самостоятельного развертывания, а APIYI — это хостинг-сервис, который не требует настройки. Выбирайте подходящий вариант в зависимости от технических возможностей вашей команды.

Подробный разбор двух режимов использования LiteLLM

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

litellm-beginner-guide-unified-api-gateway-ai-agent-tutorial-ru 图示

Режим 1: Python SDK (легковесный)

Импортируйте пакет litellm прямо в ваш Python-код и используйте его как обычную функцию.

Подходящие сценарии:

  • Индивидуальные разработчики
  • Чисто Python-проекты
  • Быстрая проверка прототипов
  • Не требуются функции корпоративного управления

Установка:

pip install litellm

Базовое использование:

import litellm
import os

# Установка API-ключа (через переменные окружения)
os.environ["OPENAI_API_KEY"] = "sk-ваш_ключ"
os.environ["ANTHROPIC_API_KEY"] = "sk-ant-ваш_ключ"

# Вызов любой модели
response = litellm.completion(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Объясни, что такое API-шлюз"}]
)

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

Режим 2: Proxy Server (корпоративный шлюз)

Работает как отдельный сервер, предоставляющий HTTP-интерфейс, совместимый с OpenAI. Любой язык программирования, любой инструмент — всё, что может отправлять HTTP-запросы, будет работать.

Подходящие сценарии:

  • Командная работа
  • Мультиязычные проекты (Java, Go, Node.js и др.)
  • Необходимость отслеживания расходов и управления бюджетом
  • Необходимость выдачи виртуальных ключей разным командам
  • Интеграция с фреймворками AI Agent

Установка и запуск:

# Установка
pip install 'litellm[proxy]'

# Запуск с файлом конфигурации
litellm --config config.yaml --port 4000

# Или через Docker
docker run -p 4000:4000 \
  -e OPENAI_API_KEY=sk-xxx \
  ghcr.io/berriai/litellm:main-latest

После запуска любое приложение может обращаться к нему так же, как к OpenAI:

from openai import OpenAI

# Указываем base_url на LiteLLM Proxy
client = OpenAI(
    api_key="sk-ваш_виртуальный_ключ",
    base_url="http://localhost:4000/v1"
)

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Привет"}]
)

Сравнение LiteLLM SDK и режима Proxy

Параметр сравнения Python SDK Proxy Server
Способ установки pip install litellm pip install 'litellm[proxy]' или Docker
Способ вызова Вызов функции Python HTTP API (любой язык)
Конфигурация Настройка в коде Файл config.yaml
Управление вирт. ключами Не поддерживается Поддерживается, с лимитами бюджета
Веб-панель управления Нет Есть, визуальное управление
Управление командой Нет Да (пользователи/команды/бюджеты)
Отслеживание расходов Базовое (на уровне кода) Полное (с сохранением в БД)
Сложность развертывания Нулевая Требуется обслуживание сервера
Для кого Индивидуальные разработчики Команды/компании

💡 Совет по выбору: Если вы индивидуальный разработчик и делаете прототип, режим SDK запустится за 5 минут. Если же это командная работа или продакшн-среда, режим Proxy подходит лучше. Конечно, если вы не хотите самостоятельно развертывать и обслуживать сервер, вы также можете воспользоваться хостинг-сервисом с единым интерфейсом, таким как APIYI (apiyi.com), который готов к работе сразу после подключения.

Руководство по быстрому старту LiteLLM

Ниже представлены полные шаги для начала работы с LiteLLM с нуля.

Быстрый старт в режиме LiteLLM SDK

Шаг 1: Установка

pip install litellm

Шаг 2: Настройка переменных окружения

# macOS / Linux
export OPENAI_API_KEY="sk-ваш-ключ"
export ANTHROPIC_API_KEY="sk-ant-ваш-ключ"

# Windows
set OPENAI_API_KEY=sk-ваш-ключ

Шаг 3: Написание кода

import litellm

# Базовый вызов
response = litellm.completion(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "Ты — технический ассистент"},
        {"role": "user", "content": "Что такое LLM-шлюз?"}
    ],
    temperature=0.7
)

print(response.choices[0].message.content)
print(f"Расход токенов: {response.usage.total_tokens}")
print(f"Оценочная стоимость: ${response._hidden_params.get('response_cost', 'N/A')}")
Посмотреть полный код: с Fallback и потоковым выводом
import litellm
import os

os.environ["OPENAI_API_KEY"] = "sk-ваш-ключ"
os.environ["ANTHROPIC_API_KEY"] = "sk-ant-ваш-ключ"

# Вызов с Fallback: если GPT-4o не ответит, автоматически переключится на Claude
response = litellm.completion(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Объясни, что такое RESTful API"}],
    fallbacks=["anthropic/claude-sonnet-4-6"],
    num_retries=2
)

# Потоковый вывод
stream = litellm.completion(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Напиши стихотворение о программировании"}],
    stream=True
)

for chunk in stream:
    content = chunk.choices[0].delta.content
    if content:
        print(content, end="", flush=True)

Быстрый старт в режиме LiteLLM Proxy

Шаг 1: Создание файла конфигурации config.yaml

model_list:
  - model_name: gpt-4o
    litellm_params:
      model: openai/gpt-4o
      api_key: os.environ/OPENAI_API_KEY

  - model_name: claude-sonnet
    litellm_params:
      model: anthropic/claude-sonnet-4-6
      api_key: os.environ/ANTHROPIC_API_KEY

  - model_name: gemini-flash
    litellm_params:
      model: gemini/gemini-2.0-flash
      api_key: os.environ/GEMINI_API_KEY

litellm_settings:
  drop_params: true
  num_retries: 3

general_settings:
  master_key: sk-my-master-key

Шаг 2: Запуск Proxy

litellm --config config.yaml --port 4000

Шаг 3: Вызов через стандартный OpenAI SDK

from openai import OpenAI

client = OpenAI(
    api_key="sk-my-master-key",
    base_url="http://localhost:4000/v1"
)

# Вызов GPT-4o (через LiteLLM Proxy)
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Привет"}]
)
print(response.choices[0].message.content)

Также можно использовать cURL для прямого вызова:

curl http://localhost:4000/v1/chat/completions \
  -H "Authorization: Bearer sk-my-master-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet",
    "messages": [{"role": "user", "content": "Hello"}]
  }'

🚀 Быстрый старт: LiteLLM Proxy требует самостоятельного управления сервером и API-ключами. Если вы хотите использовать единый интерфейс без развертывания, попробуйте APIYI (apiyi.com). Он поддерживает вызов более 100 моделей через формат, совместимый с OpenAI, без необходимости настраивать инфраструктуру.

Ключевая роль LiteLLM в AI-агентах

Это частый вопрос новичков: почему почти все популярные фреймворки для AI-агентов поддерживают или даже рекомендуют использовать LiteLLM?

Зачем AI-агентам нужен LiteLLM?

При выполнении задач AI-агентам часто требуется:

  1. Вызов разных моделей: простые задачи — для дешевых моделей, сложные рассуждения — для мощных.
  2. Автоматическое понижение уровня (Fallback): при ограничении скорости или сбое основной модели — автоматическое переключение на резервную.
  3. Контроль затрат: при параллельной работе нескольких агентов необходимо отслеживать и ограничивать расход токенов.
  4. Командная работа: возможность для разных разработчиков совместно использовать пул API-ресурсов.

LiteLLM идеально решает эти задачи, выступая в роли «центра управления» между агентом и моделями.

Интеграция LiteLLM с популярными фреймворками

Фреймворк агентов Способ интеграции Типичное использование
LangChain / LangGraph Встроенная поддержка SDK ChatLiteLLM как LLM-бэкенд
CrewAI Подключение через Proxy Общий пул моделей для нескольких агентов
AutoGen (Microsoft) Подключение через Proxy Доступ через эндпоинт, совместимый с OpenAI
Dify Пользовательский провайдер Настройка как эндпоинта, совместимого с OpenAI
Open WebUI Подключение через Proxy Бэкенд API-эндпоинт
Aider Подключение через Proxy Модельный слой для агента генерации кода
Continue.dev Подключение через Proxy Бэкенд для AI-помощника в IDE

Типичная архитектура LiteLLM в мультиагентных системах

В системе с несколькими агентами LiteLLM Proxy обычно работает так:

  1. Агент планирования → вызывает Claude Opus (модель с сильной логикой)
  2. Агент исполнения → вызывает GPT-4o (сбалансированная производительность)
  3. Агент проверки → вызывает GPT-4o-mini (быстро и дешево)
  4. Агент суммаризации → вызывает Gemini Flash (большое контекстное окно)

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

litellm-beginner-guide-unified-api-gateway-ai-agent-tutorial-ru 图示

🎯 Технический совет: В продакшн-системах с несколькими агентами LiteLLM Proxy требует использования PostgreSQL и Redis для полноценной работы функций отслеживания затрат и кэширования. Если ваша команда невелика или вы не хотите заниматься обслуживанием дополнительной инфраструктуры, APIYI (apiyi.com) предоставляет аналогичные возможности единого интерфейса со встроенным отслеживанием расходов и статистики использования без необходимости развертывания баз данных.

Подробный разбор продвинутых функций LiteLLM

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

Продвинутая функция №1: Fallback моделей (отказоустойчивость)

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

Настройка Fallback в SDK:

response = litellm.completion(
    model="gpt-4o",
    messages=messages,
    fallbacks=["anthropic/claude-sonnet-4-6", "gemini/gemini-2.0-flash"],
    num_retries=2
)

Логика работы: сначала пробуем GPT-4o → если ошибка, пробуем Claude Sonnet → если снова ошибка, пробуем Gemini Flash.

Настройка Fallback в Proxy (config.yaml):

litellm_settings:
  fallbacks:
    - gpt-4o: [claude-sonnet, gemini-flash]
    - claude-sonnet: [gpt-4o, gemini-flash]

Продвинутая функция №2: Балансировка нагрузки

Если у вас настроено несколько бэкендов для одной и той же модели, LiteLLM будет автоматически распределять запросы между ними.

model_list:
  # Одно имя модели, два разных бэкенда
  - model_name: gpt-4o
    litellm_params:
      model: openai/gpt-4o
      api_key: os.environ/OPENAI_KEY_1

  - model_name: gpt-4o
    litellm_params:
      model: azure/gpt-4o-deployment
      api_key: os.environ/AZURE_KEY_1
      api_base: https://my-azure.openai.azure.com

router_settings:
  routing_strategy: least-busy  # Приоритет наименее загруженному
  # Другие стратегии: simple-shuffle, latency-based

При вызове достаточно указать model="gpt-4o", и LiteLLM сам распределит трафик между прямым подключением к OpenAI и развертыванием в Azure.

Продвинутая функция №3: Отслеживание расходов и виртуальные ключи

Генерация виртуального ключа (режим Proxy):

curl http://localhost:4000/key/generate \
  -H "Authorization: Bearer sk-master-key" \
  -H "Content-Type: application/json" \
  -d '{
    "max_budget": 50.0,
    "budget_duration": "monthly",
    "models": ["gpt-4o", "claude-sonnet"],
    "metadata": {"user": "developer-01"}
  }'

Это создаст виртуальный ключ с лимитом $50 в месяц, который можно использовать только для вызова GPT-4o и Claude Sonnet.

Отслеживание расходов:

LiteLLM имеет встроенные прайс-листы для каждой модели, поэтому стоимость каждого вызова API рассчитывается автоматически. В панели управления Proxy можно посмотреть:

  • Общие расходы по моделям
  • Детализацию расходов по пользователям/командам
  • Динамику затрат по времени
  • Статистику использования токенов

💰 Оптимизация затрат: Функция отслеживания расходов в LiteLLM поможет вам выявить самые дорогие вызовы моделей. В сочетании с ценовыми преимуществами APIYI (apiyi.com) вы можете получить более выгодные тарифы на те же модели, что еще сильнее снизит операционные расходы на ваши AI-приложения.

Обзор 100+ провайдеров моделей, поддерживаемых LiteLLM

LiteLLM поддерживает огромное количество провайдеров. Вот основные категории:

Категория Провайдер Префикс модели Примеры моделей
Коммерческие модели OpenAI openai/ GPT-4o, GPT-4o-mini, o3
Anthropic anthropic/ Claude Opus 4, Sonnet 4, Haiku
Google gemini/ Gemini 2.0 Flash, Gemini 2.5 Pro
Облачные платформы Azure OpenAI azure/ GPT-серия в Azure
AWS Bedrock bedrock/ Claude/Llama в Bedrock
Google Vertex AI vertex_ai/ Gemini в Vertex AI
Ускорение инференса Groq groq/ Llama 3.1 70B (сверхбыстрый)
Together AI together_ai/ Различные open-source модели
Fireworks AI fireworks_ai/ Высокопроизводительный инференс
Локальный запуск Ollama ollama/ Llama/Mistral локально
vLLM openai/ (своя base) Самостоятельный движок инференса
Китайские модели Deepseek deepseek/ Deepseek Chat/Coder
Поиск с ИИ Perplexity perplexity/ Sonar Pro
Агрегаторы OpenRouter openrouter/ Различные модели

🎯 Совет по выбору: Выбор модели зависит от конкретной задачи. Если вы не уверены, что использовать, протестируйте разные модели через платформу APIYI (apiyi.com) — она также поддерживает вызовы через совместимый с OpenAI интерфейс для большинства вышеуказанных моделей.

litellm-beginner-guide-unified-api-gateway-ai-agent-tutorial-ru 图示

FAQ по LiteLLM

Q1: В чем разница между LiteLLM и использованием OpenAI SDK напрямую?

OpenAI SDK позволяет работать только с моделями OpenAI. LiteLLM расширяет возможности OpenAI SDK, позволяя использовать тот же формат кода для вызова более 100 провайдеров моделей, таких как Anthropic, Google, Azure и другие. Если ваш проект использует только модели OpenAI, достаточно стандартного SDK. Но если вам нужна поддержка нескольких моделей, отказоустойчивость или контроль расходов, LiteLLM станет лучшим выбором.

Q2: LiteLLM бесплатный?

Основные функции LiteLLM полностью открыты и бесплатны (лицензия MIT). Однако важно помнить: сам LiteLLM бесплатен, но API моделей, которые он вызывает, платные. Вам нужно самостоятельно получить API-ключи от OpenAI, Anthropic и других официальных провайдеров и оплачивать вызовы моделей. Если вы не хотите управлять множеством ключей по отдельности, можно использовать единые платформы API, такие как APIYI (apiyi.com), для упрощения управления ключами.

Q3: Какие требования к серверу для LiteLLM Proxy?

LiteLLM Proxy довольно легкий, его можно запустить даже на сервере с 1 ядром и 1 ГБ оперативной памяти. Но если вам нужны расширенные функции (отслеживание расходов, управление виртуальными ключами), потребуются базы данных PostgreSQL и Redis. Для продакшн-среды рекомендуется минимум 2 ядра, 4 ГБ ОЗУ, PostgreSQL и Redis.

Q4: В чем разница между LiteLLM и OpenRouter?

Главное отличие: LiteLLM — это решение с открытым исходным кодом для самостоятельного развертывания, а OpenRouter — это управляемый сервис.

  • LiteLLM: бесплатно, вы разворачиваете сами, сами управляете API-ключами и полностью контролируете поток данных.
  • OpenRouter: готовое решение «из коробки», но с наценкой на стоимость вызовов API, а данные проходят через третью сторону.

Если вы цените конфиденциальность данных или у вас есть свои API-ключи, выбирайте LiteLLM. Если хотите быстро начать работу без развертывания инфраструктуры, рассмотрите управляемые решения, такие как APIYI (apiyi.com).

Q5: Поддерживает ли LiteLLM потоковую передачу (Streaming)?

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

# Пример потоковой передачи
stream = litellm.completion(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Напиши рассказ"}],
    stream=True
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")
Q6: Что выбрать новичку: режим SDK или режим Proxy?

Если вы Python-разработчик и только начинаете обучение, проще всего начать с режима SDK — pip install litellm и пара строк кода, и всё готово. Когда возникнет необходимость в командной работе, поддержке нескольких языков или деплое в продакшн, вы сможете перейти на режим Proxy. Основной способ вызова в обоих режимах идентичен, поэтому миграция будет очень простой.

Q7: Где хранить файл конфигурации config.yaml для LiteLLM?

Фиксированного места нет. При запуске Proxy просто укажите путь через параметр --config:

litellm --config /path/to/your/config.yaml

Обычно рекомендуется хранить его в корне проекта или в специальной папке конфигураций. Если вы используете Docker, примонтируйте файл в контейнер через volume.

Краткое руководство по выбору LiteLLM

Выберите наиболее подходящий вариант в зависимости от ваших задач:

Ваша ситуация Рекомендуемое решение Почему?
Индивидуальный разработчик, Python-проект LiteLLM SDK Без развертывания, старт за 5 минут
Командная разработка, нужен контроль бюджета LiteLLM Proxy Виртуальные ключи + отслеживание расходов
Не хотите настраивать инфраструктуру APIYI (apiyi.com) Управляемый сервис, готово к работе
Мультиагентные системы LiteLLM Proxy Единая маршрутизация + балансировка нагрузки
Используете только модели OpenAI OpenAI SDK напрямую Нет нужды в дополнительном слое
Важна конфиденциальность данных LiteLLM (self-hosted) Данные не проходят через третьих лиц

Резюме

LiteLLM — это невероятно полезный инфраструктурный инструмент для разработки AI-приложений. Его главная ценность заключается в одной фразе: используйте один формат кода OpenAI для вызова API более 100 различных поставщиков моделей.

Для новичков стоит запомнить несколько ключевых моментов:

  1. LiteLLM — это «переводчик»: он помогает переводить запросы в едином формате в специфические API-форматы каждой отдельной модели.
  2. Два режима работы: SDK (легкий Python-пакет) и Proxy (отдельный сервер-шлюз).
  3. Ключевые преимущества: унифицированный интерфейс, механизмы Fallback (резервного копирования), балансировка нагрузки и отслеживание расходов.
  4. Стандарт для Agent-фреймворков: почти все популярные инструменты, такие как LangChain, CrewAI, AutoGen и другие, поддерживают LiteLLM.
  5. Полностью открытый исходный код: лицензия MIT, никаких затрат при самостоятельном развертывании.

Если вы считаете, что расходы на поддержку собственного LiteLLM Proxy слишком высоки, вы можете воспользоваться услугами хостинг-сервисов, таких как APIYI (apiyi.com). Они предоставляют аналогичный единый интерфейс, позволяя вызывать все основные модели с помощью одного API-ключа, что избавляет вас от необходимости заниматься развертыванием и обслуживанием инфраструктуры.


Автор статьи: Техническая команда APIYI
Техническое сообщество: Посетите APIYI (apiyi.com) для получения дополнительных руководств по вызову AI-моделей и технической поддержки.
Дата обновления: Апрель 2026 г.
Версия: LiteLLM v1.x+


Справочные материалы:

  1. Официальная документация LiteLLM: docs.litellm.ai
  2. Репозиторий LiteLLM на GitHub: github.com/BerriAI/litellm
  3. Официальный сайт LiteLLM: litellm.ai
  4. Официальный сайт BerriAI: berri.ai

Похожие записи