С помощью этого руководства вы развернете LLM-шлюз Litellm на бесплатной виртуальной машине в облаке Cloud.ru Evolution. Вы создадите виртуальную машину Ubuntu 22.04, назначите ей публичный IP-адрес, установите Docker и Docker Compose, запустите Litellm и опубликуете сервис через Nginx с SSL-сертификатом, выпущенным в Let’s Encrypt. В результате вы сконфигурируете Litellm для работы с Foundation Models и получите сервис, готовый к работе.
Вы будете использовать следующие сервисы:
Foundation Models — сервис для доступа к API популярных фундаментальных моделей машинного обучения с открытым исходным кодом.
«Виртуальные машины» — сервис, в рамках которого предоставляется виртуальная машина.
«Публичные IP» — сервис для организации доступа виртуальной машины в интернет.
Docker — система контейнеризации.
Docker Compose — инструмент для запуска и управления Docker-контейнерами.
Бесплатный сервис nip.io для получения публичного доменного имени и сертификата. Вы также можете использовать собственное зарегистрированное доменное имя и SSL-сертификат для организации доступа.
Nginx — веб-сервер для проксирования запросов и организации защищенного HTTPS-доступа к приложению.
Let’s Encrypt — сервис для автоматического получения бесплатного SSL-сертификата.
Litellm — комплексная платформа, предназначенная для упрощения управления несколькими большими языковыми моделями (LLM) через унифицированное API. LiteLLM предлагает унифицированное API, балансировку нагрузки, механизмы резервирования, отслеживание расходов и обработку ошибок.
Если вы уже зарегистрированы, войдите под своей учетной записью.
Загрузите публичную часть SSH-ключа в облако Cloud.ru Evolution.
На этом шаге вы создадите группу безопасности и виртуальную машину.
Создайте группу безопасности с названием litellm-service и добавьте в нее правила:
Правило входящего трафика:
Протокол: TCP
Порт: 443
Тип источника: IP-адрес
Источник: 0.0.0.0/0
Правило входящего трафика:
Протокол: TCP
Порт: 80
Тип источника: IP-адрес
Источник: 0.0.0.0/0
Правило исходящего трафика:
Протокол: Любой
Тип адресата: IP-адрес
Адресат: 0.0.0.0/0
На странице Сети → Группы безопасности убедитесь, что отображается группа безопасности litellm-service со статусом «Создана».
Создайте бесплатную виртуальную машину со следующими параметрами:
Название: litellm-service
Образ: публичный образ Ubuntu 22.04
Подключить публичный IP: включено
Тип IP: прямой IP-адрес
Группы безопасности: SSH-access_ru.AZ-1, litellm-service
Логин: litellm
Метод аутентификации: Публичный ключ и Пароль
Публичный ключ: укажите ранее созданный SSH-ключ
Пароль: задайте надежный пароль
Имя хоста: litellm-service
На странице Инфраструктура → Виртуальные машины убедитесь, что отображается виртуальная машина litellm-service со статусом «Запущена».
Следуйте инструкции по созданию API-ключа для Foundation Models. Сохраните API-ключ, он будет использоваться для конфигурации сервиса.
На верхней панели слева нажмите и перейдите в раздел Пользователи, на вкладку Сервисные аккаунты.
Нажмите на название сервисного аккаунта, который будете использовать для отправки запроса к модели.
В разделе Учетные данные доступа нажмите Создать API-ключ.
Введите название и описание API-ключа, которое поможет в будущем идентифицировать его среди других ключей.
Заполните параметры API-ключа:
Сервисы — Foundation Models.
Время действия — срок действия API-ключа и часовой пояс. Вы можете установить значение от одного дня до одного года с текущей даты. Если параметр не задан, срок действия ключа устанавливается на максимальное значение — один год. Из соображений безопасности рекомендуется выставлять средние значения, например 90 дней.
Интервал работы ключа — один или несколько интервалов времени, в которые можно использовать API-ключ.
Нажмите Создать.
Сохраните Key Secret. После закрытия окна получить его будет нельзя.
Созданный API-ключ появится в списке ключей в статусе «Активен». Подробнее о работе с API-ключом.
На этом шаге вы установите необходимые пакеты и настроите систему на виртуальной машине.
Подключитесь к виртуальной машине litellm-service через серийную консоль или по SSH.
Обновите систему и установите необходимые зависимости:
sudo apt update && sudo apt upgrade -y &&\sudo apt install -y curl apt-transport-https\ca-certificates\software-properties-common\gnupg2\lsb-release
Установите Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt updatesudo apt install docker-ce docker-ce-cli containerd.io -y
Выдайте текущему пользователю права на запуск Docker:
sudo usermod -aG docker $USERnewgrp docker
Установите Docker Compose:
sudo apt-get install docker-compose-plugin -y
Проверьте, что Docker и Docker Compose установлены корректно:
docker --versiondocker compose version
Установите Nginx сервер:
sudo apt install nginx -ysudo systemctl start nginxsudo systemctl enable nginx
Установите Let’s Encrypt и плагин для Nginx:
sudo apt install certbot python3-certbot-nginx -y
На этом шаге вы настроите службу Nginx и обеспечите доступ по HTTPS.
Подключитесь к виртуальной машине litellm-service через серийную консоль или по SSH.
Настройте файервол:
sudo ufw allow OpenSSHsudo ufw allow 'Nginx Full'sudo ufw enable
Создайте конфигурационный файл:
sudo nano /etc/nginx/sites-available/litellm.conf
Вставьте конфигурацию, заменив <ip-address> на IP-адрес вашей виртуальной машины:
server {listen 80;server_name litellm.<ip-address>.nip.io www.litellm.<ip-address>.nip.io;location / {proxy_pass http://localhost:4000;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}
Примените конфигурацию и перезапустите nginx:
sudo ln -sf /etc/nginx/sites-available/litellm.conf /etc/nginx/sites-enabled/litellm.confsudo rm -f /etc/nginx/sites-enabled/defaultsudo nginx -tsudo systemctl reload nginx
Проверьте, что nginx работает:
sudo systemctl status nginx
Сервис nginx должен быть в статусе «active (running)».
Перейдите по адресу http://litellm.<ip-address>.nip.io. Откроется страница с текстом «502 Bad Gateway».
Запустите команду для выпуска SSL-сертификата:
sudo certbot --nginx -d litellm.<ip-address>.nip.io --redirect --agree-tos -m <email>
Где:
<ip-address> — IP-адрес вашей виртуальной машины.
<email> — email-адрес для регистрации сертификата.
При выпуске сертификата через nip.io может возникнуть ошибка «too many certificates (25000) already issued for «nip.io»». Это происходит из-за популярности сервиса nip.io. При возникновении ошибки повторите команду выпуска сертификата. Если ошибка сохраняется, рассмотрите использование собственного доменного имени.
После выпуска сертификата перейдите по адресу https://litellm.<ip-address>.nip.io. Откроется страница с текстом «502 Bad Gateway». В свойствах сайта браузер отметит соединение как безопасное.
На этом шаге вы развернете LiteLLM с помощью Docker Compose.
Подключитесь к виртуальной машине litellm-service через серийную консоль или по SSH.
Создайте структуру проекта:
mkdir -p $HOME/litellmcd $HOME/litellm
Создайте файл docker-compose.yml:
nano docker-compose.yml
Вставьте содержимое в файл docker-compose.yml:
services:postgres:image: postgres:15container_name: postgres-for-litellmenvironment:POSTGRES_USER: litellmPOSTGRES_PASSWORD: ${POSTGRES_PASSWORD}POSTGRES_DB: litellm_dbvolumes:- postgres_data:/var/lib/postgresql/dataenv_file:- ./.envports:- "5432:5432"restart: unless-stoppedhealthcheck:test: ["CMD-SHELL", "pg_isready -U litellm -d litellm_db"]interval: 10stimeout: 5sretries: 5litellm:image: ghcr.io/berriai/litellm:main-stablecontainer_name: litellmports:- "4000:4000"volumes:- ./config.yaml:/app/config.yamlenv_file:- ./.envenvironment:DATABASE_URL: "postgresql://litellm:${POSTGRES_PASSWORD}@postgres:5432/litellm_db"LITELLM_MASTER_KEY: ${LITELLM_MASTER_KEY}STORE_MODEL_IN_DB: "true"depends_on:postgres:condition: service_healthyrestart: unless-stoppedcommand: ["--config", "/app/config.yaml"]volumes:postgres_data:
Создайте файл конфигурации litellm config.yaml:
store_model_in_db: truetelemetry: true
Создайте файл конфигурации .env, в котором LITELLM_MASTER_KEY — мастер-ключ и пароль для Litellm, POSTGRES_PASSWORD — пароль от Postgres:
LITELLM_MASTER_KEY=<your_litellm_key>POSTGRES_PASSWORD=<your_postgress_password>
Ключи и пароли могут быть сгенерированы с помощью команды:
openssl rand -hex 32
Запустите сервис:
docker-compose up -d
Проверьте, что сервисы запущены:
docker compose ps
Перейдите по адресу https://litellm.<ip-address>.nip.io/ui. Откроется страница Litellm UI, при входе система попросит ввести данные Администратора.
Для входа нужно указать:
Username — admin
Password — LITELLM_MASTER_KEY, созданный на шаге 6
Перейдите во вкладку Models → Endpoints, выберите Add Model.
В поле Provider выберите OpenAI-compatible Endpoints.
В поле LiteLLM Model Name(s) выберите Custom Model Name (Enter below).
В поле Enter custom model name введите нужную модель из Foundation Models с дополнительным префиксом /openai, например:
openai/openai/gpt-oss-120b
openai/zai-org/GLM-4.5
openai/Qwen/Qwen3-Coder-480B-A35B-Instruct
В поле Public Model Name вы можете задать удобное имя модели для обращения к ней через Litellm, например GLM-4.5 вместо openai/zai-org/GLM-4.5.
В поле API base укажите эндпоинт для обращения к модели — https://foundation-models.api.cloud.ru/v1/.
В поле OpenAI API Key введите API-ключ, полученный на шаге 2.
Внизу страницы нажмите Test Connect, если все параметры указаны верно, то в ответ вы получите сообщение Connection to custom successful!.
Нажмите Add Model.
Помимо моделей из Foundation Models, вы можете добавить и модели от других провайдеров, в том числе зарубежных, чтобы в дальнейшем обращаться к ним через единый API-ключ Litellm.
Создайте виртуальный ключ Litellm:
Перейдите во вкладку Virtual Keys.
Нажмите Create New Key. Вы можете дополнительно настроить модели, которые будут доступны по этому ключу, лимиты на количество запросов в минуту, срок жизни ключа и другие параметры.
Сохраните сгенерированный ключ.
Теперь к добавленным моделям можно обращаться через единый эндпоинт litellm:
from openai import OpenAIapi_key = "litellm_api_key" #API key generated in the previous stepurl = https://litellm.<ip-address>.nip.io/v1 #Substitute the IP address with the serviceclient = OpenAI(api_key=api_key,base_url=url)response = client.chat.completions.create(model="GLM-4.5",max_tokens=5000,temperature=0.5,presence_penalty=0,top_p=0.95,messages=[{"role": "user","content":"Как написать хороший код?"}])print(response.choices[0].message.content)
Для повышения надежности можно использовать несколько разных провайдеров моделей.
Для использования нескольких провайдеров моделей:
Перейдите во вкладку Settings → Router Settings → Fallbacks.
Нажмите Add Fallbacks.
Выберите основную и резервную модель. При недоступности основной модели запросы будут переадресованы на резервную.
Для повышения безопасности закройте доступ по SSH, после того как вы развернули и настроили сервис.
В личном кабинете Cloud.ru на верхней панели слева нажмите и выберите Инфраструктура → Виртуальные машины.
В списке виртуальных машин выберите litellm-service.
Перейдите на вкладку Сетевые параметры.
В строке подсети нажмите и выберите Изменить группы безопасности.
Удалите группу SSH-access_ru и сохраните изменения.
Убедитесь, что доступа нет — попробуйте подключиться к виртуальной машине по SSH. После отключения доступа по SSH, администрирование сервиса будет доступно через серийную консоль виртуальной машины.
В этой лабораторной работе вы развернули LLM-шлюз Litellm для работы в облаке Cloud.ru с возможностью использования разных LLM-провайдеров по единому API-ключу. Полученные навыки помогут вам создавать надежные и удобные AI-сервисы с использованием моделей Foundation Models.