LiteLLM: универсальный интерфейс для работы с LLM — полный гайд по использованию
LiteLLM — это легковесная библиотека с открытым исходным кодом, которая предоставляет единый интерфейс для работы с более чем 100 языковыми моделями от различных провайдеров, включая OpenAI, Anthropic, Cohere, Hugging Face, Google и многие другие. Она решает проблему фрагментации API, позволяя разра

LiteLLM — это легковесная библиотека с открытым исходным кодом, которая предоставляет единый интерфейс для работы с более чем 100 языковыми моделями от различных провайдеров, включая OpenAI, Anthropic, Cohere, Hugging Face, Google и многие другие. Она решает проблему фрагментации API, позволяя разработчикам переключаться между моделями простым изменением строки кода. В этом руководстве мы подробно разберём, что такое LiteLLM, как его установить и использовать, а также рассмотрим продвинутые возможности, такие как потоковая передача, fallback-модели и прокси-сервер.
Что такое LiteLLM и как он работает
LiteLLM — это библиотека на Python, которая абстрагирует работу с различными API языковых моделей. Разработанная сообществом, она поддерживает синхронные и асинхронные запросы, потоковую передачу, работу с функциями и инструментами, а также управление затратами и лимитами. Установка проста — достаточно выполнить pip install litellm. После этого можно отправлять запросы к любой поддерживаемой модели, указав её имя и ключ API, и LiteLLM автоматически преобразует запрос в нужный формат. Библиотека берёт на себя слой абстракции, позволяя переключаться между моделями простым изменением строки. Проект быстро набрал популярность на GitHub, став стандартом де-факто для многих команд, работающих с LLM.
Как использовать LiteLLM в своём проекте?
Чтобы начать, достаточно импортировать библиотеку и вызвать функцию completion с указанием модели и сообщений. Например:
python from litellm import completion response = completion(model="gpt-4", messages=[{"role": "user", "content": "Hello"}])
Для смены модели достаточно изменить параметр model на, скажем, "claude-2" или "command-nightly". Библиотека автоматически подставит нужный API-эндпоинт и формат. Также можно настроить fallback-модели: если первая модель недоступна или превышен лимит, LiteLLM переключится на запасную. Это особенно полезно для обеспечения отказоустойчивости в продакшене. Например, можно задать список моделей в порядке приоритета:
python response = completion(model="gpt-4", fallbacks=["claude-2", "command-nightly"], messages=[...])
Какие модели поддерживает LiteLLM?
LiteLLM поддерживает более 100 моделей от ведущих провайдеров, включая OpenAI (GPT-4, GPT-3.5), Anthropic (Claude 2, Claude Instant), Cohere (Command, Command Light), Hugging Face (любые модели через Inference API), Google (PaLM 2, Gemini), Mistral AI (Mistral 7B, Mixtral 8x7B), Meta (Llama 2 через Replicate или Together AI), а также локальные модели через Ollama или vLLM. Полный список можно найти в документации. Библиотека постоянно обновляется, добавляя поддержку новых моделей. В российском контексте LiteLLM может быть особенно актуален, так как позволяет легко переключаться между зарубежными и локальными моделями, например YandexGPT или GigaChat, если добавить соответствующий провайдер.
Технические подробности и возможности
LiteLLM поддерживает не только базовые текстовые запросы, но и продвинутые функции: потоковую передачу ответов (streaming), работу с инструментами (function calling), встраивание (embeddings), а также асинхронные вызовы для повышения производительности. Библиотека умеет автоматически обрабатывать ошибки, повторять запросы при тайм-аутах и управлять лимитами скорости. Для мониторинга затрат встроен трекер, который подсчитывает стоимость каждого запроса в реальном времени. Кроме того, LiteLLM поддерживает прокси-сервер, который можно развернуть как отдельный сервис для централизованного управления моделями в команде. Это позволяет задавать общие лимиты, логировать все запросы и обеспечивать безопасность.
Как настроить прокси-сервер LiteLLM?
Прокси-сервер LiteLLM — это отдельный сервис, который можно запустить с помощью Docker или напрямую через Python. Он предоставляет REST API, совместимый с форматом OpenAI, что позволяет использовать его как замену API OpenAI. Для запуска достаточно выполнить:
bash litellm --model gpt-4 --port 8000
После этого можно отправлять запросы на http://localhost:8000/v1/chat/completions с теми же параметрами, что и для OpenAI. Прокси поддерживает аутентификацию, управление пользователями и лимитами, а также логирование. Это идеальное решение для команд, которые хотят централизованно контролировать доступ к моделям и расходы.
Кого затронет и как
LiteLLM в первую очередь полезен разработчикам и командам, которые активно интегрируют LLM в свои приложения. Для стартапов и небольших команд это способ сократить время на интеграцию и тестирование разных моделей. Для крупных компаний — возможность централизованно управлять доступом к моделям и контролировать расходы. Библиотека с открытым исходным кодом, поэтому её можно адаптировать под свои нужды и развернуть на собственных серверах, что важно для компаний с требованиями к безопасности данных.
Что будет дальше
Разработчики LiteLLM активно добавляют поддержку новых моделей и провайдеров. В ближайших планах — улучшение поддержки мультимодальных моделей (работа с изображениями и аудио), расширение функциональности прокси-сервера и интеграция с популярными фреймворками оркестрации, такими как LangChain. Сообщество также работает над инструментами для автоматического тестирования и A/B-тестирования моделей. Скорее всего, LiteLLM станет стандартным слоем абстракции для многих AI-продуктов, аналогично тому, как requests стал стандартом для HTTP-запросов в Python.
Итог
LiteLLM — это мощный и простой инструмент, который решает реальную проблему фрагментации API языковых моделей. Он экономит время, упрощает переключение между моделями и помогает контролировать затраты. Если вы работаете с LLM, стоит попробовать LiteLLM — возможно, он станет незаменимой частью вашего инструментария.