LiteLLM — открытый AI Gateway для 100+ LLM-провайдеров
📂 Исходный код на GitHubОткрытый AI Gateway для вызова 100+ LLM-провайдеров через единый OpenAI-совместимый интерфейс. Используется как Python SDK или как self-hosted прокси-сервер: виртуальные ключи, учёт затрат, guardrails, балансировка нагрузки, RAG, MCP и A2A-гейтвей, админ-дашборд.
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 стоит рассмотреть как стандартный слой между вашим кодом и моделями.
Полезные ссылки:
- Исходный код: github.com/BerriAI/litellm
- Документация: docs.litellm.ai
Источник: https://github.com/BerriAI/litellm