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

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

Эта статья описывает процесс развертывания сервиса обработки голосовых данных в качестве автономного компонента. Такой вариант развертывания сервиса позволяет использовать ресурсы 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.