Действия

SES. Руководство администратора: различия между версиями

Материал из Флора AI

Строка 38: Строка 38:
<code>systemctl status ses.service</code>
<code>systemctl status ses.service</code>


Разрешите доступ к портам 6157/tcp, 6170/tcp, 6191/tcp а также порту, определенном в конфиге (по умолчанию 6190/tcp) на нужном интерфейсе.
Разрешите доступ к портам 6157/tcp, 6170/tcp, 6191/tcp, а также порту, определенном в конфиге (по умолчанию 6190/tcp) на нужном интерфейсе.


==='''Настройка сервиса'''===
==='''Настройка сервиса'''===

Версия от 17:40, 10 апреля 2025

Общее описание

Сервис предназначен для сценарных машин.

Термины и определения

Script Engine Service (SES) – сервис, обеспечивающий работу сценарных машин.

Требования к окружению

В процессе работы сервис взаимодействует со следующими сервисами:

  • UPS – настройка осуществляется через файл /opt/ups/config.json
  • SMC, SEE, SPR, TTS, SBS, QAS – настройка осуществляется через файл /opt/ses/config.json.
Установка ses

Дистрибутив распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом.

Перед установкой непосредственно сервиса необходимо установить сервисный пакет окружения.

  • Установка/обновление ses осуществляется скриптом chmod +x ./ses-<версия>-<релиз>.sh && ./ses-<версия>-<релиз>.sh -i с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор ./ses-<версия>-<релиз>.sh без ключей.
  • Загрузить последнюю версию продукта curl -s "https://repo.connect2ai.net/api/ses/new" --user '[user]:[pass]' 2>&1 | bash или в интерактивном режиме bash -c "$(curl -s https://repo.connect2ai.net/api/ses --user '[user]:[pass]' 2>&1)".
  • Обновить ses /opt/ses/inupdate в интерактивном режиме. Или запустить с ключом:
    • /opt/ses/inupdate -b – обновить до последней beta версии;
    • /opt/ses/inupdate -r – обновить до последней release версии;
    • /opt/ses/inupdate -n – обновить до последней версии (неважно beta или release).
  • Проверить актуальную версию продукта curl -s "https://repo.connect2ai.net/api/ses/version.
  • Посмотреть лог изменений curl -s "https://repo.connect2ai.net/api/ses/changelog" --user '[user]:[pass]'.
  • Полное описание всех команд API репозитория можно найти по ссылке https://repo.connect2ai.net/api. [user]:[pass] – это тот же логин и пароль, что и от Nextcloud.
  • В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):
    • echo -n "[user]:[pass]" > /opt/ses/.userapi (это файл авторизации в API, нужен для обновления и загрузки моделей)
    • echo -n "http://example.com:3128 [user] [password]" > /opt/ses/.proxy (это файл конфигурации proxy, необходим для обновления и загрузки моделей, при отсутствующем прямом подключении к интернету)

При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.

Не забудьте запустить сервис и включить в автозапуск в системе:

sudo systemctl enable ses.service && sudo systemctl start ses.service

Удостоверьтесь, что сервис стартовал:

systemctl status ses.service

Разрешите доступ к портам 6157/tcp, 6170/tcp, 6191/tcp, а также порту, определенном в конфиге (по умолчанию 6190/tcp) на нужном интерфейсе.

Настройка сервиса

Файл config.json

Настройка параметров сервиса ses производится в файле /opt/ses/config.json

Описание параметров приведено в таблице

Параметр По умолчанию Назначение
port 6190 Порт API интерфейса используется в UPS — настройка servers.ses в конфиге UPS.
logs.path logs/ Путь к папке логов.
logs.backups 10 Количество старых сохраняемых логов.
logs.maxSize 5242880 Максимальный размер текущего лог-файла в байтах.
servers.{service}.url "http://127.0.0.1:PORT/{service}" Адрес сервера. Возможные варианты значения service (с портами по умолчанию) следующие: smc(6181), see(6184), spr(6183), tts(6186), sbs(6185), qas(6187).
servers.{service}.timers.connect 2 Таймаут подключения к серверу.
servers.{service}.timers.read 10 Таймаут получения данных с сервера.
connectors.vk {} Параметры подключения к ботам VK

{  "имя_подключения":{

    "token":"Ключ доступа",

    "robot":"id робота",

    "group_id":"id сообщества ВКонтакте",

    "whitelist":[],

    "activators":[]

    },

...............

}

connectors.telegram {} Параметры подключения к telegram ботам

{  "имя_подключения":{

    "token":"Ключ доступа",

    "robot":"id робота",

    "variables":{

      "phone": "1234567890"

    },

    "timers": {      "getUpdates": 3    },

    "whitelist":[],

    "activators":[]

    },

...........

}

tmp "/tmp/ses" Dременная папка.

Эмуляция сервисов интеграции

В каталоге /opt/ses/testapi могут располагаться эмуляторы сервисов интеграции. Эмулятор будет доступен по адресу htttp://<адрес ses>/testapi/<название_сервиса>. Для создания эмулятора поместите в папку /opt/ses/testapi/ файл <название_сервиса>.reply. Содержимое файла будет отдано без изменений, как есть по адресу "http://<адрес_ses>:<порт_ses>/ses/testapi/<название_сервиса>".


Настройка каналов и виджетов

Настройка виджета для сайта

  1. Размещаете на сайте, например http://сайт.рф ссылку на виджет <script src="http://адрес_ups/ses/widget/js" key="xxxxxxxx"></script> (ключ придумайте сами)
  2. Делаете конфиг канала в файле /opt/ses/config.json в разделе connectors.web. В конфиге следующее:

"web": {

"http://сайт.рф~xxxxxxxx": { #сайт_с_виджетом~ключ

             "robot": "28013d0a-...", # id робота

             "color": "#4d3e33", #акцентный цвет виджета"

             "host": "адрес_ses:6191", #адрес который прослушивает ws(wss) запросы

             "microphone": false, #возможность отправлять/принимать аудио

             "transcription": false, #возможность расшифровки аудио клиента

             "variables": {

                 "var_1": "1234567890"

               } } }

Если на сайте SSL, то дополнительно поднимаете реверс-прокси для UPS (http://адрес_ups) и для websocket (адрес_ses:6191). Особенности реализации на nginx:

Основной конфиг должен включать директиву proxy_set_header Host $host; а также заголовки CORS и обработку OPTIONS запросов. Дополнительно в нем? возможно? придется обработать путь "/lang" с переводом.

Конфиг для websocket должен обеспечивать обработку upgrade запросов (https://nginx.org/en/docs/http/websocket.html) для перенаправления websocket трафика, а также прослушивание отдельного порта, например 8091.

Тогда в ссылку на виджет (адрес_ups) и в конфиг канала (адрес_ses:6191) нужно будет вносить адреса, которые поддерживают SSL. Пример конфига nginx для wss:

server {

   server_name ups_сервер.ru;

   listen 6191 ssl;

  include snippets/ssl-params.conf;

  ssl_certificate /etc/letsencrypt/live/ups_сервер.ru/fullchain.pem;

  ssl_certificate_key /etc/letsencrypt/live/ups_сервер.ru/privkey.pem;

  ssl_trusted_certificate /etc/letsencrypt/live/ups_сервер.ru/chain.pem;

  client_max_body_size 1000M;

  proxy_read_timeout 6000;

  proxy_connect_timeout       6000;

  proxy_send_timeout          6000;

  send_timeout                6000;

  large_client_header_buffers 8 256k;

   location / {

       proxy_pass http://локальныq_адрес_ses:6191;

       proxy_http_version 1.1;

       proxy_set_header Upgrade $http_upgrade;

       proxy_set_header Connection "upgrade";

       proxy_set_header Host $host;

       proxy_cache_bypass $http_upgrade; } }

Протоколы и порты

Сервис использует порты 6157/tcp, 6170/tcp и 6190/tcp для доступа к API-интерфейсу и порт 6191/tcp для WebSocket-сервера. Порт 6190 может быть изменен в конфигурационном файле.

Журналы работы

Для проверки состояния сервиса выполните sudo systemctl status ses.

Журналы сервиса находятся в каталоге, определенном в конфигурационном файле (по умолчанию – /opt/ses/logs/). Ошибки также пишутся в системный журнал, для просмотра можно воспользоваться командой sudo journalctl -u ses

Удаление и обновление ses

Для удаления выполните команду:

/opt/ses/uninstall

Команда удалит сервис и рабочий каталог, включая все файлы конфигурации. Для обновления запустите скрипт установки, как указано в п. 4. При этом обновление не изменяет файл /opt/ses/config.json.