С помощью этого руководства вы развернете LLM-шлюз Litellm на бесплатной виртуальной машине в облаке Cloud.ru Evolution. Вы создадите виртуальную машину Ubuntu 22.04, назначите ей публичный IP-адрес, установите Docker и Docker Compose, запустите Litellm и опубликуете сервис через Nginx с SSL-сертификатом, выпущенным в Let’s Encrypt. В результате вы сконфигурируете Litellm для работы с Foundation Models и получите сервис, готовый к работе.
Вы будете использовать следующие сервисы:
Foundation Models — сервис для доступа к API популярных фундаментальных моделей машинного обучения с открытым исходным кодом.
Виртуальные машины — сервис, в рамках которого предоставляется виртуальная машина.
Docker — система контейнеризации.
Docker Compose — инструмент для запуска и управления Docker-контейнерами.
Бесплатный сервис nip.io для получения публичного доменного имени и сертификата. Вы также можете использовать собственное зарегистрированное доменное имя и SSL-сертификат для организации доступа.
Nginx — веб-сервер для проксирования запросов и организации защищeнного HTTPS-доступа к приложению.
Let’s Encrypt — сервис для автоматического получения бесплатного SSL-сертификата.
Litellm — комплексная платформа, предназначенная для упрощения управления несколькими большими языковыми моделями (LLM) через унифицированное API. LiteLLM предлагает унифицированное API, балансировку нагрузки, механизмы резервирования, отслеживание расходов и обработку ошибок.
Шаги:
Перед началом работы
-
Если вы уже зарегистрированы, войдите под своей учетной записью.
Загрузите публичную часть SSH-ключа в облако Cloud.ru Evolution.
1. Разверните необходимые ресурсы в облаке
На этом шаге вы создадите группу безопасности и виртуальную машину.
Создайте группу безопасности с названием 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 со статусом «Запущена».
2. Сгенерируйте API-ключ для доступа к Foundation Models
Следуйте инструкции по созданию API-ключа для Foundation Models. Сохраните API-ключ, он будет использоваться для конфигурации сервиса.
На верхней панели слева нажмите
и перейдите в раздел Пользователи, на вкладку Сервисные аккаунты.
Нажмите на название сервисного аккаунта, который будете использовать для отправки запроса к модели.
Перейдите на вкладку API-ключи.
Нажмите Создать API-ключ.
Введите название и описание API-ключа, которое поможет в будущем идентифицировать его среди других ключей.
Заполните параметры API-ключа:
Сервисы — ml_inference_ai_marketplace.
Время действия — срок действия API-ключа и часовой пояс. Вы можете установить значение от одного дня до одного года с текущей даты. Если параметр не задан, срок действия ключа устанавливается на максимальное значение — один год. С целью повышения уровня безопасности рекомендуется выставлять средние значения, например 90 дней.
Интервал работы ключа — один или несколько интервалов времени, в которые можно использовать API-ключ.
Нажмите Создать.
Сохраните Key Secret. После закрытия окна получить его будет нельзя.
Созданный API-ключ появится в списке ключей в статусе «Активен». Подробнее о работе с API-ключом.
3. Настройте окружение на виртуальной машине
На этом шаге вы установите необходимые пакеты и настроите систему на виртуальной машине.
Подключитесь к виртуальной машине 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
4. Настройте Nginx и HTTPS
На этом шаге вы настроите службу 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-адрес для регистрации сертификата.
После выпуска сертификата перейдите по адресу https://litellm.<ip-address>.nip.io. Откроется страница с текстом «502 Bad Gateway». В свойствах сайта браузер отметит соединение как безопасное.
5. Разверните приложение
На этом шаге вы развернете 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
6. Добавьте модели из Foundation Models в Litellm
Перейдите во вкладку 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. Вы можете дополнительно настроить модели, которые будут доступны по этому ключу, лимиты на количество запросов в минуту, срок жизни ключа и другие параметры.
Сохраните сгенерированный ключ.
7. Обратитесь к добавленным моделям
Теперь к добавленным моделям можно обращаться через единый эндпоинт 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.
Выберите основную и резервную модель. При недоступности основной модели запросы будут переадресованы на резервную.
8. Отключите доступ по SSH для виртуальной машины
Для повышения безопасности закройте доступ по SSH, после того как вы развернули и настроили сервис.
В личном кабинете Cloud.ru на верхней панели слева нажмите
и выберите Инфраструктура → Виртуальные машины.
В списке виртуальных машин выберите litellm-service.
Перейдите на вкладку Сетевые параметры.
В строке подсети нажмите
и выберите Изменить группы безопасности.
Удалите группу SSH-access_ru и сохраните изменения.
Убедитесь, что доступа нет — попробуйте подключиться к виртуальной машине по SSH. После отключения доступа по SSH, администрирование сервиса будет доступно через серийную консоль виртуальной машины.
Результат
В этой лабораторной работе вы развернули LLM-шлюз Litellm для работы в облаке Cloud.ru с возможностью использования разных LLM-провайдеров по единому API-ключу. Полученные навыки помогут вам создавать надежные и удобные AI-сервисы с использованием моделей Foundation Models.
- Шаги:
- Перед началом работы
- 1. Разверните необходимые ресурсы в облаке
- 2. Сгенерируйте API-ключ для доступа к Foundation Models
- 3. Настройте окружение на виртуальной машине
- 4. Настройте Nginx и HTTPS
- 5. Разверните приложение
- 6. Добавьте модели из Foundation Models в Litellm
- 7. Обратитесь к добавленным моделям
- 8. Отключите доступ по SSH для виртуальной машины
- Результат