Перейти к основному содержимому

Автономное развертывание сервиса обработки голосовых данных

Эта статья описывает процесс развертывания сервиса обработки голосовых данных в качестве автономного компонента. Такой вариант развертывания сервиса позволяет использовать ресурсы GPU вместо CPU.

Установка Docker-образа

  1. Доставьте Docker-образ voiceai на сервер vLLM:

    Откройте ssh-консоль на Сервере Приложений и выполните команду:

    sudo docker save distrib/platformmd/voiceai/voiceai:1.2.3 > /tmp/voiceai.1.2.3.tar
    sudo scp /tmp/voiceai.1.2.3.tar user@server-vllm.example.local:/tmp/voiceai.1.2.3.tar

    Замените:

    • "1.2.3" на текущую версию сервиса обработки голосовых данных;
    • user@server-vllm.example.local на пользователя и имя сервера vLLM.
  2. Установите Docker-образ voiceai в локальное Docker-хранилище.

    Если сервер работает под управлением ОС Astra Linux убедитесь, что в конфигурационном файле /etc/docker/daemon.json содержатся следующие параметры:

    {
    "debug" : true,
    "astra-sec-level" : 6
    }
  3. Установите Docker-образ командой:

    sudo docker load --input voiceai.1.2.3.tar

    Замените "1.2.3" на версию доставленного образа voiceai.

Размещение сертификатов

Разместите открытый и закрытый сертификаты для обеспечения защищенного доступа к VoiceAI. Выберите директорию на сервере vLLM, например, /opt/cert и разместите в этой директории файлы certificate.pem и certificate.key.pem. Поместите в эти файлы соответственно цепочку сертификатов и ключ.

Создание Docker-контейнера

Создайте Docker-контейнер с сервисом VoiceAI командой:

docker run -d \
-p <API-порт>:7000 \
-p <WebSocket порт>:8765 \
-e ConfigServer="https://<Адрес стенда>" \
-e WEB_SOCKET_HOST="0.0.0.0" \
-e WEB_SOCKET_PORT="8765" \
-e WSS_CERT_PATH="/cert/certificate.pem" \
-e WSS_KEY_PATH="/cert/certificate.key.pem" \
--name=voiceai \
--gpus=all \
--restart=always \
-v /opt/cert:/cert \
distrib/platformmd/voiceai/voiceai:1.0.13.10-develop

где:

  • API-порт: порт для доступа к API сервиса обработки голосовых данных;
  • WebSocket порт: порт для Web Socket сервиса обработки голосовых данных.

Версия VoiceAI 1.0.13.10-develop актуальна для релиза Атомкод 5.0.0. При необходимости замените ее на актуальную версию сервиса обработки голосовых данных.

Для проверки успешности запуска сервиса перейдите по адресу https://<Имя сервера с ролью vLLM>:<порт API> и убедитесь, что отображается Swagger сервиса обработки голосовых данных.

Настройка стенда для работы с сервисом обработки голосовых данных при автономном развертывании

  1. Убедитесь, что с сервера с ролью Сервер Приложений доступны порты для API и WebSocket сервиса обработки голосовых данных на сервере vLLM.

  2. Измените значения параметров связи с сервисом обработки голосовых данных в файле ответов для инсталлятора. Для изменения значений параметоров перейдите в дректорию инсталлятора и откройте файл group_vars/all.yml. В секции "# llm" этого файла актуализируйте значения переменных:

    • llm_default_voiceai_server: укажите адрес сервера обработки голосовых данных и его API-порт;
    • "llm_default_voiceai_socket: укажите адрес сервера обработки голосовых данных и его WebSocket-порт.
  3. Переопределите значения ENV-переменных для связи с обработки голосовых данных на стендах одним из следующих способов:

  • Перейдите в браузере в portainer сервера с ролью Сервер Приложений по адресу https://<адрес сервера Приложений>:9000. После авторизации перейдите в пункт меню Containers, выберите контейнер ragmanager. Нажмите кнопку Duplicate/Edit. Перейдите на вкладку Env. Найдите переменные DEFAULT_VOICEAI_SERVER и DEFAULT_VOICEAI_SOCKET и актуализируйте их значения, указав новый сервер обработки голосовых данных и его API и WebSocket порты соответственно. Затем нажмите кнопку Deploy the container.

  • Переустановите сервис взаимодействия с большими языковыми моделями инсталлятором Атомкод. Перейдите в директорию инсталлятора и выполните команду:

    ansible-playbook MiscInstall.yml -i inventory/<Имя стенда> \
    --tags ragmanager \
    -e internal_domain=<Внутренний домен Платформы> \
    -e docker_repo_name=distrib \
    -e docker_hub=distrib/infra \
    -e product_name=platformmd \
    -u ansible

Удаление контейнера voiceAI на Сервере Приложений при автономном развертывании сервиса обработки голосовых данных

Если сервис обработки голосовых данных уже установлен внутри Атомкод, его можно удалить. Чтобы удалить уже установленный сервис обработки голосовых данных, удалите Docker-контейнер с сервисом обработки голосовых данных на сервере с ролью Сервер Приложений. Для удаления контейнера откройте ssh-консоль на сервере с ролью Сервер Приложений и выполните следующие команды:

sudo docker stop voiceai
sudo docker rm voiceai

Чтобы предотвратить установку сервиса VoiceAI на стенды, откройте файл group_vars/editions/ai.yml в директории инсталлятора и закомментируйте строку - voiceai.