Действия

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

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

Строка 148: Строка 148:
* получить доменное имя для ups, получить сертификаты, настроить реверс-прокси для обработки запросов к ups и на websocket.
* получить доменное имя для ups, получить сертификаты, настроить реверс-прокси для обработки запросов к ups и на websocket.
* добавить к коду сайта ссылку на скрипт виджета с токеном  
* добавить к коду сайта ссылку на скрипт виджета с токеном  
* настроить коннектор в конфигурационном файле /opt/ses/config.json
* настроить коннектор канала в конфигурационном файле /opt/ses/config.json
* настроить адреса (локальный и внешний) websocket сервера в конфигурационном файле /opt/ups/config.json
* настроить адреса (локальный и внешний) websocket сервера в конфигурационном файле /opt/ups/config.json
После получения доменного имени и сертификатов нужно правильно настроить реверс-прокси.   
После получения доменного имени и сертификатов нужно правильно настроить реверс-прокси.   

Версия от 14:59, 22 января 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 а также порту, определенном в конфиге (по умолчанию 6189/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" временная папка

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

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


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

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

Виджет для сайта представляет собой отдельный js скрипт, который поставляется в составе UPS. Для ses виджет это один из каналов. Порядок настройки:

  • получить доменное имя для ups, получить сертификаты, настроить реверс-прокси для обработки запросов к ups и на websocket.
  • добавить к коду сайта ссылку на скрипт виджета с токеном
  • настроить коннектор канала в конфигурационном файле /opt/ses/config.json
  • настроить адреса (локальный и внешний) websocket сервера в конфигурационном файле /opt/ups/config.json

После получения доменного имени и сертификатов нужно правильно настроить реверс-прокси.

Пример настройки для nginx.

Исходные данные

  • Доменное имя "https://ups.example.net/",
  • nginx прослушивает порты 80(для letsencrypt), 443(ssl), 8091(ssl для websocket, порт можно использовать другой).
  • Адрес локального хоста с UPS и SES 10.2.1.110 (для примера, могут быть на разных)

Конфиг для UPS (80 и 443) должен включать директиву proxy_set_header Host $host; а также заголовки CORS и обработку OPTIONS запросов. proxy_pass должен указывать на локальный http адрес UPS. Дополнительно возможно придется обработать путь "/lang" с переводом.

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

Для добавления ссылки на виджет нужно сгенерировать (любым генератором паролей например) токен. Для примера "Mzc@10N3DEyNj5cuMj8U2NjI4OCwidHlwZSI6Im[FjY2Vzcy]J9z".тогда ссылка на виджет будет иметь вид:

<script src="https://ups.example.net/ses/widget/js" key="Mzc@10N3DEyNj5cuMj8U2NjI4OCwidHlwZSI6Im[FjY2Vzcy]J9z"></script>

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

Сервис использует порт 6190/tcp для доступа к api интерфейсу и порт 6191/tcp для websocket сервера. Порты могут быть изменены в конфигурационном файле

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

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

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

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

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

/opt/ses/uninstall

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