LiteLLM — открытый AI Gateway для 100+ LLM-провайдеров

· 3 мин чтения
llm ai-gateway proxy api open-source python mcp
📂 Исходный код на GitHub

Открытый AI Gateway для вызова 100+ LLM-провайдеров через единый OpenAI-совместимый интерфейс. Используется как Python SDK или как self-hosted прокси-сервер: виртуальные ключи, учёт затрат, guardrails, балансировка нагрузки, RAG, MCP и A2A-гейтвей, админ-дашборд.

LiteLLM — открытый AI Gateway для 100+ LLM-провайдеров

LiteLLM — открытый AI Gateway для 100+ LLM-провайдеров

LiteLLM — это open-source AI Gateway, который даёт единый интерфейс для вызова более чем 100 LLM-провайдеров: OpenAI, Anthropic, Gemini, Bedrock, Azure и многих других. Ключевая идея — работать со всеми моделями через один стандарт — OpenAI-формат запросов, не разбираясь в тонкостях каждого SDK.

Проект используется двумя способами:

  • Как Python SDK — встраивается прямо в код и позволяет менять провайдера без переписывания логики.
  • Как прокси-сервер (AI Gateway) — разворачивается как центральный сервис для команды или организации с виртуальными ключами, трекингом затрат, guardrails, балансировкой нагрузки и админ-дашбордом.

LiteLLM стал де-факто стандартом для разработчиков, которым нужна единая точка входа к большому числу языковых моделей. Поддерживается и используется такими компаниями, как Stripe, Netflix, Google ADK, Greptile, OpenHands и OpenAI Agents SDK.

Зачем нужен AI Gateway

Управление LLM-вызовами быстро усложняется, когда провайдеров больше одного. У каждой модели свои SDK, свои схемы аутентификации, свои форматы запросов и свои типы ошибок. LiteLLM убирает эту рутину:

  • Единый API — один интерфейс для 100+ LLM, без жонглирования провайдер-специфичными SDK.
  • Drop-in совместимость с OpenAI — можно менять провайдера без переписывания кода.
  • Production-ready гейтвей — виртуальные ключи, учёт затрат, guardrails, балансировка нагрузки и админ-дашборд «из коробки».
  • Низкая задержка — по бенчмаркам проекта, около 8 мс P95 на 1k RPS.

Python SDK

Самый быстрый способ познакомиться с LiteLLM — установить его как библиотеку и вызвать completion():

uv add litellm
from litellm import completion
import os

os.environ["OPENAI_API_KEY"] = "your-openai-key"
os.environ["ANTHROPIC_API_KEY"] = "your-anthropic-key"

# OpenAI
response = completion(model="openai/gpt-4o", messages=[{"role": "user", "content": "Hello!"}])

# Anthropic
response = completion(model="anthropic/claude-sonnet-4-20250514", messages=[{"role": "user", "content": "Hello!"}])

Обратите внимание на формат модели: провайдер указывается префиксом (openai/…, anthropic/…). Один и тот же код работает с любым провайдером — достаточно поменять имя модели.

AI Gateway (прокси-сервер)

Для команд и организаций LiteLLM разворачивается как центральный сервис. Это прослойка между вашим приложением и всеми LLM-провайдерами. Старт занимает пару команд:

uv tool install 'litellm[proxy]'
litellm --model gpt-4o

После запуска прокси доступен на http://0.0.0.0:4000. Клиент остаётся обычным OpenAI-клиентом — меняется только base_url:

import openai

client = openai.OpenAI(api_key="anything", base_url="http://0.0.0.0:4000")
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello!"}]
)

В Python SDK, помимо базового вызова, есть механизм Router: он берёт на себя retry и fallback между несколькими деплоями одной и той же модели (например, Azure и OpenAI), делает балансировку нагрузки на уровне приложения и ведёт учёт затрат. Ошибки, которые возвращает LiteLLM, совместимы с ошибками OpenAI, поэтому обработка исключений в вашем коде не меняется. Наблюдаемость подключается через callback-и — поддерживаются Lunary, MLflow, Langfuse и другие платформы.

Прокси даёт возможности уровня enterprise, которые трудно реализовать самостоятельно:

  • Виртуальные ключи — безопасный контроль доступа. Ваши приложения не хранят напрямую ключи провайдеров.
  • Мульти-тенантный учёт затрат — трекинг трат по проектам и пользователям.
  • Пер-проектная настройка — логирование, guardrails, кеширование для каждой команды отдельно.
  • Балансировка нагрузки и fallback между несколькими деплоями.
  • Админ-дашборд для мониторинга и управления.

Это сочетание делает LiteLLM похожим на центральную «LLM-платформу» внутри компании, которую обслуживает отдельная команда AI-инфраструктуры.

MCP Gateway

LiteLLM умеет подключать MCP-серверы к любой LLM. Можно использовать MCP-инструменты как обычные tools в запросах /chat/completions:

curl -X POST 'http://0.0.0.0:4000/v1/chat/completions' \
  -H 'Authorization: Bearer sk-1234' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "gpt-4o",
    "messages": [{"role": "user", "content": "Summarize the latest open PR"}],
    "tools": [{
      "type": "mcp",
      "server_url": "litellm_proxy/mcp/github",
      "server_label": "github_mcp",
      "require_approval": "never"
    }]
  }'

В Python SDK тоже доступен MCP-мост — инструменты загружаются в OpenAI-формате и передаются любой модели:

from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
from litellm import experimental_mcp_client
import litellm

server_params = StdioServerParameters(command="python", args=["mcp_server.py"])

async with stdio_client(server_params) as (read, write):
    async with ClientSession(read, write) as session:
        await session.initialize()

        # Load MCP tools in OpenAI format
        tools = await experimental_mcp_client.load_mcp_tools(session=session, format="openai")

        # Use with any LiteLLM model
        response = await litellm.acompletion(
            model="gpt-4o",
            messages=[{"role": "user", "content": "What's 3 + 5?"}],
            tools=tools
        )

Так LiteLLM превращается в единую точку доступа и к моделям, и к инструментам — полезно при построении собственных агентских стеков.

A2A — гейтвей для агентов

Помимо классических LLM-вызовов, LiteLLM поддерживает протокол A2A (Agent-to-Agent) для вызова агентов — как из Python SDK, так и через прокси. Интеграции включают LangGraph, Vertex AI Agent Engine, Azure AI Foundry, Bedrock AgentCore и Pydantic AI. Агент добавляется в гейтвей, после чего к нему обращаются через A2A SDK по OpenAI-совместимому интерфейсу.

Поддерживаемые операции

LiteLLM покрывает не только чат. Через прокси доступны разнообразные эндпоинты: /chat/completions, /responses, /embeddings, /images, /audio, /batches, /rerank, /a2a, /messages и другие. Практически для всех популярных провайдеров (OpenAI, Anthropic, Azure, Gemini, Bedrock, Mistral, Groq, DeepSeek, vLLM, Ollama и др.) доступны чат, embeddings, а часто и генерация изображений, транскрибация аудио и модерация.

Деплой в production

Для продакшена проект предоставляет готовые сценарии развёртывания:

  • Docker — стабильные образы с тегом -stable, которые перед публикацией проходят 12-часовые нагрузочные тесты.
  • Terraform-модули для AWS и GCP — production-ready компонентный стек (гейтвей, бэкенд, UI как отдельные сервисы, управляемые Postgres + Redis + object store). Оба модуля опубликованы в публичном реестре Terraform и не требуют аутентификации.
  • Helm-чарт для Kubernetes.

Все Docker-образы в GHCR подписаны через cosign, что позволяет проверять их целостность перед развёртыванием.

Ключевые технические детали

  • Язык: Python. Код следует Google Python Style Guide и проверяется Black (форматирование), Ruff (линт), MyPy (типизация), а также проверками на циклические импорты.
  • Лицензия: MIT для основной части; часть enterprise-функций распространяется под отдельной коммерческой лицензией (SSO, продвинутые функции безопасности, приоритизация фич и профподдержка).
  • Подход: единый интерфейс поверх множества провайдеров, реализованный и как библиотека, и как сервис.

Вывод

LiteLLM закрывает реальную боль разработчиков и платформенных команд: разрозненные SDK и форматы запросов 100+ провайдеров. Он даёт одну точку входа — в формате OpenAI — и масштабируется от простого SDK в вашем скрипте до центрального гейтвея компании с учётом затрат, безопасностью, guardrails и интеграцией с MCP и A2A.

Проект активно развивается: поддержка новых провайдеров и эндпоинтов добавляется регулярно, а отсутствующий провайдер можно запросить через feature-request на GitHub. Это делает LiteLLM живым инструментом, а не замороженной библиотекой.

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

Полезные ссылки:

Источник: https://github.com/BerriAI/litellm