SES. Руководство администратора: различия между версиями
Материал из Флора AI
| Строка 171: | Строка 171: | ||
<small>"web": {</small> | <small>"web": {</small> | ||
<small>"<nowiki>https://ups.example.net~Mzc@10N3DEyNj5cuMj8U2NjI4OCwidHlwZSI6Im</nowiki>[FjY2Vzcy]J9z": {</small> | <small>"<nowiki>https://ups.example.net~Mzc@10N3DEyNj5cuMj8U2NjI4OCwidHlwZSI6Im</nowiki>[FjY2Vzcy]J9z": {</small> # <nowiki>https://домен_ups~токен</nowiki> | ||
<small> "robot": "28013d0a-be10-4895-9364-1e86b540c7b6",</small> #здесь id робота | <small> "robot": "28013d0a-be10-4895-9364-1e86b540c7b6",</small> #здесь id робота | ||
<small> "color": "#4d3e33",</small> #цвет виджета" | <small> "color": "#4d3e33",</small> #акцентный цвет виджета" | ||
<small> "host": "ups.example.net:8091",</small> #адрес который прослушивает wss запросы | <small> "host": "ups.example.net:8091",</small> #адрес который прослушивает wss запросы | ||
<small> "microphone": false,</small> | <small> "microphone": false,</small> #возможность отправлять/принимать аудио | ||
<small> "transcription": false,</small> | <small> "transcription": false,</small> #возможность расшифровки аудио клиента | ||
<small> "variables": {</small> | <small> "variables": {</small> | ||
<small> "phone": "1234567890"</small> | <small> "phone": "1234567890"</small> | ||
Версия от 16:01, 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 необходим для обновления и загрузки моделей, при отсутсвующем прямом подключение к интернету)
- echo -n
При обновление следующий список файлов и папок сохранияется: .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 10.2.1.110. Адрес локального хоста с SES 10.2.1.220
Конфиг для UPS (80 и 443) должен включать директиву proxy_set_header Host $host; а также заголовки CORS и обработку OPTIONS запросов. proxy_pass должен указывать на локальный http адрес UPS(с указанием порта - стандартный 6182, в нашем примере http://10.2.1.110:6182 ). Дополнительно возможно придется обработать путь "/lang" с переводом.
Конфиг для websocket(8091) должен прослушивать адрес ups.example.net/ на порту 8091 ssl и обеспечивать обработку upgrade запросов(https://nginx.org/en/docs/http/websocket.html) для перенаправления websocket трафика. proxy_pass должен указывать на локальный http адрес SES c портом 6191(предопределенный порт websocket сервера ses, в нашем примере http://10.2.1.220:6191 ).
Для добавления ссылки на скрипт виджета нужно сгенерировать (любым генератором паролей например) токен. Для примера "Mzc@10N3DEyNj5cuMj8U2NjI4OCwidHlwZSI6Im[FjY2Vzcy]J9z".тогда ссылка на виджет будет иметь вид:
<script src="https://ups.example.net/ses/widget/js" key="Mzc@10N3DEyNj5cuMj8U2NjI4OCwidHlwZSI6Im[FjY2Vzcy]J9z"></script>
Для настройки коннектора необходимо добавить в файл /opt/ses/config.json в раздел connectors.web следующие параметры:
"web": {
"https://ups.example.net~Mzc@10N3DEyNj5cuMj8U2NjI4OCwidHlwZSI6Im[FjY2Vzcy]J9z": { # https://домен_ups~токен
"robot": "28013d0a-be10-4895-9364-1e86b540c7b6", #здесь id робота
"color": "#4d3e33", #акцентный цвет виджета"
"host": "ups.example.net:8091", #адрес который прослушивает wss запросы
"microphone": false, #возможность отправлять/принимать аудио
"transcription": false, #возможность расшифровки аудио клиента
"variables": {
"phone": "1234567890"
} } }
Для настройки адресов websocket сервера нужно добавить в файл /opt/ups/config.json в раздел ses.websockets все адреса по которым будет доступен websocket сервер ses, для нашего примера:
"websockets": [
"ups.example.net:8091",
"10.2.1.220:6191" ],
Протоколы и порты
Сервис использует порт 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.