С помощью этого руководства вы развернете интеллектуальную аналитическую платформу Wren AI на виртуальной машине в облаке Cloud.ru Evolution:
создадите кластер базы данных Managed PostgreSQL®;
создадите виртуальную машину Ubuntu 22.04;
назначите ей публичный IP-адрес;
установите Docker и Docker Compose;
запустите Wren AI;
опубликуете сервис через Nginx с SSL-сертификатом, выпущенным Let’s Encrypt.
В результате вы сконфигурируете Wren AI для работы с Foundation Models и получите сервис, готовый к анализу ваших данных.
Вы будете использовать следующие сервисы:
Foundation Models — сервис для доступа к API популярных фундаментальных моделей машинного обучения с открытым исходным кодом.
«Виртуальные машины» — сервис, в рамках которого предоставляется виртуальная машина.
«Публичные IP» — сервис для организации доступа виртуальной машины в интернет.
Managed PostgreSQL — управляемая база данных PostgreSQL.
VPC — изолированная виртуальная сеть для создания безопасной инфраструктуры.
Docker — система контейнеризации.
Docker Compose — инструмент для запуска и управления Docker-контейнерами.
Бесплатный сервис nip.io для получения публичного доменного имени и сертификата. Вы также можете использовать собственное зарегистрированное доменное имя и SSL-сертификат для организации доступа.
Nginx — веб-сервер для проксирования запросов и организации защищенного HTTPS-доступа к приложению.
Let’s Encrypt — сервис для автоматического получения бесплатного SSL-сертификата.
Wren AI — SQL-инструмент с открытым исходным кодом, который преобразует вопросы на естественном языке в точные SQL-запросы.
Если вы уже зарегистрированы, войдите под своей учетной записью.
Загрузите публичную часть SSH-ключа в облако Cloud.ru Evolution.
На этом шаге вы подготовите сеть, группу безопасности, виртуальную машину и кластер Managed PostgreSQL®. Все ресурсы будут расположены в одной VPC, что обеспечит сетевую изоляцию.
Создайте виртуальную сеть с названием wren-ai-VPC.
Создайте подсеть со следующими параметрами:
Название — wren-ai-subnet.
Адрес — 10.10.1.0/24.
VPC — wren-ai-VPC.
DNS-серверы — 8.8.8.8.
Создайте группу безопасности с названием wren-ai в той же зоне доступности и добавьте в нее правила:
Трафик | Протокол | Порт | Тип источника/адресата | Источник/Адресат |
|---|---|---|---|---|
Входящий | TCP | 80 | IP-адрес | 0.0.0.0/0 |
Входящий | TCP | 443 | IP-адрес | 0.0.0.0/0 |
Исходящий | Любой | — | IP-адрес | 0.0.0.0/0 |
Создайте виртуальную машину со следующими параметрами:
Название — wren-ai.
Образ — на вкладке Публичные выберите образ Ubuntu 22.04.
Сетевой интерфейс — выберите тип Подсеть с публичным IP.
VPC — wren-ai-VPC.
Подсеть — wren-ai-subnet.
Публичный IP — оставьте Арендовать новый или выберите IP-адрес из списка арендованных.
Группы безопасности — добавьте группу wren-ai и группу по умолчанию.
Логин — user1.
Метод аутентификации — выберите публичный ключ и укажите SSH-ключ, созданный ранее.
Имя хоста — wren-ai.
Создайте кластер Managed PostgreSQL со следующими параметрами:
Название кластера — wren-ai.
Название базы данных — wrenai.
Версия PostgreSQL — 17.
Режим — Стандарт.
Тип — Single.
Подсеть — wren-ai-subnet.
Сохраните IP-адрес, он понадобится для подключения к виртуальной машине и настройки сервиса.
Убедитесь, что ресурсы созданы и отображаются в личном кабинете:
На странице сервиса VPC отображается сеть wren-ai-VPC с подсетью wren-ai-subnet.
На странице сервиса «Группы безопасности» отображается группа безопасности wren-ai со статусом «Создана».
На странице сервиса «Виртуальные машины» отображается виртуальная машина wren-ai со статусом «Запущена».
На странице сервиса Managed PostgreSQL® отображается кластер wren-ai со статусом «Доступен».
На этом шаге вы создадите API-ключ для Foundation Models.
На верхней панели слева нажмите и перейдите в раздел Пользователи, на вкладку Сервисные аккаунты.
Нажмите на название сервисного аккаунта, который будете использовать для отправки запроса к модели.
В разделе Учетные данные доступа нажмите Создать API-ключ.
Введите название и описание API-ключа, которое поможет в будущем идентифицировать его среди других ключей.
Заполните параметры API-ключа:
Сервисы — Foundation Models.
Время действия — срок действия API-ключа и часовой пояс. Вы можете установить значение от одного дня до одного года с текущей даты. Если параметр не задан, срок действия ключа устанавливается на максимальное значение — один год. Из соображений безопасности рекомендуется выставлять средние значения, например 90 дней.
Интервал работы ключа — один или несколько интервалов времени, в которые можно использовать API-ключ.
Нажмите Создать.
Сохраните Key Secret. После закрытия окна получить его будет нельзя.
Созданный API-ключ появится в списке ключей в статусе «Активен». Подробнее о работе с API-ключом.
Сохраните API-ключ, он будет использоваться для конфигурации сервиса.
На этом шаге вы установите необходимые пакеты и настроите систему на виртуальной машине.
Подключитесь к виртуальной машине wren-ai через серийную консоль или по SSH.
Обновите систему и установите необходимые зависимости:
sudo apt update && sudo apt upgrade -y &&\sudo apt install -y curl apt-transport-https\ca-certificates\software-properties-common\gnupg2\lsb-release\apache2-utils
Установите 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 -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
В терминале или серийной консоли виртуальной машины настройте межсетевой экран:
sudo ufw allow OpenSSHsudo ufw allow 'Nginx Full'sudo ufw enable
Создайте пользователя и пароль для безопасного доступа к сервису WrenAI, заменив <user-name> на имя вашего пользователя:
sudo htpasswd -c /etc/nginx/.htpasswd <user-name>sudo chmod 644 /etc/nginx/.htpasswd
Создайте конфигурационный файл Nginx:
sudo nano /etc/nginx/sites-available/wrenai.conf
Вставьте конфигурацию, заменив <ip_address> на IP-адрес вашей виртуальной машины:
server {listen 80;server_name wrenai.<ip_address>.nip.io www.wrenai.<ip_address>.nip.io;location / {# Basic Auth configurationauth_basic "Restricted Access";auth_basic_user_file /etc/nginx/.htpasswd;proxy_pass http://localhost:3000/;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Scheme $scheme;proxy_set_header X-Forwarded-Proto $scheme;proxy_redirect off;}}
Примените конфигурацию и перезапустите Nginx:
sudo ln -sf /etc/nginx/sites-available/wrenai.conf /etc/nginx/sites-enabled/wrenai.confsudo rm -f /etc/nginx/sites-enabled/defaultsudo nginx -tsudo systemctl reload nginx
Проверьте, что Nginx работает:
sudo systemctl status nginx
Сервис Nginx должен быть в статусе «active (running)».
Перейдите по адресу http://wrenai.<ip_address>.nip.io, где <ip_address> — IP-адрес вашей виртуальной машины.
Откроется страница с текстом «502 Bad Gateway».
Запустите команду для выпуска SSL-сертификата:
sudo certbot --nginx -d wrenai.<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://wrenai.<ip_address>.nip.io.
Откроется страница с текстом «502 Bad Gateway». В свойствах сайта браузер отметит соединение как безопасное.
На этом шаге вы развернете серверное приложение Wren AI с помощью Docker Compose.
В терминале или серийной консоли виртуальной машины создайте структуру проекта:
mkdir -p $HOME/wrenaicd $HOME/wrenai
Создайте файл docker-compose.yml:
nano docker-compose.yml
В созданный файл вставьте код Docker Compose.
Создайте файл при помощи команды nano .env и укажите в нем переменные проекта:
COMPOSE_PROJECT_NAME=wrenaiPLATFORM=linux/amd64PROJECT_DIR=.# service portWREN_ENGINE_PORT=8080WREN_ENGINE_SQL_PORT=7432WREN_AI_SERVICE_PORT=5555WREN_UI_PORT=3000IBIS_SERVER_PORT=8000WREN_UI_ENDPOINT=http://wren-ui:${WREN_UI_PORT}# Managed PostgreSQL CredentialsDB_TYPE=postgresPG_HOST=<pg_host>PG_PORT=<pg_port>PG_USER=<pg_user>PG_PASSWORD=<pg_password>PG_DATABASE=wrenaiPG_SSL=true# ai service settingsQDRANT_HOST=qdrantSHOULD_FORCE_DEPLOY=1# vendor keysOPENAI_API_KEY=<api_key>OPENAI_BASE_URL=https://foundation-models.api.cloud.ru/v1# versionWREN_PRODUCT_VERSION=0.29.1WREN_ENGINE_VERSION=0.22.0WREN_AI_SERVICE_VERSION=0.29.0IBIS_SERVER_VERSION=0.22.0WREN_UI_VERSION=0.32.2WREN_BOOTSTRAP_VERSION=0.1.5# user id (uuid v4)USER_UUID=<user_id># telemetryTELEMETRY_ENABLED=falseHOST_PORT=3000AI_SERVICE_FORWARD_PORT=5555# Wren UIEXPERIMENTAL_ENGINE_RUST_VERSION=false# Wren EngineLOCAL_STORAGE=.
Где:
<api-key> — API-ключ для доступа к сервису Foundation Models, сгенерированный на шаге 2.
<user_id> — уникальный идентификатор пользователя в формате UUID 4.
<pg_host> — IP-адрес кластера Managed PostgreSQL®.
<pg_port> — порт кластера Managed PostgreSQL®, обычно 5432.
<pg_user> — имя пользователя кластера Managed PostgreSQL®.
<pg_password> — пароль пользователя кластера Managed PostgreSQL®.
Создайте файл конфигурации сервиса config.yaml:
nano config.yaml
В созданный файл вставьте код конфигурации сервиса и замените в нем следующие параметры на свои:
<foundation_models_model_name> — название LLM-модели Foundation Models для обработки запросов, например openai/gpt-oss-120b.
<foundation_models_context_size> — контекстное окно LLM-модели. Максимальный контекст можно узнать в карточке модели в разделе Foundation Models → Модели личного кабинета.
<foundation_models_embedder_name> — название модели-эмбеддера Foundation Models, например Qwen/Qwen3-Embedding-0.6B.
Запустите сервис:
docker-compose up -d
Проверьте, что сервис запущен:
docker compose ps
Перейдите по адресу https://wrenai.<ip_address>.nip.io, где <ip_address> — IP-адрес вашей виртуальной машины.
Откроется страница Wren AI, при первом входе используйте пароль, созданный на шаге 4.
На этом шаге вы создадите базу данных.
Если у вас уже есть база данных для анализа, переходите к следующему шагу.
Создайте базу данных в кластере Managed PostgreSQL с названием bi.
В терминале или серийной консоли виртуальной машины обновите систему и установите необходимые зависимости:
sudo apt update && sudo apt upgrade -y &&\sudo apt install -y python3-pip
Создайте структуру проекта:
mkdir -p $HOME/testdatacd $HOME/testdata
Создайте файл с зависимостями:
nano requirements.txt
Вставьте в файл код и сохраните изменения:
psycopg2-binary>=2.9.9
Установите зависимости:
pip install -r requirements.txt
Создайте файл setup_db.py:
nano setup_db.py
В созданный файл вставьте код скрипта, который создает таблицы и добавляет данные в базу, и замените в нем следующие параметры на свои:
<pg_host> — IP-адрес кластера Managed PostgreSQL®.
<pg_user> — имя пользователя кластера Managed PostgreSQL®.
<pg_password> — пароль пользователя кластера Managed PostgreSQL®.
Создайте тестовые данные:
python3 setup_db.py
База данных должна быть в одной VPC с виртуальной машиной или быть доступной из интернета.
На этом шаге вы подключите базу данных PostgreSQL для анализа данных на естественном языке.
Перейдите по адресу wrenai.<ip_address>.nip.io/setup/connection.
Выберите PostgreSQL.
Заполните данные для подключения:
Display name — название подключения, например База аналитики.
Host — IP-адрес кластера Managed PostgreSQL®.
Port — 5432.
Database — название базы данных.
Username — имя пользователя кластера Managed PostgreSQL®.
Password — пароль пользователя кластера Managed PostgreSQL®.
Database name — название базы данных в кластере Managed PostgreSQL®, например bi.
Use SSL — включите опцию.
Нажмите Next.
Выберите таблицы для построения аналитики.
Нажмите Next.
(Опционально) Измените связи между таблицами и нажмите Finish.
В левом нижнем углу нажмите Settings → Project Settings и выберите язык для общения с AI.
В верхнем меню нажмите Home.
В окне чата введите ваш запрос, например «Какая средняя стоимость товара в сервисе?», и дождитесь ответа.
Для повышения безопасности закройте доступ по SSH, после того как вы развернули и настроили сервис.
В личном кабинете Cloud.ru на верхней панели слева нажмите и выберите Инфраструктура → Виртуальные машины.
В списке виртуальных машин выберите wren-ai.
Перейдите на вкладку Сетевые параметры.
В строке подсети нажмите и выберите Изменить группы безопасности.
Удалите группу безопасности по умолчанию и сохраните изменения.
Убедитесь, что доступа нет — попробуйте подключиться к виртуальной машине по SSH. После отключения доступа по SSH администрирование сервиса будет доступно через серийную консоль виртуальной машины.
Вы развернули сервис для SQL-аналитики на естественном языке в облаке Cloud.ru с сетевой изоляцией и публикацией по HTTPS. Полученные навыки помогут вам создавать AI-сервисы с использованием сервисов Foundation Models.