<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.connect2ai.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=KorolkovS</id>
	<title>Флора AI - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.connect2ai.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=KorolkovS"/>
	<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/KorolkovS"/>
	<updated>2026-06-01T15:56:20Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=UPS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3555</id>
		<title>UPS. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=UPS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3555"/>
		<updated>2026-02-12T07:24:06Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для управления базовыми сервисами ядра, а также в качестве прокси-сервера доступа к сервисам с функцией балансировки нагрузки.&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Universal Proxy Server (UPS) – сервис управления ядром с проксированием запросов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Системные требования&#039;&#039;&#039; =====&lt;br /&gt;
Для нормальной работы сервиса требуется 4 Гб оперативной памяти, 1 CPU &amp;gt;= 2.20 GHz и 40 Гб дискового пространства.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка/обновление UPS&#039;&#039;&#039; =====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/ups&amp;amp;fileid=482 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Для UPS необходимо [[PVE. Установка сервисного пакета окружения|устанавливать выделенное окружение]].&lt;br /&gt;
&lt;br /&gt;
* Установка/обновление UPS осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./ups-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./ups-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./ups-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
* Загрузить последнюю версию продукта  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/ups/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/ups&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить UPS &amp;lt;code&amp;gt;/opt/ups/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/ups/inupdate -b&amp;lt;/code&amp;gt; – обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/ups/inupdate -r&amp;lt;/code&amp;gt; – обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/ups/inupdate -n&amp;lt;/code&amp;gt; – обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/ups/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/ups/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; – это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/ups/.userapi (это файл авторизации в API, нужен для обновления)&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/ups/.proxy (это файл конфигурации proxy, необходим для обновления при отсутствующем прямом подключении к интернету).&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable ups.service &amp;amp;&amp;amp; sudo systemctl start ups.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status ups.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к порту 6182 на нужном интерфейсе по протоколу TCP.&lt;br /&gt;
&lt;br /&gt;
Параметры авторизации по умолчанию: логин: admin, пароль: password&lt;br /&gt;
&lt;br /&gt;
UPS может работать в составе кластера из двух и более серверов с UPS. Для этого необходимо создать кластер pacemaker/corosync с 2 ресурсами — ресурс systemd UPS и shared IP, и обеспечить их одновременную работу на одной ноде кластера. Синхронизацию изменений обеспечит сервис UPS с помощью lsyncd, для этого есть блок «cluster» в конфигурационном файле. Серверы кластера для этого должны иметь возможность соединения по SSH по ключу.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Внутренняя база данных&#039;&#039;&#039;=====&lt;br /&gt;
В каталоге &#039;&#039;&#039;/opt/ups/data/db&#039;&#039;&#039; находятся папки служебной базы данных. Папки созданы по разделам администрирования UPS. Каждый файл любой папки описывает один объект администрирования, например один из файлов из каталога &#039;&#039;&#039;&amp;quot;/opt/ups/data/db/roles&amp;quot;.&#039;&#039;&#039;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;ee1b3b1edb8c4376486189d6540f5635&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;Только просмотр&amp;quot;,&lt;br /&gt;
  &amp;quot;rights&amp;quot;: [&lt;br /&gt;
    &amp;quot;SERVICE:smc&amp;quot;,&lt;br /&gt;
    &amp;quot;SERVICE:see&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/spr/audio&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/spr/queue&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/spr/waveform&amp;quot;,&lt;br /&gt;
    &amp;quot;SERVICE:spr&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/sbs/speakers&amp;quot;,&lt;br /&gt;
    &amp;quot;SERVICE:sbs&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/tts/dictionary/get&amp;quot;,&lt;br /&gt;
    &amp;quot;SERVICE:tts&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/qas/doc&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/qas/list&amp;quot;,&lt;br /&gt;
    &amp;quot;SERVICE:qas&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/auth/datasets&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/auth/roles&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/auth/user/get&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/auth/user/list&amp;quot;,&lt;br /&gt;
    &amp;quot;SERVICE:auth&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/model/errors&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/model/handler&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/model/log&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/corpus/get&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/corpus/list&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/transcription/audio&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/transcription/get&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/transcription/list&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/transcription/waveform&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/server/get/addresses&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/server/get/models&amp;quot;,&lt;br /&gt;
    &amp;quot;GET:/lang/wallpaper&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
описывает &#039;&#039;&#039;роль&#039;&#039;&#039; и ее параметры. В каждом файле обязательно есть уникальный &#039;&#039;&#039;id&#039;&#039;&#039; и хотя бы один параметр. В примере 2 параметра &#039;&#039;&#039;&amp;quot;name&amp;quot;&#039;&#039;&#039; и &#039;&#039;&#039;&amp;quot;rights&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Авторизация в UPS&#039;&#039;&#039;=====&lt;br /&gt;
UPS предполагает доступ по паролю к разделам интерфейса и информации от сервисов. Доступ осуществляется при помощи токена доступа. Токен запрашивается запросом, в котором передаются логин и пароль, а в ответ приходит токен авторизации и токен обновления авторизации.&lt;br /&gt;
&lt;br /&gt;
Пример запроса:&lt;br /&gt;
 curl -X POST &amp;quot;http://127.0.0.1:6182/auth/access?username=admin&amp;amp;password=password&amp;quot; -H &amp;quot;accept: application/json&amp;quot;&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;x-access-token&amp;quot;: &amp;quot;eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiMCIsImNyZWF0ZWQiOjE3MTQ2NTk5MDIuOTk5MzQzNiwidHlwZSI6ImFjY2VzcyJ9.wrTRX2de5jhVFKRQ_Xt0fNXxHWN_yLiqZ6S_inix0Jg&amp;quot;,&lt;br /&gt;
  &amp;quot;x-refresh-token&amp;quot;: &amp;quot;eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiMCIsImNyZWF0ZWQiOjE3MTQ2NTk5MDIuOTk5NTk1NCwidHlwZSI6InJlZnJlc2gifQ.Y3DNfIpfqJffjrPaT4TQiiF22Huvx62rmB-b9Az6UAc&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Пример запроса с участием токена:&lt;br /&gt;
 curl -X GET &amp;quot;http://127.0.0.1:6182/auth/version&amp;quot; -H &amp;quot;accept: application/json&amp;quot; -H &amp;quot;x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiMCIsImNyZWF0ZWQiOjE3MTQ2NTk5MDIuOTk5MzQzNiwidHlwZSI6ImFjY2VzcyJ9.wrTRX2de5jhVFKRQ_Xt0fNXxHWN_yLiqZ6S_inix0Jg&amp;quot;&lt;br /&gt;
В случае если UPS работает в закрытом контуре и авторизация не требуется, методы API, которые используются, нужно добавить в раздел «nopassword» конфигурационного файла (см. ниже).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Установка модулей для UPS&#039;&#039;&#039;=====&lt;br /&gt;
Есть возможность создать любой модуль, который будет эмулировать любой API-интерфейс любого стороннего сервиса через UPS. Для примера создан интерфейс Яндекс. Установка модулей возможна прямым копированием файлов модуля в директорию /opt/ups/modules/&amp;lt;название модуля&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Чтобы убедиться, что модуль доступен и работает, выполните запрос:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6182/tts/synthesize/yandex_tts_emulator?rate=100&amp;amp;pitch=100&amp;amp;volume=0&amp;lt;/nowiki&amp;gt;&amp;quot; --H &amp;quot;accept: application/json&amp;quot; --data-urlencode &amp;quot;text=текст для синтеза&amp;quot;  --output out.wav&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
out.wav должен содержать синтезированный голос озвучивший текст из запроса.&lt;br /&gt;
&lt;br /&gt;
Данный пример запроса говорит о том, что написан интерфейс Яндекса по синтезу. Соответственно, обращение к нему идет как к Яндексу и ответ как от Яндекса.&lt;br /&gt;
&lt;br /&gt;
Пример структуры файла модуля (/opt/ups/modules/[имя модуля]/handler.py):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;import uuid, io, json&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;from app.modules import modulesns&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;from flask import send_file&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;from flask_restplus import Resource, reqparse&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;from app.ups import tools&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;config = json.load(open(&#039;/opt/ups/modules/yandex_tts_emulator/config.json&#039;))&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;parser = reqparse.RequestParser()&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;parser.add_argument(&#039;voice&#039;,required=True)&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;parser.add_argument(&#039;text&#039;,required=True)&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;@modulesns.route(&amp;quot;/speech/v1/tts:synthesize&amp;quot;&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;class YandexEmulator(Resource): # имя класса можно указать свое&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;   def post(self): # обязательный метод post класса&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;       args = parser.parse_args()&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;       voice = args[&#039;voice&#039;]&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;       voice = config[&#039;voices&#039;].get(voice,None)&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;       if not voice:&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;           modulesns.abort(405, message = &amp;quot;Wrong voice&amp;quot;, error = 1)&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;       reply = tools.getData(servicetype=&amp;quot;tts&amp;quot;,method=&amp;quot;GET&amp;quot;,data={&#039;text&#039;:args[&#039;text&#039;]},url=&amp;quot;/tts/synthesize/&amp;quot;+voice)&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;       if type(reply) is dict:&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;           return reply&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;# возвращаемым значение метода post должен быть правильный результат, в данном примере синтезированный аудиофайл&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;       return send_file(&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;           io.BytesIO(reply),&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;           attachment_filename=str(uuid.uuid4())+&#039;.wav&#039;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;           as_attachment=True,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;           mimetype=&#039;audio/wav&#039;&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;       )&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример структуры файла конфигурации (/opt/ups/modules/[имя модуля]/config.json):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;   &amp;quot;voices&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;       &amp;quot;alena&amp;quot;: &amp;quot;Alya_8kHz&amp;quot;&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;   }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Конфигурирование параметров сервиса&#039;&#039;&#039; =====&lt;br /&gt;
Настройка параметров сервиса ups производится в файле /opt/ups/params.json&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|logs/&lt;br /&gt;
|Директория для хранения логов. Примеры абсолютного пути: &amp;quot;/var/log/ups/&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Количество файлов ротации.&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер файла в байтах, триггер для ротации.&lt;br /&gt;
|-&lt;br /&gt;
|auth.accessLifeTime&lt;br /&gt;
|1800&lt;br /&gt;
|Время жизни access token.&lt;br /&gt;
|-&lt;br /&gt;
|auth.refreshLifeTime&lt;br /&gt;
|86400&lt;br /&gt;
|Время жизни refresh token.&lt;br /&gt;
|-&lt;br /&gt;
|servers.{service}.trainer&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;http://127.0.0.1:PORT&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Ссылка на сервер для обучения моделей сервисов. Возможные варианты значения service (с портами по умолчанию) следующие: smc (6181), see (6184), spr (6183), qas (6187), res (6156), ses (6190).&lt;br /&gt;
|-&lt;br /&gt;
|servers.{service}.cluster&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;[http://127.0.0.1:PORT]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Список ссылок на рабочие серверы сервисов. Возможные варианты значения service (с портами по умолчанию) следующие: smc (6181), see (6184), spr (6183), qas (6187), tts (6186), sbs (6185), ses (6190).&lt;br /&gt;
|-&lt;br /&gt;
|servers.res.cluster&lt;br /&gt;
|&amp;quot;&amp;lt;nowiki&amp;gt;https://0.0.0.0:6157&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Ссылка на сервис kibana, подключенный через раверс-прокси на nginx (входит в состав res).&lt;br /&gt;
|-&lt;br /&gt;
|servers.{service}.timers.connect&lt;br /&gt;
|0.5&lt;br /&gt;
|Лимит времени на подключение к сервису, сек.&lt;br /&gt;
|-&lt;br /&gt;
|servers.{service}.timers.read&lt;br /&gt;
|300&lt;br /&gt;
|Лимит времени на получение данных от сервиса, сек.&lt;br /&gt;
|-&lt;br /&gt;
|servers.{service}.timers.failed&lt;br /&gt;
|600&lt;br /&gt;
|Длительность паузы обращений к сервису при сбое, сек.&lt;br /&gt;
|-&lt;br /&gt;
|servers.{service}.timers.install&lt;br /&gt;
|60&lt;br /&gt;
|Лимит времени на установку модели на сервис.&lt;br /&gt;
|-&lt;br /&gt;
|servers.{service}.timers.info&lt;br /&gt;
|3&lt;br /&gt;
|Лимит времени на получение информации о модели.&lt;br /&gt;
|-&lt;br /&gt;
|servers.ses.websockets&lt;br /&gt;
|&amp;quot;127.0.0.1:6191&amp;quot;&lt;br /&gt;
|Все адреса, в том числе и с SSL (wss), по которым доступен websocket-сервер ses.&lt;br /&gt;
|-&lt;br /&gt;
|servers.res.cluster&lt;br /&gt;
|&amp;quot;&amp;lt;nowiki&amp;gt;http://192.168.20.246:5601&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
|[https://wiki.connect2ai.net/index.php/RES._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0#%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_kibana_+_elasticsearch http адрес Kibana с отчетами.] Для доступа к отчетам по http адресу UPS, и для проксирования на порт 5602 кибаны для ssl UPS&lt;br /&gt;
|-&lt;br /&gt;
|servers.res.auth.username&lt;br /&gt;
servers.res.auth.password&lt;br /&gt;
|&amp;quot;reports&amp;quot;&lt;br /&gt;
&amp;quot;reports&amp;quot;&lt;br /&gt;
|Логин и пароль [https://wiki.connect2ai.net/index.php/RES._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0#%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_kibana_+_elasticsearch пользователя kibana] с правами доступа на просмотр рабочих столов с отчетами&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.log&lt;br /&gt;
|Расположение лога синхронизации для работы в кластере.&lt;br /&gt;
|-&lt;br /&gt;
|cluster.statusFile&lt;br /&gt;
|logs/sync.status&lt;br /&gt;
|Файл для периодической записи отчёта о состоянии синхронизации.&lt;br /&gt;
|-&lt;br /&gt;
|cluster.nodes&lt;br /&gt;
|[ ]&lt;br /&gt;
|Перечень нод кластера UPS, на которые будет отправляться содержимое папки «data».&lt;br /&gt;
|-&lt;br /&gt;
|userlog&lt;br /&gt;
|[ &amp;quot;POST:&amp;quot;,  &amp;quot;DELETE:&amp;quot; ]&lt;br /&gt;
|Типы действий пользователей, которые будут логироваться.&lt;br /&gt;
|-&lt;br /&gt;
|nouserlog&lt;br /&gt;
|[&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;POST:/auth/userlog&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;POST:/ses/ask&amp;quot;, &lt;br /&gt;
&lt;br /&gt;
&amp;quot;POST/auth/user/password&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;POST/spr/stt&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;POST/sbs/analyze&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;POST/sbs/search&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;POST/sbs/verify&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;POST/tts/normalize&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;POST/tts/revoice&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;POST/tts/synthesize&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;POST/qas/summarize&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    ]&lt;br /&gt;
|Исключения из правила логирования действий пользователей.&lt;br /&gt;
|-&lt;br /&gt;
|nopassword&lt;br /&gt;
|[&lt;br /&gt;
&amp;quot;GET:/auth/refresh&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GET:/auth/rights&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;POST:/auth/access&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GET:/lang/&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GET:/tts/synthesize&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;POST:/sbs/embedding&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GET:/smc/classify&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GET:/auth/version&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GET:/smc/compress&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GET:/smc/emotion&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GET:/see/entities&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;POST:/sbs/analyze&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;POST:/sbs/verify&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;POST:/sbs/search&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;POST:/spr/stt&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GET:/spr/result&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GET:/auth/user/info&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;GET:/model/info&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;POST:/auth/user/password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
|Список методов, которые не требуют авторизации.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Сбор данных об ошибках&#039;&#039;&#039; =====&lt;br /&gt;
Логи сервиса по умолчанию находятся в файле /opt/ups/logs/log.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Удаление UPS&#039;&#039;&#039; =====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/ups/uninstall&amp;lt;/code&amp;gt;. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SPR._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3553</id>
		<title>SPR. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SPR._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3553"/>
		<updated>2026-01-29T07:57:36Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис Short phrase recognizer предназначен для преобразования речи в текст. Принимает на вход аудиофайл в формате wav и возвращает структурированные данные в формате JSON.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Short Phrase Recognizer (SPR) — сервис распознавания речи.&lt;br /&gt;
&lt;br /&gt;
Модель — предварительно обученная специализированная нейронная сеть для распознавания естественной речи в аудиозаписях.&lt;br /&gt;
&lt;br /&gt;
Swagger UI — интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису SPR в реальном времени.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API SPR&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SPR. По умолчанию используется порт 6183/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6183 будет отображен интерфейс Swagger со всеми методами с возможностью их проверки.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot;|&#039;&#039;&#039;GET:/spr/models&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Вывод списка моделей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Без входных параметров.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ models: [model1,...,modelN] }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot;|&#039;&#039;&#039;GET:/spr/audio/{taskID}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Получение файла аудиозаписи отложенного задания.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;taskID — идентификатор задания.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Файл аудиозаписи или&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT , message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot;|&#039;&#039;&#039;GET:/spr/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Получение архива модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;id — идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;ZIP-файл с моделью, либо &amp;lt;code&amp;gt;{ error: INT , message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot;|&#039;&#039;&#039;POST:/spr/import/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Добавление модели. Может быть добавлена как из файла архива, так и переименованием существующей модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;id — идентификатор модели, обязательный параметр.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;zip-model — zip-архив с файлами модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Или&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;from-existing-model — название модели, которая должна перемещена на место id.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot;|&#039;&#039;&#039;DELETE:/spr/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Удаление модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;id — идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot;|&#039;&#039;&#039;GET:/spr/queue&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Получение очереди отложенных заданий на распознавание.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Без входных параметров.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;id задания&amp;quot;:&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;created&amp;quot;: &amp;quot;ХХХХ-ХХ-ХХ ХХ:ХХ:ХХ&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;waiting&amp;quot;, # ready | waiting | failed&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;filename&amp;quot;: &amp;quot;wav&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot;|&#039;&#039;&#039;DELETE:/spr/queue/{taskID}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Удаление отложенных заданий на распознавание.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;taskID — идентификатор задания в очереди.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot;|&#039;&#039;&#039;POST:/spr/stt/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Отправка файла на распознавание речи. Моно-файлы до 60 секунд распознаются без разбивки на фрагменты и определения спикеров. Многоканальные файлы и файлы длиннее 60 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в [[SPR. Руководство администратора.|руководстве администратора]].&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для распознавания&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;speakers&#039;&#039;&#039; — опция поиска говорящих по базе SBS. Если 1, то дополнительно производится поиск говорящих и получение метаданных по каждому говорящему (используется сервис SBS с предварительно обученными слепками метаданных говорящих)&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;punctuation&#039;&#039;&#039; — опция для расстановки знаков препинания. Если 1, то дополнительно вызывает метод punctuate в SMC и расставляет знаки препинания в распознанном тексте, значение по умолчанию берётся из файла конфигурации (для модели big пунктуация выполняется в любом случае).&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;normalization&#039;&#039;&#039; — опция обратной нормализации текста, если 1, то выполняется обратная нормализация текста текста (для модели big выполняется в любом случае).&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;vad&#039;&#039;&#039; — используемый VAD, по умолчанию webrtc&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;toxicity&#039;&#039;&#039; — анализировать распознанный текст на токсичность через smc (GET/smc/toxicity).&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;Высказывание анализируется по 4 параметрам, по каждому выдается вероятность от 0 до 1:&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;quot;оскорбление&amp;quot;: 0.13,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;непристойность&amp;quot;: 0,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;угроза&amp;quot;: 0,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;вежливость&amp;quot;: 0.53&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;emotion&#039;&#039;&#039; — выявить эмоции из распознанного текста через smc (GET/smc/emotion). Возможные ответы: negative, neutral, positive.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;voice_analyzer&#039;&#039;&#039; — анализировать аудиофрагменты каждого из говорящих на эмоции, возраст и пол, запрашивается в sbs метод POST/sbs/analyze.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;Аудио говорящего анализируется на возраст (child, adult, old).&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;Эмоции (ANGER, BORE, DISAPPOINTMENT, DISGUST, EXCITEMENT, FEAR, NEUTRAL, PAIN, PLEASURE, SADNESS, SUPRISE).&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;Пол (male, female).&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;speaker_counter&#039;&#039;&#039; — количество докладчиков, по умолчанию 0, автоматическое определение количества. При отправке значения -1 разделение на докладчиков будет отключено.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;async&#039;&#039;&#039; — отложенный запуск распознавания&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;classifiers&#039;&#039;&#039;&amp;lt;nowiki&amp;gt; - дополнительно проанализировать все распознанные фразы через модели smc и/или see. отправляется в виде {&amp;quot;smс&amp;quot;:&amp;quot;название модели&amp;quot;:{ параметры запроса }}. Подробнее о параметрах запроса см. в документации по сервисам &amp;lt;/nowiki&amp;gt;[[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;webhook&#039;&#039;&#039; — внешний url для отправки результата распознавания в отложенном режиме запуска. Результат отправляется методом POST.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;В случае &#039;&#039;&#039;async=1&#039;&#039;&#039; возвращается только &#039;&#039;&#039;taskID&#039;&#039;&#039;, результат по taskID смотреть в методе /spr/result либо на внешнем сервисе, указанном в поле webhook.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;Для коротких файлов&#039;&#039;&#039;:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;model&amp;quot;: &amp;quot;call&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;текст фрагмента&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;classifiers&amp;quot;: тут ответы от моделей smc и see,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;words&amp;quot;: [&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt; &amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt; &amp;quot;word&amp;quot;: &amp;quot;текст&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;start&amp;quot;: 520,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;      &amp;quot;stop&amp;quot;: 1240&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt; },&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;    {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt; &amp;quot;word&amp;quot;: &amp;quot;фрагмента&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;start&amp;quot;: 1240,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;      &amp;quot;stop&amp;quot;: 1920&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;Для транскрибации больших файлов:&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;speakers&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    { &amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;id&amp;quot;: null,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;duration&amp;quot;: 18980,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;fragments&amp;quot;: 3,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;age&amp;quot;: &amp;quot;old&amp;quot;, # только для voice_analyzer=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;gender&amp;quot;: &amp;quot;female&amp;quot; # только для voice_analyzer=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;splitted&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;start&amp;quot;: &amp;quot;00:00:01.870&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;text&amp;quot;: &amp;quot;текст.&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;words&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        { &amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;word&amp;quot;: &amp;quot;текст.&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;start&amp;quot;: 1870,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;stop&amp;quot;: 2710,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;confidence&amp;quot;: 0.95263671875&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;stop&amp;quot;: &amp;quot;00:00:05.510&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;channel&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;duration&amp;quot;: &amp;quot;00:00:03.640&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;start_ms&amp;quot;: 1870,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;stop_ms&amp;quot;: 5510,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;duration_ms&amp;quot;: 3640,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;speaker&amp;quot;: 4,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;speakerConfidence&amp;quot;: 0.87,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;classifiers&amp;quot;: тут ответы от моделей smc и see,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;toxicity&amp;quot;: { # только для toxicity=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;insult&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;obscenity&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;threat&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;politeness&amp;quot;: 0.99&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;},&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;emotion&amp;quot;: { &amp;quot;neutral&amp;quot;: -0.3315 }, # только для emotion=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;voice_analysis&amp;quot;: { # только для voice_analyzer=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;emotion&amp;quot;: {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;class&amp;quot;: &amp;quot;NEUTRAL&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;confidence&amp;quot;: 0.7554781436920166  } &amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot;|&#039;&#039;&#039;GET:/spr/result/{taskID}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Получение результата отложенного распознавания.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;taskID — идентификатор задания.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Вывод по окончанию распознавания аналогичен выводу метода stt + добавлено поле status, которое содержит информацию о статусе отложенной задачи:&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;ready — готово&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;waiting — ожидание&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;not found — не найдена&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;failed — сбой.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot;|&#039;&#039;&#039;GET:/spr/waveform/{taskID}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Служебный метод для отображения аудио в графическом виде, содержит пики сигнала.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  style=&amp;quot;width: 50%&amp;quot; colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;taskID — идентификатор задания.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;waveform&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;0.016,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    0.015,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    0.01&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3552</id>
		<title>SMC. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3552"/>
		<updated>2026-01-29T07:41:00Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для анализа и классификации текстовой информации. Входным значением для сервиса являются данные в текстовом формате. В ответ на входящий запрос сервис возвращает данные в формате JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Simple Message Classifier (SMC) – сервис анализа и классификации. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Системные требования для SMC&#039;&#039;&#039; =====&lt;br /&gt;
Для работы smc рекомендуется использовать видеокарту NVIDIA, поддерживающую технологию CUDA и имеющую в составе ядра CUDA.&lt;br /&gt;
&lt;br /&gt;
В случае отсутствия видеокарты для нормальной работы сервиса необходимо обеспечить не менее 8 потоков CPU &amp;gt;= 2.20GHz с поддержкой инструкций AVX2 или новее. В конфигурации 8 потоков Intel(R) Xeon(R) Gold 6148 2.40GHz 6Гб ОЗУ фраза из 10 слов классифицируется 0.2с, соответственно за секунду может быть распознано до 5 фраз, отправленных на распознавание последовательно или одновременно. Увеличение количества ядер/потоков дает прирост производительности, но не прямо пропорциональный.&lt;br /&gt;
&lt;br /&gt;
Оперативной памяти необходимо не менее 4Gb.&lt;br /&gt;
&lt;br /&gt;
Для обучения моделей рекомендуется использовать видеокарту. Обучение модели на корпусе размером 7500 строк занимает на ВМ с 16 ядрами, 16Гб ОЗУ и видеокартой А16 (одном из 4-х ее ядер) около 20 минут. Недостаточная мощность CPU может увеличить время обучения за счет подготовки данных.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка/обновление сервиса SMC&#039;&#039;&#039; =====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/smc&amp;amp;fileid=560 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить сервисный пакет окружения]].&lt;br /&gt;
&lt;br /&gt;
* Установка/обновление SMC осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./smc-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./smc-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./smc-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
* Загрузить последнюю версию продукта  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/smc/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/smc&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить SMC&amp;lt;code&amp;gt;/opt/smc/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/smc/inupdate -b&amp;lt;/code&amp;gt; – обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/smc/inupdate -r&amp;lt;/code&amp;gt; – обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/smc/inupdate -n&amp;lt;/code&amp;gt; – обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Установить модели  &amp;lt;code&amp;gt;/opt/smc/inmodel&amp;lt;/code&amp;gt; в интерактивном режиме.&lt;br /&gt;
* Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/smc/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/smc/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; – это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/smc/.userapi (это файл авторизации в API, нужен для обновления и загрузки моделей)&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/smc/.proxy (это файл конфигурации proxy, необходим для обновления и загрузки моделей, при отсутствующем прямом подключении к интернету)&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable smc.service &amp;amp;&amp;amp; sudo systemctl start smc.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status smc.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к порту 6181 на нужном интерфейсе по протоколу tcp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Лицензия&#039;&#039;&#039; =====&lt;br /&gt;
Сервис не функционирует без действующей лицензии. Информация о лицензии хранится в файле:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/opt/smc/license.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл лицензии должен соответствовать следующему формату:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;service&amp;quot;: &amp;quot;smc&amp;quot;, &amp;quot;expire&amp;quot;: &amp;quot;2045-01-01&amp;quot;, &amp;quot;licenses&amp;quot;: , &amp;quot;key&amp;quot;: &amp;quot;&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для получения лицензии необходимо:&lt;br /&gt;
&lt;br /&gt;
1. Запустить сервис &amp;lt;code&amp;gt;systemctl start smc&amp;lt;/code&amp;gt; и извлечь UUID, указанный в файле &amp;lt;code&amp;gt;/opt/smc/logs/log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Передать полученный UUID руководителю проекта для оформления лицензии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка сервисных моделей SMC&#039;&#039;&#039; =====&lt;br /&gt;
Установка сервисных моделей возможна только копированием файла(файлов) модели в каталог с названием модели. Названия моделей предопределены и соответствуют их назначению (compressor,  correction,  embeddings,  emotions,  normalization,  punctuation, toxicity). Установка сервисных моделей невозможна через API, в отличие от моделей классификации.&lt;br /&gt;
&lt;br /&gt;
Модели располагаются в каталоге /opt/smc/pretrained/. Для установки модели необходимо создать каталог /opt/smc/pretrained/&amp;lt;название модели&amp;gt;/ и распаковать в неё архив модели, после чего перезагрузить сервис командой systemctl restart smc.&lt;br /&gt;
&lt;br /&gt;
Проверить корректность работы модели пунктуации можно запросом к API с отправкой текста на распознавание:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -H &amp;quot;accept: application/json&amp;quot; -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/punctuate?text=&amp;lt;/nowiki&amp;gt;&amp;lt;текст&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Список всех моделей представлен в таблице:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&#039;&#039;&#039;Модель&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Описание&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Пример запроса к модели&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Пример ответа от модели&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;embeddings&#039;&#039;&#039;&lt;br /&gt;
|Языковая, отвечает за вычисление векторов при обучении модели. &lt;br /&gt;
|Проверить работу напрямую запросом к API не получится, метод не предусмотрен.&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;compressor&#039;&#039;&#039; &lt;br /&gt;
|Модель сжатия фраз. Убирает из фразы слова, не влияющие на ее смысл.&lt;br /&gt;
|Проверить работу можно через API запросом: &lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/compress?threshold=30&amp;lt;/nowiki&amp;gt;&amp;quot; --data-urlencode &amp;quot;text=как можно было бы получить выплату мне бы&amp;quot;  -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;{ &amp;quot;text&amp;quot;: &amp;quot;получить выплату мне бы&amp;quot; }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;emotions&#039;&#039;&#039; &lt;br /&gt;
|Анализ эмоций.&lt;br /&gt;
|Проверить работу можно через API запросом: &lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/emotion&amp;lt;/nowiki&amp;gt;&amp;quot; --data-urlencode &amp;quot;text=спасибо все хорошо&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;{ &amp;quot;emotion&amp;quot;: &amp;quot;positive&amp;quot;, &amp;quot;score&amp;quot;: 0.9601 }&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;punctuation&#039;&#039;&#039; &lt;br /&gt;
|Пунктуация.&lt;br /&gt;
|Проверить работу можно через API запросом: &lt;br /&gt;
&#039;&#039;&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/punctuate&amp;lt;/nowiki&amp;gt;?&amp;quot; --data-urlencode &amp;quot;text=я пришел как мне получить услугу&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|&amp;lt;code&amp;gt;{ &amp;quot;text&amp;quot;: &amp;quot;Я пришел. Как мне получить услугу?&amp;quot; }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;normalization&#039;&#039;&#039; &lt;br /&gt;
|Обратная нормализация, заменяет числа прописью на цифры. &amp;lt;blockquote&amp;gt;&#039;&#039;Внимание! У модели есть дополнительные требования к модулям Python в файле requirements.txt!&#039;&#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
|Проверить работу можно через API запросом:&lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/normalize&amp;lt;/nowiki&amp;gt;?&amp;quot; --data-urlencode &amp;quot;text=запишите меня к тринадцати&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;{&amp;quot;text&amp;quot;: &amp;quot;запишите меня к 13-ти&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;correction&#039;&#039;&#039; &lt;br /&gt;
|Коррекция правописания. Изменяет неправильно написанные слова, меняя их на наиболее близкие правильные (из знакомых модели). &lt;br /&gt;
|Проверить работу можно через API запросом:&lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/correct&amp;lt;/nowiki&amp;gt;?&amp;quot; --data-urlencode &amp;quot;text=халодная вода&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;{&amp;quot;text&amp;quot;: &amp;quot;холодная вода&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;toxicity&#039;&#039;&#039; &lt;br /&gt;
|Анализ текста на невежливость, угрозы, брань.&lt;br /&gt;
|Проверить работу можно через API запросом:&lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/toxicity&amp;lt;/nowiki&amp;gt;?&amp;quot; --data-urlencode &amp;quot;text=нехороший человек&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt; &lt;br /&gt;
Подробнее см в [[SMC. Руководство пользователя|руководстве пользователя]].&lt;br /&gt;
&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ВНИМАНИЕ!&#039;&#039;&#039; Модели &#039;&#039;&#039;punctuation, embeddings, correction&#039;&#039;&#039; обязательны для установки, остальные  - в зависимости от сценария использования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка моделей классификации&#039;&#039;&#039; =====&lt;br /&gt;
Модель классификации — это модель, обученная на определенном наборе данных (корпусе) и предназначенная непосредственно для классификации. Установка модели возможна запросом с помощью методов API. Методы описаны в [https://wiki.connect2ai.net/index.php/SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F руководстве пользователя]. Также модель может быть установлена копированием содержимого каталога /opt/smc/nnets/&amp;lt;имя модели&amp;gt; с одного сервера smc на другой. Внимание! При этом способе UPS, в конфигурационном файле которого указан новый smc, не увидит скопированную модель.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Конфигурирование параметров сервиса&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
Настройка параметров сервиса smc производится в файле /opt/smc/config.json&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|logs/&lt;br /&gt;
|Директория для хранения логов. Примеры абсолютного пути: &amp;quot;/var/log/smc/&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Количество файлов ротации.&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер файла в байтах, триггер для ротации.&lt;br /&gt;
|-&lt;br /&gt;
|noise.enabled&lt;br /&gt;
|true&lt;br /&gt;
|Детекция мусора при классификации (фраз, которые не относятся ни к одному классу)&lt;br /&gt;
|-&lt;br /&gt;
|noise.threshold&lt;br /&gt;
|0.7&lt;br /&gt;
|Порог отсева&lt;br /&gt;
|-&lt;br /&gt;
|cache.size.embedding&lt;br /&gt;
|262144&lt;br /&gt;
|Максимальный размер кэша векторов (количество записей)&lt;br /&gt;
|-&lt;br /&gt;
|cache.size.classify&lt;br /&gt;
|32768&lt;br /&gt;
|Максимальный размер кэша запросов классификации (количество записей)&lt;br /&gt;
|-&lt;br /&gt;
|cache.size.correction&lt;br /&gt;
|32768&lt;br /&gt;
|Максимальный размер кэша запросов коррекции (количество записей)&lt;br /&gt;
|-&lt;br /&gt;
|cache.size.punctuation&lt;br /&gt;
|32768&lt;br /&gt;
|Максимальный размер кэша запросов пунктуации (количество записей)&lt;br /&gt;
|-&lt;br /&gt;
|cache.size.similar&lt;br /&gt;
|32768&lt;br /&gt;
|Максимальный размер кэша запросов похожести фраз (количество записей)&lt;br /&gt;
|-&lt;br /&gt;
|cache.update&lt;br /&gt;
|3600&lt;br /&gt;
|Период сохранения кэша на диск (секунды)&lt;br /&gt;
|-&lt;br /&gt;
|devices.productionModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |Вычислительное устройство (cpu/cuda:N, где N — номер графического ускорителя), в ОЗУ которого осуществляется загрузка моделей. productionModel подразумевает все рабочие модели классификации, которые создаются в системе. Остальные модели — сервисные: embeddingModel — языковая, punctuationModel — пунктуация, emotionsModel — анализ эмоций, compressorModel — модель сжатия фраз, toxicityModel — модель анализа фразы на токсичность. Можно отдельно по названию сервисной модели включать/выключать ее загрузку в GPU. Рабочие модели можно включить в память GPU только все вместе.&lt;br /&gt;
|-&lt;br /&gt;
|devices.normalizationModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.embeddingModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.punctuationModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.emotionsModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.compressorModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.emotionsModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.toxicityModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.correctionModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.log&lt;br /&gt;
|Файл логов синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.statusFile&lt;br /&gt;
|logs/sync.status&lt;br /&gt;
|Статус задачи синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.nodes&lt;br /&gt;
|[]&lt;br /&gt;
|Перечень подчиненных нод для синхронизации изменений заполняется только на главном сервере кластера&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Работа сервиса через реверс-прокси&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предполагает передачу больших объемов данных через HTTP. Рекомендуем соответствующим образом настроить конфигурацию сайта в реверс-прокси. Например, в nginx дополнительные параметры:&lt;br /&gt;
   client_max_body_size 0;&lt;br /&gt;
   proxy_read_timeout 3h;&lt;br /&gt;
   large_client_header_buffers 8 256k;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Работа в составе кластера&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
Для высоконагруженных систем сервис можно расположить на нескольких нодах (виртуальных машинах). В этом случае, чтобы не потерять документы и изменения, полученные на одной из нод, выделяется один основной сервис и вспомогательные сервисы.&lt;br /&gt;
&lt;br /&gt;
* База файловая, в папке data.&lt;br /&gt;
* lsync настроен через конфиг SMC для репликации базы на все указанные серверы в списке cluster.nodes: [], указываем все слейв-сервера.&lt;br /&gt;
* На всех слейвах список cluster.nodes: [] оставляем пустым.&lt;br /&gt;
* Векторная база на каждом сервере своя, она следит за своей папкой data и обновляет в оперативке по этой папке данные у себя.&lt;br /&gt;
* UPS при изменении данных работает только с мастером SMC, а при запросе данных — со всеми серверами cluster, распределяя нагрузку.&lt;br /&gt;
* В конфигурации UPS: в servers.smc.cluster.trainer указываем мастер-сервер, в servers.smc.cluster перечисляем все сервера кластера SMC, в том числе и мастер.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Сбор данных об ошибках&#039;&#039;&#039; =====&lt;br /&gt;
Логи сервиса по умолчанию находятся в файле /opt/smc/logs/log.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Удаление&#039;&#039;&#039; =====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/smc/uninstall&amp;lt;/code&amp;gt;. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Практические рекомендации&#039;&#039;&#039; =====&lt;br /&gt;
Сервис SMC в работе использует большую языковую модель, которая формирует многомерное семантическое пространство. Смысл фразы для ее классификации вычисляется на основании вектора фразы в этом пространстве. Для производительности таких вычислений рекомендуется использовать GPU с 16 Гб видеопамяти. В случае отсутствия видеокарт рекомендуется использовать не менее 3 серверов по 8 ядер и 16 Гб оперативной памяти. При этом желательно в строке запуска gunicorn в файле сервиса добавить параметр &#039;&#039;&#039;«-w 2»&#039;&#039;&#039;. Это приведет к загрузке в память 2-х экземпляров приложения и моделей и позволит при высокой нагрузке полностью загрузить процессорные ядра.&lt;br /&gt;
&lt;br /&gt;
В папке /opt/smc/cache/ находится кэш векторов фраз, которые были созданы моделью векторизации. При работе сервиса при наличии вектора в кэше, он берется из него, а не создается моделью заново. Причем остается в ОЗУ тоже, что значительно увеличивает производительность сервиса, однако при прохождении через сервис большого количества различных фраз может привести к потреблению нескольких гигабайт памяти. Необходимо либо увеличить количество ОЗУ, либо просто перезагружать сервис в нерабочее время. Папку cache при желании можно периодически чистить, но в данном случае кэш будет постепенно заполняться заново с использованием GPU.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3551</id>
		<title>SMC. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3551"/>
		<updated>2026-01-29T07:36:30Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для анализа и классификации текстовой информации. Входным значением для сервиса являются данные в текстовом формате. В ответ на входящий запрос сервис возвращает данные в формате JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Simple Message Classifier (SMC) – сервис анализа и классификации. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Системные требования для SMC&#039;&#039;&#039; =====&lt;br /&gt;
Для работы smc рекомендуется использовать видеокарту NVIDIA, поддерживающую технологию CUDA и имеющую в составе ядра CUDA.&lt;br /&gt;
&lt;br /&gt;
В случае отсутствия видеокарты для нормальной работы сервиса необходимо обеспечить не менее 8 потоков CPU &amp;gt;= 2.20GHz с поддержкой инструкций AVX2 или новее. В конфигурации 8 потоков Intel(R) Xeon(R) Gold 6148 2.40GHz 6Гб ОЗУ фраза из 10 слов классифицируется 0.2с, соответственно за секунду может быть распознано до 5 фраз, отправленных на распознавание последовательно или одновременно. Увеличение количества ядер/потоков дает прирост производительности, но не прямо пропорциональный.&lt;br /&gt;
&lt;br /&gt;
Оперативной памяти необходимо не менее 4Gb.&lt;br /&gt;
&lt;br /&gt;
Для обучения моделей рекомендуется использовать видеокарту. Обучение модели на корпусе размером 7500 строк занимает на ВМ с 16 ядрами, 16Гб ОЗУ и видеокартой А16 (одном из 4-х ее ядер) около 20 минут. Недостаточная мощность CPU может увеличить время обучения за счет подготовки данных.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка/обновление сервиса SMC&#039;&#039;&#039; =====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/smc&amp;amp;fileid=560 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить сервисный пакет окружения]].&lt;br /&gt;
&lt;br /&gt;
* Установка/обновление SMC осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./smc-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./smc-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./smc-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
* Загрузить последнюю версию продукта  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/smc/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/smc&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить SMC&amp;lt;code&amp;gt;/opt/smc/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/smc/inupdate -b&amp;lt;/code&amp;gt; – обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/smc/inupdate -r&amp;lt;/code&amp;gt; – обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/smc/inupdate -n&amp;lt;/code&amp;gt; – обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Установить модели  &amp;lt;code&amp;gt;/opt/smc/inmodel&amp;lt;/code&amp;gt; в интерактивном режиме.&lt;br /&gt;
* Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/smc/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/smc/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; – это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/smc/.userapi (это файл авторизации в API, нужен для обновления и загрузки моделей)&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/smc/.proxy (это файл конфигурации proxy, необходим для обновления и загрузки моделей, при отсутствующем прямом подключении к интернету)&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable smc.service &amp;amp;&amp;amp; sudo systemctl start smc.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status smc.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к порту 6181 на нужном интерфейсе по протоколу tcp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Лицензия&#039;&#039;&#039; =====&lt;br /&gt;
Сервис не функционирует без действующей лицензии. Информация о лицензии хранится в файле:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/opt/smc/license.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл лицензии должен соответствовать следующему формату:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;service&amp;quot;: &amp;quot;smc&amp;quot;, &amp;quot;expire&amp;quot;: &amp;quot;2045-01-01&amp;quot;, &amp;quot;licenses&amp;quot;: , &amp;quot;key&amp;quot;: &amp;quot;&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для получения лицензии необходимо:&lt;br /&gt;
&lt;br /&gt;
1. Запустить сервис &amp;lt;code&amp;gt;systemctl start smc&amp;lt;/code&amp;gt; и извлечь UUID, указанный в файле &amp;lt;code&amp;gt;/opt/smc/logs/log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Передать полученный UUID руководителю проекта для оформления лицензии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка сервисных моделей SMC&#039;&#039;&#039; =====&lt;br /&gt;
Установка сервисных моделей возможна только копированием файла(файлов) модели в каталог с названием модели. Названия моделей предопределены и соответствуют их назначению (compressor,  correction,  embeddings,  emotions,  normalization,  punctuation, toxicity). Установка сервисных моделей невозможна через API, в отличие от моделей классификации.&lt;br /&gt;
&lt;br /&gt;
Модели располагаются в каталоге /opt/smc/pretrained/. Для установки модели необходимо создать каталог /opt/smc/pretrained/&amp;lt;название модели&amp;gt;/ и распаковать в неё архив модели, после чего перезагрузить сервис командой systemctl restart smc.&lt;br /&gt;
&lt;br /&gt;
Проверить корректность работы модели пунктуации можно запросом к API с отправкой текста на распознавание:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -H &amp;quot;accept: application/json&amp;quot; -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/punctuate?text=&amp;lt;/nowiki&amp;gt;&amp;lt;текст&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Список всех моделей представлен в таблице:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&#039;&#039;&#039;Модель&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Описание&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Пример запроса к модели&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Пример ответа от модели&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;embeddings&#039;&#039;&#039;&lt;br /&gt;
|Языковая, отвечает за вычисление векторов при обучении модели. &lt;br /&gt;
|Проверить работу напрямую запросом к API не получится, метод не предусмотрен.&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;compressor&#039;&#039;&#039; &lt;br /&gt;
|Модель сжатия фраз. Убирает из фразы слова, не влияющие на ее смысл.&lt;br /&gt;
|Проверить работу можно через API запросом: &lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/compress?threshold=30&amp;lt;/nowiki&amp;gt;&amp;quot; --data-urlencode &amp;quot;text=как можно было бы получить выплату мне бы&amp;quot;  -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;{ &amp;quot;text&amp;quot;: &amp;quot;получить выплату мне бы&amp;quot; }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;emotions&#039;&#039;&#039; &lt;br /&gt;
|Анализ эмоций.&lt;br /&gt;
|Проверить работу можно через API запросом: &lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/emotion&amp;lt;/nowiki&amp;gt;&amp;quot; --data-urlencode &amp;quot;text=спасибо все хорошо&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;{ &amp;quot;emotion&amp;quot;: &amp;quot;positive&amp;quot;, &amp;quot;score&amp;quot;: 0.9601 }&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;punctuation&#039;&#039;&#039; &lt;br /&gt;
|Пунктуация.&lt;br /&gt;
|Проверить работу можно через API запросом: &lt;br /&gt;
&#039;&#039;&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/punctuate&amp;lt;/nowiki&amp;gt;?&amp;quot; --data-urlencode &amp;quot;text=я пришел как мне получить услугу&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|&amp;lt;code&amp;gt;{ &amp;quot;text&amp;quot;: &amp;quot;Я пришел. Как мне получить услугу?&amp;quot; }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;normalization&#039;&#039;&#039; &lt;br /&gt;
|Обратная нормализация, заменяет числа прописью на цифры. &amp;lt;blockquote&amp;gt;&#039;&#039;Внимание! У модели есть дополнительные требования к модулям Python в файле requirements.txt!&#039;&#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
|Проверить работу можно через API запросом:&lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/normalize&amp;lt;/nowiki&amp;gt;?&amp;quot; --data-urlencode &amp;quot;text=запишите меня к тринадцати&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;{&amp;quot;text&amp;quot;: &amp;quot;запишите меня к 13-ти&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;correction&#039;&#039;&#039; &lt;br /&gt;
|Коррекция правописания. Изменяет неправильно написанные слова, меняя их на наиболее близкие правильные (из знакомых модели). &lt;br /&gt;
|Проверить работу можно через API запросом:&lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/correct&amp;lt;/nowiki&amp;gt;?&amp;quot; --data-urlencode &amp;quot;text=халодная вода&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;{&amp;quot;text&amp;quot;: &amp;quot;холодная вода&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;toxicity&#039;&#039;&#039; &lt;br /&gt;
|Анализ текста на невежливость, угрозы, брань.&lt;br /&gt;
|Проверить работу можно через API запросом:&lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/toxicity&amp;lt;/nowiki&amp;gt;?&amp;quot; --data-urlencode &amp;quot;text=нехороший человек&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt; &lt;br /&gt;
Подробнее см в [[SMC. Руководство пользователя|руководстве пользователя]].&lt;br /&gt;
&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ВНИМАНИЕ!&#039;&#039;&#039; Модели &#039;&#039;&#039;punctuation, embeddings, correction&#039;&#039;&#039; обязательны для установки, остальные  - в зависимости от сценария использования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка моделей классификации&#039;&#039;&#039; =====&lt;br /&gt;
Модель классификации — это модель, обученная на определенном наборе данных (корпусе) и предназначенная непосредственно для классификации. Установка модели возможна запросом с помощью методов API. Методы описаны в [https://wiki.connect2ai.net/index.php/SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F руководстве пользователя]. Также модель может быть установлена копированием содержимого каталога /opt/smc/nnets/&amp;lt;имя модели&amp;gt; с одного сервера smc на другой. Внимание! При этом способе UPS, в конфигурационном файле которого указан новый smc, не увидит скопированную модель.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Конфигурирование параметров сервиса&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
Настройка параметров сервиса smc производится в файле /opt/smc/config.json&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|logs/&lt;br /&gt;
|Директория для хранения логов. Примеры абсолютного пути: &amp;quot;/var/log/smc/&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Количество файлов ротации.&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер файла в байтах, триггер для ротации.&lt;br /&gt;
|-&lt;br /&gt;
|noise.enabled&lt;br /&gt;
|true&lt;br /&gt;
|Детекция мусора при классификации (фраз, которые не относятся ни к одному классу)&lt;br /&gt;
|-&lt;br /&gt;
|noise.threshold&lt;br /&gt;
|0.7&lt;br /&gt;
|Порог отсева&lt;br /&gt;
|-&lt;br /&gt;
|cache.size.embedding&lt;br /&gt;
|262144&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; |Максимальный размер кэша векторов (штуки)&lt;br /&gt;
|-&lt;br /&gt;
|cache.size.classify&lt;br /&gt;
|32768&lt;br /&gt;
|-&lt;br /&gt;
|cache.size.correction&lt;br /&gt;
|32768&lt;br /&gt;
|-&lt;br /&gt;
|cache.size.punctuation&lt;br /&gt;
|32768&lt;br /&gt;
|-&lt;br /&gt;
|cache.size.similar&lt;br /&gt;
|32768&lt;br /&gt;
|-&lt;br /&gt;
|cache.update&lt;br /&gt;
|3600&lt;br /&gt;
|Период сохранения кэша на диск (секунды)&lt;br /&gt;
|-&lt;br /&gt;
|devices.productionModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |Вычислительное устройство (cpu/cuda:N, где N — номер графического ускорителя), в ОЗУ которого осуществляется загрузка моделей. productionModel подразумевает все рабочие модели классификации, которые создаются в системе. Остальные модели — сервисные: embeddingModel — языковая, punctuationModel — пунктуация, emotionsModel — анализ эмоций, compressorModel — модель сжатия фраз, toxicityModel — модель анализа фразы на токсичность. Можно отдельно по названию сервисной модели включать/выключать ее загрузку в GPU. Рабочие модели можно включить в память GPU только все вместе.&lt;br /&gt;
|-&lt;br /&gt;
|devices.normalizationModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.embeddingModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.punctuationModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.emotionsModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.compressorModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.emotionsModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.toxicityModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.correctionModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.log&lt;br /&gt;
|Файл логов синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.statusFile&lt;br /&gt;
|logs/sync.status&lt;br /&gt;
|Статус задачи синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.nodes&lt;br /&gt;
|[]&lt;br /&gt;
|Перечень подчиненных нод для синхронизации изменений заполняется только на главном сервере кластера&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Работа сервиса через реверс-прокси&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предполагает передачу больших объемов данных через HTTP. Рекомендуем соответствующим образом настроить конфигурацию сайта в реверс-прокси. Например, в nginx дополнительные параметры:&lt;br /&gt;
   client_max_body_size 0;&lt;br /&gt;
   proxy_read_timeout 3h;&lt;br /&gt;
   large_client_header_buffers 8 256k;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Работа в составе кластера&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
Для высоконагруженных систем сервис можно расположить на нескольких нодах (виртуальных машинах). В этом случае, чтобы не потерять документы и изменения, полученные на одной из нод, выделяется один основной сервис и вспомогательные сервисы.&lt;br /&gt;
&lt;br /&gt;
* База файловая, в папке data.&lt;br /&gt;
* lsync настроен через конфиг SMC для репликации базы на все указанные серверы в списке cluster.nodes: [], указываем все слейв-сервера.&lt;br /&gt;
* На всех слейвах список cluster.nodes: [] оставляем пустым.&lt;br /&gt;
* Векторная база на каждом сервере своя, она следит за своей папкой data и обновляет в оперативке по этой папке данные у себя.&lt;br /&gt;
* UPS при изменении данных работает только с мастером SMC, а при запросе данных — со всеми серверами cluster, распределяя нагрузку.&lt;br /&gt;
* В конфигурации UPS: в servers.smc.cluster.trainer указываем мастер-сервер, в servers.smc.cluster перечисляем все сервера кластера SMC, в том числе и мастер.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Сбор данных об ошибках&#039;&#039;&#039; =====&lt;br /&gt;
Логи сервиса по умолчанию находятся в файле /opt/smc/logs/log.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Удаление&#039;&#039;&#039; =====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/smc/uninstall&amp;lt;/code&amp;gt;. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Практические рекомендации&#039;&#039;&#039; =====&lt;br /&gt;
Сервис SMC в работе использует большую языковую модель, которая формирует многомерное семантическое пространство. Смысл фразы для ее классификации вычисляется на основании вектора фразы в этом пространстве. Для производительности таких вычислений рекомендуется использовать GPU с 16 Гб видеопамяти. В случае отсутствия видеокарт рекомендуется использовать не менее 3 серверов по 8 ядер и 16 Гб оперативной памяти. При этом желательно в строке запуска gunicorn в файле сервиса добавить параметр &#039;&#039;&#039;«-w 2»&#039;&#039;&#039;. Это приведет к загрузке в память 2-х экземпляров приложения и моделей и позволит при высокой нагрузке полностью загрузить процессорные ядра.&lt;br /&gt;
&lt;br /&gt;
В папке /opt/smc/cache/ находится кэш векторов фраз, которые были созданы моделью векторизации. При работе сервиса при наличии вектора в кэше, он берется из него, а не создается моделью заново. Причем остается в ОЗУ тоже, что значительно увеличивает производительность сервиса, однако при прохождении через сервис большого количества различных фраз может привести к потреблению нескольких гигабайт памяти. Необходимо либо увеличить количество ОЗУ, либо просто перезагружать сервис в нерабочее время. Папку cache при желании можно периодически чистить, но в данном случае кэш будет постепенно заполняться заново с использованием GPU.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=RES._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3544</id>
		<title>RES. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=RES._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3544"/>
		<updated>2026-01-16T08:35:19Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для обеспечения доступа к отчетам kibana в интерфейсе UPS и отправки в elasticsearch статистики работы роботов SES.&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Report Engine Service (RES) – сервис проксирования запросов к отчетам Kibana в интерфейсе UPS. Сервис отображает все отчеты Kibana.&lt;br /&gt;
===== &#039;&#039;&#039;Требования к окружению&#039;&#039;&#039; =====&lt;br /&gt;
Для нормальной работы сервис должен быть установлен на сервере с UPS. В процессе работы сервис взаимодействует со следующими сервисами:&lt;br /&gt;
    • UPS – настройка осуществляется через файл /opt/ups/config.json&lt;br /&gt;
    • Kibana – настраивается через файл /opt/res/config.json. kibana может быть расположен на другом хосте&lt;br /&gt;
    • elasticsearch - настраивается через файл /opt/res/config.json. elasticsearch может быть расположен на другом хосте&lt;br /&gt;
    • SES – настраивается через файл /opt/res/config.json. SES может быть расположен на другом хосте&lt;br /&gt;
===== &#039;&#039;&#039;Установка RES&#039;&#039;&#039; ===== &lt;br /&gt;
&lt;br /&gt;
Дистрибутив распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить сервисный пакет окружения]].&lt;br /&gt;
&lt;br /&gt;
* Установка/обновление RES осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./res-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./res-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./res-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
* Загрузить последнюю версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/res/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/res&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить RES &amp;lt;code&amp;gt;/opt/res/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/res/inupdate -b&amp;lt;/code&amp;gt; —  обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/res/inupdate -r&amp;lt;/code&amp;gt; —  обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/res/inupdate -n&amp;lt;/code&amp;gt; —  обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/res/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/res/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; —  это тот же логин и пароль, что и от &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.&lt;br /&gt;
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt; &amp;gt; /opt/res/.userapi (это файл авторизации в API, нужен для обновления и загрузки )&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt; &amp;gt; /opt/res/.proxy (это файл конфигурации proxy, необходим для обновления и загрузки, при отсутствующем прямом подключении к интернету)&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable res.service &amp;amp;&amp;amp; sudo systemctl start res.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status res.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к портам 6157/tcp, 6170/tcp а также порту, определенном в конфиге (по умолчанию 6189/tcp) на нужном интерфейсе.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Настройка&#039;&#039;&#039;===&lt;br /&gt;
====&#039;&#039;&#039;Файл config.json&#039;&#039;&#039;====&lt;br /&gt;
Настройка параметров сервиса res производится в файле /opt/res/config.json&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;width: 22%&amp;quot; |Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|port&lt;br /&gt;
|6189&lt;br /&gt;
|Порт API интерфейса используется в UPS — настройка servers.res в конфиге UPS.&lt;br /&gt;
|-&lt;br /&gt;
|servers.{service}.urls&lt;br /&gt;
|&amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:{port}/{service}&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
|Список серверов {port}/{service} для получения статистики. Сервисы - 6190/ses&lt;br /&gt;
и 6188/cls&lt;br /&gt;
|-&lt;br /&gt;
|servers.{service}.timers.connect&lt;br /&gt;
|60&lt;br /&gt;
|Таймаут на подключение к серверам {service}. При превышении в журнал будет записана ошибка таймаута.&lt;br /&gt;
|-&lt;br /&gt;
|servers.{service}.timers.read&lt;br /&gt;
|120&lt;br /&gt;
|Таймаут на чтение статистики с серверов {service}. При превышении в журнал будет записана ошибка таймаута.&lt;br /&gt;
|-&lt;br /&gt;
|servers.ses.scores&lt;br /&gt;
|[&amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &amp;quot;three&amp;quot;,&lt;br /&gt;
 &amp;quot;four&amp;quot;, &amp;quot;five&amp;quot;]&lt;br /&gt;
|Ключевые слова для поиска оценки работы - только для ses.&lt;br /&gt;
|-&lt;br /&gt;
|servers.elastic.url&lt;br /&gt;
|&amp;quot;https://10.2.0.30:9200&amp;quot;&lt;br /&gt;
|Сервер Elasticsearch для выгрузки статистики.&lt;br /&gt;
|-&lt;br /&gt;
|servers.elastic.username&lt;br /&gt;
|&amp;quot;elastic&amp;quot;&lt;br /&gt;
|Пользователь elasticsearch.&lt;br /&gt;
|-&lt;br /&gt;
|servers.elastic.password&lt;br /&gt;
|&amp;quot;  &amp;quot;&lt;br /&gt;
|Пароль пользователя elasticsearch.&lt;br /&gt;
|-&lt;br /&gt;
|servers.elastic.timers.connect&lt;br /&gt;
|60&lt;br /&gt;
|Таймаут на подключение к серверам Elasticsearch. При превышении в журнал будет записана ошибка таймаута.&lt;br /&gt;
|-&lt;br /&gt;
|servers.elastic.timers.read&lt;br /&gt;
|120&lt;br /&gt;
|Таймаут на выгрузку статистики на сервер Elasticsearch. При превышении в журнал будет записана ошибка таймаута.&lt;br /&gt;
|-&lt;br /&gt;
|servers.kibana.url&lt;br /&gt;
|&amp;quot;https://10.2.0.30:5601&amp;quot;&lt;br /&gt;
|Сервер kibana для получения отчетов.&lt;br /&gt;
|-&lt;br /&gt;
|servers.kibana.timers.connect&lt;br /&gt;
|60&lt;br /&gt;
|Таймаут на подключение к серверу Kibana. При превышении в журнал будет записана ошибка таймаута.&lt;br /&gt;
|-&lt;br /&gt;
|servers.kibana.timers.read&lt;br /&gt;
|120&lt;br /&gt;
|Таймаут на чтение отчетов с сервера Kibana. При превышении в журнал будет записана ошибка таймаут.а&lt;br /&gt;
|-&lt;br /&gt;
|loader.time&lt;br /&gt;
|[&amp;quot;0 5 * * *&amp;quot;, &amp;quot;0 17 * * *&amp;quot;]&lt;br /&gt;
|Ежедневное расписание загрузки статистики в формате cron. Записей может быть больше если нужно чаще актуализировать статистику.&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|&amp;quot;logs/&amp;quot;&lt;br /&gt;
|Папка хранения журналов.&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Максимальное количество журнальных файлов.&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер журнального файла.&lt;br /&gt;
|}&lt;br /&gt;
Для того чтобы рабочие столы с отчетами были доступны в UPS по https протоколу, в конфигурации реверс прокси должны быть следующие директивы (для nginx):&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;proxy_set_header  Host $host;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  proxy_set_header  X-Forwarded-Proto $scheme;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  proxy_set_header  X-Forwarded-Ssl on; # Optional&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  proxy_set_header  X-Forwarded-Port $server_port;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  proxy_set_header  X-Forwarded-Host $host;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Также должен быть еще один конфиг файл который перенаправляет порт 5602 ssl на порт 5602 сервиса UPS (proxy_pass   &amp;lt;nowiki&amp;gt;https://UPS_IP:5602&amp;lt;/nowiki&amp;gt;;) &lt;br /&gt;
&lt;br /&gt;
В конфиге должны быть директивы для заголовков CORS и обработки OPTIONS запросов.&lt;br /&gt;
&lt;br /&gt;
====&#039;&#039;&#039;Установка и настройка kibana + elasticsearch&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;ВНИМАНИЕ - раздел в доработке&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для работы RES нужно установить и соответствующим образом настроить Elasticsearch и Kibana. Без настроенного подключения к рабочим Elasticsearch и Kibana RES не стартует и пишет в логи ошибку.&lt;br /&gt;
&lt;br /&gt;
Пример установки на один хост с IP 1.2.3.4, без кластера.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Устанавливаем&#039;&#039;&#039; elasticsearch&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;dpkg -i elasticsearch-8.15.3-amd64.deb&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Инсталлятор должен выдать &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;The generated password for the elastic built-in superuser is : j9Of2HyCHcK55ElgziyW&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Копируем пароль&#039;&#039;&#039; — он будет использован в разделе servers.elastic.password файла конфигурации RES и для входа в веб-интерфейс Kibana.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Генерируем&#039;&#039;&#039; CA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;/usr/share/elasticsearch/bin/elasticsearch-certutil ca --pem --out /etc/elasticsearch/certs/ca.zip;&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;cd /etc/elasticsearch/certs/;&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;unzip ca.zip;&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
С использованием CA &#039;&#039;&#039;генерируем&#039;&#039;&#039; сертификаты для elastik&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;/usr/share/elasticsearch/bin/elasticsearch-certutil cert \&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;--out /etc/elasticsearch/certs/elastic.zip \&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;--name elastic \&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;--ip 1.2.3.4, 127.0.0.1 \&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;--ca-cert /etc/elasticsearch/certs/ca/ca.crt \&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;--ca-key /etc/elasticsearch/certs/ca/ca.key \&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;--pem;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;cd /etc/elasticsearch/certs/;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;unzip elastic.zip&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Правим&#039;&#039;&#039; конфиг elasticsearch &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;/etc/elasticsearch/elasticsearch.yml&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;cluster.name: res # &#039;&#039;&#039;&#039;&#039;имя кластера - произвольно&#039;&#039;&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;path.data: /var/lib/elasticsearch&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;path.logs: /var/log/elasticsearch&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;network.host: 1.2.3.4 # &#039;&#039;&#039;&#039;&#039;здесь ip хоста&#039;&#039;&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;http.port: 9200&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;xpack.security.enabled: true&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;xpack.security.enrollment.enabled: true&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;xpack.security.http.ssl:&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  enabled: true&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  key: /etc/elasticsearch/certs/elastic/elastic.key&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  certificate: /etc/elasticsearch/certs/elastic/elastic.crt&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  certificate_authorities: /etc/elasticsearch/certs/ca/ca.crt&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;xpack.security.transport.ssl:&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  enabled: true&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  verification_mode: certificate&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  keystore.path: certs/transport.p12&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  truststore.path: certs/transport.p12&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;cluster.initial_master_nodes: [&amp;quot;hostname&amp;quot;] # &#039;&#039;&#039;&#039;&#039;здесь подставить имя хоста&#039;&#039;&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;http.host: 0.0.0.0&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;&#039;&#039;Внимание: копировать конфиг отсюда напрямую не получится, wiki добавляет в начало строки вместо пробела «неразрывный пробел» — yaml его не воспринимает.&#039;&#039;&#039;&#039;&#039;&amp;lt;/blockquote&amp;gt;&#039;&#039;&#039;Стартуем&#039;&#039;&#039; сервис&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;systemctl daemon-reload&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;systemctl enable elasticsearch.service&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;systemctl start elasticsearch&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Проверяем&#039;&#039;&#039; с использованием пароля, сгенерированного в начале&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;curl -X GET -u elastic:j9Of2HyCHcK55ElgziyW &amp;lt;nowiki&amp;gt;https://1.2.3.4:9200&amp;lt;/nowiki&amp;gt; --cacert /etc/elasticsearch/certs/ca/ca.crt&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Устанавливаем&#039;&#039;&#039; kibana&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;dpkg -i kibana-8.15.3-amd64.deb&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Папка для сертификатов: mkdir -p /etc/kibana/certs/&lt;br /&gt;
&lt;br /&gt;
Копируем корневой сертификат: cp -r /etc/elasticsearch/certs/ca /etc/kibana/certs/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Получим&#039;&#039;&#039; пароль для доступа из kibana в elasticsearch &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;/usr/share/elasticsearch/bin/elasticsearch-reset-password -u kibana_system --auto&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Пароль нужен будет дальше в строке &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;elasticsearch.password:&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; конфига kibana.&lt;br /&gt;
&lt;br /&gt;
Kibana ставим в варианте http (без ssl).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Правим&#039;&#039;&#039; конфиг kibana &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;/etc/kibana/kibana.yml&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;server.port: 5601&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;server.host: 0.0.0.0&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;server.publicBaseUrl: &amp;quot;&amp;lt;nowiki&amp;gt;http://1.2.3.4:5601&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;server.ssl.enabled: false&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;elasticsearch.hosts: [&amp;quot;&amp;lt;nowiki&amp;gt;https://1.2.3.4:9200&amp;lt;/nowiki&amp;gt;&amp;quot;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;elasticsearch.username: &amp;quot;kibana_system&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;elasticsearch.password: &amp;quot;gfntin_083SKBYC9V5yk&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;elasticsearch.ssl.certificateAuthorities: /etc/kibana/certs/ca/ca.crt&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;elasticsearch.ssl.verificationMode: full&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;logging:&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  appenders:&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    file:&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      type: file&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      fileName: /var/log/kibana/kibana.log&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      layout:&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        type: json&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  root:&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    appenders:&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      - default&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      - file&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;pid.file: /run/kibana/kibana.pid&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;xpack.security.authc.providers:&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  basic.basic1:&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    order: 0&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;csp.strict: false&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;csp.warnLegacyBrowsers: false&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;csp.script_src:&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  - unsafe-inline&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  - self&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  - unsafe-eval&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;server.customResponseHeaders: {&amp;quot;x-frame-options&amp;quot;:&amp;quot;ALLOWALL&amp;quot;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Запускаем&#039;&#039;&#039; kibana &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;systemctl enable kibana &amp;amp;&amp;amp; systemctl start kibana&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Заходим по адресу &amp;lt;nowiki&amp;gt;https://1.2.3.4:5601/&amp;lt;/nowiki&amp;gt; с пользователем elastic и паролем, который создал инсталлятор elasticsearch. Если видим стартовую страничку Kibana, то Elasticsearch и Kibana готовы к работе с RES. После запуска RES установит пользователя reports с паролем reports и правом доступа к рабочим столам kibana. Рекомендуется сменить после этого пароль. Этот пользователь и пароль должен быть указан в [https://wiki.connect2ai.net/index.php/UPS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0#%D0%9A%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%BE%D0%B2_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%B0 конфиг файле ups] в разделе res.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Протоколы и порты&#039;&#039;&#039;===&lt;br /&gt;
&lt;br /&gt;
Сервис использует порт 6156/tcp - реверс прокси кибаны и 6189/tcp для доступа к API-интерфейсу. Порт доступа к API может быть изменен в конфигурационном файле. &lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Журналы работы&#039;&#039;&#039;===&lt;br /&gt;
&lt;br /&gt;
Для проверки состояния сервиса выполните &amp;lt;code&amp;gt;sudo systemctl status res&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Журналы сервиса находятся в каталоге, определенном в конфигурационном файле (по умолчанию —  &amp;lt;code&amp;gt;/opt/res/logs/&amp;lt;/code&amp;gt;). Ошибки также пишутся в системный журнал, для просмотра можно воспользоваться командой &amp;lt;code&amp;gt;sudo journalctl -u res&amp;lt;/code&amp;gt;&lt;br /&gt;
===&#039;&#039;&#039;Удаление и обновление RES&#039;&#039;&#039;===&lt;br /&gt;
Для удаления выполните команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/opt/res/uninstall&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Команда удалит сервис и рабочий каталог, включая все файлы конфигурации. Для обновления запустите скрипт установки, как указано в п. 4. При этом обновление не изменяет файл /opt/res/config.json.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=QAS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3543</id>
		<title>QAS. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=QAS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3543"/>
		<updated>2026-01-15T16:50:06Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=====&#039;&#039;&#039;Общее описание&#039;&#039;&#039;=====&lt;br /&gt;
Сервис предназначен для поиска ответа на заданный вопрос. Входным значением для сервиса являются данные в текстовом формате. В ответ на входящий запрос сервис возвращает данные в формате JSON.&lt;br /&gt;
=====&#039;&#039;&#039;Термины и определения&#039;&#039;&#039;=====&lt;br /&gt;
Question Answering System (QAS) – сервис ответов на вопросы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Системные требования&#039;&#039;&#039;=====&lt;br /&gt;
Для нормальной работы сервиса без GPU необходимо не менее 8 CPU (минимальные требования для использования метода ask) &amp;gt;= 2.20 GHz с поддержкой инструкций AVX2 или новее:&lt;br /&gt;
*Intel Haswell&lt;br /&gt;
*Intel Broadwell&lt;br /&gt;
*Intel Skylake&lt;br /&gt;
*Intel Kaby Lake&lt;br /&gt;
*Intel Coffee Lake&lt;br /&gt;
*Intel Comet Lake&lt;br /&gt;
*Intel Rocket Lake&lt;br /&gt;
*Intel Alder Lake&lt;br /&gt;
*AMD Excavator&lt;br /&gt;
*AMD Zen (AMD Ryzen)&lt;br /&gt;
*AMD Zen 2 (AMD Ryzen)&lt;br /&gt;
*AMD Zen 3 (AMD Ryzen)&lt;br /&gt;
Работа на CPU при использовании метода ask крайне не рекомендуется. Оперативной памяти необходимо не менее 16Gb для работы без GPU.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Установка/обновление сервиса&#039;&#039;&#039;=====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/qas&amp;amp;fileid=26891 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить отдельный сервисный пакет окружения под QAS]].&lt;br /&gt;
&lt;br /&gt;
* Установка/обновление QAS осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./qas-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./qas-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./qas-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
* Загрузить последнюю версию продукта  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/qas/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s https://repo.connect2ai.net/api/qas --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить QAS &amp;lt;code&amp;gt;/opt/qas/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/qas/inupdate -b&amp;lt;/code&amp;gt; – обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/qas/inupdate -r&amp;lt;/code&amp;gt; – обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/qas/inupdate -n&amp;lt;/code&amp;gt; – обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Установить модели  &amp;lt;code&amp;gt;/opt/qas/inmodel&amp;lt;/code&amp;gt; в интерактивном режиме.&lt;br /&gt;
* Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/qas/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/qas/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; – это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/qas/.userapi (это файл авторизации в API, нужен для обновления и загрузки моделей)&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/qas/.proxy (это файл конфигурации proxy, необходим для обновления и загрузки моделей, при отсутствующем прямом подключении к интернету)&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable qas.service &amp;amp;&amp;amp; sudo systemctl start qas.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status qas.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к порту 6187 на нужном интерфейсе по протоколу tcp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Лицензия&#039;&#039;&#039; =====&lt;br /&gt;
Сервис не функционирует без действующей лицензии. Информация о лицензии хранится в файле:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/opt/qas/license.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл лицензии должен соответствовать следующему формату:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;service&amp;quot;: &amp;quot;qas&amp;quot;, &amp;quot;expire&amp;quot;: &amp;quot;2045-01-01&amp;quot;, &amp;quot;licenses&amp;quot;: , &amp;quot;key&amp;quot;: &amp;quot;&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для получения лицензии необходимо:&lt;br /&gt;
&lt;br /&gt;
1. Запустить сервис &amp;lt;code&amp;gt;systemctl start qas&amp;lt;/code&amp;gt; и извлечь UUID, указанный в файле &amp;lt;code&amp;gt;/opt/qas/logs/log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Передать полученный UUID руководителю проекта для оформления лицензии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Установка моделей&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
В составе QAS используются модели векторизации, и генеративные модели LLM. &lt;br /&gt;
&lt;br /&gt;
Модель векторизации располагается в папке /opt/qas/pretrained/embeddings - для работы с кэшем вопросов и документами &lt;br /&gt;
&lt;br /&gt;
Расположение моделей LLM: /opt/qas/pretrained/gpt/&amp;lt;имя_модели&amp;gt;/. Например , встроенная модель LLM: /opt/qas/pretrained/gpt/default/. Модели после установки QAS должны быть добавлены системным администратором.&lt;br /&gt;
&lt;br /&gt;
QAS допускает использование дополнительных моделей LLM. Каждая из таких моделей должна быть в отдельной папке каталога /opt/qas/pretrained/gpt/&amp;lt;имя_модели&amp;gt;/. Если модель формата GGUF, то достаточно поместить ее в свою папку в  /opt/qas/pretrained/gpt/. В остальных случаях (в том числе и если необходимо обращаться к стороннему api) в папке модели должен быть файл handler.py с функцией handler(prompt=&#039;тут текст&#039;,params={параметры запроса, см. в руководстве пользователя в метода добавления шаблона запроса}), которая возвращает сгенерированный текст.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Работа в составе кластера&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
Для высоконагруженных систем сервис можно расположить на нескольких нодах (виртуальных машинах). В этом случае, чтобы не потерять документы и изменения, полученные на одной из нод, выделяется один основной сервис и вспомогательные сервисы:&lt;br /&gt;
&lt;br /&gt;
* База файловая, в папке data.&lt;br /&gt;
* lsync настроен через конфиг QAS для репликации базы на все указанные серверы в списке cluster.nodes: [], указываем все слейв-сервера.&lt;br /&gt;
* На всех слейвах прописан в конфиге master, чтобы все операции добавления и изменения данных при автокешировании они производили через мастер. Параметр в конфиге questions.master, на мастере значение «&amp;lt;nowiki&amp;gt;http://127.0.0.1:6187»&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
* Векторная база на каждом сервере своя, она следит за своей папкой data и обновляет в оперативке по этой папке данные у себя.&lt;br /&gt;
* UPS при изменении данных работает только с мастером QAS, а при запросе данных — со всеми серверами cluster, распределяя нагрузку.&lt;br /&gt;
* В конфигурации UPS: в servers.qas.trainer указываем мастер-сервер, в servers.qas.cluster перечисляем все сервера кластера QAS, в том числе и мастер.&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Конфигурирование параметров сервиса&#039;&#039;&#039; =====&lt;br /&gt;
Настройка параметров сервиса qas производится в файле /opt/qas/config.json.&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|reloader.period&lt;br /&gt;
|60&lt;br /&gt;
|Период обновления векторов базы вопросов и документов.&lt;br /&gt;
|-&lt;br /&gt;
|gpt.instances&lt;br /&gt;
|1&lt;br /&gt;
|Количество экземпляров встроенной нейросети&lt;br /&gt;
|-&lt;br /&gt;
|gpt.gpu_layers&lt;br /&gt;
|12&lt;br /&gt;
|Количество слоёв gpt нейросети, загружаемых в память видеокарты. Остальные слои загрузятся в оперативную память. Чтобы загрузить &#039;&#039;&#039;всю&#039;&#039;&#039; модель в ГПУ использовать значение &amp;quot;&#039;&#039;&#039;-1&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|gpt.context&lt;br /&gt;
|32768&lt;br /&gt;
|Размер контекста встроенной нейросети.&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|logs/&lt;br /&gt;
|Папка для хранения логов. Примеры абсолютного пути: &amp;quot;/var/log/qas/&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Количество файлов ротации.&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер файла в байтах, триггер для ротации.&lt;br /&gt;
|-&lt;br /&gt;
|cache.size&lt;br /&gt;
|2560000&lt;br /&gt;
|Максимальный размер кэша векторов&lt;br /&gt;
|-&lt;br /&gt;
|cache.update&lt;br /&gt;
|3600&lt;br /&gt;
|Период сохранения кэша на диск (секунды)&lt;br /&gt;
|-&lt;br /&gt;
|fragments.context&lt;br /&gt;
|16384&lt;br /&gt;
|Максимальная длина текста, которая будет подана в генератор для поиска ответа на вопрос.&lt;br /&gt;
|-&lt;br /&gt;
|fragments.threshold&lt;br /&gt;
|0.5&lt;br /&gt;
|Уровень достоверности при векторном поиске фрагментов в загруженных документах.&lt;br /&gt;
|-&lt;br /&gt;
|fragments.limit&lt;br /&gt;
|1&lt;br /&gt;
|Максимальное количество фрагментов, которые должны быть найдены в документах в порядке убывания доверия.&lt;br /&gt;
|-&lt;br /&gt;
|fragments.alpha&lt;br /&gt;
|0.5&lt;br /&gt;
|Параметр alpha — весовой коэффициент в формуле итоговой релевантности фрагмента, которая объединяет результаты двух моделей: векторизации и реранжирования.&lt;br /&gt;
Настройка параметра:&lt;br /&gt;
&lt;br /&gt;
- Высокие значения (близкие к 1.0): Система в большей степени доверяет результатам модели векторизации. &lt;br /&gt;
&lt;br /&gt;
- Низкие значения (близкие к 0.0): Система больше полагается на более точную, но ресурсоемкую модель реранжирования.&lt;br /&gt;
|-&lt;br /&gt;
|fragments.filters&lt;br /&gt;
|[&lt;br /&gt;
&amp;quot;^\\d+\\.$&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;^[^\\S\n]*[(\\{\\[«\&amp;quot;]?\\d+\\.[^\\S\\\n]*$&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;^[{}\\[\\]]$&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;^[a-z]{2,3}\\.?$&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;^(?:https?|ftp|www|com|org|net|io|co|edu|gov|html)$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
|Список регулярных выражений, который используются как фильтр мусора для векторизации. Все что вызывает положительно срабатывание не будет векторизовано.&lt;br /&gt;
|-&lt;br /&gt;
|questions.master&lt;br /&gt;
|&amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6187&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
|Адрес мастер-сервера для работы в кластере. Необходим, чтобы добавленные вопросы распространились на серверы кластера.&lt;br /&gt;
|-&lt;br /&gt;
|questions.threshold&lt;br /&gt;
|0.9&lt;br /&gt;
|Минимальный уровень достоверности ответа для попадания в кеш.&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.log&lt;br /&gt;
|Расположение лог-файла синхронизации (актуально для мастер-сервера).&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.status&lt;br /&gt;
|Расположение файла статуса lsyncd (актуально для мастер-сервера)&lt;br /&gt;
|-&lt;br /&gt;
|cluster.nodes&lt;br /&gt;
|[ ]&lt;br /&gt;
|Ноды кластера, на которые с мастер-сервера будут распространяться изменения.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Сбор данных об ошибках&#039;&#039;&#039; =====&lt;br /&gt;
Логи сервиса по умолчанию находятся в файле /opt/qas/logs/log.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Удаление&#039;&#039;&#039;=====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/qas/uninstall&amp;lt;/code&amp;gt;. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=QAS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3537</id>
		<title>QAS. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=QAS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3537"/>
		<updated>2026-01-15T15:14:49Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=====&#039;&#039;&#039;Общее описание&#039;&#039;&#039;=====&lt;br /&gt;
Сервис предназначен для поиска ответа на заданный вопрос. Входным значением для сервиса являются данные в текстовом формате. В ответ на входящий запрос сервис возвращает данные в формате JSON.&lt;br /&gt;
=====&#039;&#039;&#039;Термины и определения&#039;&#039;&#039;=====&lt;br /&gt;
Question Answering System (QAS) – сервис ответов на вопросы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Системные требования&#039;&#039;&#039;=====&lt;br /&gt;
Для нормальной работы сервиса без GPU необходимо не менее 8 CPU (минимальные требования для использования метода ask) &amp;gt;= 2.20 GHz с поддержкой инструкций AVX2 или новее:&lt;br /&gt;
*Intel Haswell&lt;br /&gt;
*Intel Broadwell&lt;br /&gt;
*Intel Skylake&lt;br /&gt;
*Intel Kaby Lake&lt;br /&gt;
*Intel Coffee Lake&lt;br /&gt;
*Intel Comet Lake&lt;br /&gt;
*Intel Rocket Lake&lt;br /&gt;
*Intel Alder Lake&lt;br /&gt;
*AMD Excavator&lt;br /&gt;
*AMD Zen (AMD Ryzen)&lt;br /&gt;
*AMD Zen 2 (AMD Ryzen)&lt;br /&gt;
*AMD Zen 3 (AMD Ryzen)&lt;br /&gt;
Работа на CPU при использовании метода ask крайне не рекомендуется. Оперативной памяти необходимо не менее 16Gb для работы без GPU.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Установка/обновление сервиса&#039;&#039;&#039;=====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/qas&amp;amp;fileid=26891 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить отдельный сервисный пакет окружения под QAS]].&lt;br /&gt;
&lt;br /&gt;
* Установка/обновление QAS осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./qas-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./qas-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./qas-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
* Загрузить последнюю версию продукта  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/qas/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s https://repo.connect2ai.net/api/qas --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить QAS &amp;lt;code&amp;gt;/opt/qas/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/qas/inupdate -b&amp;lt;/code&amp;gt; – обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/qas/inupdate -r&amp;lt;/code&amp;gt; – обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/qas/inupdate -n&amp;lt;/code&amp;gt; – обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Установить модели  &amp;lt;code&amp;gt;/opt/qas/inmodel&amp;lt;/code&amp;gt; в интерактивном режиме.&lt;br /&gt;
* Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/qas/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/qas/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; – это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/qas/.userapi (это файл авторизации в API, нужен для обновления и загрузки моделей)&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/qas/.proxy (это файл конфигурации proxy, необходим для обновления и загрузки моделей, при отсутствующем прямом подключении к интернету)&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable qas.service &amp;amp;&amp;amp; sudo systemctl start qas.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status qas.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к порту 6187 на нужном интерфейсе по протоколу tcp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Лицензия&#039;&#039;&#039; =====&lt;br /&gt;
Сервис не функционирует без действующей лицензии. Информация о лицензии хранится в файле:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/opt/qas/license.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл лицензии должен соответствовать следующему формату:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;service&amp;quot;: &amp;quot;qas&amp;quot;, &amp;quot;expire&amp;quot;: &amp;quot;2045-01-01&amp;quot;, &amp;quot;licenses&amp;quot;: , &amp;quot;key&amp;quot;: &amp;quot;&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для получения лицензии необходимо:&lt;br /&gt;
&lt;br /&gt;
1. Запустить сервис &amp;lt;code&amp;gt;systemctl start qas&amp;lt;/code&amp;gt; и извлечь UUID, указанный в файле &amp;lt;code&amp;gt;/opt/qas/logs/log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Передать полученный UUID руководителю проекта для оформления лицензии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Установка моделей&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
В составе QAS используются модели векторизации, и генеративные модели LLM. &lt;br /&gt;
&lt;br /&gt;
Модель векторизации располагаются в папке /opt/qas/pretrained/embeddings - для работы с кэшем вопросов и документами &lt;br /&gt;
&lt;br /&gt;
Расположение моделей LLM: /opt/qas/pretrained/gpt/&amp;lt;имя_модели&amp;gt;/. Например , встроенная модель LLM: /opt/qas/pretrained/gpt/default/. Модели после установки QAS должны быть добавлены системным администратором.&lt;br /&gt;
&lt;br /&gt;
QAS допускает использование дополнительных моделей LLM. Каждая из таких моделей должна быть в отдельной папке каталога /opt/qas/pretrained/gpt/&amp;lt;имя_модели&amp;gt;/. Если модель формата GGUF, то достаточно поместить ее в свою папку в  /opt/qas/pretrained/gpt/. В остальных случаях (в том числе и если необходимо обращаться к стороннему api) в папке модели должен быть файл handler.py с функцией handler(prompt=&#039;тут текст&#039;,params={параметры запроса, см. в руководстве пользователя в метода добавления шаблона запроса}), которая возвращает сгенерированный текст.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Работа в составе кластера&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
Для высоконагруженных систем сервис можно расположить на нескольких нодах (виртуальных машинах). В этом случае, чтобы не потерять документы и изменения, полученные на одной из нод, выделяется один основной сервис и вспомогательные сервисы:&lt;br /&gt;
&lt;br /&gt;
* База файловая, в папке data.&lt;br /&gt;
* lsync настроен через конфиг QAS для репликации базы на все указанные серверы в списке cluster.nodes: [], указываем все слейв-сервера.&lt;br /&gt;
* На всех слейвах прописан в конфиге master, чтобы все операции добавления и изменения данных при автокешировании они производили через мастер. Параметр в конфиге questions.master, на мастере значение «&amp;lt;nowiki&amp;gt;http://127.0.0.1:6187»&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
* Векторная база на каждом сервере своя, она следит за своей папкой data и обновляет в оперативке по этой папке данные у себя.&lt;br /&gt;
* UPS при изменении данных работает только с мастером QAS, а при запросе данных — со всеми серверами cluster, распределяя нагрузку.&lt;br /&gt;
* В конфигурации UPS: в servers.qas.trainer указываем мастер-сервер, в servers.qas.cluster перечисляем все сервера кластера QAS, в том числе и мастер.&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Конфигурирование параметров сервиса&#039;&#039;&#039; =====&lt;br /&gt;
Настройка параметров сервиса qas производится в файле /opt/qas/config.json.&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|reloader.period&lt;br /&gt;
|60&lt;br /&gt;
|Период обновления векторов базы вопросов и документов.&lt;br /&gt;
|-&lt;br /&gt;
|gpt.instances&lt;br /&gt;
|1&lt;br /&gt;
|Количество экземпляров встроенной нейросети&lt;br /&gt;
|-&lt;br /&gt;
|gpt.gpu_layers&lt;br /&gt;
|12&lt;br /&gt;
|Количество слоёв gpt нейросети, загружаемых в память видеокарты. Остальные слои загрузятся в оперативную память. Чтобы загрузить &#039;&#039;&#039;всю&#039;&#039;&#039; модель в ГПУ использовать значение &amp;quot;&#039;&#039;&#039;-1&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|gpt.context&lt;br /&gt;
|32768&lt;br /&gt;
|Размер контекста встроенной нейросети.&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|logs/&lt;br /&gt;
|Папка для хранения логов. Примеры абсолютного пути: &amp;quot;/var/log/qas/&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Количество файлов ротации.&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер файла в байтах, триггер для ротации.&lt;br /&gt;
|-&lt;br /&gt;
|cache.size&lt;br /&gt;
|2560000&lt;br /&gt;
|Максимальный размер кэша векторов&lt;br /&gt;
|-&lt;br /&gt;
|cache.update&lt;br /&gt;
|3600&lt;br /&gt;
|Период сохранения кэша на диск (секунды)&lt;br /&gt;
|-&lt;br /&gt;
|fragments.context&lt;br /&gt;
|16384&lt;br /&gt;
|Максимальная длина текста, которая будет подана в генератор для поиска ответа на вопрос.&lt;br /&gt;
|-&lt;br /&gt;
|fragments.threshold&lt;br /&gt;
|0.5&lt;br /&gt;
|Уровень достоверности при векторном поиске фрагментов в загруженных документах.&lt;br /&gt;
|-&lt;br /&gt;
|fragments.limit&lt;br /&gt;
|1&lt;br /&gt;
|Максимальное количество фрагментов, которые должны быть найдены в документах в порядке убывания доверия.&lt;br /&gt;
|-&lt;br /&gt;
|fragments.alpha&lt;br /&gt;
|0.5&lt;br /&gt;
|Параметр alpha — весовой коэффициент в формуле итоговой релевантности фрагмента, которая объединяет результаты двух моделей: векторизации и реранжирования.&lt;br /&gt;
Настройка параметра:&lt;br /&gt;
&lt;br /&gt;
- Высокие значения (близкие к 1.0): Система в большей степени доверяет результатам модели векторизации. &lt;br /&gt;
&lt;br /&gt;
- Низкие значения (близкие к 0.0): Система больше полагается на более точную, но ресурсоемкую модель реранжирования.&lt;br /&gt;
|-&lt;br /&gt;
|fragments.filters&lt;br /&gt;
|[&lt;br /&gt;
&amp;quot;^\\d+\\.$&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;^[^\\S\n]*[(\\{\\[«\&amp;quot;]?\\d+\\.[^\\S\\\n]*$&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;^[{}\\[\\]]$&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;^[a-z]{2,3}\\.?$&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;^(?:https?|ftp|www|com|org|net|io|co|edu|gov|html)$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
|Список регулярных выражений, который используются как фильтр мусора для векторизации. Все что вызывает положительно срабатывание не будет векторизовано.&lt;br /&gt;
|-&lt;br /&gt;
|questions.master&lt;br /&gt;
|&amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6187&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
|Адрес мастер-сервера для работы в кластере. Необходим, чтобы добавленные вопросы распространились на серверы кластера.&lt;br /&gt;
|-&lt;br /&gt;
|questions.threshold&lt;br /&gt;
|0.9&lt;br /&gt;
|Минимальный уровень достоверности ответа для попадания в кеш.&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.log&lt;br /&gt;
|Расположение лог-файла синхронизации (актуально для мастер-сервера).&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.status&lt;br /&gt;
|Расположение файла статуса lsyncd (актуально для мастер-сервера)&lt;br /&gt;
|-&lt;br /&gt;
|cluster.nodes&lt;br /&gt;
|[ ]&lt;br /&gt;
|Ноды кластера, на которые с мастер-сервера будут распространяться изменения.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Сбор данных об ошибках&#039;&#039;&#039; =====&lt;br /&gt;
Логи сервиса по умолчанию находятся в файле /opt/qas/logs/log.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Удаление&#039;&#039;&#039;=====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/qas/uninstall&amp;lt;/code&amp;gt;. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=TTS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3533</id>
		<title>TTS. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=TTS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3533"/>
		<updated>2026-01-14T07:20:00Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для преобразования текста в речь. Входными данными для сервиса является текст, результатом работы будет аудиофайл.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Термины и определения&#039;&#039;&#039;=====&lt;br /&gt;
Text-to-speech server (TTS) – сервис синтеза речи.&lt;br /&gt;
&lt;br /&gt;
Модель (голос) – модель нейронной сети, отвечающая за синтез спектрограммы из текста. От модели зависит, каким голосом будет синтезирован текст.&lt;br /&gt;
&lt;br /&gt;
Вокодер – модель нейронной сети, отвечающая за синтез аудиоданных из спектрограммы.&lt;br /&gt;
&lt;br /&gt;
Swagger UI – интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису TTS в реальном времени&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом TTS. По умолчанию используется порт 6186/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса представляет собой JSON или текстовый документ в кодировке UTF-8, или двоичный файл. &lt;br /&gt;
&lt;br /&gt;
Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6186 будет отображен интерфейс Swagger со всеми методами с возможностью их проверки.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/cache/{path}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Выгрузка аудиофайла из кэша.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;path&#039;&#039;&#039; - путь к аудиофайлу относительно папки /opt/tts/cache/&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;аудиофайл&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/export&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Выгрузка пользовательского словаря ударений.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;простой текст - строки с словом и его интерпретацией с ударением&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/get&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Выгрузка пользовательского словаря ударений в виде json.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot;],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot;],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/import&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Загрузка пользовательского словаря ударений. Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv&#039;&#039;&#039; — файл строк со словом и его интерпретацией с ударением.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/put&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Загрузка пользовательского словаря ударений в виде json. Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — строка следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[ &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/models&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Перечень моделей синтеза речи. Модели поставляются только в составе дистрибутива.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;quot;models&amp;quot;: [&amp;quot;Аля&amp;quot;,&amp;quot;Жанна&amp;quot;,&amp;quot;Дима&amp;quot;,&amp;quot;Елена&amp;quot;]}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/normalize&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Нормализация текста — перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы), например «в понедельник 10.10.2025» -&amp;gt; «в понедельник дес+ятого октябр+я две т+ысячи дв+адцать п+ятого г+ода».&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — фраза для нормализации.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;нормализованный текст&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/phonemes&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Конвертация текста в последовательность фонем.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — фраза для фонемизации.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;последовательность фонем&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/revoice/{revoicer}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Модификация или искажение голоса&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — аудиофайл для обработки.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;revoicer&#039;&#039;&#039; — модель модификации голоса.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;wav файл с модифицированным (искаженным) голосом.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/revoicers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Перечень моделей модификации или искажения голоса. Модели поставляются только в составе дистрибутива. Модель distortion — искажение голоса, делает голос неузнаваемым и речь неразборчивой.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  &amp;quot;distortion&amp;quot; ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/split&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Разбивка текста на фразы. Текст из нескольких предложений разбивает на отдельные фразы. Фразы отдаёт списком.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для обработки&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;phrases&amp;quot;: [ &amp;quot;фраза 1&amp;quot;, &amp;quot;фраза 2&amp;quot;, ....  &amp;quot;фраза N&amp;quot;  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/synthesize/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Синтез звукового файла из текста для фраз большого размера — тип запроса «POST» позволяет отправку больших текстов.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;ВНИМАНИЕ&#039;&#039;&#039;: аналогичный метод GET теперь отсутствует.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;ID&#039;&#039;&#039; — имя модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст синтезируемой фразы&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;rate&#039;&#039;&#039; — скорость речи&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;pitch&#039;&#039;&#039; — высота (тон)&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;volume&#039;&#039;&#039; — громкость&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;frequency&#039;&#039;&#039; — частота дискретизации (по умолчанию 22050 Гц)&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;format&#039;&#039;&#039; - формат файла результата (wav, opus, ogg, mp3)&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;link&#039;&#039;&#039; - если 1, то вернуть только ссылку на файл&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;файл с синтезированой фразой&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/license/check&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Проверка лицензии&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Пример &#039;&#039;&#039;неограниченной&#039;&#039;&#039; лицензии:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/small&amp;gt;&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;uuid&amp;quot;: &amp;quot;362e51300b1029f9b45fb8d58b2a91bf&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;remaining_licenses&amp;quot;: &amp;quot;infinity&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;threshold&amp;quot;: 0&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Пример &#039;&#039;&#039;ограниченной&#039;&#039;&#039; лицензии:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/small&amp;gt;&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;uuid&amp;quot;: &amp;quot;362e51300b1029f9b45fb8d58b2a91bf&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;remaining_licenses&amp;quot;: 100,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;threshold&amp;quot;: 100&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=TTS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3531</id>
		<title>TTS. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=TTS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3531"/>
		<updated>2026-01-14T07:15:25Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для преобразования текста в речь. Входными данными для сервиса является текст, результатом работы будет аудиофайл.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Термины и определения&#039;&#039;&#039;=====&lt;br /&gt;
Text-to-speech server (TTS) – сервис синтеза речи.&lt;br /&gt;
&lt;br /&gt;
Модель (голос) – модель нейронной сети, отвечающая за синтез спектрограммы из текста. От модели зависит, каким голосом будет синтезирован текст.&lt;br /&gt;
&lt;br /&gt;
Вокодер – модель нейронной сети, отвечающая за синтез аудиоданных из спектрограммы.&lt;br /&gt;
&lt;br /&gt;
Swagger UI – интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису TTS в реальном времени&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом TTS. По умолчанию используется порт 6186/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса представляет собой JSON или текстовый документ в кодировке UTF-8, или двоичный файл. &lt;br /&gt;
&lt;br /&gt;
Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6186 будет отображен интерфейс Swagger со всеми методами с возможностью их проверки.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/cache/{path}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Выгрузка аудиофайла из кэша.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;path&#039;&#039;&#039; - путь к аудиофайлу относительно папки /opt/tts/cache/&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;аудиофайл&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/export&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Выгрузка пользовательского словаря ударений.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;простой текст - строки с словом и его интерпретацией с ударением&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/get&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Выгрузка пользовательского словаря ударений в виде json.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot;],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot;],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/import&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Загрузка пользовательского словаря ударений. Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv&#039;&#039;&#039; — файл строк со словом и его интерпретацией с ударением.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/put&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Загрузка пользовательского словаря ударений в виде json. Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — строка следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[ &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/models&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Перечень моделей синтеза речи. Модели поставляются только в составе дистрибутива.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;quot;models&amp;quot;: [&amp;quot;Аля&amp;quot;,&amp;quot;Жанна&amp;quot;,&amp;quot;Дима&amp;quot;,&amp;quot;Елена&amp;quot;]}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/normalize&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Нормализация текста — перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы), например «в понедельник 10.10.2025» -&amp;gt; «в понедельник дес+ятого октябр+я две т+ысячи дв+адцать п+ятого г+ода».&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — фраза для нормализации.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;нормализованный текст&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/revoice/{revoicer}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Модификация или искажение голоса&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — аудиофайл для обработки.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;revoicer&#039;&#039;&#039; — модель модификации голоса.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;wav файл с модифицированным (искаженным) голосом.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/revoicers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Перечень моделей модификации или искажения голоса. Модели поставляются только в составе дистрибутива. Модель distortion — искажение голоса, делает голос неузнаваемым и речь неразборчивой.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  &amp;quot;distortion&amp;quot; ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/split&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Разбивка текста на фразы. Текст из нескольких предложений разбивает на отдельные фразы. Фразы отдаёт списком.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для обработки&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;phrases&amp;quot;: [ &amp;quot;фраза 1&amp;quot;, &amp;quot;фраза 2&amp;quot;, ....  &amp;quot;фраза N&amp;quot;  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/synthesize/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Синтез звукового файла из текста для фраз большого размера — тип запроса «POST» позволяет отправку больших текстов.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;ВНИМАНИЕ&#039;&#039;&#039;: аналогичный метод GET теперь отсутствует.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;ID&#039;&#039;&#039; — имя модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст синтезируемой фразы&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;rate&#039;&#039;&#039; — скорость речи&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;pitch&#039;&#039;&#039; — высота (тон)&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;volume&#039;&#039;&#039; — громкость&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;frequency&#039;&#039;&#039; — частота дискретизации (по умолчанию 22050 Гц)&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;format&#039;&#039;&#039; - формат файла результата (wav, opus, ogg, mp3)&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;link&#039;&#039;&#039; - если 1, то вернуть только ссылку на файл&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;файл с синтезированой фразой&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/license/check&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Проверка лицензии&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Пример &#039;&#039;&#039;неограниченной&#039;&#039;&#039; лицензии:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/small&amp;gt;&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;uuid&amp;quot;: &amp;quot;362e51300b1029f9b45fb8d58b2a91bf&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;remaining_licenses&amp;quot;: &amp;quot;infinity&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;threshold&amp;quot;: 0&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Пример &#039;&#039;&#039;ограниченной&#039;&#039;&#039; лицензии:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/small&amp;gt;&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;uuid&amp;quot;: &amp;quot;362e51300b1029f9b45fb8d58b2a91bf&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;remaining_licenses&amp;quot;: 100,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;threshold&amp;quot;: 100&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=TTS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3530</id>
		<title>TTS. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=TTS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3530"/>
		<updated>2026-01-14T07:14:27Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для преобразования текста в речь. Входными данными для сервиса является текст, результатом работы будет аудиофайл.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Термины и определения&#039;&#039;&#039;=====&lt;br /&gt;
Text-to-speech server (TTS) – сервис синтеза речи.&lt;br /&gt;
&lt;br /&gt;
Модель (голос) – модель нейронной сети, отвечающая за синтез спектрограммы из текста. От модели зависит, каким голосом будет синтезирован текст.&lt;br /&gt;
&lt;br /&gt;
Вокодер – модель нейронной сети, отвечающая за синтез аудиоданных из спектрограммы.&lt;br /&gt;
&lt;br /&gt;
Swagger UI – интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису TTS в реальном времени&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом TTS. По умолчанию используется порт 6186/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса представляет собой JSON или текстовый документ в кодировке UTF-8, или двоичный файл. &lt;br /&gt;
&lt;br /&gt;
Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6186 будет отображен интерфейс Swagger со всеми методами с возможностью их проверки.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/cache/{path}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Выгрузка аудиофайла из кэша.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;path&#039;&#039;&#039; - путь к аудиофайлу относительно папки /opt/tts/cache/&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;аудиофайл&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/export&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Выгрузка пользовательского словаря ударений.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;простой текст - строки с словом и его интерпретацией с ударением&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/get&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Выгрузка пользовательского словаря ударений в виде json.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot;],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot;],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/import&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Загрузка пользовательского словаря ударений. Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv&#039;&#039;&#039; — файл строк со словом и его интерпретацией с ударением.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/put&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Загрузка пользовательского словаря ударений в виде json. Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — строка следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[ &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/models&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Перечень моделей синтеза речи. Модели поставляются только в составе дистрибутива.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&lt;br /&gt;
  &amp;quot;models&amp;quot;: [&lt;br /&gt;
    &amp;quot;Аля&amp;quot;,&lt;br /&gt;
    &amp;quot;Жанна&amp;quot;,&lt;br /&gt;
    &amp;quot;Дима&amp;quot;,&lt;br /&gt;
    &amp;quot;Елена&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/normalize&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Нормализация текста — перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы), например «в понедельник 10.10.2025» -&amp;gt; «в понедельник дес+ятого октябр+я две т+ысячи дв+адцать п+ятого г+ода».&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — фраза для нормализации.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;нормализованный текст&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/revoice/{revoicer}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Модификация или искажение голоса&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — аудиофайл для обработки.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;revoicer&#039;&#039;&#039; — модель модификации голоса.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;wav файл с модифицированным (искаженным) голосом.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/revoicers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Перечень моделей модификации или искажения голоса. Модели поставляются только в составе дистрибутива. Модель distortion — искажение голоса, делает голос неузнаваемым и речь неразборчивой.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  &amp;quot;distortion&amp;quot; ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/split&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Разбивка текста на фразы. Текст из нескольких предложений разбивает на отдельные фразы. Фразы отдаёт списком.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для обработки&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;phrases&amp;quot;: [ &amp;quot;фраза 1&amp;quot;, &amp;quot;фраза 2&amp;quot;, ....  &amp;quot;фраза N&amp;quot;  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/synthesize/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Синтез звукового файла из текста для фраз большого размера — тип запроса «POST» позволяет отправку больших текстов.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;ВНИМАНИЕ&#039;&#039;&#039;: аналогичный метод GET теперь отсутствует.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;ID&#039;&#039;&#039; — имя модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст синтезируемой фразы&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;rate&#039;&#039;&#039; — скорость речи&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;pitch&#039;&#039;&#039; — высота (тон)&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;volume&#039;&#039;&#039; — громкость&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;frequency&#039;&#039;&#039; — частота дискретизации (по умолчанию 22050 Гц)&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;format&#039;&#039;&#039; - формат файла результата (wav, opus, ogg, mp3)&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;link&#039;&#039;&#039; - если 1, то вернуть только ссылку на файл&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;файл с синтезированой фразой&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/license/check&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Проверка лицензии&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Пример &#039;&#039;&#039;неограниченной&#039;&#039;&#039; лицензии:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/small&amp;gt;&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;uuid&amp;quot;: &amp;quot;362e51300b1029f9b45fb8d58b2a91bf&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;remaining_licenses&amp;quot;: &amp;quot;infinity&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;threshold&amp;quot;: 0&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Пример &#039;&#039;&#039;ограниченной&#039;&#039;&#039; лицензии:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/small&amp;gt;&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;uuid&amp;quot;: &amp;quot;362e51300b1029f9b45fb8d58b2a91bf&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;remaining_licenses&amp;quot;: 100,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;threshold&amp;quot;: 100&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=TTS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3529</id>
		<title>TTS. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=TTS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3529"/>
		<updated>2026-01-14T07:13:24Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для преобразования текста в речь. Входными данными для сервиса является текст, результатом работы будет аудиофайл.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Термины и определения&#039;&#039;&#039;=====&lt;br /&gt;
Text-to-speech server (TTS) – сервис синтеза речи.&lt;br /&gt;
&lt;br /&gt;
Модель (голос) – модель нейронной сети, отвечающая за синтез спектрограммы из текста. От модели зависит, каким голосом будет синтезирован текст.&lt;br /&gt;
&lt;br /&gt;
Вокодер – модель нейронной сети, отвечающая за синтез аудиоданных из спектрограммы.&lt;br /&gt;
&lt;br /&gt;
Swagger UI – интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису TTS в реальном времени&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом TTS. По умолчанию используется порт 6186/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса представляет собой JSON или текстовый документ в кодировке UTF-8, или двоичный файл. &lt;br /&gt;
&lt;br /&gt;
Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6186 будет отображен интерфейс Swagger со всеми методами с возможностью их проверки.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/cache/{path}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Выгрузка аудиофайла из кэша.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;path&#039;&#039;&#039; - путь к аудиофайлу относительно папки /opt/tts/cache/&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;аудиофайл&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/export&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Выгрузка пользовательского словаря ударений.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;простой текст - строки с словом и его интерпретацией с ударением&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/get&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Выгрузка пользовательского словаря ударений в виде json.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot;],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot;],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/import&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Загрузка пользовательского словаря ударений. Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv&#039;&#039;&#039; — файл строк со словом и его интерпретацией с ударением.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/put&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Загрузка пользовательского словаря ударений в виде json. Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — строка следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[ &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/models&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Перечень моделей синтеза речи. Модели поставляются только в составе дистрибутива.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;models&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;Аля&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;Жанна&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;Дима&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;Елена&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/normalize&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Нормализация текста — перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы), например «в понедельник 10.10.2025» -&amp;gt; «в понедельник дес+ятого октябр+я две т+ысячи дв+адцать п+ятого г+ода».&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — фраза для нормализации.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;нормализованный текст&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/revoice/{revoicer}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Модификация или искажение голоса&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — аудиофайл для обработки.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;revoicer&#039;&#039;&#039; — модель модификации голоса.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;wav файл с модифицированным (искаженным) голосом.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/revoicers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Перечень моделей модификации или искажения голоса. Модели поставляются только в составе дистрибутива. Модель distortion — искажение голоса, делает голос неузнаваемым и речь неразборчивой.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  &amp;quot;distortion&amp;quot; ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/split&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Разбивка текста на фразы. Текст из нескольких предложений разбивает на отдельные фразы. Фразы отдаёт списком.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для обработки&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;phrases&amp;quot;: [ &amp;quot;фраза 1&amp;quot;, &amp;quot;фраза 2&amp;quot;, ....  &amp;quot;фраза N&amp;quot;  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/synthesize/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Синтез звукового файла из текста для фраз большого размера — тип запроса «POST» позволяет отправку больших текстов.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;ВНИМАНИЕ&#039;&#039;&#039;: аналогичный метод GET теперь отсутствует.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;ID&#039;&#039;&#039; — имя модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст синтезируемой фразы&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;rate&#039;&#039;&#039; — скорость речи&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;pitch&#039;&#039;&#039; — высота (тон)&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;volume&#039;&#039;&#039; — громкость&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;frequency&#039;&#039;&#039; — частота дискретизации (по умолчанию 22050 Гц)&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;format&#039;&#039;&#039; - формат файла результата (wav, opus, ogg, mp3)&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;link&#039;&#039;&#039; - если 1, то вернуть только ссылку на файл&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;файл с синтезированой фразой&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/license/check&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Проверка лицензии&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Пример &#039;&#039;&#039;неограниченной&#039;&#039;&#039; лицензии:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/small&amp;gt;&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;uuid&amp;quot;: &amp;quot;362e51300b1029f9b45fb8d58b2a91bf&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;remaining_licenses&amp;quot;: &amp;quot;infinity&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;threshold&amp;quot;: 0&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Пример &#039;&#039;&#039;ограниченной&#039;&#039;&#039; лицензии:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/small&amp;gt;&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;uuid&amp;quot;: &amp;quot;362e51300b1029f9b45fb8d58b2a91bf&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;remaining_licenses&amp;quot;: 100,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;threshold&amp;quot;: 100&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=TTS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3527</id>
		<title>TTS. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=TTS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3527"/>
		<updated>2026-01-14T07:06:39Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для преобразования текста в речь. Входными данными для сервиса является текст, результатом работы будет аудиофайл.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Термины и определения&#039;&#039;&#039;=====&lt;br /&gt;
Text-to-speech server (TTS) – сервис синтеза речи.&lt;br /&gt;
&lt;br /&gt;
Модель (голос) – модель нейронной сети, отвечающая за синтез спектрограммы из текста. От модели зависит, каким голосом будет синтезирован текст.&lt;br /&gt;
&lt;br /&gt;
Вокодер – модель нейронной сети, отвечающая за синтез аудиоданных из спектрограммы.&lt;br /&gt;
&lt;br /&gt;
Swagger UI – интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису TTS в реальном времени&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом TTS. По умолчанию используется порт 6186/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса представляет собой JSON или текстовый документ в кодировке UTF-8, или двоичный файл. &lt;br /&gt;
&lt;br /&gt;
Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6186 будет отображен интерфейс Swagger со всеми методами с возможностью их проверки.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/cache/{path}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Выгрузка аудиофайла из кэша.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;path&#039;&#039;&#039; - путь к аудиофайлу относительно папки /opt/tts/cache/&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;простой текст - строки с словом и его интерперетацией с ударением&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/export&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Выгрузка пользовательского словаря ударений.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;простой текст - строки с словом и его интерперетацией с ударением&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/get&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Выгрузка пользовательского словаря ударений в виде json.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot;],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot;],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/import&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Загрузка пользовательского словаря ударений. Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv&#039;&#039;&#039; — файл строк со словом и его интерпретацией с ударением.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/put&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Загрузка пользовательского словаря ударений в виде json. Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — строка следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[ &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/normalize&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Нормализация текста — перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы), например «в понедельник 10.10.2025» -&amp;gt; «в понедельник дес+ятого октябр+я две т+ысячи дв+адцать п+ятого г+ода».&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — фраза для нормализации.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;нормализованный текст&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/revoice/{revoicer}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Модификация или искажение голоса&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — аудиофайл для обработки.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;revoicer&#039;&#039;&#039; — модель модификации голоса.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;wav файл с модифицированным (искаженным) голосом.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/revoicers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Перечень моделей модификации или искажения голоса. Модели поставляются только в составе дистрибутива. Модель distortion — искажение голоса, делает голос неузнаваемым и речь неразборчивой.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  &amp;quot;distortion&amp;quot; ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/split&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Разбивка текста на фразы. Текст из нескольких предложений разбивает на отдельные фразы. Фразы отдаёт списком.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для обработки&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;phrases&amp;quot;: [ &amp;quot;фраза 1&amp;quot;, &amp;quot;фраза 2&amp;quot;, ....  &amp;quot;фраза N&amp;quot;  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/synthesize/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Синтез звукового файла из текста для фраз большого размера — тип запроса «POST» позволяет отправку больших текстов.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;ВНИМАНИЕ&#039;&#039;&#039;: аналогичный метод GET теперь отсутствует.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;ID&#039;&#039;&#039; — имя модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст синтезируемой фразы&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;rate&#039;&#039;&#039; — скорость речи&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;pitch&#039;&#039;&#039; — высота (тон)&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;volume&#039;&#039;&#039; — громкость&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;frequency&#039;&#039;&#039; — частота дискретизации (по умолчанию 22050 Гц)&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;format&#039;&#039;&#039; - формат файла результата (wav, opus, ogg, mp3)&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;link&#039;&#039;&#039; - если 1, то вернуть только ссылку на файл&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;файл с синтезированой фразой&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/license/check&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Проверка лицензии&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Пример &#039;&#039;&#039;неограниченной&#039;&#039;&#039; лицензии:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/small&amp;gt;&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;uuid&amp;quot;: &amp;quot;362e51300b1029f9b45fb8d58b2a91bf&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;remaining_licenses&amp;quot;: &amp;quot;infinity&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;threshold&amp;quot;: 0&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Пример &#039;&#039;&#039;ограниченной&#039;&#039;&#039; лицензии:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/small&amp;gt;&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;uuid&amp;quot;: &amp;quot;362e51300b1029f9b45fb8d58b2a91bf&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;remaining_licenses&amp;quot;: 100,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;threshold&amp;quot;: 100&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=TTS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3526</id>
		<title>TTS. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=TTS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3526"/>
		<updated>2026-01-14T06:33:02Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для преобразования текста в речь. Входными данными для сервиса является текст, результатом работы будет аудиофайл в формате *.wav, *.ogg, *.opus, *.mp3.&lt;br /&gt;
=====&#039;&#039;&#039;Термины и определения&#039;&#039;&#039;=====&lt;br /&gt;
Text-to-speech server (TTS) – сервис синтеза речи.&lt;br /&gt;
&lt;br /&gt;
Модель (голос) – модель нейронной сети, отвечающая за синтез спектрограммы из текста. От модели зависит, каким голосом будет синтезирован текст.&lt;br /&gt;
&lt;br /&gt;
Вокодер – модель нейронной сети, отвечающая за синтез аудиоданных из спектрограммы. &#039;&#039;&#039;&#039;&#039;Модели и вокодеры поставляются в составе дистрибутива, дополнительных действий для их установки не требуется.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Расчет нагрузки&#039;&#039;&#039;=====&lt;br /&gt;
Для нормальной работы сервиса на каждый канал синтеза требуется 1 CPU &amp;gt;= 2.20 GHz. Оперативной памяти необходимо не менее 8 GB.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Лицензия&#039;&#039;&#039;=====&lt;br /&gt;
Сервис не функционирует без действующей лицензии. Информация о лицензии хранится в файле:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/opt/tts/license.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл лицензии должен соответствовать следующему формату:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;service&amp;quot;: &amp;quot;tts&amp;quot;, &amp;quot;expire&amp;quot;: &amp;quot;2045-01-01&amp;quot;, &amp;quot;licenses&amp;quot;: , &amp;quot;key&amp;quot;: &amp;quot;&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для получения лицензии необходимо:&lt;br /&gt;
&lt;br /&gt;
1. Запустить сервис &amp;lt;code&amp;gt;systemctl start tts&amp;lt;/code&amp;gt; и извлечь UUID, указанный в файле &amp;lt;code&amp;gt;/opt/tts/logs/log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Передать полученный UUID руководителю проекта для оформления лицензии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Установка/обновление TTS&#039;&#039;&#039;=====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/tts&amp;amp;fileid=4837 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для Вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить сервисный пакет окружения]].&lt;br /&gt;
&lt;br /&gt;
*Установка/обновление TTS осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./tts-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./tts-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./tts-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
*Загрузить последнюю версию продукта  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/tts/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/tts&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Обновить TTS &amp;lt;code&amp;gt;/opt/tts/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
**&amp;lt;code&amp;gt;/opt/tts/inupdate -b&amp;lt;/code&amp;gt; – обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/tts/inupdate -r&amp;lt;/code&amp;gt; – обновить до последней release версии;&lt;br /&gt;
**&amp;lt;code&amp;gt;/opt/tts/inupdate -n&amp;lt;/code&amp;gt; – обновить до последней версии (неважно beta или release).&lt;br /&gt;
*Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/tts/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/tts/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; – это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
*В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
**echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/tts/.userapi (это файл авторизации в API, нужен для обновления и загрузки моделей)&lt;br /&gt;
**echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/tts/.proxy (это файл конфигурации proxy, необходим для обновления и загрузки моделей, при отсутствующем прямом подключении к интернету)&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable tts.service &amp;amp;&amp;amp; sudo systemctl start tts.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status tts.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к порту 6186 на нужном интерфейсе по протоколу tcp.&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Конфигурирование параметров сервиса TTS&#039;&#039;&#039;=====&lt;br /&gt;
Настройка параметров сервиса tts производится в файле /opt/tts/config.json&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|logs/&lt;br /&gt;
|Путь к папке логов.&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Максимальное количество логфайлов.&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер одного логфайла.&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.log&lt;br /&gt;
|Файл логов синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.statusFile&lt;br /&gt;
|logs/sync.status&lt;br /&gt;
|Статус задачи синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.nodes&lt;br /&gt;
|[]&lt;br /&gt;
|Перечень подчиненных нод для синхронизации изменений заполняется только на главном сервере кластера&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Работа в составе кластера&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
Для высоконагруженных систем сервис можно расположить на нескольких нодах (виртуальных машинах). В этом случае, чтобы не потерять документы и изменения, полученные на одной из нод, выделяется один основной сервис и вспомогательные сервисы.&lt;br /&gt;
&lt;br /&gt;
* База файловая, в папке data.&lt;br /&gt;
* lsync настроен через конфиг TTS для репликации базы на все указанные серверы в списке cluster.nodes: [], указываем все слейв-сервера.&lt;br /&gt;
* На всех слейвах список cluster.nodes: [] оставляем пустым.&lt;br /&gt;
* Векторная база на каждом сервере своя, она следит за своей папкой data и обновляет в оперативке по этой папке данные у себя.&lt;br /&gt;
* UPS при изменении данных работает только с мастером TTS, а при запросе данных — со всеми серверами cluster, распределяя нагрузку.&lt;br /&gt;
* В конфигурации UPS: в servers.tts.cluster.trainer указываем мастер-сервер, в servers.tts.cluster перечисляем все сервера кластера TTS, в том числе и мастер.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Сбор данных об ошибках&#039;&#039;&#039;=====&lt;br /&gt;
Для увеличения информативности журналов можно выполнить от суперпользователя команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sed -i &#039;s/log-level error/log-level debug/g&#039; /etc/systemd/system/tts.service &amp;amp;&amp;amp; systemctl daemon-reload &amp;amp;&amp;amp; systemctl restart tts.service&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
При возникновении проблем в работе сервиса и недостаточной информативности журналов, можно запустить сервис вручную с привилегиями суперпользователя и выводом информации в stdout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl stop tts.service &amp;amp;&amp;amp; source /opt/pve/bin/activate &amp;amp;&amp;amp; cd /opt/tts/ &amp;amp;&amp;amp; python3 api.py &amp;amp;&amp;amp; deactivate&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       или&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl stop tts.service&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;source /opt/pve/bin/activate&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd /opt/tts/ &amp;amp;&amp;amp; python3 api.py&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;deactivate&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Удаление&#039;&#039;&#039;=====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/tts/uninstall&amp;lt;/code&amp;gt;. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели и вокодер.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=TTS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3525</id>
		<title>TTS. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=TTS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3525"/>
		<updated>2026-01-14T06:32:22Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: /* Конфигурирование параметров сервиса TTS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для преобразования текста в речь. Входными данными для сервиса является текст, результатом работы будет аудиофайл в формате *.wav, *.ogg, *.opus, *.mp3.&lt;br /&gt;
=====&#039;&#039;&#039;Термины и определения&#039;&#039;&#039;=====&lt;br /&gt;
Text-to-speech server (TTS) – сервис синтеза речи.&lt;br /&gt;
&lt;br /&gt;
Модель (голос) – модель нейронной сети, отвечающая за синтез спектрограммы из текста. От модели зависит, каким голосом будет синтезирован текст.&lt;br /&gt;
&lt;br /&gt;
Вокодер – модель нейронной сети, отвечающая за синтез аудиоданных из спектрограммы. &#039;&#039;&#039;&#039;&#039;Модели и вокодеры поставляются в составе дистрибутива, дополнительных действий для их установки не требуется.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Расчет нагрузки&#039;&#039;&#039;=====&lt;br /&gt;
Для нормальной работы сервиса на каждый канал синтеза требуется 1 CPU &amp;gt;= 2.20 GHz. Оперативной памяти необходимо не менее 8 GB.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Лицензия&#039;&#039;&#039;=====&lt;br /&gt;
Сервис не функционирует без действующей лицензии. Информация о лицензии хранится в файле:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/opt/tts/license.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл лицензии должен соответствовать следующему формату:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;service&amp;quot;: &amp;quot;tts&amp;quot;, &amp;quot;expire&amp;quot;: &amp;quot;2045-01-01&amp;quot;, &amp;quot;licenses&amp;quot;: , &amp;quot;key&amp;quot;: &amp;quot;&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для получения лицензии необходимо:&lt;br /&gt;
&lt;br /&gt;
1. Запустить сервис &amp;lt;code&amp;gt;systemctl start tts&amp;lt;/code&amp;gt; и извлечь UUID, указанный в файле &amp;lt;code&amp;gt;/opt/tts/logs/log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Передать полученный UUID руководителю проекта для оформления лицензии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Установка/обновление TTS&#039;&#039;&#039;=====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/tts&amp;amp;fileid=4837 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для Вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить сервисный пакет окружения]].&lt;br /&gt;
&lt;br /&gt;
*Установка/обновление TTS осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./tts-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./tts-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./tts-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
*Загрузить последнюю версию продукта  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/tts/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/tts&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Обновить TTS &amp;lt;code&amp;gt;/opt/tts/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
**&amp;lt;code&amp;gt;/opt/tts/inupdate -b&amp;lt;/code&amp;gt; – обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/tts/inupdate -r&amp;lt;/code&amp;gt; – обновить до последней release версии;&lt;br /&gt;
**&amp;lt;code&amp;gt;/opt/tts/inupdate -n&amp;lt;/code&amp;gt; – обновить до последней версии (неважно beta или release).&lt;br /&gt;
*Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/tts/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/tts/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; – это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
*В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
**echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/tts/.userapi (это файл авторизации в API, нужен для обновления и загрузки моделей)&lt;br /&gt;
**echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/tts/.proxy (это файл конфигурации proxy, необходим для обновления и загрузки моделей, при отсутствующем прямом подключении к интернету)&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable tts.service &amp;amp;&amp;amp; sudo systemctl start tts.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status tts.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к порту 6186 на нужном интерфейсе по протоколу tcp.&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Конфигурирование параметров сервиса TTS&#039;&#039;&#039;=====&lt;br /&gt;
Настройка параметров сервиса tts производится в файле /opt/spr/config.json&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|logs/&lt;br /&gt;
|Путь к папке логов.&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Максимальное количество логфайлов.&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер одного логфайла.&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.log&lt;br /&gt;
|Файл логов синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.statusFile&lt;br /&gt;
|logs/sync.status&lt;br /&gt;
|Статус задачи синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.nodes&lt;br /&gt;
|[]&lt;br /&gt;
|Перечень подчиненных нод для синхронизации изменений заполняется только на главном сервере кластера&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Работа в составе кластера&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
Для высоконагруженных систем сервис можно расположить на нескольких нодах (виртуальных машинах). В этом случае, чтобы не потерять документы и изменения, полученные на одной из нод, выделяется один основной сервис и вспомогательные сервисы.&lt;br /&gt;
&lt;br /&gt;
* База файловая, в папке data.&lt;br /&gt;
* lsync настроен через конфиг TTS для репликации базы на все указанные серверы в списке cluster.nodes: [], указываем все слейв-сервера.&lt;br /&gt;
* На всех слейвах список cluster.nodes: [] оставляем пустым.&lt;br /&gt;
* Векторная база на каждом сервере своя, она следит за своей папкой data и обновляет в оперативке по этой папке данные у себя.&lt;br /&gt;
* UPS при изменении данных работает только с мастером TTS, а при запросе данных — со всеми серверами cluster, распределяя нагрузку.&lt;br /&gt;
* В конфигурации UPS: в servers.tts.cluster.trainer указываем мастер-сервер, в servers.tts.cluster перечисляем все сервера кластера TTS, в том числе и мастер.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Сбор данных об ошибках&#039;&#039;&#039;=====&lt;br /&gt;
Для увеличения информативности журналов можно выполнить от суперпользователя команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sed -i &#039;s/log-level error/log-level debug/g&#039; /etc/systemd/system/tts.service &amp;amp;&amp;amp; systemctl daemon-reload &amp;amp;&amp;amp; systemctl restart tts.service&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
При возникновении проблем в работе сервиса и недостаточной информативности журналов, можно запустить сервис вручную с привилегиями суперпользователя и выводом информации в stdout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl stop tts.service &amp;amp;&amp;amp; source /opt/pve/bin/activate &amp;amp;&amp;amp; cd /opt/tts/ &amp;amp;&amp;amp; python3 api.py &amp;amp;&amp;amp; deactivate&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       или&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl stop tts.service&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;source /opt/pve/bin/activate&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd /opt/tts/ &amp;amp;&amp;amp; python3 api.py&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;deactivate&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Удаление&#039;&#039;&#039;=====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/tts/uninstall&amp;lt;/code&amp;gt;. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели и вокодер.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=TTS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3524</id>
		<title>TTS. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=TTS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3524"/>
		<updated>2026-01-14T06:16:06Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: /* Общее описание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для преобразования текста в речь. Входными данными для сервиса является текст, результатом работы будет аудиофайл в формате *.wav, *.ogg, *.opus, *.mp3.&lt;br /&gt;
=====&#039;&#039;&#039;Термины и определения&#039;&#039;&#039;=====&lt;br /&gt;
Text-to-speech server (TTS) – сервис синтеза речи.&lt;br /&gt;
&lt;br /&gt;
Модель (голос) – модель нейронной сети, отвечающая за синтез спектрограммы из текста. От модели зависит, каким голосом будет синтезирован текст.&lt;br /&gt;
&lt;br /&gt;
Вокодер – модель нейронной сети, отвечающая за синтез аудиоданных из спектрограммы. &#039;&#039;&#039;&#039;&#039;Модели и вокодеры поставляются в составе дистрибутива, дополнительных действий для их установки не требуется.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Расчет нагрузки&#039;&#039;&#039;=====&lt;br /&gt;
Для нормальной работы сервиса на каждый канал синтеза требуется 1 CPU &amp;gt;= 2.20 GHz. Оперативной памяти необходимо не менее 8 GB.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Установка/обновление TTS&#039;&#039;&#039;=====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/tts&amp;amp;fileid=4837 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для Вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить сервисный пакет окружения]].&lt;br /&gt;
&lt;br /&gt;
* Установка/обновление TTS осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./tts-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./tts-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./tts-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
* Загрузить последнюю версию продукта  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/tts/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/tts&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить TTS &amp;lt;code&amp;gt;/opt/tts/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/tts/inupdate -b&amp;lt;/code&amp;gt; – обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/tts/inupdate -r&amp;lt;/code&amp;gt; – обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/tts/inupdate -n&amp;lt;/code&amp;gt; – обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/tts/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/tts/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; – это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/tts/.userapi (это файл авторизации в API, нужен для обновления и загрузки моделей)&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/tts/.proxy (это файл конфигурации proxy, необходим для обновления и загрузки моделей, при отсутствующем прямом подключении к интернету)&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable tts.service &amp;amp;&amp;amp; sudo systemctl start tts.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status tts.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к порту 6186 на нужном интерфейсе по протоколу tcp.&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Конфигурирование параметров сервиса TTS&#039;&#039;&#039; =====&lt;br /&gt;
Настройка параметров сервиса tts производится в файле /opt/spr/params.json&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|gpu&lt;br /&gt;
|true&lt;br /&gt;
|Флаг использования видеокарты при ее наличии&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|logs/&lt;br /&gt;
|Путь к папке логов.&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Максимальное количество логфайлов.&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер одного логфайла.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Сбор данных об ошибках&#039;&#039;&#039;=====&lt;br /&gt;
Для увеличения информативности журналов можно выполнить от суперпользователя команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sed -i &#039;s/log-level error/log-level debug/g&#039; /etc/systemd/system/tts.service &amp;amp;&amp;amp; systemctl daemon-reload &amp;amp;&amp;amp; systemctl restart tts.service&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
При возникновении проблем в работе сервиса и недостаточной информативности журналов, можно запустить сервис вручную с привилегиями суперпользователя и выводом информации в stdout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl stop tts.service &amp;amp;&amp;amp; source /opt/pve/bin/activate &amp;amp;&amp;amp; cd /opt/tts/ &amp;amp;&amp;amp; python3 api.py &amp;amp;&amp;amp; deactivate&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       или&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl stop tts.service&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;source /opt/pve/bin/activate&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd /opt/tts/ &amp;amp;&amp;amp; python3 api.py&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;deactivate&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Удаление&#039;&#039;&#039;=====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/tts/uninstall&amp;lt;/code&amp;gt;. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели и вокодер.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=PVE._%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B0_%D0%BE%D0%BA%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=3523</id>
		<title>PVE. Установка сервисного пакета окружения</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=PVE._%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B0_%D0%BE%D0%BA%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=3523"/>
		<updated>2026-01-14T06:11:30Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: /* Общее описание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Пакет Python Virtual Environment (PVE) предназначен для подготовки виртуального Python3 окружения для работы сервисов:&lt;br /&gt;
    • Simple Entity Extractor&lt;br /&gt;
    • Simple Message Classifier&lt;br /&gt;
    • Short Phrase Recognizer&lt;br /&gt;
    • Simple Biometry Server&lt;br /&gt;
    • Text To Speech Server&lt;br /&gt;
    • Question Answering System&lt;br /&gt;
    • Script Engine Service&lt;br /&gt;
    • Report Engine Service&lt;br /&gt;
    • Call List Service&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Термины и определения&#039;&#039;&#039;=====&lt;br /&gt;
Python Virtual Environment (PVE) – пакет для установки Python3 окружения для сервисов. Самостоятельно PVE не используется.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Расчет нагрузки&#039;&#039;&#039;=====&lt;br /&gt;
Для установки пакета требуется свободное место в каталоге /opt не менее 4Gb без поддержки видеокарты и/или 12Gb с поддержкой.&lt;br /&gt;
&lt;br /&gt;
Также при установке используется временная папка /tmp/archive, куда распаковывается содержимое архива до 9Gb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Установка/обновление пакета окружения&#039;&#039;&#039;=====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/pve&amp;amp;fileid=612 Дистрибутив] распространяется в виде универсального установочного пакета. Для установки пакета запустить инсталлятор с требуемыми ключами. При запуске без ключей инсталлятор выдаст короткую справку. Пакет может быть установлен в &#039;&#039;онлайн&#039;&#039;-режиме при наличии прямого доступа в интернет или через прокси. Для установки в &#039;&#039;оффлайн&#039;&#039;-режиме сперва нужно запустить экземпляр скрипта на копии целевой системы (версии и ядра) с доступом в интернет.&lt;br /&gt;
* Загрузить последнюю версию окружения  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/pve/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/pve&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить PVE &amp;lt;code&amp;gt;/opt/pve/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/pve/inupdate -b&amp;lt;/code&amp;gt; – обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/pve/inupdate -r&amp;lt;/code&amp;gt; – обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/pve/inupdate -n&amp;lt;/code&amp;gt; – обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Проверить актуальную версию окружения &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/pve/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/pve/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; – это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с окружением можно добавить 2 файла конфигурации (данные файлы также будут использоваться продуктами при отсутствии у них своих):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/pve/.userapi (это файл авторизации в API, нужен для обновления)&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/pve/.proxy (это файл конфигурации proxy, необходим для обновления, при отсутствующем прямом подключении к интернету)&lt;br /&gt;
При установке рядом со скриптом окружения можно положить freeze.txt с альтернативным набором модулей. В потоке вывода в результате вы увидите сообщение «Существует внешний файл — список модулей pip3».&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Варианты использование инсталлятора&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
Описание ключей установки приведено в таблице&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр,&lt;br /&gt;
назначение&lt;br /&gt;
!Параметр,&lt;br /&gt;
назначение&lt;br /&gt;
!Параметр,&lt;br /&gt;
назначение&lt;br /&gt;
!Примечание&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;-i/--install - установить окружение&#039;&#039;&lt;br /&gt;
| -on/--online - онлайн&lt;br /&gt;
| -cpu/--cpu - полный набор pip3 модулей под CPU&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; |Данные наборы ключей используются совместно, в разных комбинациях. Чтобы установить в оффлайн-режиме, необходимо собрать скрипт с ключом -b/--build. Установка с ключом CPU актуальна при отсутствии видеокарты в системе, окружение занимает всего ~3Gb. &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| -off/--offline - оффлайн&lt;br /&gt;
| -cu11/--cu11- полный набор pip3 модулей под GPU CU11.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -cu12/--cu12 - полный набор pip3 модулей под GPU CU12.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -ups/--ups - отдельное окружение для ups&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -res/--res - отдельное окружение для res&lt;br /&gt;
|-&lt;br /&gt;
| -u/--update - обновить окружение&lt;br /&gt;
| -on/--online - онлайн&lt;br /&gt;
| -cpu/--cpu - полный набор pip3 модулей под CPU&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; |Данные наборы ключей используются совместно, в разных комбинациях. Чтобы обновить в оффлайн режиме, необходимо собрать скрипт с ключом -b/--build. Обновление с ключом CPU актуально при отсутствии видеокарты в системе, окружение занимает всего ~3Gb. Обновление отличается от установки тем, что пропускается этап установки системных пакетов. Ставится только окружение с модулями. Оффлайн инсталлятор с ключом обновления становится универсальным под любую ОС, так как не зависим от системных пакетов.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| -off/--offline - оффлайн&lt;br /&gt;
| -cu11/--cu11- полный набор pip3 модулей под GPU CU11.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -cu12/--cu12 - полный набор pip3 модулей под GPU CU12.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -ups/--ups - отдельное окружение для ups&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -res/--res - отдельное окружение для res&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -ses/--ses - отдельное окружение для ses&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -qas-cpu/--qas-cpu - отдельное окружение для QAS под CPU&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -qas-cu12/--qas-cu12 - отдельное окружение для QAS под CUDA12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| -b/--build - скачать все пакеты, и модули, и упаковать в скрипт &lt;br /&gt;
|&#039;&#039;-i/--install - для установки с системными пакетами&#039;&#039;&lt;br /&gt;
| -f/--full - полный набор pip3 модулей под все типы&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Данные наборы ключей используются совместно, в разных комбинациях. Сборка с ключом CPU актуальна при отсутствии видеокарты в системе, собранный инсталлятор весит ~1Gb. Ключ полного набора модулей делает инсталлятор универсальным, но такой инсталлятор весит ~12Gb. Если инсталлятор был собран с ключом установки под другую ОС, его также можно использовать с ключом обновления для текущей или любой другой. Если набор модулей, который включен в оффлайн инсталлятор, недостаточен, он попытается загрузить недостающие модули из интернета напрямую или предложит ввести настройки прокси.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| -u/--update - для обновления, только окружение&lt;br /&gt;
| -cpu/--cpu - полный набор pip3 модулей под CPU&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -cu11/--cu11- полный набор pip3 модулей под GPU CU11.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -cu12/--cu12 - полный набор pip3 модулей под GPU CU12.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -ups/--ups - отдельное окружение для ups&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -res/--res - отдельное окружение для res&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -ses/--ses - отдельное окружение для ses&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -qas-cpu/--qas-cpu - отдельное окружение для QAS под CPU&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -qas-cu12/--qas-cu12 - отдельное окружение для QAS под CUDA12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| -u/--uninstall - удалить окружение&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Одинарный ключ, удаляет окружение из папки /opt&lt;br /&gt;
|-&lt;br /&gt;
| -e/--extract - скопировать внутренний архив рядом со скриптом&lt;br /&gt;
| -d/--dir путь/имя_каталога&lt;br /&gt;
|&lt;br /&gt;
|Второй аргумент не обязательный. Без указания папки, распакуется архив. С указанием папки, распакуется содержимое архива в указанную папку.&lt;br /&gt;
|-&lt;br /&gt;
| -p/--pack имя_архива - запаковать архив в скрипт&lt;br /&gt;
| -d/--dir путь/имя_каталога&lt;br /&gt;
|&lt;br /&gt;
|Второй аргумент не обязательный. Без указания папки к установщику прикрепляем архив. С указанием папки к установщику прикрепляем содержимое каталога.&lt;br /&gt;
|-&lt;br /&gt;
| -n/--null - удалить внутренний архив из скрипта&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Удаляем внутренний архив из инсталлятора. Редактирование инсталлятора с архивом может привести к повреждению архива.&lt;br /&gt;
|}&lt;br /&gt;
Примеры использования ключей:&lt;br /&gt;
&lt;br /&gt;
-- Установить окружение с полным набором модулей под CPU.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i -cpu -on&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Установить окружение из заранее собранного инсталлятора с полным набором модулей под CPU.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i -cpu -off&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Собрать все пакеты для установки оффлайн окружения с полным набором модулей под CPU.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -b -i -cpu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Собрать все пакеты для обновления оффлайн окружения с полным набором модулей под CPU.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -b -u -cpu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Скопировать внутренний архив рядом со скриптом, не распаковывая в папку.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -e&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Запаковать архив в скрипт.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -p &amp;lt;service&amp;gt;-offline.tgz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Сжать каталог и запаковать архив в скрипт.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -p -d &amp;lt;имя каталога&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Распаковать внутренний архив рядом со скриптом в каталог.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -e -d archive&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Удалить внутренний архив из скрипта.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh --null&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Удалить окружение.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh --uninstall&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Удаление окружения&#039;&#039;&#039;=====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/pve/uninstall&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SBS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3492</id>
		<title>SBS. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SBS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3492"/>
		<updated>2026-01-12T10:55:09Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис Simple Biometry Server предназначен для извлечения именованных сущностей из текстовых фрагментов (фраз естественной речи). Принимает на вход текстовую строку и возвращает структурированные данные в формате JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Simple Biometry Server (SBS) — сервис извлечения метаданных.&lt;br /&gt;
&lt;br /&gt;
Swagger UI — интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису SBS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API сервиса биометрии (SBS)&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SBS. По умолчанию используется порт 6185/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке &amp;lt;nowiki&amp;gt;http://АДРЕС:6185&amp;lt;/nowiki&amp;gt; будет отображен интерфейс Swagger со всеми методами с возможностью их проверки. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/analyze&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение аналитических метаданных из голосового фрагмента. Вернется массив с метаданными голосового фрагмента.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для анализа.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  age: {&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    class: 20-29, # {&amp;quot;00-05&amp;quot;, &amp;quot;06-12&amp;quot;, &amp;quot;13-19&amp;quot;, &amp;quot;20-29&amp;quot;, &amp;quot;30-39&amp;quot;, &amp;quot;40-49&amp;quot;, &amp;quot;50-59&amp;quot;, &amp;quot;60+&amp;quot;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    confidence: 0.99&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  },&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  emotion: {&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    class: SADNESS, # { &amp;quot;ANGER&amp;quot;, &amp;quot;BORE&amp;quot;, &amp;quot;DISAPPOINTMENT&amp;quot;, &amp;quot;DISGUST&amp;quot;, &amp;quot;EXCITEMENT&amp;quot;, &amp;quot;FEAR&amp;quot;, &amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt; &amp;lt;&amp;lt;&amp;quot;NEUTRAL&amp;quot;, &amp;quot;PAIN&amp;quot;, &amp;quot;PLEASURE&amp;quot;, &amp;quot;SADNESS&amp;quot;, &amp;quot;SUPRISE&amp;quot;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    confidence: 0.99&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  },&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  gender: {&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    class: FEMALE, # { &amp;quot;MALE&amp;quot;, &amp;quot;FEMALE&amp;quot; }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    confidence: 0.99&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  },&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  multispeaker : {&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    class: YES, # { &amp;quot;YES&amp;quot;, &amp;quot;NO&amp;quot; }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    confidence: 0.99&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/noiselevel&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Возвращает процент зашумленности аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Пример ответа:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: 0, message: &#039;success&#039;, &#039;noise&#039;: 0.79 }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/search&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Поиск говорящего по базе слепков.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; —  порог совпадения спикера, от 0 до 1&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, то поиск не будет осуществлен, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример ответа:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: 0, speaker: Ivan, confidence: 0.79 }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/verify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Сравнение wav-файла cо слепком в базе. В ответе - вероятность совпадения от 0 до 1.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для поиска&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, но слепок не будет проверен, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0, &amp;quot;confidence&amp;quot;: 0.78 }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/speakers/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавление слепка в базу.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; —  имя говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для создания оцифрованного представления говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, но слепок не будет создан, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;251f78d7-ee50-4ba1-a669-ee89fdaf5433&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/sbs/speakers/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление слепка из базы.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/sbs/speakers/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение списка всех слепков.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;251f78d7-ee50-4ba1-a669-ee89fdaf5433&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;наименование слепка&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/speakers/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Дообучение слепка.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; &#039;&#039;&#039;—&#039;&#039;&#039;   идентификатор слепка&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, то слепок не будет дообучен, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;Success&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SBS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3491</id>
		<title>SBS. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SBS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3491"/>
		<updated>2026-01-12T10:54:16Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис Simple Biometry Server предназначен для извлечения именованных сущностей из текстовых фрагментов (фраз естественной речи). Принимает на вход текстовую строку и возвращает структурированные данные в формате JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Simple Biometry Server (SBS) — сервис извлечения метаданных.&lt;br /&gt;
&lt;br /&gt;
Swagger UI — интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису SBS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API сервиса биометрии (SBS)&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SBS. По умолчанию используется порт 6185/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке &amp;lt;nowiki&amp;gt;http://АДРЕС:6185&amp;lt;/nowiki&amp;gt; будет отображен интерфейс Swagger со всеми методами с возможностью их проверки. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/analyze&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение аналитических метаданных из голосового фрагмента. Вернется массив с метаданными голосового фрагмента.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для анализа.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  age: {&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    class: 20-29, # {&amp;quot;00-05&amp;quot;, &amp;quot;06-12&amp;quot;, &amp;quot;13-19&amp;quot;, &amp;quot;20-29&amp;quot;, &amp;quot;30-39&amp;quot;, &amp;quot;40-49&amp;quot;, &amp;quot;50-59&amp;quot;, &amp;quot;60+&amp;quot;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    confidence: 0.99&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  },&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  emotion: {&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    class: SADNESS, # { &amp;quot;ANGER&amp;quot;, &amp;quot;BORE&amp;quot;, &amp;quot;DISAPPOINTMENT&amp;quot;, &amp;quot;DISGUST&amp;quot;, &amp;quot;EXCITEMENT&amp;quot;, &amp;quot;FEAR&amp;quot;, &amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt; &amp;lt;&amp;lt;&amp;quot;NEUTRAL&amp;quot;, &amp;quot;PAIN&amp;quot;, &amp;quot;PLEASURE&amp;quot;, &amp;quot;SADNESS&amp;quot;, &amp;quot;SUPRISE&amp;quot;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    confidence: 0.99&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  },&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  gender: {&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    class: FEMALE, # { &amp;quot;MALE&amp;quot;, &amp;quot;FEMALE&amp;quot; }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    confidence: 0.99&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  },&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  multispeaker : {&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    class: YES, # { &amp;quot;YES&amp;quot;, &amp;quot;NO&amp;quot; }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    confidence: 0.99&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/noiselevel&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Возвращает процент зашумленности аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Пример ответа:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: 0, message: &#039;success&#039;, &#039;noise&#039;: 0.79 }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/search&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Поиск говорящего по базе слепков.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; —  порог совпадения спикера, от 0 до 1&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, то поиск не будет осуществлен, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример ответа:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: 0, speaker: Ivan, confidence: 0.79 }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/verify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Сравнение wav-файла cо слепком в базе. В ответе - вероятность совпадения от 0 до 1.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для поиска&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, но слепок не будет проверен, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0, &amp;quot;confidence&amp;quot;: 0.78 }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/speakers/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавление слепка в базу.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; —  имя говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для создания оцифрованного представления говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, но слепок не будет создан, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;251f78d7-ee50-4ba1-a669-ee89fdaf5433&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/sbs/speakers/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление слепка из базы.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/sbs/speakers/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение списка всех слепков.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;251f78d7-ee50-4ba1-a669-ee89fdaf5433&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;наименование слепка&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/speakers/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Дообучение слепка.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; &#039;&#039;&#039;—&#039;&#039;&#039;   идентификатор слепка&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, то слепок не будет дообучен, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;Success&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SBS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3490</id>
		<title>SBS. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SBS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3490"/>
		<updated>2026-01-12T10:51:40Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис Simple Biometry Server предназначен для извлечения именованных сущностей из текстовых фрагментов (фраз естественной речи). Принимает на вход текстовую строку и возвращает структурированные данные в формате JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Simple Biometry Server (SBS) — сервис извлечения метаданных.&lt;br /&gt;
&lt;br /&gt;
Swagger UI — интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису SBS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API сервиса биометрии (SBS)&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SBS. По умолчанию используется порт 6185/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке &amp;lt;nowiki&amp;gt;http://АДРЕС:6185&amp;lt;/nowiki&amp;gt; будет отображен интерфейс Swagger со всеми методами с возможностью их проверки. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/analyze&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение аналитических метаданных из голосового фрагмента. Вернется массив с метаданными голосового фрагмента.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для анализа.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;&amp;lt;age: {&lt;br /&gt;
    class: 20-29, # {&amp;quot;00-05&amp;quot;, &amp;quot;06-12&amp;quot;, &amp;quot;13-19&amp;quot;, &amp;quot;20-29&amp;quot;, &amp;quot;30-39&amp;quot;, &amp;quot;40-49&amp;quot;, &amp;quot;50-59&amp;quot;, &amp;quot;60+&amp;quot;}&lt;br /&gt;
    confidence: 0.99&lt;br /&gt;
  },&lt;br /&gt;
  emotion: {&lt;br /&gt;
    class: SADNESS, # { &amp;quot;ANGER&amp;quot;, &amp;quot;BORE&amp;quot;, &amp;quot;DISAPPOINTMENT&amp;quot;, &amp;quot;DISGUST&amp;quot;, &amp;quot;EXCITEMENT&amp;quot;, &amp;quot;FEAR&amp;quot;, &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;&amp;lt;&amp;quot;NEUTRAL&amp;quot;, &amp;quot;PAIN&amp;quot;, &amp;quot;PLEASURE&amp;quot;, &amp;quot;SADNESS&amp;quot;, &amp;quot;SUPRISE&amp;quot;}&lt;br /&gt;
    confidence: 0.99&lt;br /&gt;
  },&lt;br /&gt;
  gender: {&lt;br /&gt;
    class: FEMALE, # { &amp;quot;MALE&amp;quot;, &amp;quot;FEMALE&amp;quot; }&lt;br /&gt;
    confidence: 0.99&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  multispeaker : {&lt;br /&gt;
&lt;br /&gt;
    class: YES, # { &amp;quot;YES&amp;quot;, &amp;quot;NO&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
    confidence: 0.99&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/noiselevel&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Возвращает процент зашумленности аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Пример ответа:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: 0, message: &#039;success&#039;, &#039;noise&#039;: 0.79 }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/search&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Поиск говорящего по базе слепков.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; —  порог совпадения спикера, от 0 до 1&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, то поиск не будет осуществлен, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример ответа:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: 0, speaker: Ivan, confidence: 0.79 }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/verify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Сравнение wav-файла cо слепком в базе. В ответе - вероятность совпадения от 0 до 1.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для поиска&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, но слепок не будет проверен, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0, &amp;quot;confidence&amp;quot;: 0.78 }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/speakers/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавление слепка в базу.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; —  имя говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для создания оцифрованного представления говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, но слепок не будет создан, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;251f78d7-ee50-4ba1-a669-ee89fdaf5433&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/sbs/speakers/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление слепка из базы.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/sbs/speakers/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение списка всех слепков.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;251f78d7-ee50-4ba1-a669-ee89fdaf5433&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;наименование слепка&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/speakers/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Дообучение слепка.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; &#039;&#039;&#039;—&#039;&#039;&#039;   идентификатор слепка&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, то слепок не будет дообучен, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;Success&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=UPS._%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_API&amp;diff=3489</id>
		<title>UPS. Описание API</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=UPS._%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_API&amp;diff=3489"/>
		<updated>2026-01-12T10:50:10Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Описание часто используемых параметров&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!Тип&lt;br /&gt;
!Описание&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;servicetype&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Тип сервиса. Возможные значения: spr, smc, see, sbs, tts.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;servertype&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Тип группы серверов. Возможные значения: trainer (серверы обучения), cluster (рабочие серверы).&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;model&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Название модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;modeltype&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Тип модели. Возможные значения: &#039;&#039;&#039;future&#039;&#039;&#039; — планируемая/черновик, &#039;&#039;&#039;current&#039;&#039;&#039; — текущая/рабочая, &#039;&#039;&#039;previous&#039;&#039;&#039; — архивная.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;error&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;ответ&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Флаг ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;message&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;ответ&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Информационное сообщение.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;&amp;quot;/external modules&amp;quot; методы внешних модулей&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
В этом разделе будут методы соответствующим образом оформленных [[UPS. Руководство администратора#Установка модулей для UPS|внешних модулей]]&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/auth: методы  авторизации&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/access&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение токенов доступа. &amp;lt;small&amp;gt;Токен доступа определяет, какие из методов будут доступны конкретному пользователю. Формируется на основании роли. Дополнительный входной параметр во всех методах, кроме перечисленных в разделе «nopassword» конфигурационного файла. Время действия токена определяется параметром auth.accessLifeTime конфигурационного файла.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;username&#039;&#039;&#039; — логин&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;password&#039;&#039;&#039; — пароль&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-access-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-refresh-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/dataset/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление dataset (набора данных). &amp;lt;small&amp;gt;Dataset (набор данных) используется для ограничения доступа к данным. В ответе метод вернет id созданного набора данных.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;data — json строка вида: {    &amp;quot;name&amp;quot;: &amp;quot;название нового набора&amp;quot;     }&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset_id&amp;quot;: &amp;quot;XXXXXXXXXXXXX&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/auth/dataset/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление dataset (набора данных). &lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора данных&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/dataset/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Переименование dataset (набора данных). &amp;lt;small&amp;gt;Метод меняет все параметры набора данных, но на данный момент времени у набора данных, кроме id, только один параметр — наименование.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора данных&amp;lt;/small&amp;gt; &lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — JSON c новыми параметрами&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/datasets&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка наборов данных.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;XXX&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;По умолчанию&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/refresh&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Обновление токенов доступа. &amp;lt;small&amp;gt;Время, в течение которого можно обновить доступ, регулируется параметром auth.refreshLifeTime конфигурационного файла. Служебный метод, используется в основном в веб-интерфейсе, чтобы не запрашивать лишний раз пароль.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;x-refresh-token&#039;&#039;&#039; — токен обновления доступа&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-access-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-refresh-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/rights&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка прав доступа. &amp;lt;small&amp;gt;Служебный метод — по токену получает название роли и все права доступа этой роли, а также общедоступные методы.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;&amp;lt;&amp;lt;{  &amp;quot;РОЛЬ&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;GET:/......&amp;quot;  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;nopassword&amp;quot;: [    &amp;quot;GET:/.......&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;...............&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;&amp;lt;&amp;lt;...............&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;POST:/.......&amp;quot;  ]  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/role/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание роли. &amp;lt;small&amp;gt;Служебный метод — используется веб-интерфейсом при создании роли.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — JSON с параметрами роли:{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;проверка создания&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;rights&amp;quot;: [    &amp;quot;набор прав через запятую&amp;quot; ]&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;, &amp;quot;role_id&amp;quot;: &amp;quot;a7e68bb83169f864c2fc868401b5250c&amp;quot;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/auth/role/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление роли.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; роли&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/role/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение роли. &amp;lt;small&amp;gt;Параметры как при создании роли. Роль будет переписана.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; роли&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — JSON с параметрами роли:{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;проверка создания&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;rights&amp;quot;: [    &amp;quot;набор прав через запятую&amp;quot; ]&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/roles&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка ролей.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;имя роли&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;rights&amp;quot;: [ &amp;quot;набор прав через запятую&amp;quot; ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;},............]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/user/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание нового пользователя. &amp;lt;small&amp;gt;Метод вернет или id нового пользователя или описание ошибки&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — json строка {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;login_name&amp;quot;, &amp;quot;fullname&amp;quot;: &amp;quot;Отображаемое Имя&amp;quot;,&amp;quot;password&amp;quot;: &amp;quot;XXXXX&amp;quot;,&amp;quot;role&amp;quot;: &amp;quot;role_id&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;default dataset id&amp;quot;, &amp;quot;datasets&amp;quot;: [ &amp;quot;dataset id&amp;quot;, ................. ] }&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;user_id&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXX&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/auth/user/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление пользователя&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - идентификатор пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/user/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение параметров пользователя&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; — идентификатор пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;loginname&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;fullname&amp;quot;: &amp;quot;Full Name&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;role&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;datasets&amp;quot;: [ &amp;quot;0&amp;quot;, &amp;quot;2dc34d3454243522e5407d3a170815a2&amp;quot; ] }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/user/info&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение параметров пользователя по его токену доступа. &amp;lt;small&amp;gt;Служебный метод - для предоставления прав текущему пользователю по его токену&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;x-access-token&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;loginname&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;fullname&amp;quot;: &amp;quot;Full Name&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;role&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;datasets&amp;quot;: [  &amp;quot;0&amp;quot;,  &amp;quot;2dc34d3454243522e5407d3a170815a2&amp;quot;]  },  &amp;quot;rights&amp;quot;: [..........] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/user/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка пользователей с их параметрами. &amp;lt;small&amp;gt;Тоже самое что и в методе GET /auth/user/info, только для всех пользователей&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |[&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;loginname&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;fullname&amp;quot;: &amp;quot;Full Name&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;role&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;datasets&amp;quot;: [  &amp;quot;0&amp;quot;,  &amp;quot;2dc34d3454243522e5407d3a170815a2&amp;quot;]  },  &amp;quot;rights&amp;quot;: [..........] },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
......&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/user/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение параметров пользователя&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — параметры пользователя как при создании&amp;lt;/small&amp;gt; &lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/user/password&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Смена пароля пользователя по его токену доступа.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;password&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |{ &amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;} &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/userlog&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение действий пользователя за период времени по его токену&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;from&#039;&#039;&#039; — начало периода в формате &amp;quot;%Y-%m-%d %H:%M&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;to&#039;&#039;&#039; — конец периода в формате &amp;quot;%Y-%m-%d %H:%M&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;время&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;метод&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      {измененные данные в формате метода}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;время&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;метод&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      {измененные данные в формате метода}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    .........&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/version&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение версии сервиса ups&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;version&amp;quot;: &amp;quot;4.082 release&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/lang: методы мультиязычности&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/lang/&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выводит информацию о переводе элементов интерфейса на текущий язык&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;see&amp;quot;:&amp;quot;Сущности&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;smc&amp;quot;:&amp;quot;Классификатор&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;... }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/lang/wallpaper&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отдает случайный фон рабочего стола в виде jpeg из каталога «wallpapers» на сервере ups&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;image/jpeg&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/server: получение информации о серверах&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |GET/server/get/addresses/{servicetype}&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Вывод информации о серверах, обслуживающих данный сервис, а также настроенных параметров обращения к данным серверам. &lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainer&#039;&#039;&#039; — сервер обучения, &#039;&#039;&#039;cluster&#039;&#039;&#039; — рабочие серверы, &#039;&#039;&#039;connect&#039;&#039;&#039; — время на подключение, &#039;&#039;&#039;read&#039;&#039;&#039; — время на ответ,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;failed&#039;&#039;&#039; — время пребывания в сбойных, &#039;&#039;&#039;install&#039;&#039;&#039; — время на установку модели, &#039;&#039;&#039;info&#039;&#039;&#039; — время на получение информации о модели,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;counter&#039;&#039;&#039; — счетчик запросов, &#039;&#039;&#039;current&#039;&#039;&#039; — индекс последнего опрошенного cluster-сервера&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;fail&#039;&#039;&#039; — массив сбойных серверов со временем постановки в сбой.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;trainer&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;cluster&amp;quot;: [ &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;timers&amp;quot;: {  &amp;quot;connect&amp;quot;: 0.5,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;read&amp;quot;: 1,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;failed&amp;quot;: 600,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;install&amp;quot;: 60,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;info&amp;quot;: 3 },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;counter&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;current&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;fail&amp;quot;: {&amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;:1686295678} }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |GET/server/get/models/{servicetype}/{servertype}&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Вывод информации о моделях указанного сервиса на каждом сервере указанного типа. &amp;lt;small&amp;gt;Вывод представляет собой массив URL-серверов, для каждого из которых указан список моделей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servertype&#039;&#039;&#039; — тип серверов&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;model1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;modelN&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ],  ... }&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/model: методы работы с моделями&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/add/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание пустой модели в указанном сервисе. &amp;lt;small&amp;gt;Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;, &#039;&#039;&#039;spr&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 30%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 70%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/apply/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Применение установленной на рабочих серверах модели. &amp;lt;small&amp;gt;После применения модель становится доступна для штатного режима работы. Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;, &#039;&#039;&#039;spr&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;DELETE/model/delete/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Полностью удаляет модель из системы и со всех управляемых серверов. &amp;lt;small&amp;gt;Доступно для следующих сервисов: smc, see, spr.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/errors/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Запрос на получение списка ошибок модели после тестирования/обучения.  &amp;lt;small&amp;gt;Доступен для сервисов see и smc. Ответ содержит список вложенных списков. В каждом три значения: правильное значение, предсказанное моделью значение и начальные данные (фраза).&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039; — тип ошибок в выводе&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;- train&#039;&#039;&#039; ошибки обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;- test&#039;&#039;&#039; ошибки тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;- mark&#039;&#039;&#039; ошибки авторазметки&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[ [true, predicted, phrase],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;... ]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/export/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Экспорт модели, модель скачивается в виде zip-архива.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл model.zip, где model — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;DELETE/model/handler/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление постобработчика из модели типа future. &amp;lt;small&amp;gt;Более подробно об обработчике см. руководства пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/handler/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отправка файла-постобработчика в указанную модель типа future. &amp;lt;small&amp;gt;Обработчик становится активным сразу после успешной отправки. Более подробно об обработчике см. руководства пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;handler&#039;&#039;&#039; — файл, содержащий программный код python постобработчика&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/handler/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение файла-постобработчика из модели типа future.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл handler.py&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;DELETE/model/handler/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление постобработчика в указанной модели указанного типа.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/handler/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отправка файла-постобработчика в указанную модель указанного типа. &amp;lt;small&amp;gt;Становится активным сразу после успешной отправки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;handler&#039;&#039;&#039; — файл, содержащий программный код python постобработчика&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/handler/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение файла-постобработчика из указанной модели указанного типа.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл handler.py&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/import/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Импортирует модель в черновик (modeltype=future)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;zip-model&#039;&#039;&#039; — zip с файлами модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/info/{servicetype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение информации о всех моделях указанного сервиса. &amp;lt;small&amp;gt;Аналогичен методу GET /info/{servicetype}/{model}, но выводит информацию обо всех моделях.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{    &amp;quot;model1&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;previous&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;current&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;future&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;empty&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      ...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    }    },   ...  }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/info/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение информации о каждом типе (modeltype) указанной модели. &amp;lt;small&amp;gt;Итоговый массив содержит переменные типа modeltype, в каждой из который содержится информация о модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{    &amp;quot;previous&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;current&amp;quot;:  {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;status&amp;quot;: &amp;quot;trained&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ...  },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;future&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;status&amp;quot;: &amp;quot;trained&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ...  }  }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/install/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Установка импортированной или обученной модели на рабочих серверах.&lt;br /&gt;
&amp;lt;small&amp;gt;Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;, &#039;&#039;&#039;spr&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/log/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выводит лог обучения и тестирования модели. &amp;lt;small&amp;gt;Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;training&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;preparing data&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;tokenizing&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/restore/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Откат модели. &amp;lt;small&amp;gt;Делает текущую рабочую модель черновиком (future), рабочие серверы после выполнения данного метода продолжают уже с возвращенной моделью. Схематично действия над modeltype в результате выполнения данного метода можно представить так:&amp;lt;/small&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;current -&amp;gt; future&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;previous -&amp;gt; current&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;null -&amp;gt; previous&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |{&amp;quot;error&amp;quot;:0,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&lt;br /&gt;
&lt;br /&gt;
} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/corpus: работа с данными для обучения моделей&#039;&#039;&#039; =====&lt;br /&gt;
Методы данного класса предназначены только для сервисов smc и see&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перечень заданий автоматической маркировки корпусов. &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{   &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;tasks&amp;quot;: [ {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;: &amp;quot;29d9da98-d6c1-4dc1-bbc9-111309816002&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;taskname&amp;quot;: &amp;quot;test_doc&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {  &amp;quot;id&amp;quot;: &amp;quot;1a5e9bdc-9f98-49d2-84de-1a9bde8fc37c&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;taskname&amp;quot;: &amp;quot;sssss&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;    }  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/result/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Результат выполнения задания на автомаркировку корпуса. &amp;lt;small&amp;gt;Если задание завершено в ответе придет маркированый корпус и время старта и финиша задания&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;started&amp;quot;: &amp;quot;2024-10-09 18:05:51&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;finished&amp;quot;: &amp;quot;2024-10-09 18:05:51&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;corpus&amp;quot;: [[ [], [ [&amp;quot;тэг&amp;quot;],&amp;quot;фраза 1&amp;quot;]],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;small&amp;gt;[ [], [[&amp;quot;тэг&amp;quot;],&amp;quot;фраза 2&amp;quot;]] ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Начать автоматическую разметку корпуса.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;taskname&#039;&#039;&#039; — произвольное имя задания&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;corpus&#039;&#039;&#039; — json строка с размечаемым корпусом[[ [класс1,... классН], текст ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[ [класс1,... классН], текст ]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;marks&#039;&#039;&#039; — json строка с набором меток [    [ метка, [синоним, синоним2 ... синоним Н], порог ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[ метка, [синоним, синоним2 ... синоним Н], порог ]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;appendMarks&#039;&#039;&#039; — &amp;quot;yes&amp;quot; - дополнить разметку, &amp;quot;no&amp;quot; -заменить разметку&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;уникальный id задания&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/status/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получить статус задания на автоматическую разметку корпуса.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — уникальный id задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;started&amp;quot;: &amp;quot;2024-10-09 13:49:46&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;finished&amp;quot;: &amp;quot;2024-10-09 13:49:46&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;progress&amp;quot;: 0&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/stop/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Прервать задание на автоматическую разметку корпуса. &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/copy/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Копирование корпуса данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;srcname&#039;&#039;&#039; — текущее имя&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;dstname&#039;&#039;&#039; — новое имя&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/corpus/delete/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаляет корпус с данными&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/export/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Возвращает текстовый файл с корпусом, &amp;lt;small&amp;gt;содержащий строки вида КЛАСС&amp;lt;TAB&amp;gt;ФРАЗА&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл name.txt&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/get/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Возвращает JSON с данными корпуса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;  [ &amp;quot;тэг&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;фраза&amp;quot;&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;  ],&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;  ...&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/import/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Метод для импорта корпуса данных. &amp;lt;small&amp;gt;Возможен как из текстового файла со строками вида КЛАСС&amp;lt;TAB&amp;gt;ФРАЗА (доступно для smc и see), так и из логов работы системы (только для smc). Если на вход поступил файл csv, происходит импорт из файла, в противном случае — из логов.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv&#039;&#039;&#039; — файл данных&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;startDate&#039;&#039;&#039; — дата начала выборки, YYYY-MM-DD&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;stopDate&#039;&#039;&#039; — дата окончания выборки, YYYY-MM-DD&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — имя модели, из логов которой будет произведен импорт&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;limit&#039;&#039;&#039; — числовое ограничение строк импорта&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/list/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Возвращает список всех корпусов данных для указанного типа сервиса &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[ &amp;quot;корпус1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;корпус2&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ...]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/put/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перезаписывает корпус отправленным массивом данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — строка формата json с данными. Аналогична выводу метода GET /get/{servicetype}&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/rename/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Переименование корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;srcname&#039;&#039;&#039; — текущее имя&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;dstname&#039;&#039;&#039; — новое имя&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/marks: работа с наборами меток в smc&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление набора менток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; —список меток в формате: [ [  &amp;quot;метка1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним1&amp;quot;, &amp;quot;синоним2&amp;quot;, &amp;quot;синоним3&amp;quot;, &amp;quot;синонимN&amp;quot; ], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],  [ &amp;quot;меткаN&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним11&amp;quot;, &amp;quot;синоним21&amp;quot;,&amp;quot;синоним31&amp;quot;, &amp;quot;синонимN1&amp;quot;], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ] ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — имя создаваемого набора&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;132310fa-98c7-4b12-896f-ff113827d077&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/marks/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление набора меток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/marks/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение набора меток в виде строк &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;метка1    синоним1,синоним2,синоним3,синонимN     0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;меткаN    синоним11,синоним21,синоним31,синонимN1    0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/marks/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение набора меток в виде json&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;quot;метка1&amp;quot;, [ &amp;quot;синоним1&amp;quot;, &amp;quot;синоним2&amp;quot;, &amp;quot;синоним3&amp;quot;, &amp;quot;синонимN&amp;quot;  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;quot;меткаN&amp;quot;, [&amp;quot;синоним11&amp;quot;,&amp;quot;синоним21&amp;quot;, &amp;quot;синоним31&amp;quot;,&amp;quot;синонимN1&amp;quot;],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ]  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/import/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Импорт в существующий набор меток из файла. &amp;lt;small&amp;gt;Набор будет переписан из файла&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv&#039;&#039;&#039; — файл &amp;quot;метка&amp;quot;ТАБ&amp;quot;синонимы через запятую&amp;quot;ТАБ&amp;quot;достоверность(число от 0 до 1)&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/marks/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка наборов меток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;result&amp;quot;: [    { &amp;quot;id&amp;quot;: &amp;quot;416fbe08-19e9-453c-b140-37008a08a76c&amp;quot;,&amp;quot;name&amp;quot;: &amp;quot;test&amp;quot; },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;quot;id&amp;quot;: &amp;quot;16e77fa2-7c4d-47f9-8644-6385876525d6&amp;quot;,&amp;quot;name&amp;quot;: &amp;quot;Рыжик&amp;quot; },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;quot;id&amp;quot;: &amp;quot;132310fa-98c7-4b12-896f-ff113827d077&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;test&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/put/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Импорт в существующий набор меток из json строки. &amp;lt;small&amp;gt;Набор будет переписан&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — список меток в формате: [ [  &amp;quot;метка1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним1&amp;quot;, &amp;quot;синоним2&amp;quot;, &amp;quot;синоним3&amp;quot;, &amp;quot;синонимN&amp;quot; ], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],  [ &amp;quot;меткаN&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним11&amp;quot;, &amp;quot;синоним21&amp;quot;,&amp;quot;синоним31&amp;quot;, &amp;quot;синонимN1&amp;quot;], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ] ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор заменяемого набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/rename/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Присваивает новое наименование существующему набору меток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — новое имя набора&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/spr: работа с сервисом SPR&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{{:SPR. Руководство пользователя}}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/smc: работа с сервисом SMC&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{{:SMC. Руководство пользователя}}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/see: работа с сервисом SEE&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{{:SEE. Руководство пользователя}}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/sbs: работа с сервисом SBS&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{{:SBS. Руководство пользователя}}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/tts: методы работы с сервисом tts&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/export&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка пользовательского словаря ударений.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;Простой текст — строки со словом и его интерпретацией с ударением.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/get&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка пользовательского словаря ударений в виде json.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[ [   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot;],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[   &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot;],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;...]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/import&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузка пользовательского словаря ударений. &amp;lt;small&amp;gt;Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;csv file&#039;&#039;&#039; — файл строк со словом и его интерпретацией с ударением.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/put&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузка пользовательского словаря ударений в виде json. &amp;lt;small&amp;gt;Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — строка json следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[ &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/normalize&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Нормализация текста &amp;lt;small&amp;gt;— перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы), например «в понедельник 10.10.2025» -&amp;gt; «в понедельник дес+ятого октябр+я две т+ысячи дв+адцать п+ятого г+ода».&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  фраза для нормализации&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;нормализованный текст&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/revoice/{revoicer}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Модификация или искажение голоса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  аудиофайл для обработки&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;revoicer&#039;&#039;&#039; —  модель модификации голоса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;wav-файл с модифицированным (искаженным) голосом&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/revoicers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перечень моделей модификации или искажения голоса. &amp;lt;small&amp;gt;Модели поставляются только в составе дистрибутива. Модель distortion — искажение голоса, делает голос неузнаваемым и речь неразборчивой.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  &amp;quot;distortion&amp;quot; ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/synthesize/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Синтез звукового файла из текста/&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;ID&#039;&#039;&#039; — имя модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст синтезируемой фразы&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;rate&#039;&#039;&#039; — скорость речи&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;pitch&#039;&#039;&#039; — высота (тон)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;volume&#039;&#039;&#039; — громкость&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;frequency&#039;&#039;&#039; — частота дискретизации (по умолчанию 22050 Гц)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;format&#039;&#039;&#039; - формат файла результата (wav, opus, ogg, mp3)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;link&#039;&#039;&#039; - если 1, то вернуть только ссылку на файл&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;файл с синтезированой фразой&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/qas: методы работы с сервисом qas&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/ask&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Метод генерирует ответ на поставленный вопрос на основе информации из документов в базе. &amp;lt;small&amp;gt;Ответ на вопрос генерируется на основе информации, содержащейся в одном или нескольких документах. Документы должны быть в текстовом формате. Ответ возвращается в формате JSON, его можно скачать. Если метод не смог найти ответ, возвращается код ошибки и сообщение.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст вопроса, на основе которого будут искаться фрагменты.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; — id канала&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useCache&#039;&#039;&#039; — использовать кешированные ответы&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;возможные варианты:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot; не использовать&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;all&#039;&#039;&#039;&amp;quot; использовать все&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;checked&#039;&#039;&#039;&amp;quot; использовать только проверенные&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useGPT&#039;&#039;&#039; — использовать генеративную сеть для поиска ответов в документах. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;addAlias&#039;&#039;&#039; — добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; — максимальное количество документов одной категории для формирования контекста при генерации ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;similarityArea -&#039;&#039;&#039; определяет допустимую разницу между максимальной и минимальной релевантностью фрагментов при фильтрации результатов&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;text&amp;quot;: &amp;quot;Здесь будет текст ответа&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/cachemaker/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Генерация ответов на вопросы в кэше.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - категория для которой генерируются ответы&amp;lt;/small&amp;gt;*&amp;lt;small&amp;gt;&#039;&#039;&#039;mode&#039;&#039;&#039; - режим генерации ответов, возможные значения:&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;- paraphrase&#039;&#039;&#039; - генерирует вариации ответов перефразированием уже проверенных ответов, если таковые имеются на вопросе&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;- generate&#039;&#039;&#039; - генерирует кэш через разные ответы на каждый вопрос по документации&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;mode&#039;&#039;&#039; — режим генерации ответов, возможные значения:&#039;&#039;&#039;- paraphrase&#039;&#039;&#039; - генерирует вариации ответов перефразированием уже проверенных ответов, если таковые имеются на вопросе&#039;&#039;&#039;- generate&#039;&#039;&#039; — генерирует кэш через разные ответы на каждый вопрос по документации&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;option&#039;&#039;&#039; - {all | empty} обработать все вопросы  или только не содержащие ответов&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - если указан код категории, то генерация только для этой категории&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;variants&#039;&#039;&#039; - количество ответов, от 1 до 9&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - заменить ответы на сгенерированные&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; - максимальное количество документов одной категории для формирования контекста при генерации ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для генерации, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/cachemaker/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Состояние генерации ответов на вопросы в кэше. &amp;lt;small&amp;gt;Статусы: &#039;&#039;&#039;started&#039;&#039;&#039;, &#039;&#039;&#039;stopped&#039;&#039;&#039;, если были ошибки, поле ответа &#039;&#039;&#039;error&#039;&#039;&#039; будет содержать код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;status&amp;quot;: &amp;quot;started&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;progress&amp;quot;: 33.33}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/cachemaker/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановить генерацию ответов на вопросы в кэше.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/category/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавить категорию с указанным именем. &amp;lt;small&amp;gt;В ответе — id созданной категории или сообщение об ошибке:&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — наименование категории&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;ad895085-2e48-439a-831e-b5f699b6a54a&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/category/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удалить категорию. &amp;lt;small&amp;gt;В ответе или сообщении об успехе, или ошибке, если категория используется или не существует.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор категории&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{   &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/category/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получить список категорий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;В ответе json с именами и id категорий&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/category/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменить категорию. &amp;lt;small&amp;gt;У категории пока есть только наименование, поэтому метод только переименовывает категорию&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор категории&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — наименование категории&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/channel/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление канала. &amp;lt;small&amp;gt;В ответе id созданного канала или сообщение об ошибке&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — наименование канала&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;a46fb887-5d98-41e0-8299-bcc94f615e91&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/channel/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление канала&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор канала&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/channel/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получить список всех каналов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;channels&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;1&amp;quot;,      &amp;quot;name&amp;quot;: &amp;quot;voice&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;56442779-e871-43fd-ae4d-caf4ab6d09b9&amp;quot;,      &amp;quot;name&amp;quot;: &amp;quot;канал++&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;0&amp;quot;,      &amp;quot;name&amp;quot;: &amp;quot;default&amp;quot;    }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/channel/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменить канал. &amp;lt;small&amp;gt;У канала пока есть только наименование, поэтому метод только переименовывает канал&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — новое наименование канала&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор канала&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/chat&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Поиск ответа за пределами документов. &amp;lt;small&amp;gt;На стадии разработки, не используется.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text -&#039;&#039;&#039; текст вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;history&#039;&#039;&#039; - история вопросов, будет склеена с text при запросе&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для ответа, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useInternalTemplate&#039;&#039;&#039; - использовать ли шаблон запроса. &#039;&#039;&#039;no&#039;&#039;&#039; - не использовать, либо код шаблона запроса к LLM. Необязательный параметр. Если не указан, используется шаблон по умолчанию.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;params&#039;&#039;&#039; - необязательный параметр. JSON с произвольными параметрами запроса к LLM. Описание параметров см. в [[QAS. Руководство администратора|руководстве администратора]].&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Пример ответа на вопрос &amp;quot;как пройти в библиотеку&amp;quot;&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;text&amp;quot;: &amp;quot;1. Проверить время работы библиотеки (обычно от 9 до 20)\n2. Проверить местоположение библиотеки на карте или с помощью сервиса Google Maps\n3. Убедиться, что у вас есть необходимые документы для входа (паспорт, карта члена библиотеки и т.д.)\n4. Посетить библиотеку по адресу: [адрес библиотеки]\n5. Проверить правила поведения в библиотеке перед входом&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/cleandoc/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Очистка документа от лишней информации &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text -&#039;&#039;&#039; текст документа&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для ответа, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;doc_id&#039;&#039;&#039; - необязательный параметр, ID документа&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; | &#039;&#039;&#039;GET/qas/cleandoc/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Остановка очистки документа для конкретного пользователя&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; | &#039;&#039;&#039;GET/qas/cleandoc/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Статус очистки документа для конкретного пользователя&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;status&amp;quot;: stopped | started,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;progress&amp;quot;: 33.3,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: string,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;place&amp;quot;: number, #место в очереди&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;queue&amp;quot;: True | False #состояния - в очереди или в процессе очистки&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; | &#039;&#039;&#039;GET/qas/cleandoc/result&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Результат очистки документа для конкретного пользователя&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;doc_id&#039;&#039;&#039; - необязательный параметр, ID документа&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;status&amp;quot;: &amp;quot;stopped&amp;quot;,&amp;quot;text&amp;quot;: &amp;quot;очищенный текст&amp;quot;,&amp;quot;doc_id&amp;quot;: &amp;quot;ID документа&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузить текстовый документ. &amp;lt;small&amp;gt;Добавляет документ в базу. В ответе — id созданного документа или сообщение об ошибке.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;title&#039;&#039;&#039; — заголовок документа&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — категория документа&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039;&amp;lt;/small&amp;gt; — &amp;lt;small&amp;gt;файл документа&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;ebe2bc57551c2d17f892987d1f62306d&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/doc/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Удаление документа&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор документа&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/doc/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка текста документа&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор документа&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;﻿Здесь будет полный текст документа&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/doc/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка имеющихся документов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;docs&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {id&amp;quot;: &amp;quot;d4999cdee5ad1faf2cb3066ea1b5e96b&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;PVE. Установка сервисного пакета окружения&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Техническая поддержка&amp;quot; },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;quot;id&amp;quot;: &amp;quot;759042575b965745b9d2af869bca1740&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;UPS. Руководство администратора&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Техническая поддержка&amp;quot;}      ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Обновление документа. &amp;lt;small&amp;gt;В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — json c изменяемыми параметрами документа&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  title: string,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  category: string,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  text: string&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;параметр который не меняется может отсутствовать в json&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор документа.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/replace&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Замена подстроки в текстах категории &amp;lt;small&amp;gt;Будут заменены все найденные вхождения&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;search&#039;&#039;&#039; - искомая подстрока, будет заменена&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - текст замены&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - в какой категории искать&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION,&amp;quot;replacements&amp;quot;:INT}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/modifyphrases&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Массовая замена текста в указанных фразах.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;phrases&#039;&#039;&#039; - JSON массив с изменяемым фразами следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;doc_id&#039;: &#039;ad895085-2e48-439a-831e-b5f699b6a54a&#039;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;phrase_id&#039;: 5,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;text&#039;: &#039;новый текст&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/gpt/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Получение списка доступных(установленных) GPT моделей&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;models&amp;quot;: [&amp;quot;default&amp;quot; ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление вопроса. &amp;lt;small&amp;gt;В случае успеха метод вернет id вопроса, в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;question&#039;&#039;&#039; —  текст вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; —  id категории к которой относится вопрос&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answers&#039;&#039;&#039; —  ответы в виде Json:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[ { &amp;quot;checked&amp;quot;: true, &amp;quot;channel&amp;quot;: &amp;quot;0&amp;quot;, &amp;quot;answer&amp;quot;: &amp;quot;ответ&amp;quot; } ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;aliases&#039;&#039;&#039; —  вопросы к которым подходят ответы из блока answers в виде json:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;quot;вопрос&amp;quot;,&amp;quot;еще вопрос&amp;quot;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;527be9f0-f773-4a3e-bd0b-81b40a061d0d&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/append/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавляет алиасы/кандидаты к другому вопросу&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;aliases&#039;&#039;&#039; —  JSON list с синонимами&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;candidates&#039;&#039;&#039; JSON list с кандидатами&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор вопроса к которому добавить синонимы и(или) кандидаты&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/approve/{destination_id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перемещает кандидаты в формулировки другого вопроса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;candidates&#039;&#039;&#039; —  json массив c текстами кандидатов&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;destination_id&#039;&#039;&#039; —  идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/delete/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление списка вопросов или ответов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;questions&#039;&#039;&#039; — json строка с перечнем id&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039; — выбор, удалять вопросы или ответы (&#039;&#039;&#039;questions&#039;&#039;&#039;, &#039;&#039;&#039;answers&#039;&#039;&#039;)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/question/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление вопроса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/question/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Получение вопроса вместе с ответами и синонимами вопроса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;answers&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {   &amp;quot;checked&amp;quot;: true,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;channel&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;answer&amp;quot;: &amp;quot;ответ&amp;quot;    }  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;aliases&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;вопрос&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;синоним вопроса&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;еще синоним вопроса&amp;quot;  ]   }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/question/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Получение списка вопросов.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;question&#039;&#039;&#039; —  фильтр вопросов, ограничение списка по вопросам&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — фильтр категорий&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answer&#039;&#039;&#039; —  фильтр ответов, ограничение списка по ответам&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;created&#039;&#039;&#039; — фильтр по дате создания, оставляет вопросы, созданные &#039;&#039;&#039;не ранее&#039;&#039;&#039; указанной даты&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;createdBefore&#039;&#039;&#039; — фильтр по дате создания, оставляет вопросы, созданные &#039;&#039;&#039;не позже&#039;&#039;&#039; указанной даты&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;modified&#039;&#039;&#039; — фильтр по дате изменения, оставляет вопросы, &#039;&#039;&#039;изменённые в точности&#039;&#039;&#039; в указанную дату&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;onlyNew&#039;&#039;&#039; - фильтр, оставляющий только новые (необработанные) вопросы&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;questions&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;question&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;incomplete&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;aliases&amp;quot;: [],&amp;quot;candidates&amp;quot;: [],&amp;quot;category&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;checked&amp;quot;: 0,&amp;quot;unchecked&amp;quot;: 0}&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;question&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;incomplete&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;aliases&amp;quot;: [],&amp;quot;candidates&amp;quot;: [],&amp;quot;category&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;checked&amp;quot;: 0,&amp;quot;unchecked&amp;quot;: 0}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Модификация вопроса. &amp;lt;small&amp;gt;Позволяет заменить как все параметры так и отдельные&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json c измененными параметрами, пример полного:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{   &amp;quot;answers&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;checked&amp;quot;: true,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;channel&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;answer&amp;quot;: &amp;quot;новый ответ&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;question&amp;quot;:&amp;quot;новый вопрос&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;category&amp;quot;: &amp;quot;a3801cc0-f8e5-4f3b-bb10-e42148cd772b&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;aliases&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;новый вопрос&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;синоним&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;еще синоним&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/replace&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Поиск и замена подстроки. Будут заменены все найденные вхождения&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;search&#039;&#039;&#039; - искомая подстрока, будет заменена&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - текст замены&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - в какой категории искать&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION,&amp;quot;replacements&amp;quot;:INT}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/modifyanswers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Массовая замена текста в указанных ответах.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;phrases&#039;&#039;&#039; - JSON массив с изменяемым ответами следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;question_id&#039;: &#039;ad895085-2e48-439a-831e-b5f699b6a54a&#039;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;answer_id&#039;: 5,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;text&#039;: &#039;новый текст&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/paraphrase&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Генерация фраз-синонимов для предложения.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text -&#039;&#039;&#039; предложение&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для ответа, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;, &amp;quot;texts&amp;quot;: [ &amp;quot;перефразированный текст 1&amp;quot;, ... ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionlist/answers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отображает лог массовой обработки вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;на выходе :&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;массив из объектов {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  error: number;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  question: string;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  answer: string;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  confidence: number | null;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/questionlist/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Старт массовой обработки вопросов из файла&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;questions&#039;&#039;&#039; - файл с вопросами&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;format&#039;&#039;&#039; - в json или в text файл с вопросами&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; — id канала&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useCache&#039;&#039;&#039; — использовать кешированные ответы&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;возможные варианты:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;— &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot; не использовать&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;all&#039;&#039;&#039;&amp;quot; использовать все&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;checked&#039;&#039;&#039;&amp;quot; использовать только проверенные&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useGPT&#039;&#039;&#039; — использовать генеративную сеть для поиска ответов в документах. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; - максимальное количество документов одной категории для формирования контекста при генерации ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;addAlias&#039;&#039;&#039; — добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; - порог достоверности при обработке&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionlist/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Статус массовой обработки вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{     error: string;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     status: &#039;started&#039; | &#039;stopped&#039;;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     progress: number; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionlist/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановка массовой обработки вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/mismatchsearcher/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Старт поиска несоответствий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt; &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM для анализа на несоответствия, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;asktemplate&#039;&#039;&#039; - ID шаблона запроса к LLM для генерации ответов по документу, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answers&#039;&#039;&#039; - тип вопросов, по которым осуществляется поиск несоответствий, необязательный параметр, по умолчанию «all»&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/mismatchsearcher/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Статус поиска несоответствий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{     error: string;&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;     status: &#039;started&#039; | &#039;stopped&#039;;&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     progress: number; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/mismatchsearcher/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановка поиска несоответствий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/mismatchsearcher/mismatches&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |Статус получения результатов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;quot;mismatches&amp;quot;: [{&amp;quot;question_id&amp;quot;: &amp;quot;ID вопроса&amp;quot;, &amp;quot;question&amp;quot;: &amp;quot;вопрос&amp;quot;, &amp;quot;category&amp;quot;: &amp;quot;ID категории&amp;quot;,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;answer_id&amp;quot;: &amp;quot;ID ответа&amp;quot;, &amp;quot;answer&amp;quot;: &amp;quot;ответ на вопрос {question}&amp;quot;,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;description&amp;quot;: &amp;quot;результат поиска&amp;quot;, &amp;quot;error&amp;quot; : string,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;context&amp;quot;: &amp;quot;фрагмент документа&amp;quot;, &amp;quot;generatedText&amp;quot; : &amp;quot;Результат генерации&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}, ... ]&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionmaker/start&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |Запуск генерации вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - ID категории, по которой будет происходить генерация вопросов&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;doc&#039;&#039;&#039; - ID документа, по которому будет происходить генерация вопросов&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;generateAnswers&#039;&#039;&#039; - флаг для генерации ответов вместе с вопросами &#039;&#039;&#039;[yse|no]&#039;&#039;&#039;, по умолчанию &#039;&#039;&#039;«no»&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM для анализа генерации вопросов, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionmaker/status&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |Статус генерации вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: string,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;status&amp;quot;: &#039;started&#039; | &#039;stopped&#039;,&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;progress&amp;quot;: 33.3&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionmaker/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Прервать генерацию.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/search&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Поиск фрагментов содержащих ответ&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039;  — текст запроса&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — категория (раздел) знаний. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; - максимальное количество документов одной категории для формирования контекста при поиске ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;similarityArea -&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;определяет допустимую разницу между максимальной и минимальной релевантностью фрагментов при фильтрации результатов&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  Фрагмент 1:Здесь будет текст найденного фрагмента&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  Фрагмент 2:Здесь будет текст найденного фрагмента&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;fragments&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;3a386b0a9e0e19efb0870685e1d0b484&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;Заголовок документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Категория документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;text&amp;quot;: &amp;quot;Здесь будет текст найденного фрагмента&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;44fd73ea1ac63f32cf18d79c854dbfe2&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;Заголовок документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Категория документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;text&amp;quot;: &amp;quot;Здесь будет текст найденного фрагмента&amp;quot;    }  ]   }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/summarization_template/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавление шаблона протокола. В случае успеха метод вернет id шаблона, в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;options&#039;&#039;&#039; — json словарь с именами разделов и их описанием&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,  &amp;quot;id&amp;quot;: &amp;quot;527be9f0-f773-4a3e-bd0b-81b40a061d0d&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETEqas/summarization_template/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление шаблона.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/summarization_template/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение json с шаблоном.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;На выходе словарь, основные элементы: data — словарь с шаблоном, остальные элементы этого уровня служебные. В data: id, name (идентификатор и наименование).И options — словарь с разделами шаблона.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/summarization_template/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение всех шаблонов.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;На выходе словарь, основной элемент — templates, содержит список шаблонов (каждый шаблон как в выдаче метода GET /qas/summarization_template/get/{id}).&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/summarization_template/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Изменение шаблона.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — словарь как в выдаче метода GET/qas/summarization_template/get/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/summarize&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Построение протокола или краткого содержания совещания&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст совещания&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;options&#039;&#039;&#039; — словарь с разделами протокола, где ключ — название раздела, значение - краткая инструкция к формированию раздела.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую GPT модель использовать для построения протокола, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;file&#039;&#039;&#039; — файл с текстом (текст, csv, pdf или текстовые офисные документы)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;summary&amp;quot;: &amp;quot;здесь текст протокола&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/replace&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |корректировка информации в тексте при помощи LLM&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;oldinfo&#039;&#039;&#039; — старая информация&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;newinfo&#039;&#039;&#039; — новая информация&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;model&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;- какую модель использовать для генерации, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt; &lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;итоговый текст&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/replacementlist&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |список всех фраз в документах и ответов в вопросах, подлежащих правке. &amp;lt;small&amp;gt;Векторно ищет все фрагменты по указанному тексту.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — категория, в которой производится векторный поиск&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; — порог похожести, необязательный параметр, если не указан, берется из конфигурационного файла (fragments -&amp;gt; threshold)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answers&#039;&#039;&#039; - тип вопросов, по которым осуществляется поиск для внесения правок, необязательный параметр, по умолчанию «all»&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;docs&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;answers&amp;quot;: []&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/prompt/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Добавление шаблона запроса к LLM. &amp;lt;small&amp;gt;В случае успеха метод вернет id вопроса, в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039;  — тип шаблона&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;- chat - произвольный чат,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- ask - запрос к документам,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- cleandoc - очистка документа, форматирование либо другое преобразование,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- similars_generator - генерация синонимичных которотких фраз,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- paraphrase - перефразировка текста,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- summarize - суммаризация текста (формирование краткой выдержки из текста),&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- question_generator - генерация вопросов по тексту,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- replace - замена информации в тексте, mismatch - поиск несоответствий&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039;  — название шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;prompt&#039;&#039;&#039; — текст шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;postprompt&#039;&#039;&#039; - текст шаблона постобработки результатов (нужен только для summarize)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;params&#039;&#039;&#039; - параметры запроса к LLM&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;small&amp;gt;max_tokens&amp;quot;: 4096,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;top_k&amp;quot;: 30,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;top_p&amp;quot;: 0.5,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;temperature&amp;quot;: 0.5,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;repeat_penalty&amp;quot;: 1.3&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;527be9f0-f773-4a3e-bd0b-81b40a061d0d&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/prompt/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Удаление шаблона. &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/prompt/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Получение шаблона.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;prompt&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;cleandoc&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;cleandoc&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;isDefault&amp;quot;: false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;Чистка документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;prompt&amp;quot;: &amp;quot;Удали сноски, колонтитуры и мусорную информацию из текста ниже. Не удаляй ничего лишнего. Не добавляй ничего, только информация из текста. Выведи только конечный результат без отчета о результате.\n###Текст:\n{context}\n\n###Конечный результат:&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;postprompt&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_modified&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_created&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_modified_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_created_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/prompt/list&#039;&#039;&#039; &lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Получение списка шаблонов.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;prompts&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;: &amp;quot;chat&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;type&amp;quot;: &amp;quot;chat&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;isDefault&amp;quot;: false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;name&amp;quot;: &amp;quot;Чат&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;prompt&amp;quot;: &amp;quot;Ты спокойный вежливый консультант.[\n\n###История переписки:\n{history}]\n\n###Вопрос: {question}\n###Ответ:&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;postprompt&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_modified&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_created&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_modified_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_created_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/prompt/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Модификация шаблона. Позволяет заменить как все параметры, так и отдельные.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — json c измененными параметрами:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ &amp;quot;name&amp;quot;: &amp;quot;новое имя&amp;quot; }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/ses: методы работы с роботом&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;для некоторых путей, где используется {robot_id} - это обращение к версии черновика, чтобы обращаться к продовой версии - нужен постфикс &amp;quot;_prod&amp;quot;, для бэкапа &amp;quot;_backup&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;актуально для методов&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получения данных робота  GET/ses/robot/get/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- применение настроек робота GET/ses/robot/commit/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- экспорт робота GET/ses/robot/export/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- список скриптов GET/ses/robot/script/list/{robot}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получение скрипта GET/ses/robot/script/get/{robot}/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- список ЭД GET/ses/robot/data/list/{robot}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получение ЭД GET/ses/robot/data/get/{robot}/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- список КТ GET/ses/robot/endpoint/list/{robot}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получение КТ GET/ses/robot/endpoint/get/{robot}/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- метода ask (отладчика) POST/ses/ask/{robot_id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- данные сессии (отладчика) GET/ses/session/{robot_id}/{session_id}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/audio/{uuid}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение аудио-файла из архива диалогов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;аудио-файл с расширением opus&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/dialog/{uuid}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение диалога из архива&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;dialog&amp;quot;: [{&amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;,                  &amp;quot;robot&amp;quot;: &amp;quot;...&amp;quot;,                &amp;quot;channel&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                  &amp;quot;unknown&amp;quot;: true/false,        &amp;quot;closed&amp;quot;: true/false,        &amp;quot;endpoint&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                  &amp;quot;answered&amp;quot;: true/false,    &amp;quot;models&amp;quot;: [...],    &amp;quot;variables&amp;quot;: {},   &amp;quot;current&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                         &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;,           &amp;quot;qas&amp;quot;: &amp;quot;&amp;quot;,           &amp;quot;category&amp;quot;: &amp;quot;...&amp;quot;,           &amp;quot;entry&amp;quot;: [...],&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                         &amp;quot;nearest&amp;quot;: &amp;quot;...&amp;quot;,    &amp;quot;missingRunData&amp;quot;: [...],     &amp;quot;waitingRunData&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                         &amp;quot;answered&amp;quot;: true/false,    &amp;quot;lastreply&amp;quot;: &amp;quot;...&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                  &amp;quot;request&amp;quot;: {&amp;quot;datetime&amp;quot;: &amp;quot;...&amp;quot;,           &amp;quot;message&amp;quot;: &amp;quot;&amp;quot;,           &amp;quot;data&amp;quot;: [...]},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                 &amp;quot;reply&amp;quot;: {&amp;quot;answers&amp;quot;: [{&amp;quot;messages&amp;quot;: [...],    &amp;quot;voice&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                                     &amp;quot;interruptible&amp;quot;: true/false,    &amp;quot;file&amp;quot;: null}],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;                  &amp;quot;datetime&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;answered&amp;quot;: true/false}}]}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка диалогов из архива&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;startdate&#039;&#039;&#039; - начало временного интервала в формате date %Y-%m-%d %H:%M&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;enddate&#039;&#039;&#039; - конец временного интервала в формате date %Y-%m-%d %H:%M&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;phone&#039;&#039;&#039; - номер телефона&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;variable&#039;&#039;&#039; - переменная в формате variable=value&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - фрагмент текста в любом сообщении&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - id элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; - название канала (коннектора)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{&amp;quot;uuid&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;datetime&amp;quot;: &amp;quot;...&amp;quot;,&amp;quot;phone&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt; &amp;quot;channel&amp;quot;: [...], &amp;quot;robot&amp;quot;: [&amp;quot;...&amp;quot;]}]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/waveform/{uuid}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Служебный метод для визуализации полученного из архива диалогов аудио-файла, содержит пики сигнала.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[0.016,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;0.015,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;0.01&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/ask/{robot_id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение ответа на запрос пользователя. &amp;lt;small&amp;gt;Метод для отладки робота&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст запроса&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; - id канала&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;connector&#039;&#039;&#039; - имя коннектора&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;session&#039;&#039;&#039; - uuid сессии, если это не первый запрос в сессии&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;tts&#039;&#039;&#039; - вернуть результат синтеза (1- вернуть, 0 - не выполнять синтез)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;variables&#039;&#039;&#039; - словарик с переменными {&amp;quot;переменная1&amp;quot;:&amp;quot;значение&amp;quot;,&amp;quot;переменнаяN&amp;quot;:&amp;quot;значение&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;handler&#039;&#039;&#039; - python скрипт для изменения ответов метода под требования внешних систем, подробнее в следующем разделе. в поле имя файла без расширения.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;restartClosed&#039;&#039;&#039; - перезагрузить сессию при её закрытии с новым id (1 - перезагрузить, 0 - не перезагружать)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;audio&#039;&#039;&#039; - аудиофайл с запросом, текст запроса будет получен распознаванием audio&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;document&#039;&#039;&#039; - документ для последующей обработки&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot_id&#039;&#039;&#039; - id робота&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;endpoint&#039;&#039;&#039; - id точки, в которую передать управление диалогом (необязательный параметр, используется для исходящих оповещений)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;   &amp;quot;question&amp;quot;: &amp;quot;Вопрос&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   &amp;quot;answer&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {    &amp;quot;messages&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                   &amp;quot;ответ&amp;quot;      ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;           &amp;quot;voice&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;           &amp;quot;interruptible&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;file&amp;quot;: &amp;quot;&amp;quot;    }  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;session&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;uuid&amp;quot;: &amp;quot;&amp;quot;   }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание нового робота. &amp;lt;small&amp;gt;На выходе id созданного робота или сообщение об ошибке&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; —  имя нового робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;2fd2f909-2069-4b20-a725-3a598c83f886&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/apply/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Применение робота. &amp;lt;small&amp;gt;Переводит черновик робота в статус prod. Если до этого был prod вариант —  становится backup.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/cleardraft/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Обнуление черновика рабочей версией робота&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/commit/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Применение текущих изменений настроек робота. &amp;lt;small&amp;gt;Применимо ко всем версиям (черновик, рабочая, резервная копия)&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/data/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление элемента данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/data/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление элемента данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/data/get/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение настроек элемента данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,                &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;id ЭД&amp;quot;,         &amp;quot;name&amp;quot;: &amp;quot;Имя ЭД&amp;quot;,          &amp;quot;comment&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;,     &amp;quot;rtype&amp;quot;: &amp;quot;report&amp;quot;,     &amp;quot;model&amp;quot;: &amp;quot;Имя модели&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;param&amp;quot;: &amp;quot;Ответ&amp;quot;,        &amp;quot;script&amp;quot;: &amp;quot;&amp;quot;,              &amp;quot;weight&amp;quot;: 3,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;slaveData&amp;quot;: [],                 &amp;quot;getOnlyAsNearest&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;injectToMessage&amp;quot;: true/false,        &amp;quot;longWaiting&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;dataWaiting&amp;quot;: [],          &amp;quot;actions&amp;quot;: {             &amp;quot;alone&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;        &amp;quot;default&amp;quot;: [{&amp;quot;action&amp;quot;: &amp;quot;say&amp;quot;,   &amp;quot;type&amp;quot;: &amp;quot;random&amp;quot;,   &amp;quot;text&amp;quot;: [&amp;quot;.....&amp;quot;]}]}},&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;    &amp;quot;exceptions&amp;quot;: {}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/data/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка элементов данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  {   &amp;quot;id&amp;quot;: &amp;quot;3ebfe38b-95bf-4927-a662-17f6e5da22ea&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;        &amp;quot;name&amp;quot;: &amp;quot;pve&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;smc&amp;quot;, &amp;quot;rtype&amp;quot;: &amp;quot;report&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;        &amp;quot;weight&amp;quot;: 3, &amp;quot;hasNearestAction&amp;quot;: false } ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/data/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение элемента данных. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как на выходе метода  &#039;&#039;&#039;GET/ses/robot/data/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление всех версий робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/endpoint/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Создание конечной точки. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как на выходе метода &#039;&#039;&#039;GET/ses/robot/endpoint/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами  конечной точки&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;8576593b-b0d8-4b03-a623-74f3132356ea&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/endpoint/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление конечной точки.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  конечной точки&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/endpoint/get/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение настроек конечной точки&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  конечной точки&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;comment&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entryType&amp;quot;: &amp;quot;conditions&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entry&amp;quot;: [{ &amp;quot;conditions&amp;quot;: [{ &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;depth&amp;quot;: 5, &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;operation&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;&amp;quot;}], &amp;quot;run&amp;quot;: []}],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;run&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;actions&amp;quot;: { &amp;quot;default&amp;quot;: [{ &amp;quot;action&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;voice&amp;quot;: &amp;quot;&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;,  &amp;quot;interruptible&amp;quot;: true/false}]},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;report&amp;quot;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/endpoint/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка конечных точек робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{ &amp;quot;error&amp;quot;: 0,  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;точка 1&amp;quot;, &amp;quot;comment&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entryType&amp;quot;: &amp;quot;conditions&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entry&amp;quot;: [{ &amp;quot;conditions&amp;quot;: [{ &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;depth&amp;quot;: 5, &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;operation&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;&amp;quot;}], &amp;quot;run&amp;quot;: []}],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;run&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;actions&amp;quot;: { &amp;quot;default&amp;quot;: [{ &amp;quot;action&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;voice&amp;quot;: &amp;quot;....&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;,  &amp;quot;interruptible&amp;quot;: true/false}]},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;report&amp;quot;}}]&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/endpoint/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение конечной точки. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как на выходе метода &#039;&#039;&#039;GET/ses/robot/endpoint/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка робота в архив&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;zip файл с именем = идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/files/download/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение файла.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор файла&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;файл&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/files/upload/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отправка файла.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;file&#039;&#039;&#039; - файл&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,   &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,   &amp;quot;id&amp;quot;: &amp;quot;Id файла&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Выгрузка основных настроек робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;9fd7f6f1-2cac-4f0f-a121-75c40f2b5e78&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;test&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;description&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;voice&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;session&amp;quot;: {      &amp;quot;lifetime&amp;quot;: 600    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;models&amp;quot;: {},&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;servicedata&amp;quot;: {},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;exceptions&amp;quot;: {},&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;actions&amp;quot;: {},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;holidays&amp;quot;: [],&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;timeintervals&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;name&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;        &amp;quot;weekdays&amp;quot;: [ 1, 2, 3, 4, 5, 6,  7  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;        &amp;quot;dates&amp;quot;: [  0,  1,  2,   3, 4,  5, 6,  7,  8,  9, 10,  11, 12,13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;months&amp;quot;: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;days&amp;quot;: &amp;quot;all&amp;quot;, &amp;quot;intervals&amp;quot;: [ [ 0,  1440 ] ] }}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/import/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузка архива робота в черновик существующего робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;zip —&#039;&#039;&#039;  файл с архивом робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка роботов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  {  &amp;quot;id&amp;quot;: &amp;quot;9fd7f6f1-2cac-4f0f-a121-75c40f2b5e78&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;test&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;hasProd&amp;quot;: true,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;hasBackup&amp;quot;: true  } ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение основных настроек робота. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/robot/get/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с новыми настройками робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/restore/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Откат рабочей версии из бэкапа. &amp;lt;small&amp;gt;Резервная копия становится рабочей, и удаляется, а черновик остается без изменений&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/script/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление нового скрипта. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/robot/script/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/script/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление скрипта&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/script/get/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение текста скрипита&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;6a9f91b6-9634-4079-ac2b-60a944922c61&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;type&amp;quot;: &amp;quot;Тип скрипта&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;Наименование скрипта&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;code&amp;quot;: &amp;quot;Текст скрипта&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/script/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка скриптов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  {    &amp;quot;id&amp;quot;: &amp;quot;9b9d83b7-d5c3-49e6-9bd4-a123a9047939&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;наименование1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;Тип скрипта&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  {    &amp;quot;id&amp;quot;: &amp;quot;48b508ba-a32b-4ada-bcc3-66ce26d81c6a&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;наименование2&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;Тип скрипта&amp;quot;}]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/script/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение скрипта.&amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/robot/script/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/script/test/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Тестирование скрипта. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/session/{robot_id}/{session_id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка с параметрами сессии&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;, &amp;quot;result&amp;quot;: {.....}, &amp;quot;variables&amp;quot;: {}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/add/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление записи в пользовательский справочник.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение n&amp;quot;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;id&amp;quot;: &amp;quot;id записи&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/userdata/data/delete/{robot}/{structure}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление записи из пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор записи (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/userdata/data/list/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение данных из пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{  &amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt; &amp;quot;колонка n&amp;quot;: &amp;quot;значение n&amp;quot;,&amp;lt;/small&amp;gt;   &amp;lt;small&amp;gt; &amp;quot;id&amp;quot;: &amp;quot;id записи&amp;quot;}]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/modify/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Массовое изменение данных в пользовательском справочнике.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;list&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;[{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;: &amp;quot;значение n&amp;quot;, &amp;quot;id&amp;quot;: &amp;quot;id строки&amp;quot;}]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/modify/{robot}/{structure}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение одной записи пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение n&amp;quot;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор записи (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/put/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление данных с заменой в пользовательском справочнике.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;list&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;[{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;: &amp;quot;значение n&amp;quot;, &amp;quot;id&amp;quot;: &amp;quot;id строки&amp;quot;}]&amp;lt;/code&amp;gt; Поле &amp;quot;id&amp;quot; опционально, при его добавлении данные в строке будут заменены.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - замена всех данных в справочнике новыми данными. Возможные значения: yes/no. По-умолчанию - yes.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/structure/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;id справочника&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;справочник&amp;quot;, &amp;quot;fields&amp;quot;: {&amp;quot;колонка 1&amp;quot;: &amp;quot;значение по умолчанию&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение по умолчанию&amp;quot;}}.&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; Поле &amp;quot;id&amp;quot; опционально.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;id&amp;quot;: &amp;quot;id справочника&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/userdata/structure/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/userdata/structure/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка пользовательских справочников.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;[{&amp;quot;id&amp;quot;: &amp;quot;id справочника&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;справочник&amp;quot;, &amp;quot;fields&amp;quot;: {&amp;quot;колонка1&amp;quot;: &amp;quot;значение по умолчанию&amp;quot;}}]&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/structure/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Модификация структуры пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; -  json строка в формате &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{&amp;quot;name&amp;quot;: &amp;quot;справочник&amp;quot;, &amp;quot;fields&amp;quot;: {&amp;quot;колонка 1&amp;quot;: &amp;quot;значение по умолчанию&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение по умолчанию&amp;quot;}}.&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/session/{robot_id}/{session_id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выдает параметры сессии. &amp;lt;small&amp;gt;Для отображения на боковой панели тестирования в UPS. Основные блоки результата:&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot_id&#039;&#039;&#039; —  id робота&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;session_id&#039;&#039;&#039; —  id незакрытой сессии&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;started&amp;quot;: &amp;quot;&amp;quot;,  &amp;quot;modified&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;robot&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;session&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;channel&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;connector&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;unknown&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;current&amp;quot;: {&amp;quot;id&amp;quot;: &amp;quot;&amp;quot;, &amp;quot;qas&amp;quot;: &amp;quot;&amp;quot;, &amp;quot;answered&amp;quot;: true/false, &amp;quot;category&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;              &amp;quot;nearest&amp;quot;: &amp;quot;&amp;quot;,    &amp;quot;entry&amp;quot;: [.....],    &amp;quot;missingRunData&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;              &amp;quot;passedRunData&amp;quot;: [.....],       &amp;quot;waitingRunData&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;              &amp;quot;border&amp;quot;: int,    &amp;quot;preborder&amp;quot;: int,    &amp;quot;lastreply&amp;quot;: &amp;quot;&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;models&amp;quot;: [.....],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;scripts&amp;quot;: [.....],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;  &amp;quot;data&amp;quot;: [{&amp;quot;request&amp;quot;: {.....}, &amp;quot;reply&amp;quot;: {.....}}],&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;timers&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;variables&amp;quot;: {},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;events&amp;quot;: {.....},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;closed&amp;quot;: &amp;quot;&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/widget/config&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выдает параметры виджета для web канала по запросу js скрипта&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;token&#039;&#039;&#039; —  уникальный код виджета, создается при внедрении&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Состав конфига канала, для передачи виджету. Подробней в [https://wiki.connect2ai.net/index.php/SES._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0#%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%B2%D0%B8%D0%B4%D0%B6%D0%B5%D1%82%D0%B0_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B0%D0%B9%D1%82%D0%B0 Руководстве администратора]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/widget/js&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выдает код js скрипта виджета для web-канала &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Код скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/res: методы работы с сервисом отчетов&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/res/dashboards&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получить список рабочих столов kibana с наборами отчетов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;dashboards&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;Наименование1&amp;quot;: &amp;quot;https://........&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;Наименование2&amp;quot;: &amp;quot;https://.........&amp;quot;  }}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/transcription: методы работы со стенографией&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/audio/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Получить аудиофайл по id стенограммы. &amp;lt;small&amp;gt;Идентификатор нужной стенограммы можно получить методом&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;GET /transcription/list&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;wav файл сохраненной стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/transcription/create&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание стенограммы из завершенного задания в очереди распознавания. &amp;lt;small&amp;gt;В ответ придет id созданной стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;taskID&#039;&#039;&#039; — идентификатор задания из очереди&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; —  имя создаваемой стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;74721a3b-9055-4650-9afb-de4d103cafc7&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/transcription/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление стенограммы&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение стенограммы. &amp;lt;small&amp;gt;Используется для отображения стенограммы в веб интерфейсе&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;стенограмма в json формате&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка сохраненных стенограмм&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |[ {  &amp;quot;id&amp;quot;: &amp;quot;926e8d25-4275-4a78-906b-a1109cdacbea&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;name&amp;quot;: &amp;quot;название&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;model&amp;quot;: &amp;quot;big&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;created&amp;quot;: &amp;quot;2024-03-29 12:37:42&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;modified&amp;quot;: &amp;quot;2024-04-24 16:09:09&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;user&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot; }, .... ] &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/transcription/save/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Сохранение стенограмы. &amp;lt;small&amp;gt;Используется для сохранения изменений по нажатию кнопки «Сохранить».&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  стенограмма в json формате&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/waveform/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Служебный метод для отображения аудио в графическом виде, &amp;lt;small&amp;gt;ответ содержит пики сигнала&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;waveform&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   0.016,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ..........&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ..........&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   0.015,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   0.01 ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SBS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3488</id>
		<title>SBS. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SBS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3488"/>
		<updated>2026-01-12T10:49:01Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис Simple Biometry Server предназначен для извлечения именованных сущностей из текстовых фрагментов (фраз естественной речи). Принимает на вход текстовую строку и возвращает структурированные данные в формате JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Simple Biometry Server (SBS) — сервис извлечения метаданных.&lt;br /&gt;
&lt;br /&gt;
Swagger UI — интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису SBS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API сервиса биометрии (SBS)&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SBS. По умолчанию используется порт 6185/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке &amp;lt;nowiki&amp;gt;http://АДРЕС:6185&amp;lt;/nowiki&amp;gt; будет отображен интерфейс Swagger со всеми методами с возможностью их проверки. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/analyze&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение аналитических метаданных из голосового фрагмента. Вернется массив с метаданными голосового фрагмента.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для анализа.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;&amp;lt;age: {&lt;br /&gt;
    class: 20-29, # {&amp;quot;00-05&amp;quot;, &amp;quot;06-12&amp;quot;, &amp;quot;13-19&amp;quot;, &amp;quot;20-29&amp;quot;, &amp;quot;30-39&amp;quot;, &amp;quot;40-49&amp;quot;, &amp;quot;50-59&amp;quot;, &amp;quot;60+&amp;quot;}&lt;br /&gt;
    confidence: 0.99&lt;br /&gt;
  },&lt;br /&gt;
  emotion: {&lt;br /&gt;
    class: SADNESS, # { &amp;quot;ANGER&amp;quot;, &amp;quot;BORE&amp;quot;, &amp;quot;DISAPPOINTMENT&amp;quot;, &amp;quot;DISGUST&amp;quot;, &amp;quot;EXCITEMENT&amp;quot;, &amp;quot;FEAR&amp;quot;, &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;&amp;lt;&amp;quot;NEUTRAL&amp;quot;, &amp;quot;PAIN&amp;quot;, &amp;quot;PLEASURE&amp;quot;, &amp;quot;SADNESS&amp;quot;, &amp;quot;SUPRISE&amp;quot;}&lt;br /&gt;
    confidence: 0.99&lt;br /&gt;
  },&lt;br /&gt;
  gender: {&lt;br /&gt;
    class: FEMALE, # { &amp;quot;MALE&amp;quot;, &amp;quot;FEMALE&amp;quot; }&lt;br /&gt;
    confidence: 0.99&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
  multispeaker : {&lt;br /&gt;
&lt;br /&gt;
    class: YES, # { &amp;quot;YES&amp;quot;, &amp;quot;NO&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
    confidence: 0.99&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/noiselevel&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Возвращает процент зашумленности аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Пример ответа:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: 0, message: &#039;success&#039;, &#039;noise&#039;: 0.79 }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/search&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Поиск говорящего по базе слепков.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; —  порог совпадения спикера, от 0 до 1&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, то поиск не будет осуществлен, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример ответа:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: 0, speaker: Ivan, confidence: 0.79 }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/verify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Сравнение wav-файла cо слепком в базе. В ответе - вероятность совпадения от 0 до 1.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для поиска&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, но слепок не будет проверен, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0, &amp;quot;confidence&amp;quot;: 0.78 }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/speakers/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавление слепка в базу.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; —  имя говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для создания оцифрованного представления говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, но слепок не будет создан, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;251f78d7-ee50-4ba1-a669-ee89fdaf5433&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/sbs/speakers/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление слепка из базы.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/sbs/speakers/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение списка всех слепков.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;251f78d7-ee50-4ba1-a669-ee89fdaf5433&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;наименование слепка&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/speakers/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Дообучение слепка.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; &#039;&#039;&#039;—&#039;&#039;&#039;   идентификатор слепка&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, то слепок не будет дообучен, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;Success&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SBS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3487</id>
		<title>SBS. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SBS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3487"/>
		<updated>2026-01-12T10:47:06Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для получения метаданных из естественной человеческой речи. Входным значением для сервиса являются wav-файлы. В ответ на входящий запрос сервис возвращает данные в формате JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Simple Biometry Server (SBS) – сервис получения метаданных.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Системные требования&#039;&#039;&#039; =====&lt;br /&gt;
Для нормальной работы сервиса необходимо CPU &amp;gt;= 2.20 GHz с поддержкой инструкций AVX2 или новее. Оперативной памяти необходимо не менее 4 Gb. Для работы на нагруженных сервисах рекомендуется использовать GPU NVIDIA с поддержкой CUDA и наличием CUDA ядер.&lt;br /&gt;
&lt;br /&gt;
Быстродействие на &#039;&#039;&#039;CPU&#039;&#039;&#039;: например, поиск спикера, 8 потоков Xeon(R) Gold 6148 CPU @ 2.40 GHz, 8 Гб ОЗУ, запрос поиска в базе спикера по аудио 10 сек, 100 запросов со сдвигом 0.01 с (100 запросов выполнено за 1 с), максимальное время ожидания 14 с. Одиночный запрос ~1 с.&lt;br /&gt;
&lt;br /&gt;
Тот же запрос с &#039;&#039;&#039;GPU&#039;&#039;&#039; А16 (с одним из 4-х ядер), максимальное время ожидания &#039;&#039;&#039;1.6 с&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка/обновление SBS&#039;&#039;&#039; =====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/sbs&amp;amp;fileid=601 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для Вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить сервисный пакет окружения]].&lt;br /&gt;
&lt;br /&gt;
* Установка/обновление SBS осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./sbs-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./sbs-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./sbs-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
* Загрузить последнюю версию продукта  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/sbs/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/sbs&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить SBS &amp;lt;code&amp;gt;/opt/sbs/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/sbs/inupdate -b&amp;lt;/code&amp;gt; –  обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/sbs/inupdate -r&amp;lt;/code&amp;gt; –  обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/sbs/inupdate -n&amp;lt;/code&amp;gt; –  обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/sbs/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/sbs/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; –  это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/sbs/.userapi (это файл авторизации в API, нужен для обновления)&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/sbs/.proxy (это файл конфигурации proxy, необходим для обновления, при отсутствующем прямом подключении к интернету)&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable sbs.service &amp;amp;&amp;amp; sudo systemctl start sbs.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status sbs.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к порту 6185 на нужном интерфейсе по протоколу tcp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Конфигурирование параметров сервиса SBS&#039;&#039;&#039;=====&lt;br /&gt;
Настройка параметров сервиса spr производится в файле /opt/sbs/config.json&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице. &#039;&#039;&#039;Применение любого из параметров требует перезапуска сервиса sbs.&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|device&lt;br /&gt;
|cuda:0&lt;br /&gt;
|Вычислительное устройство (cpu/cuda:N, где N — номер графического ускорителя), в ОЗУ которого осуществляется загрузка моделей.&lt;br /&gt;
|-&lt;br /&gt;
|saveAudio&lt;br /&gt;
|true&lt;br /&gt;
|Ключ хранения аудио отрезков в базе. &lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;Внимание!&#039;&#039;&#039; При смене модели векторизации sbs сбросит все вектора и попытается сформировать новые из сохраненного аудио. Если аудио не будет ( saveAudio=&amp;quot;false&amp;quot;), все слепки будут фактически уничтожены.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|modifyType&lt;br /&gt;
|audio&lt;br /&gt;
|Способ дообучения слепка &lt;br /&gt;
&amp;lt;small&amp;gt;audio — если указан этот тип, то обновление слепка дозагрузкой аудио делается через объединение старого и загружаемого аудио. Если старого аудио нет, то вектор делается только по новому аудио. В базу сохраняется только новое аудио (если стоит флаг сохранения в базу).&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;average — в базу сохраняется только новое аудио (если стоит флаг). А новый вектор создается из усреднения старого вектора и вектора из нового аудио.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|db_handler&lt;br /&gt;
|&amp;quot;&amp;quot;&lt;br /&gt;
|[https://wiki.connect2ai.net/index.php/SBS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0#%D0%92%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B9_%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80_%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F Внешний драйвер шифрования]&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|logs/&lt;br /&gt;
|Путь к папке логов&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Максимальное количество лог файлов&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер одного лог файла&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.log&lt;br /&gt;
|Файл логов синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.statusFile&lt;br /&gt;
|logs/sync.status&lt;br /&gt;
|Статус задачи синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.nodes&lt;br /&gt;
|[ ]&lt;br /&gt;
|Перечень подчиненных нод для синхронизации изменений заполняется только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|spr.url&lt;br /&gt;
|http://127.0.0.1:6183&lt;br /&gt;
|Путь к [[SPR. Руководство пользователя|сервису распознавания речи]] для получения текста&lt;br /&gt;
|-&lt;br /&gt;
|spr.model&lt;br /&gt;
|common&lt;br /&gt;
|Модель для распознавания текста&lt;br /&gt;
|-&lt;br /&gt;
|spr.conn_timeout&lt;br /&gt;
|10&lt;br /&gt;
|Таймаут на подключение к API SPR&lt;br /&gt;
|-&lt;br /&gt;
|spr.read_timeout&lt;br /&gt;
|30&lt;br /&gt;
|Таймаут на получения ответа от API SPR&lt;br /&gt;
|-&lt;br /&gt;
|reloader.period&lt;br /&gt;
|900&lt;br /&gt;
|Периодичность проверки изменения данных, для полной перезаливки векторной базы в ОЗУ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Внешний драйвер шифрования&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Файловая база данных хранит в составе слепки аудио, на основе которых рассчитываются вектора (если включен параметр saveAudio). В части сценариев аудио требуется шифровать. Для этого предусмотрен внешний драйвер шифрования. Чтобы использовать драйвер шифрования, необходимо создать программу (скрипт) шифрования, поместить его в каталог /opt/sbs/db_handlers/, а затем имя созданного файла прописать в параметр db_handler конфигурационного файла (/opt/sbs/config.json). Пример драйвера шифрования, который перекодирует слепки в файловой системе в base64, распространяется в составе дистрибутива и расположен в папке /opt/sbs/db_handlers/.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Работа в составе кластера&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
Для высоконагруженных систем сервис можно расположить на нескольких нодах (виртуальных машинах). В этом случае, чтобы не потерять документы и изменения, полученные на одной из нод, выделяется один основной сервис и вспомогательные сервисы.&lt;br /&gt;
&lt;br /&gt;
* База файловая, в папке data.&lt;br /&gt;
* lsync настроен через конфиг SBS для репликации базы на все указанные серверы в списке cluster.nodes: [], указываем все слейв-сервера.&lt;br /&gt;
* На всех слейвах список cluster.nodes: [] оставляем пустым.&lt;br /&gt;
* Векторная база на каждом сервере своя, она следит за своей папкой data и обновляет в оперативке по этой папке данные у себя.&lt;br /&gt;
* UPS при изменении данных работает только с мастером SBS, а при запросе данных — со всеми серверами cluster, распределяя нагрузку.&lt;br /&gt;
* В конфигурации UPS: в servers.sbs.cluster.trainer указываем мастер-сервер, в servers.sbs.cluster перечисляем все сервера кластера SBS, в том числе и мастер.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Сбор данных об ошибках&#039;&#039;&#039;=====&lt;br /&gt;
Логи сервиса по умолчанию находятся в файле /opt/sbs/logs/log.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Удаление&#039;&#039;&#039; =====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/sbs/uninstall&amp;lt;/code&amp;gt;. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SBS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3486</id>
		<title>SBS. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SBS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3486"/>
		<updated>2026-01-12T10:46:40Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для получения метаданных из естественной человеческой речи. Входным значением для сервиса являются wav-файлы. В ответ на входящий запрос сервис возвращает данные в формате JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Simple Biometry Server (SBS) – сервис получения метаданных.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Системные требования&#039;&#039;&#039; =====&lt;br /&gt;
Для нормальной работы сервиса необходимо CPU &amp;gt;= 2.20 GHz с поддержкой инструкций AVX2 или новее. Оперативной памяти необходимо не менее 4 Gb. Для работы на нагруженных сервисах рекомендуется использовать GPU NVIDIA с поддержкой CUDA и наличием CUDA ядер.&lt;br /&gt;
&lt;br /&gt;
Быстродействие на &#039;&#039;&#039;CPU&#039;&#039;&#039;: например, поиск спикера, 8 потоков Xeon(R) Gold 6148 CPU @ 2.40 GHz, 8 Гб ОЗУ, запрос поиска в базе спикера по аудио 10 сек, 100 запросов со сдвигом 0.01 с (100 запросов выполнено за 1 с), максимальное время ожидания 14 с. Одиночный запрос ~1 с.&lt;br /&gt;
&lt;br /&gt;
Тот же запрос с &#039;&#039;&#039;GPU&#039;&#039;&#039; А16 (с одним из 4-х ядер), максимальное время ожидания &#039;&#039;&#039;1.6 с&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка/обновление SBS&#039;&#039;&#039; =====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/sbs&amp;amp;fileid=601 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для Вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить сервисный пакет окружения]].&lt;br /&gt;
&lt;br /&gt;
* Установка/обновление SBS осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./sbs-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./sbs-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./sbs-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
* Загрузить последнюю версию продукта  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/sbs/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/sbs&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить SBS &amp;lt;code&amp;gt;/opt/sbs/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/sbs/inupdate -b&amp;lt;/code&amp;gt; –  обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/sbs/inupdate -r&amp;lt;/code&amp;gt; –  обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/sbs/inupdate -n&amp;lt;/code&amp;gt; –  обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/sbs/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/sbs/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; –  это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/sbs/.userapi (это файл авторизации в API, нужен для обновления)&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/sbs/.proxy (это файл конфигурации proxy, необходим для обновления, при отсутствующем прямом подключении к интернету)&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable sbs.service &amp;amp;&amp;amp; sudo systemctl start sbs.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status sbs.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к порту 6185 на нужном интерфейсе по протоколу tcp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Конфигурирование параметров сервиса SBS&#039;&#039;&#039;=====&lt;br /&gt;
Настройка параметров сервиса spr производится в файле /opt/sbs/params.json&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице. &#039;&#039;&#039;Применение любого из параметров требует перезапуска сервиса sbs.&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|device&lt;br /&gt;
|cuda:0&lt;br /&gt;
|Вычислительное устройство (cpu/cuda:N, где N — номер графического ускорителя), в ОЗУ которого осуществляется загрузка моделей.&lt;br /&gt;
|-&lt;br /&gt;
|saveAudio&lt;br /&gt;
|true&lt;br /&gt;
|Ключ хранения аудио отрезков в базе. &lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;Внимание!&#039;&#039;&#039; При смене модели векторизации sbs сбросит все вектора и попытается сформировать новые из сохраненного аудио. Если аудио не будет ( saveAudio=&amp;quot;false&amp;quot;), все слепки будут фактически уничтожены.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|modifyType&lt;br /&gt;
|audio&lt;br /&gt;
|Способ дообучения слепка &lt;br /&gt;
&amp;lt;small&amp;gt;audio — если указан этот тип, то обновление слепка дозагрузкой аудио делается через объединение старого и загружаемого аудио. Если старого аудио нет, то вектор делается только по новому аудио. В базу сохраняется только новое аудио (если стоит флаг сохранения в базу).&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;average — в базу сохраняется только новое аудио (если стоит флаг). А новый вектор создается из усреднения старого вектора и вектора из нового аудио.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|db_handler&lt;br /&gt;
|&amp;quot;&amp;quot;&lt;br /&gt;
|[https://wiki.connect2ai.net/index.php/SBS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0#%D0%92%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B9_%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80_%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F Внешний драйвер шифрования]&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|logs/&lt;br /&gt;
|Путь к папке логов&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Максимальное количество лог файлов&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер одного лог файла&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.log&lt;br /&gt;
|Файл логов синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.statusFile&lt;br /&gt;
|logs/sync.status&lt;br /&gt;
|Статус задачи синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.nodes&lt;br /&gt;
|[ ]&lt;br /&gt;
|Перечень подчиненных нод для синхронизации изменений заполняется только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|spr.url&lt;br /&gt;
|http://127.0.0.1:6183&lt;br /&gt;
|Путь к [[SPR. Руководство пользователя|сервису распознавания речи]] для получения текста&lt;br /&gt;
|-&lt;br /&gt;
|spr.model&lt;br /&gt;
|common&lt;br /&gt;
|Модель для распознавания текста&lt;br /&gt;
|-&lt;br /&gt;
|spr.conn_timeout&lt;br /&gt;
|10&lt;br /&gt;
|Таймаут на подключение к API SPR&lt;br /&gt;
|-&lt;br /&gt;
|spr.read_timeout&lt;br /&gt;
|30&lt;br /&gt;
|Таймаут на получения ответа от API SPR&lt;br /&gt;
|-&lt;br /&gt;
|reloader.period&lt;br /&gt;
|900&lt;br /&gt;
|Периодичность проверки изменения данных, для полной перезаливки векторной базы в ОЗУ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Внешний драйвер шифрования&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Файловая база данных хранит в составе слепки аудио, на основе которых рассчитываются вектора (если включен параметр saveAudio). В части сценариев аудио требуется шифровать. Для этого предусмотрен внешний драйвер шифрования. Чтобы использовать драйвер шифрования, необходимо создать программу (скрипт) шифрования, поместить его в каталог /opt/sbs/db_handlers/, а затем имя созданного файла прописать в параметр db_handler конфигурационного файла (/opt/sbs/config.json). Пример драйвера шифрования, который перекодирует слепки в файловой системе в base64, распространяется в составе дистрибутива и расположен в папке /opt/sbs/db_handlers/.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Работа в составе кластера&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
Для высоконагруженных систем сервис можно расположить на нескольких нодах (виртуальных машинах). В этом случае, чтобы не потерять документы и изменения, полученные на одной из нод, выделяется один основной сервис и вспомогательные сервисы.&lt;br /&gt;
&lt;br /&gt;
* База файловая, в папке data.&lt;br /&gt;
* lsync настроен через конфиг SBS для репликации базы на все указанные серверы в списке cluster.nodes: [], указываем все слейв-сервера.&lt;br /&gt;
* На всех слейвах список cluster.nodes: [] оставляем пустым.&lt;br /&gt;
* Векторная база на каждом сервере своя, она следит за своей папкой data и обновляет в оперативке по этой папке данные у себя.&lt;br /&gt;
* UPS при изменении данных работает только с мастером SBS, а при запросе данных — со всеми серверами cluster, распределяя нагрузку.&lt;br /&gt;
* В конфигурации UPS: в servers.sbs.cluster.trainer указываем мастер-сервер, в servers.sbs.cluster перечисляем все сервера кластера SBS, в том числе и мастер.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Сбор данных об ошибках&#039;&#039;&#039;=====&lt;br /&gt;
Логи сервиса по умолчанию находятся в файле /opt/sbs/logs/log.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Удаление&#039;&#039;&#039; =====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/sbs/uninstall&amp;lt;/code&amp;gt;. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SEE._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3485</id>
		<title>SEE. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SEE._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3485"/>
		<updated>2026-01-12T10:45:15Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис Simple Entity Extractor (SEE) предназначен для выделения смысловых сущностей из текста. Входным значением для сервиса являются данные в текстовом формате. В ответ на входящий запрос сервис возвращает данные в формате JSON. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Simple Entity Extractor (SEE) – сервис выделения сущностей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Системные требования&#039;&#039;&#039; =====&lt;br /&gt;
Для нормальной работы сервиса на каждые 100 одновременных запросов классификации необходимо обеспечить 1 CPU &amp;gt;= 2.20GHz с поддержкой инструкций AVX2 или новее.&lt;br /&gt;
&lt;br /&gt;
Оперативной памяти необходимо не менее 4Gb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка/обновление сервиса&#039;&#039;&#039; =====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/see&amp;amp;fileid=581 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить сервисный пакет окружения]].&lt;br /&gt;
* Установка/обновление SEE осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./see-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./see-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./see-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
* Загрузить последнюю версию продукта  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/see/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/see&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить SEE &amp;lt;code&amp;gt;/opt/see/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/see/inupdate -b&amp;lt;/code&amp;gt;  — обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/see/inupdate -r&amp;lt;/code&amp;gt;  — обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/see/inupdate -n&amp;lt;/code&amp;gt;  — обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/see/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/see/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt;  — это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/see/.userapi (это файл авторизации в API, нужен для обновления)&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/see/.proxy (это файл конфигурации proxy необходим для обновления, при отсутствующем прямом подключении к интернету)&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable see.service &amp;amp;&amp;amp; sudo systemctl start see.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status see.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к порту 6184 на нужном интерфейсе по протоколу tcp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Лицензия&#039;&#039;&#039; =====&lt;br /&gt;
Сервис не функционирует без действующей лицензии. Информация о лицензии хранится в файле:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/opt/see/license.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл лицензии должен соответствовать следующему формату:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;service&amp;quot;: &amp;quot;see&amp;quot;, &amp;quot;expire&amp;quot;: &amp;quot;2045-01-01&amp;quot;, &amp;quot;licenses&amp;quot;: , &amp;quot;key&amp;quot;: &amp;quot;&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для получения лицензии необходимо:&lt;br /&gt;
&lt;br /&gt;
1. Запустить сервис &amp;lt;code&amp;gt;systemctl start see&amp;lt;/code&amp;gt; и извлечь UUID, указанный в файле &amp;lt;code&amp;gt;/opt/see/logs/log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Передать полученный UUID руководителю проекта для оформления лицензии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Предустановленные модели&#039;&#039;&#039; =====&lt;br /&gt;
В состоянии поставки SEE содержит специализированные модели. Предустановленные модели расположены в каталоге /opt/see/pretrained/. Одна из моделей — «fio» для выделения фамилий, имен, отчеств из текста. Для этой модели возможно создать пользовательский словарь на случай, если модель не смогла определить правильно ФИО. Пользовательские словари нужно располагать в папке /opt/see/pretrained/fio/custom (surnames.txt - фамилии, firstname.txt - имена, lastnames.txt - отчества, в именительном падеже). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Конфигурирование параметров сервиса&#039;&#039;&#039; =====&lt;br /&gt;
Настройка параметров сервиса see производится в файле /opt/see/config.json&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|device&lt;br /&gt;
|cuda:0&lt;br /&gt;
|Вычислительное устройство (cpu/cuda:N, где N — номер графического ускорителя), в ОЗУ которого осуществляется загрузка моделей.&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|logs/&lt;br /&gt;
|Директория для хранения логов. Примеры абсолютного пути: &amp;quot;/var/log/see/&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Количество файлов ротации&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер файла в байтах, триггер для ротации.&lt;br /&gt;
|-&lt;br /&gt;
|stricts&lt;br /&gt;
|[  &amp;quot;не&amp;quot;  ]&lt;br /&gt;
|«Строгие частицы» — частицы речи, меняющие смысл фразы. После применения настройки, если сущность содержит такую частицу, то фраза без этой частицы не вызовет положительного срабатывания.&lt;br /&gt;
|-&lt;br /&gt;
|smc.url&lt;br /&gt;
|&amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
|Адрес по которому доступен smc с моделью [https://wiki.connect2ai.net/index.php/SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0#%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BD%D1%8B%D1%85_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B5%D0%B9_SMC коррекции]&lt;br /&gt;
|-&lt;br /&gt;
|smc.conn_timeout&lt;br /&gt;
|2&lt;br /&gt;
|Таймаут подключения к smc&lt;br /&gt;
|-&lt;br /&gt;
|smc.read_timeout&lt;br /&gt;
|30&lt;br /&gt;
|Таймаут ответа от smc&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.log&lt;br /&gt;
|Файл логов синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.statusFile&lt;br /&gt;
|logs/sync.status&lt;br /&gt;
|Статус задачи синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.nodes&lt;br /&gt;
|[]&lt;br /&gt;
|Перечень подчиненных нод для синхронизации изменений заполняется только на главном сервере кластера&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Работа в составе кластера&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
Для высоконагруженных систем сервис можно расположить на нескольких нодах (виртуальных машинах). В этом случае, чтобы не потерять документы и изменения, полученные на одной из нод, выделяется один основной сервис и вспомогательные сервисы.&lt;br /&gt;
&lt;br /&gt;
* База файловая, в папке data.&lt;br /&gt;
* lsync настроен через конфиг SEE для репликации базы на все указанные серверы в списке cluster.nodes: [], указываем все слейв-сервера.&lt;br /&gt;
* На всех слейвах список cluster.nodes: [] оставляем пустым.&lt;br /&gt;
* Векторная база на каждом сервере своя, она следит за своей папкой data и обновляет в оперативке по этой папке данные у себя.&lt;br /&gt;
* UPS при изменении данных работает только с мастером SEE, а при запросе данных — со всеми серверами cluster, распределяя нагрузку.&lt;br /&gt;
* В конфигурации UPS: в servers.see.cluster.trainer указываем мастер-сервер, в servers.see.cluster перечисляем все сервера кластера SEE, в том числе и мастер.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Сбор данных об ошибках&#039;&#039;&#039; =====&lt;br /&gt;
Логи сервиса по умолчанию находятся в файле /opt/see/logs/log.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Удаление&#039;&#039;&#039; =====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/see/uninstall&amp;lt;/code&amp;gt;. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
         &lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3484</id>
		<title>SMC. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3484"/>
		<updated>2026-01-12T10:43:36Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для анализа и классификации текстовой информации. Входным значением для сервиса являются данные в текстовом формате. В ответ на входящий запрос сервис возвращает данные в формате JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Simple Message Classifier (SMC) – сервис анализа и классификации. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Системные требования для SMC&#039;&#039;&#039; =====&lt;br /&gt;
Для работы smc рекомендуется использовать видеокарту NVIDIA, поддерживающую технологию CUDA и имеющую в составе ядра CUDA.&lt;br /&gt;
&lt;br /&gt;
В случае отсутствия видеокарты для нормальной работы сервиса необходимо обеспечить не менее 8 потоков CPU &amp;gt;= 2.20GHz с поддержкой инструкций AVX2 или новее. В конфигурации 8 потоков Intel(R) Xeon(R) Gold 6148 2.40GHz 6Гб ОЗУ фраза из 10 слов классифицируется 0.2с, соответственно за секунду может быть распознано до 5 фраз, отправленных на распознавание последовательно или одновременно. Увеличение количества ядер/потоков дает прирост производительности, но не прямо пропорциональный.&lt;br /&gt;
&lt;br /&gt;
Оперативной памяти необходимо не менее 4Gb.&lt;br /&gt;
&lt;br /&gt;
Для обучения моделей рекомендуется использовать видеокарту. Обучение модели на корпусе размером 7500 строк занимает на ВМ с 16 ядрами, 16Гб ОЗУ и видеокартой А16 (одном из 4-х ее ядер) около 20 минут. Недостаточная мощность CPU может увеличить время обучения за счет подготовки данных.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка/обновление сервиса SMC&#039;&#039;&#039; =====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/smc&amp;amp;fileid=560 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить сервисный пакет окружения]].&lt;br /&gt;
&lt;br /&gt;
* Установка/обновление SMC осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./smc-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./smc-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./smc-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
* Загрузить последнюю версию продукта  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/smc/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/smc&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить SMC&amp;lt;code&amp;gt;/opt/smc/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/smc/inupdate -b&amp;lt;/code&amp;gt; – обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/smc/inupdate -r&amp;lt;/code&amp;gt; – обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/smc/inupdate -n&amp;lt;/code&amp;gt; – обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Установить модели  &amp;lt;code&amp;gt;/opt/smc/inmodel&amp;lt;/code&amp;gt; в интерактивном режиме.&lt;br /&gt;
* Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/smc/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/smc/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; – это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/smc/.userapi (это файл авторизации в API, нужен для обновления и загрузки моделей)&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/smc/.proxy (это файл конфигурации proxy, необходим для обновления и загрузки моделей, при отсутствующем прямом подключении к интернету)&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable smc.service &amp;amp;&amp;amp; sudo systemctl start smc.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status smc.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к порту 6181 на нужном интерфейсе по протоколу tcp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Лицензия&#039;&#039;&#039; =====&lt;br /&gt;
Сервис не функционирует без действующей лицензии. Информация о лицензии хранится в файле:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/opt/smc/license.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл лицензии должен соответствовать следующему формату:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;service&amp;quot;: &amp;quot;smc&amp;quot;, &amp;quot;expire&amp;quot;: &amp;quot;2045-01-01&amp;quot;, &amp;quot;licenses&amp;quot;: , &amp;quot;key&amp;quot;: &amp;quot;&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для получения лицензии необходимо:&lt;br /&gt;
&lt;br /&gt;
1. Запустить сервис &amp;lt;code&amp;gt;systemctl start smc&amp;lt;/code&amp;gt; и извлечь UUID, указанный в файле &amp;lt;code&amp;gt;/opt/smc/logs/log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Передать полученный UUID руководителю проекта для оформления лицензии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка сервисных моделей SMC&#039;&#039;&#039; =====&lt;br /&gt;
Установка сервисных моделей возможна только копированием файла(файлов) модели в каталог с названием модели. Названия моделей предопределены и соответствуют их назначению (compressor,  correction,  embeddings,  emotions,  normalization,  punctuation, toxicity). Установка сервисных моделей невозможна через API, в отличие от моделей классификации.&lt;br /&gt;
&lt;br /&gt;
Модели располагаются в каталоге /opt/smc/pretrained/. Для установки модели необходимо создать каталог /opt/smc/pretrained/&amp;lt;название модели&amp;gt;/ и распаковать в неё архив модели, после чего перезагрузить сервис командой systemctl restart smc.&lt;br /&gt;
&lt;br /&gt;
Проверить корректность работы модели пунктуации можно запросом к API с отправкой текста на распознавание:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -H &amp;quot;accept: application/json&amp;quot; -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/punctuate?text=&amp;lt;/nowiki&amp;gt;&amp;lt;текст&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Список всех моделей представлен в таблице:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&#039;&#039;&#039;Модель&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Описание&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Пример запроса к модели&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Пример ответа от модели&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;embeddings&#039;&#039;&#039;&lt;br /&gt;
|Языковая, отвечает за вычисление векторов при обучении модели. &lt;br /&gt;
|Проверить работу напрямую запросом к API не получится, метод не предусмотрен.&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;compressor&#039;&#039;&#039; &lt;br /&gt;
|Модель сжатия фраз. Убирает из фразы слова, не влияющие на ее смысл.&lt;br /&gt;
|Проверить работу можно через API запросом: &lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/compress?threshold=30&amp;lt;/nowiki&amp;gt;&amp;quot; --data-urlencode &amp;quot;text=как можно было бы получить выплату мне бы&amp;quot;  -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;{ &amp;quot;text&amp;quot;: &amp;quot;получить выплату мне бы&amp;quot; }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;emotions&#039;&#039;&#039; &lt;br /&gt;
|Анализ эмоций.&lt;br /&gt;
|Проверить работу можно через API запросом: &lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/emotion&amp;lt;/nowiki&amp;gt;&amp;quot; --data-urlencode &amp;quot;text=спасибо все хорошо&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;{ &amp;quot;emotion&amp;quot;: &amp;quot;positive&amp;quot;, &amp;quot;score&amp;quot;: 0.9601 }&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;punctuation&#039;&#039;&#039; &lt;br /&gt;
|Пунктуация.&lt;br /&gt;
|Проверить работу можно через API запросом: &lt;br /&gt;
&#039;&#039;&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/punctuate&amp;lt;/nowiki&amp;gt;?&amp;quot; --data-urlencode &amp;quot;text=я пришел как мне получить услугу&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|&amp;lt;code&amp;gt;{ &amp;quot;text&amp;quot;: &amp;quot;Я пришел. Как мне получить услугу?&amp;quot; }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;normalization&#039;&#039;&#039; &lt;br /&gt;
|Обратная нормализация, заменяет числа прописью на цифры. &amp;lt;blockquote&amp;gt;&#039;&#039;Внимание! У модели есть дополнительные требования к модулям Python в файле requirements.txt!&#039;&#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
|Проверить работу можно через API запросом:&lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/normalize&amp;lt;/nowiki&amp;gt;?&amp;quot; --data-urlencode &amp;quot;text=запишите меня к тринадцати&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;{&amp;quot;text&amp;quot;: &amp;quot;запишите меня к 13-ти&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;correction&#039;&#039;&#039; &lt;br /&gt;
|Коррекция правописания. Изменяет неправильно написанные слова, меняя их на наиболее близкие правильные (из знакомых модели). &lt;br /&gt;
|Проверить работу можно через API запросом:&lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/correct&amp;lt;/nowiki&amp;gt;?&amp;quot; --data-urlencode &amp;quot;text=халодная вода&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;{&amp;quot;text&amp;quot;: &amp;quot;холодная вода&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;toxicity&#039;&#039;&#039; &lt;br /&gt;
|Анализ текста на невежливость, угрозы, брань.&lt;br /&gt;
|Проверить работу можно через API запросом:&lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/toxicity&amp;lt;/nowiki&amp;gt;?&amp;quot; --data-urlencode &amp;quot;text=нехороший человек&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt; &lt;br /&gt;
Подробнее см в [[SMC. Руководство пользователя|руководстве пользователя]].&lt;br /&gt;
&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ВНИМАНИЕ!&#039;&#039;&#039; Модели &#039;&#039;&#039;punctuation, embeddings, correction&#039;&#039;&#039; обязательны для установки, остальные  - в зависимости от сценария использования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка моделей классификации&#039;&#039;&#039; =====&lt;br /&gt;
Модель классификации — это модель, обученная на определенном наборе данных (корпусе) и предназначенная непосредственно для классификации. Установка модели возможна запросом с помощью методов API. Методы описаны в [https://wiki.connect2ai.net/index.php/SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F руководстве пользователя]. Также модель может быть установлена копированием содержимого каталога /opt/smc/nnets/&amp;lt;имя модели&amp;gt; с одного сервера smc на другой. Внимание! При этом способе UPS, в конфигурационном файле которого указан новый smc, не увидит скопированную модель.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Конфигурирование параметров сервиса&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
Настройка параметров сервиса smc производится в файле /opt/smc/config.json&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|logs/&lt;br /&gt;
|Директория для хранения логов. Примеры абсолютного пути: &amp;quot;/var/log/smc/&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Количество файлов ротации.&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер файла в байтах, триггер для ротации.&lt;br /&gt;
|-&lt;br /&gt;
|noise.enabled&lt;br /&gt;
|true&lt;br /&gt;
|Детекция мусора при классификации (фраз, которые не относятся ни к одному классу)&lt;br /&gt;
|-&lt;br /&gt;
|noise.threshold&lt;br /&gt;
|0.7&lt;br /&gt;
|Порог отсева&lt;br /&gt;
|-&lt;br /&gt;
|devices.productionModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |Вычислительное устройство (cpu/cuda:N, где N — номер графического ускорителя), в ОЗУ которого осуществляется загрузка моделей. productionModel подразумевает все рабочие модели классификации, которые создаются в системе. Остальные модели — сервисные: embeddingModel — языковая, punctuationModel — пунктуация, emotionsModel — анализ эмоций, compressorModel — модель сжатия фраз, toxicityModel — модель анализа фразы на токсичность. Можно отдельно по названию сервисной модели включать/выключать ее загрузку в GPU. Рабочие модели можно включить в память GPU только все вместе.&lt;br /&gt;
|-&lt;br /&gt;
|devices.normalizationModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.embeddingModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.punctuationModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.emotionsModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.compressorModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.emotionsModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.toxicityModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.correctionModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.log&lt;br /&gt;
|Файл логов синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.statusFile&lt;br /&gt;
|logs/sync.status&lt;br /&gt;
|Статус задачи синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.nodes&lt;br /&gt;
|[]&lt;br /&gt;
|Перечень подчиненных нод для синхронизации изменений заполняется только на главном сервере кластера&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Работа сервиса через реверс-прокси&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предполагает передачу больших объемов данных через HTTP. Рекомендуем соответствующим образом настроить конфигурацию сайта в реверс-прокси. Например, в nginx дополнительные параметры:&lt;br /&gt;
   client_max_body_size 0;&lt;br /&gt;
   proxy_read_timeout 3h;&lt;br /&gt;
   large_client_header_buffers 8 256k;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Работа в составе кластера&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
Для высоконагруженных систем сервис можно расположить на нескольких нодах (виртуальных машинах). В этом случае, чтобы не потерять документы и изменения, полученные на одной из нод, выделяется один основной сервис и вспомогательные сервисы.&lt;br /&gt;
&lt;br /&gt;
* База файловая, в папке data.&lt;br /&gt;
* lsync настроен через конфиг SMC для репликации базы на все указанные серверы в списке cluster.nodes: [], указываем все слейв-сервера.&lt;br /&gt;
* На всех слейвах список cluster.nodes: [] оставляем пустым.&lt;br /&gt;
* Векторная база на каждом сервере своя, она следит за своей папкой data и обновляет в оперативке по этой папке данные у себя.&lt;br /&gt;
* UPS при изменении данных работает только с мастером SMC, а при запросе данных — со всеми серверами cluster, распределяя нагрузку.&lt;br /&gt;
* В конфигурации UPS: в servers.smc.cluster.trainer указываем мастер-сервер, в servers.smc.cluster перечисляем все сервера кластера SMC, в том числе и мастер.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Сбор данных об ошибках&#039;&#039;&#039; =====&lt;br /&gt;
Логи сервиса по умолчанию находятся в файле /opt/smc/logs/log.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Удаление&#039;&#039;&#039; =====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/smc/uninstall&amp;lt;/code&amp;gt;. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Практические рекомендации&#039;&#039;&#039; =====&lt;br /&gt;
Сервис SMC в работе использует большую языковую модель, которая формирует многомерное семантическое пространство. Смысл фразы для ее классификации вычисляется на основании вектора фразы в этом пространстве. Для производительности таких вычислений рекомендуется использовать GPU с 16 Гб видеопамяти. В случае отсутствия видеокарт рекомендуется использовать не менее 3 серверов по 8 ядер и 16 Гб оперативной памяти. При этом желательно в строке запуска gunicorn в файле сервиса добавить параметр &#039;&#039;&#039;«-w 2»&#039;&#039;&#039;. Это приведет к загрузке в память 2-х экземпляров приложения и моделей и позволит при высокой нагрузке полностью загрузить процессорные ядра.&lt;br /&gt;
&lt;br /&gt;
В папке /opt/smc/cache/ находится кэш векторов фраз, которые были созданы моделью векторизации. При работе сервиса при наличии вектора в кэше, он берется из него, а не создается моделью заново. Причем остается в ОЗУ тоже, что значительно увеличивает производительность сервиса, однако при прохождении через сервис большого количества различных фраз может привести к потреблению нескольких гигабайт памяти. Необходимо либо увеличить количество ОЗУ, либо просто перезагружать сервис в нерабочее время. Папку cache при желании можно периодически чистить, но в данном случае кэш будет постепенно заполняться заново с использованием GPU.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SPR._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3483</id>
		<title>SPR. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SPR._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3483"/>
		<updated>2026-01-12T10:41:46Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===== &#039;&#039;&#039;﻿Общее описание сервиса распознавания речи (SPR)&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для преобразования естественной речи в текст. Входными данными для сервиса являются аудиофайлы в формате *.wav, результатом работы выступают данные в текстовом формате.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Термины и определения&#039;&#039;&#039;=====&lt;br /&gt;
Short Phrase Recognizer (SPR) — сервис распознавания речи.&lt;br /&gt;
&lt;br /&gt;
Модель — модель нейронной сети, описывает её архитектуру и конфигурацию, а также используемые алгоритмы обучения.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Расчет нагрузки SPR&#039;&#039;&#039;=====&lt;br /&gt;
Для нормальной работы сервиса требуются CPU с поддержкой инструкций AVX2 или новее.&lt;br /&gt;
&lt;br /&gt;
Сервис требует разных ресурсов в зависимости от сценария использования.&lt;br /&gt;
&lt;br /&gt;
Распознавание для голосовых помощников — рекомендуется модель common и работа на GPU NVIDIA. Возможна работа на CPU. В этом случае приемлемую задержку распознавания для одиночных фраз можно получить на ВМ с 8 потоками, 6 Гб оперативной памяти с резервом по частоте 9600 МГц (соответствует 4 ядрам по 2,4 ГГц). В этом случае 8-секундная речь будет распознана ориентировочно за 0,8 с. 4 таких ВМ обеспечат распознавание голоса абонента в диалогах длительностью 60–80 с с количеством одновременных диалогов до 60.&lt;br /&gt;
&lt;br /&gt;
В случае использования GPU A16 (одной из 4 голов на ВМ 8 потоков, 6 Гб) 8-секундная речь будет распознана примерно за 0,2 с. На такой ВМ можно распознавать до 100 одновременных диалогов. При расчетах и моделировании предполагалось, что за весь диалог длительностью 60–80 с будет распознано до 6 фраз длительностью до 8 с. GPU A16 содержит 1300 ядер CUDA в одной голове. На более мощных GPU возможности возрастают кратно количеству CUDA ядер.&lt;br /&gt;
&lt;br /&gt;
При распознавании для голосовых помощников рекомендуется использовать от 2-х воркеров gunicorn (-w 2 в строке запуска в файле службы) в зависимости от наличия памяти.&lt;br /&gt;
&lt;br /&gt;
Распознавание для диаризации (транскрибации) длительных переговоров — одновременное, используются модели common и big. Распознавание на CPU в этом режиме не поддерживается. Для распознавания рекомендуется минимум ВМ 8 ядер 16 Гб GPU A16. На такой ВМ время распознавания в 2,5 раза меньше длительности аудио. На GPU V100 время распознавания меньше длительности аудио ориентировочно в 5 раз. Пример распознавания одного и того же файла на разных GPU:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Карта&lt;br /&gt;
!Видеопамять&lt;br /&gt;
!Количество ядер CUDA&lt;br /&gt;
!Время распознавания&lt;br /&gt;
(минут)&lt;br /&gt;
!Примечание&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;big&amp;gt;A100&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|80&lt;br /&gt;
|6912&lt;br /&gt;
|12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;big&amp;gt;V100&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|16&lt;br /&gt;
|5120&lt;br /&gt;
|16&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;big&amp;gt;RTX 3060&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|12&lt;br /&gt;
|3584&lt;br /&gt;
|24&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;big&amp;gt;A16&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
|1280&lt;br /&gt;
|33&lt;br /&gt;
|1/4 карты&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Переключение между режимами распознавания — в зависимости от длительности аудио. Аудио короче 30 с распознаются для голосовых помощников. Остальные аудио разбиваются на фразы и выделяются фрагменты речи, принадлежащие разным лицам, то есть формат вывода тоже изменяется.&lt;br /&gt;
&lt;br /&gt;
Требования к загружаемому аудио&lt;br /&gt;
&lt;br /&gt;
Для преобразования фрагментов речи в текст используйте аудио в форматах, поддерживаемых ffmpeg.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Установка/обновление SPR&#039;&#039;&#039;=====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/spr&amp;amp;fileid=519 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить сервисный пакет окружения]].&lt;br /&gt;
&lt;br /&gt;
* Установка/обновление SPR осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./spr-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./spr-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./spr-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
* Загрузить последнюю версию продукта  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/spr/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/spr&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить SPR &amp;lt;code&amp;gt;/opt/spr/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/spr/inupdate -b&amp;lt;/code&amp;gt;  — обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/spr/inupdate -r&amp;lt;/code&amp;gt;  — обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/spr/inupdate -n&amp;lt;/code&amp;gt;  — обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Установить модели  &amp;lt;code&amp;gt;/opt/spr/inmodel&amp;lt;/code&amp;gt; в интерактивном режиме.&lt;br /&gt;
* Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/spr/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/spr/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; — это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/spr/.userapi (это файл авторизации в API, нужен для обновления и загрузки моделей),&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/spr/.proxy (это файл конфигурации proxy, необходим для обновления и загрузки моделей, при отсутствующем прямом подключении к интернету),&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable spr.service &amp;amp;&amp;amp; sudo systemctl start spr.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status spr.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к порту 6183 на нужном интерфейсе по протоколу tcp.     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Лицензия&#039;&#039;&#039; =====&lt;br /&gt;
Сервис не функционирует без действующей лицензии. Информация о лицензии хранится в файле:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/opt/spr/license.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл лицензии должен соответствовать следующему формату:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;service&amp;quot;: &amp;quot;spr&amp;quot;, &amp;quot;expire&amp;quot;: &amp;quot;2045-01-01&amp;quot;, &amp;quot;licenses&amp;quot;: , &amp;quot;key&amp;quot;: &amp;quot;&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для получения лицензии необходимо:&lt;br /&gt;
&lt;br /&gt;
1. Запустить сервис &amp;lt;code&amp;gt;systemctl start spr&amp;lt;/code&amp;gt; и извлечь UUID, указанный в файле &amp;lt;code&amp;gt;/opt/spr/logs/log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Передать полученный UUID руководителю проекта для оформления лицензии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка моделей SPR&#039;&#039;&#039;=====&lt;br /&gt;
Установка моделей возможна прямым копированием файла модели или загрузкой через API сервиса (метод POST /spr/data/{id}). &lt;br /&gt;
&lt;br /&gt;
Модели располагаются в каталоге /opt/spr/nnets/. Для установки модели необходимо создать каталог /opt/spr/nnets/&amp;lt;название модели&amp;gt;/ и скопировать в него содержимое архива модели, после чего перезагрузить сервис командой systemctl restart spr.&lt;br /&gt;
&lt;br /&gt;
Чтобы убедиться, что модели доступны, выполните запрос &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -H &amp;quot;accept: application/json&amp;quot; -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В ответе должно содержаться название новой модели или перечень названий моделей в формате json.&lt;br /&gt;
&lt;br /&gt;
Проверить корректность работы модели можно запросом к API с отправкой файла на распознавание:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -X POST &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/stt/common&amp;lt;/nowiki&amp;gt;&amp;quot; -H &amp;quot;accept: application/json&amp;quot; -H &amp;quot;Content-Type: multipart/form-data&amp;quot; -F &amp;quot;wav=@ФАЙЛ.wav;type=audio/wav&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Некоторые модели работают только на GPU. На данный момент такая модель только одна — «big».&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Внешние модули распознавания&#039;&#039;&#039; =====&lt;br /&gt;
Сервис SPR поддерживает установку произвольных модулей распознавания. Для этого папка external должна содержать директорию с нужным модулем, в которой обязательным является наличие файла handler.py с функцией recognize(data, sr). Сервис передаст в данную функцию аудиоданные в переменную data, в формате pydub.AudioSegment, а также значение sample rate в переменной sr. Готовые внешние модули распознавания доступны по [https://cloud.connect2ai.net/index.php/apps/files/?dir=/spr ссылке].&lt;br /&gt;
&lt;br /&gt;
Проверить корректность работы модели можно запросом к API с отправкой файла на распознавание:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -X POST &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/stt/Имя_Модуля&amp;lt;/nowiki&amp;gt;&amp;quot; -H &amp;quot;accept: application/json&amp;quot; -H &amp;quot;Content-Type: multipart/form-data&amp;quot; -F &amp;quot;wav=@ФАЙЛ.wav;type=audio/wav&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;Со списком методов можно ознакомиться в [[SPR. Руководство пользователя|руководстве пользователя]]. Метод на загрузку модели &amp;lt;code&amp;gt;curl -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/data/Имя_Модуля&amp;lt;/nowiki&amp;gt;&amp;quot; -H  &amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt; не работает с модулями в целях безопасности. Также модули не отображаются в списке моделей по запросу &amp;lt;code&amp;gt;curl -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/&amp;lt;/nowiki&amp;gt;&amp;quot; -H  &amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;. В некоторых модулях конфигурация может быть вынесена в отдельный файл. Например, для модуля yandex это - /opt/spr/external/config.json.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Конфигурирование параметров сервиса SPR&#039;&#039;&#039;=====&lt;br /&gt;
Настройка параметров сервиса spr производится в файле /opt/spr/config.json.&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|device&lt;br /&gt;
|cuda:0&lt;br /&gt;
|Вычислительное устройство (cpu/cuda:N, где N — номер графического ускорителя), в ОЗУ которого осуществляется загрузка моделей.&lt;br /&gt;
|-&lt;br /&gt;
|max_gpu_memory&lt;br /&gt;
|0.99&lt;br /&gt;
|Лимит использования ОЗУ видеокарты.&lt;br /&gt;
|-&lt;br /&gt;
|punctuation&lt;br /&gt;
|false&lt;br /&gt;
|Расстановка знаков препинания через [[SMC. Руководство пользователя|сервис SMC]].&lt;br /&gt;
|-&lt;br /&gt;
|normalization&lt;br /&gt;
|false&lt;br /&gt;
|Обратная нормализация текста через [[SMC. Руководство пользователя|сервис SMC]].&lt;br /&gt;
|-&lt;br /&gt;
|toxicity&lt;br /&gt;
|false&lt;br /&gt;
|Анализ текста на токсичность через [[SMC. Руководство пользователя|сервис SMC]].&lt;br /&gt;
|-&lt;br /&gt;
|emotions&lt;br /&gt;
|false&lt;br /&gt;
|Анализ текста на эмоции через [[SMC. Руководство пользователя|сервис SMC]].&lt;br /&gt;
|-&lt;br /&gt;
|voice_analyzer&lt;br /&gt;
|false&lt;br /&gt;
|Анализ голоса спикера на эмоции, возраст, пол через [[SBS. Руководство пользователя.|сервис SBS]].&lt;br /&gt;
|-&lt;br /&gt;
|save_audio_requests&lt;br /&gt;
|false&lt;br /&gt;
|Записывать аудио получаемые для распознавания в синхронном режиме. Будут сохраняться в /tmp/spr/. Только для диагностики. Не применять в нагруженных серверах.&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|logs/&lt;br /&gt;
|Путь к папке логов.&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Количество старых сохраняемых логов.&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер текущего лог-файла в байтах.&lt;br /&gt;
|-&lt;br /&gt;
|cache.lifetime&lt;br /&gt;
|604800&lt;br /&gt;
|Время жизни кэша результатов отложенного распознавания.&lt;br /&gt;
|-&lt;br /&gt;
| sbs.url&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;http://127.0.0.1:6185&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Путь к [[SBS. Руководство пользователя|сервису биометрии]] для получения метаданных голосового фрагмента.&lt;br /&gt;
|-&lt;br /&gt;
|sbs.conn_timeout&lt;br /&gt;
|2&lt;br /&gt;
|Таймаут на подключение к API SBS.&lt;br /&gt;
|-&lt;br /&gt;
|sbs.read_timeout&lt;br /&gt;
|30&lt;br /&gt;
|Таймаут на получение ответа от API SBS.&lt;br /&gt;
|-&lt;br /&gt;
|smc.url&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Путь к [[SMC. Руководство пользователя|сервису классификации]] для дополнительной работы с распознанным текстом.&lt;br /&gt;
|-&lt;br /&gt;
|smc.conn_timeout&lt;br /&gt;
|2&lt;br /&gt;
|Таймаут на подключение к API SMC.&lt;br /&gt;
|-&lt;br /&gt;
|smc.read_timeout&lt;br /&gt;
|30&lt;br /&gt;
|Таймаут на получение ответа от API SMC.&lt;br /&gt;
|-&lt;br /&gt;
|see.url&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;http://127.0.0.1:6184&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Путь к [[SEE. Руководство пользователя|сервису поиска сущностей]] для дополнительной работы с распознанным текстом.&lt;br /&gt;
|-&lt;br /&gt;
|see.conn_timeout&lt;br /&gt;
|2&lt;br /&gt;
|Таймаут на подключение к API SEE.&lt;br /&gt;
|-&lt;br /&gt;
|see.read_timeout&lt;br /&gt;
|30&lt;br /&gt;
|Таймаут на получение ответа от API SEE.&lt;br /&gt;
|-&lt;br /&gt;
|vad.default&lt;br /&gt;
|webrtc&lt;br /&gt;
|Тип VAD по умолчанию для разбивки аудиофайлов. Возможные значения — пока только webrtc.&lt;br /&gt;
|-&lt;br /&gt;
|vad.maxSilence&lt;br /&gt;
|2000&lt;br /&gt;
|Длительность паузы в речи в миллисекундах для разбивки длинных аудиофайлов на фрагменты.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.similarityThreshold&lt;br /&gt;
|0.7&lt;br /&gt;
|Порог различия для разделения говорящих.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.maxSpeechLength&lt;br /&gt;
|10000&lt;br /&gt;
|Максимальная длительность фрагмента для сравнения говорящих в миллисекундах.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.wordMinLimit&lt;br /&gt;
|5&lt;br /&gt;
|Минимальный размер фразы при определении говорящих.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.timeMinLimit&lt;br /&gt;
|3000&lt;br /&gt;
|Минимальная длительность аудио, чтобы оно могло быть использовано для добавления нового говорящего.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.batch&lt;br /&gt;
|4&lt;br /&gt;
|Количество одновременного анализируемых аудиофрагментов при разделении говорящих.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.concatEqual&lt;br /&gt;
|true&lt;br /&gt;
|Позволяет склеивать последовательные фразы одного и того же говорящего.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.defaultModel&lt;br /&gt;
|call&lt;br /&gt;
|Модель определения говорящего.&lt;br /&gt;
|-&lt;br /&gt;
|blacklist&lt;br /&gt;
|[]&lt;br /&gt;
|Список моделей распознавания в папках nnets и external, которые не должны быть загружены при старте сервиса SPR.&lt;br /&gt;
|-&lt;br /&gt;
|corrections&lt;br /&gt;
|{ &amp;quot;big&amp;quot;: &amp;quot;common&amp;quot;  }&lt;br /&gt;
|Добавление модели коррекции для стенографирования.&lt;br /&gt;
|-&lt;br /&gt;
|garbage&lt;br /&gt;
|[ &amp;quot;—&amp;quot;, &amp;quot;[*]&amp;quot; ]&lt;br /&gt;
|Массив фраз, которые считаются мусорными и откидываются из распознанного текста.&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.log&lt;br /&gt;
|Файл логов синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.statusFile&lt;br /&gt;
|logs/sync.status&lt;br /&gt;
|Статус задачи синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.nodes&lt;br /&gt;
|[]&lt;br /&gt;
|Перечень подчиненных нод для синхронизации изменений заполняется только на главном сервере кластера&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Работа в составе кластера&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
Для высоконагруженных систем сервис можно расположить на нескольких нодах (виртуальных машинах). В этом случае, чтобы не потерять документы и изменения, полученные на одной из нод, выделяется один основной сервис и вспомогательные сервисы.&lt;br /&gt;
&lt;br /&gt;
* База файловая, в папке data.&lt;br /&gt;
* lsync настроен через конфиг SPR для репликации базы на все указанные серверы в списке cluster.nodes: [], указываем все слейв-сервера.&lt;br /&gt;
* На всех слейвах список cluster.nodes: [] оставляем пустым.&lt;br /&gt;
* Векторная база на каждом сервере своя, она следит за своей папкой data и обновляет в оперативке по этой папке данные у себя.&lt;br /&gt;
* UPS при изменении данных работает только с мастером SPR, а при запросе данных — со всеми серверами cluster, распределяя нагрузку.&lt;br /&gt;
* В конфигурации UPS: в servers.spr.cluster.trainer указываем мастер-сервер, в servers.spr.cluster перечисляем все сервера кластера SPR, в том числе и мастер.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Сбор данных об ошибках&#039;&#039;&#039;=====&lt;br /&gt;
Логи сервиса по умолчанию находятся в файле /opt/spr/logs/log.txt&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Удаление&#039;&#039;&#039;=====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/spr/uninstall&amp;lt;/code&amp;gt;. Команда удалит сервис и  рабочий каталог, включая все установленные модели.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Практические рекомендации&#039;&#039;&#039;=====&lt;br /&gt;
Сервис spr на системах с видеокартой на большой нагрузке может не полностью использовать ресурсы GPU, при этом могут быть задержки в распознавании. Для более полного использования ресурсов рекомендуется в строке запуска gunicorn в файле сервиса добавить параметр «&#039;&#039;&#039;-w 2&#039;&#039;&#039;». Это приведет к загрузке в видеопамять 2-х экземпляров приложения и моделей. Таким образом приложение сможет более эффективно использовать ресурсы GPU, но при этом возрастет потребность в памяти GPU.&lt;br /&gt;
&lt;br /&gt;
В случае если в системе обработки речи используется несколько несимметричных по ресурсам серверов spr, регулировать нагрузку на них можно указывая адрес сервера, в котором больше ресурсов, большее количество раз в разделе «spr.cluster» конфигурационного файла ups.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SPR._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3482</id>
		<title>SPR. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SPR._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3482"/>
		<updated>2026-01-12T10:40:39Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===== &#039;&#039;&#039;﻿Общее описание сервиса распознавания речи (SPR)&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для преобразования естественной речи в текст. Входными данными для сервиса являются аудиофайлы в формате *.wav, результатом работы выступают данные в текстовом формате.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Термины и определения&#039;&#039;&#039;=====&lt;br /&gt;
Short Phrase Recognizer (SPR) — сервис распознавания речи.&lt;br /&gt;
&lt;br /&gt;
Модель — модель нейронной сети, описывает её архитектуру и конфигурацию, а также используемые алгоритмы обучения.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Расчет нагрузки SPR&#039;&#039;&#039;=====&lt;br /&gt;
Для нормальной работы сервиса требуются CPU с поддержкой инструкций AVX2 или новее.&lt;br /&gt;
&lt;br /&gt;
Сервис требует разных ресурсов в зависимости от сценария использования.&lt;br /&gt;
&lt;br /&gt;
Распознавание для голосовых помощников — рекомендуется модель common и работа на GPU NVIDIA. Возможна работа на CPU. В этом случае приемлемую задержку распознавания для одиночных фраз можно получить на ВМ с 8 потоками, 6 Гб оперативной памяти с резервом по частоте 9600 МГц (соответствует 4 ядрам по 2,4 ГГц). В этом случае 8-секундная речь будет распознана ориентировочно за 0,8 с. 4 таких ВМ обеспечат распознавание голоса абонента в диалогах длительностью 60–80 с с количеством одновременных диалогов до 60.&lt;br /&gt;
&lt;br /&gt;
В случае использования GPU A16 (одной из 4 голов на ВМ 8 потоков, 6 Гб) 8-секундная речь будет распознана примерно за 0,2 с. На такой ВМ можно распознавать до 100 одновременных диалогов. При расчетах и моделировании предполагалось, что за весь диалог длительностью 60–80 с будет распознано до 6 фраз длительностью до 8 с. GPU A16 содержит 1300 ядер CUDA в одной голове. На более мощных GPU возможности возрастают кратно количеству CUDA ядер.&lt;br /&gt;
&lt;br /&gt;
При распознавании для голосовых помощников рекомендуется использовать от 2-х воркеров gunicorn (-w 2 в строке запуска в файле службы) в зависимости от наличия памяти.&lt;br /&gt;
&lt;br /&gt;
Распознавание для диаризации (транскрибации) длительных переговоров — одновременное, используются модели common и big. Распознавание на CPU в этом режиме не поддерживается. Для распознавания рекомендуется минимум ВМ 8 ядер 16 Гб GPU A16. На такой ВМ время распознавания в 2,5 раза меньше длительности аудио. На GPU V100 время распознавания меньше длительности аудио ориентировочно в 5 раз. Пример распознавания одного и того же файла на разных GPU:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Карта&lt;br /&gt;
!Видеопамять&lt;br /&gt;
!Количество ядер CUDA&lt;br /&gt;
!Время распознавания&lt;br /&gt;
(минут)&lt;br /&gt;
!Примечание&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;big&amp;gt;A100&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|80&lt;br /&gt;
|6912&lt;br /&gt;
|12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;big&amp;gt;V100&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|16&lt;br /&gt;
|5120&lt;br /&gt;
|16&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;big&amp;gt;RTX 3060&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|12&lt;br /&gt;
|3584&lt;br /&gt;
|24&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;big&amp;gt;A16&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
|1280&lt;br /&gt;
|33&lt;br /&gt;
|1/4 карты&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Переключение между режимами распознавания — в зависимости от длительности аудио. Аудио короче 30 с распознаются для голосовых помощников. Остальные аудио разбиваются на фразы и выделяются фрагменты речи, принадлежащие разным лицам, то есть формат вывода тоже изменяется.&lt;br /&gt;
&lt;br /&gt;
Требования к загружаемому аудио&lt;br /&gt;
&lt;br /&gt;
Для преобразования фрагментов речи в текст используйте аудио в форматах, поддерживаемых ffmpeg.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Установка/обновление SPR&#039;&#039;&#039;=====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/spr&amp;amp;fileid=519 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить сервисный пакет окружения]].&lt;br /&gt;
&lt;br /&gt;
* Установка/обновление SPR осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./spr-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./spr-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./spr-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
* Загрузить последнюю версию продукта  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/spr/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/spr&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить SPR &amp;lt;code&amp;gt;/opt/spr/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/spr/inupdate -b&amp;lt;/code&amp;gt;  — обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/spr/inupdate -r&amp;lt;/code&amp;gt;  — обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/spr/inupdate -n&amp;lt;/code&amp;gt;  — обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Установить модели  &amp;lt;code&amp;gt;/opt/spr/inmodel&amp;lt;/code&amp;gt; в интерактивном режиме.&lt;br /&gt;
* Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/spr/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/spr/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; — это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/spr/.userapi (это файл авторизации в API, нужен для обновления и загрузки моделей),&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/spr/.proxy (это файл конфигурации proxy, необходим для обновления и загрузки моделей, при отсутствующем прямом подключении к интернету),&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable spr.service &amp;amp;&amp;amp; sudo systemctl start spr.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status spr.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к порту 6183 на нужном интерфейсе по протоколу tcp.     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Лицензия&#039;&#039;&#039; =====&lt;br /&gt;
Сервис не функционирует без действующей лицензии. Информация о лицензии хранится в файле:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/opt/spr/license.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл лицензии должен соответствовать следующему формату:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;service&amp;quot;: &amp;quot;spr&amp;quot;, &amp;quot;expire&amp;quot;: &amp;quot;2045-01-01&amp;quot;, &amp;quot;licenses&amp;quot;: , &amp;quot;key&amp;quot;: &amp;quot;&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для получения лицензии необходимо:&lt;br /&gt;
&lt;br /&gt;
1. Запустить сервис &amp;lt;code&amp;gt;systemctl start spr&amp;lt;/code&amp;gt; и извлечь UUID, указанный в файле &amp;lt;code&amp;gt;/opt/spr/logs/log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Передать полученный UUID руководителю проекта для оформления лицензии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка моделей SPR&#039;&#039;&#039;=====&lt;br /&gt;
Установка моделей возможна прямым копированием файла модели или загрузкой через API сервиса (метод POST /spr/data/{id}). &lt;br /&gt;
&lt;br /&gt;
Модели располагаются в каталоге /opt/spr/nnets/. Для установки модели необходимо создать каталог /opt/spr/nnets/&amp;lt;название модели&amp;gt;/ и скопировать в него содержимое архива модели, после чего перезагрузить сервис командой systemctl restart spr.&lt;br /&gt;
&lt;br /&gt;
Чтобы убедиться, что модели доступны, выполните запрос &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -H &amp;quot;accept: application/json&amp;quot; -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В ответе должно содержаться название новой модели или перечень названий моделей в формате json.&lt;br /&gt;
&lt;br /&gt;
Проверить корректность работы модели можно запросом к API с отправкой файла на распознавание:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -X POST &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/stt/common&amp;lt;/nowiki&amp;gt;&amp;quot; -H &amp;quot;accept: application/json&amp;quot; -H &amp;quot;Content-Type: multipart/form-data&amp;quot; -F &amp;quot;wav=@ФАЙЛ.wav;type=audio/wav&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Некоторые модели работают только на GPU. На данный момент такая модель только одна — «big».&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Внешние модули распознавания&#039;&#039;&#039; =====&lt;br /&gt;
Сервис SPR поддерживает установку произвольных модулей распознавания. Для этого папка external должна содержать директорию с нужным модулем, в которой обязательным является наличие файла handler.py с функцией recognize(data, sr). Сервис передаст в данную функцию аудиоданные в переменную data, в формате pydub.AudioSegment, а также значение sample rate в переменной sr. Готовые внешние модули распознавания доступны по [https://cloud.connect2ai.net/index.php/apps/files/?dir=/spr ссылке].&lt;br /&gt;
&lt;br /&gt;
Проверить корректность работы модели можно запросом к API с отправкой файла на распознавание:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -X POST &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/stt/Имя_Модуля&amp;lt;/nowiki&amp;gt;&amp;quot; -H &amp;quot;accept: application/json&amp;quot; -H &amp;quot;Content-Type: multipart/form-data&amp;quot; -F &amp;quot;wav=@ФАЙЛ.wav;type=audio/wav&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;Со списком методов можно ознакомиться в [[SPR. Руководство пользователя|руководстве пользователя]]. Метод на загрузку модели &amp;lt;code&amp;gt;curl -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/data/Имя_Модуля&amp;lt;/nowiki&amp;gt;&amp;quot; -H  &amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt; не работает с модулями в целях безопасности. Также модули не отображаются в списке моделей по запросу &amp;lt;code&amp;gt;curl -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/&amp;lt;/nowiki&amp;gt;&amp;quot; -H  &amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;. В некоторых модулях конфигурация может быть вынесена в отдельный файл. Например, для модуля yandex это - /opt/spr/external/config.json.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Конфигурирование параметров сервиса SPR&#039;&#039;&#039;=====&lt;br /&gt;
Настройка параметров сервиса spr производится в файле /opt/spr/config.json.&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|device&lt;br /&gt;
|cuda:0&lt;br /&gt;
|Вычислительное устройство (cpu/cuda:N, где N — номер графического ускорителя), в ОЗУ которого осуществляется загрузка моделей.&lt;br /&gt;
|-&lt;br /&gt;
|max_gpu_memory&lt;br /&gt;
|0.99&lt;br /&gt;
|Лимит использования ОЗУ видеокарты.&lt;br /&gt;
|-&lt;br /&gt;
|punctuation&lt;br /&gt;
|false&lt;br /&gt;
|Расстановка знаков препинания через [[SMC. Руководство пользователя|сервис SMC]].&lt;br /&gt;
|-&lt;br /&gt;
|normalization&lt;br /&gt;
|false&lt;br /&gt;
|Обратная нормализация текста через [[SMC. Руководство пользователя|сервис SMC]].&lt;br /&gt;
|-&lt;br /&gt;
|toxicity&lt;br /&gt;
|false&lt;br /&gt;
|Анализ текста на токсичность через [[SMC. Руководство пользователя|сервис SMC]].&lt;br /&gt;
|-&lt;br /&gt;
|emotions&lt;br /&gt;
|false&lt;br /&gt;
|Анализ текста на эмоции через [[SMC. Руководство пользователя|сервис SMC]].&lt;br /&gt;
|-&lt;br /&gt;
|voice_analyzer&lt;br /&gt;
|false&lt;br /&gt;
|Анализ голоса спикера на эмоции, возраст, пол через [[SBS. Руководство пользователя.|сервис SBS]].&lt;br /&gt;
|-&lt;br /&gt;
|save_audio_requests&lt;br /&gt;
|false&lt;br /&gt;
|Записывать аудио получаемые для распознавания в синхронном режиме. Будут сохраняться в /tmp/spr/. Только для диагностики. Не применять в нагруженных серверах.&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|logs/&lt;br /&gt;
|Путь к папке логов.&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Количество старых сохраняемых логов.&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер текущего лог-файла в байтах.&lt;br /&gt;
|-&lt;br /&gt;
|cache.lifetime&lt;br /&gt;
|604800&lt;br /&gt;
|Время жизни кэша результатов отложенного распознавания.&lt;br /&gt;
|-&lt;br /&gt;
| sbs.url&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;http://127.0.0.1:6185&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Путь к [[SBS. Руководство пользователя|сервису биометрии]] для получения метаданных голосового фрагмента.&lt;br /&gt;
|-&lt;br /&gt;
|sbs.conn_timeout&lt;br /&gt;
|2&lt;br /&gt;
|Таймаут на подключение к API SBS.&lt;br /&gt;
|-&lt;br /&gt;
|sbs.read_timeout&lt;br /&gt;
|30&lt;br /&gt;
|Таймаут на получение ответа от API SBS.&lt;br /&gt;
|-&lt;br /&gt;
|smc.url&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Путь к [[SMC. Руководство пользователя|сервису классификации]] для дополнительной работы с распознанным текстом.&lt;br /&gt;
|-&lt;br /&gt;
|smc.conn_timeout&lt;br /&gt;
|2&lt;br /&gt;
|Таймаут на подключение к API SMC.&lt;br /&gt;
|-&lt;br /&gt;
|smc.read_timeout&lt;br /&gt;
|30&lt;br /&gt;
|Таймаут на получение ответа от API SMC.&lt;br /&gt;
|-&lt;br /&gt;
|see.url&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;http://127.0.0.1:6184&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Путь к [[SEE. Руководство пользователя|сервису поиска сущностей]] для дополнительной работы с распознанным текстом.&lt;br /&gt;
|-&lt;br /&gt;
|see.conn_timeout&lt;br /&gt;
|2&lt;br /&gt;
|Таймаут на подключение к API SEE.&lt;br /&gt;
|-&lt;br /&gt;
|see.read_timeout&lt;br /&gt;
|30&lt;br /&gt;
|Таймаут на получение ответа от API SEE.&lt;br /&gt;
|-&lt;br /&gt;
|vad.default&lt;br /&gt;
|webrtc&lt;br /&gt;
|Тип VAD по умолчанию для разбивки аудиофайлов. Возможные значения — пока только webrtc.&lt;br /&gt;
|-&lt;br /&gt;
|vad.maxSilence&lt;br /&gt;
|2000&lt;br /&gt;
|Длительность паузы в речи в миллисекундах для разбивки длинных аудиофайлов на фрагменты.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.similarityThreshold&lt;br /&gt;
|0.7&lt;br /&gt;
|Порог различия для разделения говорящих.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.maxSpeechLength&lt;br /&gt;
|10000&lt;br /&gt;
|Максимальная длительность фрагмента для сравнения говорящих в миллисекундах.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.wordMinLimit&lt;br /&gt;
|5&lt;br /&gt;
|Минимальный размер фразы при определении говорящих.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.timeMinLimit&lt;br /&gt;
|3000&lt;br /&gt;
|Минимальная длительность аудио, чтобы оно могло быть использовано для добавления нового говорящего.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.batch&lt;br /&gt;
|4&lt;br /&gt;
|Количество одновременного анализируемых аудиофрагментов при разделении говорящих.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.concatEqual&lt;br /&gt;
|true&lt;br /&gt;
|Позволяет склеивать последовательные фразы одного и того же говорящего.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.defaultModel&lt;br /&gt;
|call&lt;br /&gt;
|Модель определения говорящего.&lt;br /&gt;
|-&lt;br /&gt;
|blacklist&lt;br /&gt;
|[]&lt;br /&gt;
|Список моделей распознавания в папках nnets и external, которые не должны быть загружены при старте сервиса SPR.&lt;br /&gt;
|-&lt;br /&gt;
|corrections&lt;br /&gt;
|{ &amp;quot;big&amp;quot;: &amp;quot;common&amp;quot;  }&lt;br /&gt;
|Добавление модели коррекции для стенографирования.&lt;br /&gt;
|-&lt;br /&gt;
|garbage&lt;br /&gt;
|[ &amp;quot;—&amp;quot;, &amp;quot;[*]&amp;quot; ]&lt;br /&gt;
|Массив фраз, которые считаются мусорными и откидываются из распознанного текста.&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.log&lt;br /&gt;
|Файл логов синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.statusFile&lt;br /&gt;
|logs/sync.status&lt;br /&gt;
|Статус задачи синхронизации есть только на главном сервере кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.nodes&lt;br /&gt;
|[]&lt;br /&gt;
|Перечень подчиненных нод для синхронизации изменений заполняется только на главном сервере кластера&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Сбор данных об ошибках&#039;&#039;&#039;=====&lt;br /&gt;
Логи сервиса по умолчанию находятся в файле /opt/spr/logs/log.txt&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Удаление&#039;&#039;&#039;=====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/spr/uninstall&amp;lt;/code&amp;gt;. Команда удалит сервис и  рабочий каталог, включая все установленные модели.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Практические рекомендации&#039;&#039;&#039;=====&lt;br /&gt;
Сервис spr на системах с видеокартой на большой нагрузке может не полностью использовать ресурсы GPU, при этом могут быть задержки в распознавании. Для более полного использования ресурсов рекомендуется в строке запуска gunicorn в файле сервиса добавить параметр «&#039;&#039;&#039;-w 2&#039;&#039;&#039;». Это приведет к загрузке в видеопамять 2-х экземпляров приложения и моделей. Таким образом приложение сможет более эффективно использовать ресурсы GPU, но при этом возрастет потребность в памяти GPU.&lt;br /&gt;
&lt;br /&gt;
В случае если в системе обработки речи используется несколько несимметричных по ресурсам серверов spr, регулировать нагрузку на них можно указывая адрес сервера, в котором больше ресурсов, большее количество раз в разделе «spr.cluster» конфигурационного файла ups.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=UPS._%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_API&amp;diff=3481</id>
		<title>UPS. Описание API</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=UPS._%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_API&amp;diff=3481"/>
		<updated>2026-01-12T10:31:20Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Описание часто используемых параметров&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!Тип&lt;br /&gt;
!Описание&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;servicetype&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Тип сервиса. Возможные значения: spr, smc, see, sbs, tts.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;servertype&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Тип группы серверов. Возможные значения: trainer (серверы обучения), cluster (рабочие серверы).&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;model&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Название модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;modeltype&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Тип модели. Возможные значения: &#039;&#039;&#039;future&#039;&#039;&#039; — планируемая/черновик, &#039;&#039;&#039;current&#039;&#039;&#039; — текущая/рабочая, &#039;&#039;&#039;previous&#039;&#039;&#039; — архивная.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;error&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;ответ&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Флаг ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;message&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;ответ&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Информационное сообщение.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;&amp;quot;/external modules&amp;quot; методы внешних модулей&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
В этом разделе будут методы соответствующим образом оформленных [[UPS. Руководство администратора#Установка модулей для UPS|внешних модулей]]&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/auth: методы  авторизации&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/access&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение токенов доступа. &amp;lt;small&amp;gt;Токен доступа определяет, какие из методов будут доступны конкретному пользователю. Формируется на основании роли. Дополнительный входной параметр во всех методах, кроме перечисленных в разделе «nopassword» конфигурационного файла. Время действия токена определяется параметром auth.accessLifeTime конфигурационного файла.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;username&#039;&#039;&#039; — логин&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;password&#039;&#039;&#039; — пароль&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-access-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-refresh-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/dataset/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление dataset (набора данных). &amp;lt;small&amp;gt;Dataset (набор данных) используется для ограничения доступа к данным. В ответе метод вернет id созданного набора данных.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;data — json строка вида: {    &amp;quot;name&amp;quot;: &amp;quot;название нового набора&amp;quot;     }&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset_id&amp;quot;: &amp;quot;XXXXXXXXXXXXX&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/auth/dataset/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление dataset (набора данных). &lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора данных&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/dataset/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Переименование dataset (набора данных). &amp;lt;small&amp;gt;Метод меняет все параметры набора данных, но на данный момент времени у набора данных, кроме id, только один параметр — наименование.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора данных&amp;lt;/small&amp;gt; &lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — JSON c новыми параметрами&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/datasets&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка наборов данных.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;XXX&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;По умолчанию&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/refresh&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Обновление токенов доступа. &amp;lt;small&amp;gt;Время, в течение которого можно обновить доступ, регулируется параметром auth.refreshLifeTime конфигурационного файла. Служебный метод, используется в основном в веб-интерфейсе, чтобы не запрашивать лишний раз пароль.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;x-refresh-token&#039;&#039;&#039; — токен обновления доступа&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-access-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-refresh-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/rights&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка прав доступа. &amp;lt;small&amp;gt;Служебный метод — по токену получает название роли и все права доступа этой роли, а также общедоступные методы.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;&amp;lt;&amp;lt;{  &amp;quot;РОЛЬ&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;GET:/......&amp;quot;  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;nopassword&amp;quot;: [    &amp;quot;GET:/.......&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;...............&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;&amp;lt;&amp;lt;...............&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;POST:/.......&amp;quot;  ]  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/role/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание роли. &amp;lt;small&amp;gt;Служебный метод — используется веб-интерфейсом при создании роли.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — JSON с параметрами роли:{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;проверка создания&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;rights&amp;quot;: [    &amp;quot;набор прав через запятую&amp;quot; ]&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;, &amp;quot;role_id&amp;quot;: &amp;quot;a7e68bb83169f864c2fc868401b5250c&amp;quot;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/auth/role/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление роли.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; роли&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/role/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение роли. &amp;lt;small&amp;gt;Параметры как при создании роли. Роль будет переписана.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; роли&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — JSON с параметрами роли:{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;проверка создания&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;rights&amp;quot;: [    &amp;quot;набор прав через запятую&amp;quot; ]&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/roles&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка ролей.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;имя роли&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;rights&amp;quot;: [ &amp;quot;набор прав через запятую&amp;quot; ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;},............]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/user/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание нового пользователя. &amp;lt;small&amp;gt;Метод вернет или id нового пользователя или описание ошибки&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — json строка {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;login_name&amp;quot;, &amp;quot;fullname&amp;quot;: &amp;quot;Отображаемое Имя&amp;quot;,&amp;quot;password&amp;quot;: &amp;quot;XXXXX&amp;quot;,&amp;quot;role&amp;quot;: &amp;quot;role_id&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;default dataset id&amp;quot;, &amp;quot;datasets&amp;quot;: [ &amp;quot;dataset id&amp;quot;, ................. ] }&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;user_id&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXX&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/auth/user/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление пользователя&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - идентификатор пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/user/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение параметров пользователя&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; — идентификатор пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;loginname&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;fullname&amp;quot;: &amp;quot;Full Name&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;role&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;datasets&amp;quot;: [ &amp;quot;0&amp;quot;, &amp;quot;2dc34d3454243522e5407d3a170815a2&amp;quot; ] }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/user/info&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение параметров пользователя по его токену доступа. &amp;lt;small&amp;gt;Служебный метод - для предоставления прав текущему пользователю по его токену&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;x-access-token&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;loginname&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;fullname&amp;quot;: &amp;quot;Full Name&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;role&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;datasets&amp;quot;: [  &amp;quot;0&amp;quot;,  &amp;quot;2dc34d3454243522e5407d3a170815a2&amp;quot;]  },  &amp;quot;rights&amp;quot;: [..........] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/user/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка пользователей с их параметрами. &amp;lt;small&amp;gt;Тоже самое что и в методе GET /auth/user/info, только для всех пользователей&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |[&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;loginname&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;fullname&amp;quot;: &amp;quot;Full Name&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;role&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;datasets&amp;quot;: [  &amp;quot;0&amp;quot;,  &amp;quot;2dc34d3454243522e5407d3a170815a2&amp;quot;]  },  &amp;quot;rights&amp;quot;: [..........] },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
......&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/user/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение параметров пользователя&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — параметры пользователя как при создании&amp;lt;/small&amp;gt; &lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/user/password&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Смена пароля пользователя по его токену доступа.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;password&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |{ &amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;} &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/userlog&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение действий пользователя за период времени по его токену&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;from&#039;&#039;&#039; — начало периода в формате &amp;quot;%Y-%m-%d %H:%M&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;to&#039;&#039;&#039; — конец периода в формате &amp;quot;%Y-%m-%d %H:%M&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;время&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;метод&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      {измененные данные в формате метода}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;время&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;метод&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      {измененные данные в формате метода}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    .........&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/version&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение версии сервиса ups&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;version&amp;quot;: &amp;quot;4.082 release&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/lang: методы мультиязычности&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/lang/&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выводит информацию о переводе элементов интерфейса на текущий язык&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;see&amp;quot;:&amp;quot;Сущности&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;smc&amp;quot;:&amp;quot;Классификатор&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;... }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/lang/wallpaper&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отдает случайный фон рабочего стола в виде jpeg из каталога «wallpapers» на сервере ups&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;image/jpeg&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/server: получение информации о серверах&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |GET/server/get/addresses/{servicetype}&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Вывод информации о серверах, обслуживающих данный сервис, а также настроенных параметров обращения к данным серверам. &lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainer&#039;&#039;&#039; — сервер обучения, &#039;&#039;&#039;cluster&#039;&#039;&#039; — рабочие серверы, &#039;&#039;&#039;connect&#039;&#039;&#039; — время на подключение, &#039;&#039;&#039;read&#039;&#039;&#039; — время на ответ,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;failed&#039;&#039;&#039; — время пребывания в сбойных, &#039;&#039;&#039;install&#039;&#039;&#039; — время на установку модели, &#039;&#039;&#039;info&#039;&#039;&#039; — время на получение информации о модели,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;counter&#039;&#039;&#039; — счетчик запросов, &#039;&#039;&#039;current&#039;&#039;&#039; — индекс последнего опрошенного cluster-сервера&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;fail&#039;&#039;&#039; — массив сбойных серверов со временем постановки в сбой.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;trainer&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;cluster&amp;quot;: [ &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;timers&amp;quot;: {  &amp;quot;connect&amp;quot;: 0.5,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;read&amp;quot;: 1,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;failed&amp;quot;: 600,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;install&amp;quot;: 60,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;info&amp;quot;: 3 },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;counter&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;current&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;fail&amp;quot;: {&amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;:1686295678} }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |GET/server/get/models/{servicetype}/{servertype}&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Вывод информации о моделях указанного сервиса на каждом сервере указанного типа. &amp;lt;small&amp;gt;Вывод представляет собой массив URL-серверов, для каждого из которых указан список моделей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servertype&#039;&#039;&#039; — тип серверов&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;model1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;modelN&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ],  ... }&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/model: методы работы с моделями&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/add/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание пустой модели в указанном сервисе. &amp;lt;small&amp;gt;Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;, &#039;&#039;&#039;spr&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 30%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 70%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/apply/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Применение установленной на рабочих серверах модели. &amp;lt;small&amp;gt;После применения модель становится доступна для штатного режима работы. Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;, &#039;&#039;&#039;spr&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;DELETE/model/delete/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Полностью удаляет модель из системы и со всех управляемых серверов. &amp;lt;small&amp;gt;Доступно для следующих сервисов: smc, see, spr.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/errors/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Запрос на получение списка ошибок модели после тестирования/обучения.  &amp;lt;small&amp;gt;Доступен для сервисов see и smc. Ответ содержит список вложенных списков. В каждом три значения: правильное значение, предсказанное моделью значение и начальные данные (фраза).&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039; — тип ошибок в выводе&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;- train&#039;&#039;&#039; ошибки обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;- test&#039;&#039;&#039; ошибки тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;- mark&#039;&#039;&#039; ошибки авторазметки&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[ [true, predicted, phrase],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;... ]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/export/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Экспорт модели, модель скачивается в виде zip-архива.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл model.zip, где model — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;DELETE/model/handler/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление постобработчика из модели типа future. &amp;lt;small&amp;gt;Более подробно об обработчике см. руководства пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/handler/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отправка файла-постобработчика в указанную модель типа future. &amp;lt;small&amp;gt;Обработчик становится активным сразу после успешной отправки. Более подробно об обработчике см. руководства пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;handler&#039;&#039;&#039; — файл, содержащий программный код python постобработчика&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/handler/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение файла-постобработчика из модели типа future.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл handler.py&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;DELETE/model/handler/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление постобработчика в указанной модели указанного типа.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/handler/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отправка файла-постобработчика в указанную модель указанного типа. &amp;lt;small&amp;gt;Становится активным сразу после успешной отправки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;handler&#039;&#039;&#039; — файл, содержащий программный код python постобработчика&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/handler/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение файла-постобработчика из указанной модели указанного типа.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл handler.py&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/import/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Импортирует модель в черновик (modeltype=future)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;zip-model&#039;&#039;&#039; — zip с файлами модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/info/{servicetype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение информации о всех моделях указанного сервиса. &amp;lt;small&amp;gt;Аналогичен методу GET /info/{servicetype}/{model}, но выводит информацию обо всех моделях.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{    &amp;quot;model1&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;previous&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;current&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;future&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;empty&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      ...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    }    },   ...  }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/info/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение информации о каждом типе (modeltype) указанной модели. &amp;lt;small&amp;gt;Итоговый массив содержит переменные типа modeltype, в каждой из который содержится информация о модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{    &amp;quot;previous&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;current&amp;quot;:  {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;status&amp;quot;: &amp;quot;trained&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ...  },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;future&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;status&amp;quot;: &amp;quot;trained&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ...  }  }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/install/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Установка импортированной или обученной модели на рабочих серверах.&lt;br /&gt;
&amp;lt;small&amp;gt;Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;, &#039;&#039;&#039;spr&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/log/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выводит лог обучения и тестирования модели. &amp;lt;small&amp;gt;Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;training&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;preparing data&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;tokenizing&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/restore/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Откат модели. &amp;lt;small&amp;gt;Делает текущую рабочую модель черновиком (future), рабочие серверы после выполнения данного метода продолжают уже с возвращенной моделью. Схематично действия над modeltype в результате выполнения данного метода можно представить так:&amp;lt;/small&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;current -&amp;gt; future&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;previous -&amp;gt; current&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;null -&amp;gt; previous&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |{&amp;quot;error&amp;quot;:0,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&lt;br /&gt;
&lt;br /&gt;
} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/corpus: работа с данными для обучения моделей&#039;&#039;&#039; =====&lt;br /&gt;
Методы данного класса предназначены только для сервисов smc и see&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перечень заданий автоматической маркировки корпусов. &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{   &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;tasks&amp;quot;: [ {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;: &amp;quot;29d9da98-d6c1-4dc1-bbc9-111309816002&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;taskname&amp;quot;: &amp;quot;test_doc&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {  &amp;quot;id&amp;quot;: &amp;quot;1a5e9bdc-9f98-49d2-84de-1a9bde8fc37c&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;taskname&amp;quot;: &amp;quot;sssss&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;    }  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/result/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Результат выполнения задания на автомаркировку корпуса. &amp;lt;small&amp;gt;Если задание завершено в ответе придет маркированый корпус и время старта и финиша задания&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;started&amp;quot;: &amp;quot;2024-10-09 18:05:51&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;finished&amp;quot;: &amp;quot;2024-10-09 18:05:51&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;corpus&amp;quot;: [[ [], [ [&amp;quot;тэг&amp;quot;],&amp;quot;фраза 1&amp;quot;]],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;small&amp;gt;[ [], [[&amp;quot;тэг&amp;quot;],&amp;quot;фраза 2&amp;quot;]] ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Начать автоматическую разметку корпуса.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;taskname&#039;&#039;&#039; — произвольное имя задания&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;corpus&#039;&#039;&#039; — json строка с размечаемым корпусом[[ [класс1,... классН], текст ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[ [класс1,... классН], текст ]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;marks&#039;&#039;&#039; — json строка с набором меток [    [ метка, [синоним, синоним2 ... синоним Н], порог ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[ метка, [синоним, синоним2 ... синоним Н], порог ]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;appendMarks&#039;&#039;&#039; — &amp;quot;yes&amp;quot; - дополнить разметку, &amp;quot;no&amp;quot; -заменить разметку&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;уникальный id задания&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/status/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получить статус задания на автоматическую разметку корпуса.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — уникальный id задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;started&amp;quot;: &amp;quot;2024-10-09 13:49:46&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;finished&amp;quot;: &amp;quot;2024-10-09 13:49:46&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;progress&amp;quot;: 0&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/stop/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Прервать задание на автоматическую разметку корпуса. &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/copy/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Копирование корпуса данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;srcname&#039;&#039;&#039; — текущее имя&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;dstname&#039;&#039;&#039; — новое имя&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/corpus/delete/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаляет корпус с данными&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/export/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Возвращает текстовый файл с корпусом, &amp;lt;small&amp;gt;содержащий строки вида КЛАСС&amp;lt;TAB&amp;gt;ФРАЗА&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл name.txt&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/get/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Возвращает JSON с данными корпуса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;  [ &amp;quot;тэг&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;фраза&amp;quot;&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;  ],&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;  ...&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/import/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Метод для импорта корпуса данных. &amp;lt;small&amp;gt;Возможен как из текстового файла со строками вида КЛАСС&amp;lt;TAB&amp;gt;ФРАЗА (доступно для smc и see), так и из логов работы системы (только для smc). Если на вход поступил файл csv, происходит импорт из файла, в противном случае — из логов.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv&#039;&#039;&#039; — файл данных&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;startDate&#039;&#039;&#039; — дата начала выборки, YYYY-MM-DD&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;stopDate&#039;&#039;&#039; — дата окончания выборки, YYYY-MM-DD&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — имя модели, из логов которой будет произведен импорт&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;limit&#039;&#039;&#039; — числовое ограничение строк импорта&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/list/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Возвращает список всех корпусов данных для указанного типа сервиса &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[ &amp;quot;корпус1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;корпус2&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ...]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/put/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перезаписывает корпус отправленным массивом данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — строка формата json с данными. Аналогична выводу метода GET /get/{servicetype}&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/rename/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Переименование корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;srcname&#039;&#039;&#039; — текущее имя&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;dstname&#039;&#039;&#039; — новое имя&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/marks: работа с наборами меток в smc&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление набора менток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; —список меток в формате: [ [  &amp;quot;метка1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним1&amp;quot;, &amp;quot;синоним2&amp;quot;, &amp;quot;синоним3&amp;quot;, &amp;quot;синонимN&amp;quot; ], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],  [ &amp;quot;меткаN&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним11&amp;quot;, &amp;quot;синоним21&amp;quot;,&amp;quot;синоним31&amp;quot;, &amp;quot;синонимN1&amp;quot;], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ] ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — имя создаваемого набора&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;132310fa-98c7-4b12-896f-ff113827d077&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/marks/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление набора меток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/marks/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение набора меток в виде строк &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;метка1    синоним1,синоним2,синоним3,синонимN     0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;меткаN    синоним11,синоним21,синоним31,синонимN1    0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/marks/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение набора меток в виде json&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;quot;метка1&amp;quot;, [ &amp;quot;синоним1&amp;quot;, &amp;quot;синоним2&amp;quot;, &amp;quot;синоним3&amp;quot;, &amp;quot;синонимN&amp;quot;  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;quot;меткаN&amp;quot;, [&amp;quot;синоним11&amp;quot;,&amp;quot;синоним21&amp;quot;, &amp;quot;синоним31&amp;quot;,&amp;quot;синонимN1&amp;quot;],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ]  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/import/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Импорт в существующий набор меток из файла. &amp;lt;small&amp;gt;Набор будет переписан из файла&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv&#039;&#039;&#039; — файл &amp;quot;метка&amp;quot;ТАБ&amp;quot;синонимы через запятую&amp;quot;ТАБ&amp;quot;достоверность(число от 0 до 1)&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/marks/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка наборов меток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;result&amp;quot;: [    { &amp;quot;id&amp;quot;: &amp;quot;416fbe08-19e9-453c-b140-37008a08a76c&amp;quot;,&amp;quot;name&amp;quot;: &amp;quot;test&amp;quot; },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;quot;id&amp;quot;: &amp;quot;16e77fa2-7c4d-47f9-8644-6385876525d6&amp;quot;,&amp;quot;name&amp;quot;: &amp;quot;Рыжик&amp;quot; },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;quot;id&amp;quot;: &amp;quot;132310fa-98c7-4b12-896f-ff113827d077&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;test&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/put/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Импорт в существующий набор меток из json строки. &amp;lt;small&amp;gt;Набор будет переписан&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — список меток в формате: [ [  &amp;quot;метка1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним1&amp;quot;, &amp;quot;синоним2&amp;quot;, &amp;quot;синоним3&amp;quot;, &amp;quot;синонимN&amp;quot; ], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],  [ &amp;quot;меткаN&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним11&amp;quot;, &amp;quot;синоним21&amp;quot;,&amp;quot;синоним31&amp;quot;, &amp;quot;синонимN1&amp;quot;], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ] ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор заменяемого набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/rename/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Присваивает новое наименование существующему набору меток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — новое имя набора&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/spr: работа с сервисом SPR&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{{:SPR. Руководство пользователя}}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/smc: работа с сервисом SMC&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{{:SMC. Руководство пользователя}}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/see: работа с сервисом SEE&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{{:SEE. Руководство пользователя}}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/sbs: работа с сервисом SBS&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/analyze&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение аналитических метаданных из голосового фрагмента. &amp;lt;small&amp;gt;Вернется массив с метаданными голосового фрагмента.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; &amp;lt;span data-darkreader-inline-color=&amp;quot;&amp;quot; data-darkreader-inline-bgcolor=&amp;quot;&amp;quot;&amp;gt;—&amp;lt;/span&amp;gt; файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{ age: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   class: 20-29, # {&amp;quot;00-05&amp;quot;, &amp;quot;06-12&amp;quot;, &amp;quot;13-19&amp;quot;, &amp;quot;20-29&amp;quot;, &amp;quot;30-39&amp;quot;, &amp;quot;40-49&amp;quot;,   &amp;quot;50-59&amp;quot;, &amp;quot;60+&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   confidence: 0.99 },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;emotion: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   class: SADNESS, # { &amp;quot;ANGER&amp;quot;, &amp;quot;BORE&amp;quot;, &amp;quot;DISAPPOINTMENT&amp;quot;, &amp;quot;DISGUST&amp;quot;, &amp;quot;EXCITEMENT&amp;quot;, &amp;quot;FEAR&amp;quot;, &amp;quot;NEUTRAL&amp;quot;, &amp;quot;PAIN&amp;quot;, &amp;quot;PLEASURE&amp;quot;, &amp;quot;SADNESS&amp;quot;, &amp;quot;SUPRISE&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   confidence: 0.99 },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;gender: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   class: FEMALE, # { &amp;quot;MALE&amp;quot;, &amp;quot;FEMALE&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   confidence: 0.99 }  }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/noiselevel&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Возвращает процент зашумленности аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Пример ответа:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: 0, message: &#039;success&#039;, &#039;noise&#039;: 0.79 }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/search&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Поиск говорящего по базе слепков.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; — порог похожести при поиске, от 0 до 1.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то поиск не будет осуществлен, если распознанный текст будет сильно отличаться от text.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;Пример ответа:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{ error: 0, speaker: Ivan, confidence: 0.79 }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/speakers/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление слепка в базу.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — имя говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для создания оцифрованного представления говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то поиск не будет осуществлен, если распознанный текст будет сильно отличаться от text. Для использования необходим сервис spr.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;251f78d7-ee50-4ba1-a669-ee89fdaf5433&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/sbs/speakers/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление слепка из базы.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; &amp;lt;span data-darkreader-inline-color=&amp;quot;&amp;quot; data-darkreader-inline-bgcolor=&amp;quot;&amp;quot;&amp;gt;—&amp;lt;/span&amp;gt; идентификатор говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/sbs/speakers/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка всех слепков.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;[ {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;251f78d7-ee50-4ba1-a669-ee89fdaf5433&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;наименование слепка&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  }]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/speakers/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Дообучение слепка.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор слепка&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то слепок не будет дообучен, если распознанный текст будет сильно отличаться от text. Для использования необходим сервис spr.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;Success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/verify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Сравнение wav-файла cо слепком в базе. &amp;lt;small&amp;gt;В ответе - вероятность совпадения от 0 до 1.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; —  имя говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для создания оцифрованного представления говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, но слепок не будет создан, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0, &amp;quot;confidence&amp;quot;: 0.78 }&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/tts: методы работы с сервисом tts&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/export&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка пользовательского словаря ударений.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;Простой текст — строки со словом и его интерпретацией с ударением.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/get&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка пользовательского словаря ударений в виде json.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[ [   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot;],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[   &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot;],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;...]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/import&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузка пользовательского словаря ударений. &amp;lt;small&amp;gt;Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;csv file&#039;&#039;&#039; — файл строк со словом и его интерпретацией с ударением.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/put&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузка пользовательского словаря ударений в виде json. &amp;lt;small&amp;gt;Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — строка json следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[ &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/normalize&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Нормализация текста &amp;lt;small&amp;gt;— перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы), например «в понедельник 10.10.2025» -&amp;gt; «в понедельник дес+ятого октябр+я две т+ысячи дв+адцать п+ятого г+ода».&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  фраза для нормализации&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;нормализованный текст&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/revoice/{revoicer}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Модификация или искажение голоса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  аудиофайл для обработки&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;revoicer&#039;&#039;&#039; —  модель модификации голоса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;wav-файл с модифицированным (искаженным) голосом&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/revoicers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перечень моделей модификации или искажения голоса. &amp;lt;small&amp;gt;Модели поставляются только в составе дистрибутива. Модель distortion — искажение голоса, делает голос неузнаваемым и речь неразборчивой.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  &amp;quot;distortion&amp;quot; ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/synthesize/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Синтез звукового файла из текста/&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;ID&#039;&#039;&#039; — имя модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст синтезируемой фразы&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;rate&#039;&#039;&#039; — скорость речи&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;pitch&#039;&#039;&#039; — высота (тон)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;volume&#039;&#039;&#039; — громкость&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;frequency&#039;&#039;&#039; — частота дискретизации (по умолчанию 22050 Гц)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;format&#039;&#039;&#039; - формат файла результата (wav, opus, ogg, mp3)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;link&#039;&#039;&#039; - если 1, то вернуть только ссылку на файл&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;файл с синтезированой фразой&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/qas: методы работы с сервисом qas&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/ask&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Метод генерирует ответ на поставленный вопрос на основе информации из документов в базе. &amp;lt;small&amp;gt;Ответ на вопрос генерируется на основе информации, содержащейся в одном или нескольких документах. Документы должны быть в текстовом формате. Ответ возвращается в формате JSON, его можно скачать. Если метод не смог найти ответ, возвращается код ошибки и сообщение.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст вопроса, на основе которого будут искаться фрагменты.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; — id канала&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useCache&#039;&#039;&#039; — использовать кешированные ответы&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;возможные варианты:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot; не использовать&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;all&#039;&#039;&#039;&amp;quot; использовать все&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;checked&#039;&#039;&#039;&amp;quot; использовать только проверенные&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useGPT&#039;&#039;&#039; — использовать генеративную сеть для поиска ответов в документах. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;addAlias&#039;&#039;&#039; — добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; — максимальное количество документов одной категории для формирования контекста при генерации ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;similarityArea -&#039;&#039;&#039; определяет допустимую разницу между максимальной и минимальной релевантностью фрагментов при фильтрации результатов&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;text&amp;quot;: &amp;quot;Здесь будет текст ответа&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/cachemaker/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Генерация ответов на вопросы в кэше.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - категория для которой генерируются ответы&amp;lt;/small&amp;gt;*&amp;lt;small&amp;gt;&#039;&#039;&#039;mode&#039;&#039;&#039; - режим генерации ответов, возможные значения:&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;- paraphrase&#039;&#039;&#039; - генерирует вариации ответов перефразированием уже проверенных ответов, если таковые имеются на вопросе&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;- generate&#039;&#039;&#039; - генерирует кэш через разные ответы на каждый вопрос по документации&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;mode&#039;&#039;&#039; — режим генерации ответов, возможные значения:&#039;&#039;&#039;- paraphrase&#039;&#039;&#039; - генерирует вариации ответов перефразированием уже проверенных ответов, если таковые имеются на вопросе&#039;&#039;&#039;- generate&#039;&#039;&#039; — генерирует кэш через разные ответы на каждый вопрос по документации&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;option&#039;&#039;&#039; - {all | empty} обработать все вопросы  или только не содержащие ответов&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - если указан код категории, то генерация только для этой категории&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;variants&#039;&#039;&#039; - количество ответов, от 1 до 9&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - заменить ответы на сгенерированные&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; - максимальное количество документов одной категории для формирования контекста при генерации ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для генерации, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/cachemaker/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Состояние генерации ответов на вопросы в кэше. &amp;lt;small&amp;gt;Статусы: &#039;&#039;&#039;started&#039;&#039;&#039;, &#039;&#039;&#039;stopped&#039;&#039;&#039;, если были ошибки, поле ответа &#039;&#039;&#039;error&#039;&#039;&#039; будет содержать код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;status&amp;quot;: &amp;quot;started&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;progress&amp;quot;: 33.33}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/cachemaker/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановить генерацию ответов на вопросы в кэше.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/category/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавить категорию с указанным именем. &amp;lt;small&amp;gt;В ответе — id созданной категории или сообщение об ошибке:&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — наименование категории&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;ad895085-2e48-439a-831e-b5f699b6a54a&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/category/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удалить категорию. &amp;lt;small&amp;gt;В ответе или сообщении об успехе, или ошибке, если категория используется или не существует.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор категории&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{   &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/category/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получить список категорий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;В ответе json с именами и id категорий&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/category/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменить категорию. &amp;lt;small&amp;gt;У категории пока есть только наименование, поэтому метод только переименовывает категорию&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор категории&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — наименование категории&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/channel/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление канала. &amp;lt;small&amp;gt;В ответе id созданного канала или сообщение об ошибке&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — наименование канала&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;a46fb887-5d98-41e0-8299-bcc94f615e91&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/channel/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление канала&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор канала&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/channel/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получить список всех каналов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;channels&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;1&amp;quot;,      &amp;quot;name&amp;quot;: &amp;quot;voice&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;56442779-e871-43fd-ae4d-caf4ab6d09b9&amp;quot;,      &amp;quot;name&amp;quot;: &amp;quot;канал++&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;0&amp;quot;,      &amp;quot;name&amp;quot;: &amp;quot;default&amp;quot;    }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/channel/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменить канал. &amp;lt;small&amp;gt;У канала пока есть только наименование, поэтому метод только переименовывает канал&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — новое наименование канала&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор канала&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/chat&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Поиск ответа за пределами документов. &amp;lt;small&amp;gt;На стадии разработки, не используется.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text -&#039;&#039;&#039; текст вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;history&#039;&#039;&#039; - история вопросов, будет склеена с text при запросе&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для ответа, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useInternalTemplate&#039;&#039;&#039; - использовать ли шаблон запроса. &#039;&#039;&#039;no&#039;&#039;&#039; - не использовать, либо код шаблона запроса к LLM. Необязательный параметр. Если не указан, используется шаблон по умолчанию.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;params&#039;&#039;&#039; - необязательный параметр. JSON с произвольными параметрами запроса к LLM. Описание параметров см. в [[QAS. Руководство администратора|руководстве администратора]].&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Пример ответа на вопрос &amp;quot;как пройти в библиотеку&amp;quot;&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;text&amp;quot;: &amp;quot;1. Проверить время работы библиотеки (обычно от 9 до 20)\n2. Проверить местоположение библиотеки на карте или с помощью сервиса Google Maps\n3. Убедиться, что у вас есть необходимые документы для входа (паспорт, карта члена библиотеки и т.д.)\n4. Посетить библиотеку по адресу: [адрес библиотеки]\n5. Проверить правила поведения в библиотеке перед входом&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/cleandoc/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Очистка документа от лишней информации &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text -&#039;&#039;&#039; текст документа&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для ответа, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;doc_id&#039;&#039;&#039; - необязательный параметр, ID документа&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; | &#039;&#039;&#039;GET/qas/cleandoc/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Остановка очистки документа для конкретного пользователя&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; | &#039;&#039;&#039;GET/qas/cleandoc/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Статус очистки документа для конкретного пользователя&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;status&amp;quot;: stopped | started,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;progress&amp;quot;: 33.3,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: string,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;place&amp;quot;: number, #место в очереди&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;queue&amp;quot;: True | False #состояния - в очереди или в процессе очистки&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; | &#039;&#039;&#039;GET/qas/cleandoc/result&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Результат очистки документа для конкретного пользователя&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;doc_id&#039;&#039;&#039; - необязательный параметр, ID документа&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;status&amp;quot;: &amp;quot;stopped&amp;quot;,&amp;quot;text&amp;quot;: &amp;quot;очищенный текст&amp;quot;,&amp;quot;doc_id&amp;quot;: &amp;quot;ID документа&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузить текстовый документ. &amp;lt;small&amp;gt;Добавляет документ в базу. В ответе — id созданного документа или сообщение об ошибке.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;title&#039;&#039;&#039; — заголовок документа&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — категория документа&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039;&amp;lt;/small&amp;gt; — &amp;lt;small&amp;gt;файл документа&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;ebe2bc57551c2d17f892987d1f62306d&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/doc/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Удаление документа&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор документа&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/doc/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка текста документа&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор документа&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;﻿Здесь будет полный текст документа&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/doc/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка имеющихся документов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;docs&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {id&amp;quot;: &amp;quot;d4999cdee5ad1faf2cb3066ea1b5e96b&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;PVE. Установка сервисного пакета окружения&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Техническая поддержка&amp;quot; },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;quot;id&amp;quot;: &amp;quot;759042575b965745b9d2af869bca1740&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;UPS. Руководство администратора&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Техническая поддержка&amp;quot;}      ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Обновление документа. &amp;lt;small&amp;gt;В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — json c изменяемыми параметрами документа&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  title: string,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  category: string,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  text: string&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;параметр который не меняется может отсутствовать в json&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор документа.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/replace&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Замена подстроки в текстах категории &amp;lt;small&amp;gt;Будут заменены все найденные вхождения&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;search&#039;&#039;&#039; - искомая подстрока, будет заменена&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - текст замены&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - в какой категории искать&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION,&amp;quot;replacements&amp;quot;:INT}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/modifyphrases&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Массовая замена текста в указанных фразах.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;phrases&#039;&#039;&#039; - JSON массив с изменяемым фразами следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;doc_id&#039;: &#039;ad895085-2e48-439a-831e-b5f699b6a54a&#039;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;phrase_id&#039;: 5,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;text&#039;: &#039;новый текст&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/gpt/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Получение списка доступных(установленных) GPT моделей&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;models&amp;quot;: [&amp;quot;default&amp;quot; ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление вопроса. &amp;lt;small&amp;gt;В случае успеха метод вернет id вопроса, в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;question&#039;&#039;&#039; —  текст вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; —  id категории к которой относится вопрос&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answers&#039;&#039;&#039; —  ответы в виде Json:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[ { &amp;quot;checked&amp;quot;: true, &amp;quot;channel&amp;quot;: &amp;quot;0&amp;quot;, &amp;quot;answer&amp;quot;: &amp;quot;ответ&amp;quot; } ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;aliases&#039;&#039;&#039; —  вопросы к которым подходят ответы из блока answers в виде json:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;quot;вопрос&amp;quot;,&amp;quot;еще вопрос&amp;quot;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;527be9f0-f773-4a3e-bd0b-81b40a061d0d&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/append/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавляет алиасы/кандидаты к другому вопросу&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;aliases&#039;&#039;&#039; —  JSON list с синонимами&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;candidates&#039;&#039;&#039; JSON list с кандидатами&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор вопроса к которому добавить синонимы и(или) кандидаты&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/approve/{destination_id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перемещает кандидаты в формулировки другого вопроса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;candidates&#039;&#039;&#039; —  json массив c текстами кандидатов&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;destination_id&#039;&#039;&#039; —  идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/delete/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление списка вопросов или ответов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;questions&#039;&#039;&#039; — json строка с перечнем id&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039; — выбор, удалять вопросы или ответы (&#039;&#039;&#039;questions&#039;&#039;&#039;, &#039;&#039;&#039;answers&#039;&#039;&#039;)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/question/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление вопроса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/question/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Получение вопроса вместе с ответами и синонимами вопроса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;answers&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {   &amp;quot;checked&amp;quot;: true,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;channel&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;answer&amp;quot;: &amp;quot;ответ&amp;quot;    }  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;aliases&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;вопрос&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;синоним вопроса&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;еще синоним вопроса&amp;quot;  ]   }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/question/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Получение списка вопросов.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;question&#039;&#039;&#039; —  фильтр вопросов, ограничение списка по вопросам&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — фильтр категорий&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answer&#039;&#039;&#039; —  фильтр ответов, ограничение списка по ответам&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;created&#039;&#039;&#039; — фильтр по дате создания, оставляет вопросы, созданные &#039;&#039;&#039;не ранее&#039;&#039;&#039; указанной даты&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;createdBefore&#039;&#039;&#039; — фильтр по дате создания, оставляет вопросы, созданные &#039;&#039;&#039;не позже&#039;&#039;&#039; указанной даты&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;modified&#039;&#039;&#039; — фильтр по дате изменения, оставляет вопросы, &#039;&#039;&#039;изменённые в точности&#039;&#039;&#039; в указанную дату&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;onlyNew&#039;&#039;&#039; - фильтр, оставляющий только новые (необработанные) вопросы&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;questions&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;question&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;incomplete&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;aliases&amp;quot;: [],&amp;quot;candidates&amp;quot;: [],&amp;quot;category&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;checked&amp;quot;: 0,&amp;quot;unchecked&amp;quot;: 0}&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;question&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;incomplete&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;aliases&amp;quot;: [],&amp;quot;candidates&amp;quot;: [],&amp;quot;category&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;checked&amp;quot;: 0,&amp;quot;unchecked&amp;quot;: 0}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Модификация вопроса. &amp;lt;small&amp;gt;Позволяет заменить как все параметры так и отдельные&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json c измененными параметрами, пример полного:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{   &amp;quot;answers&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;checked&amp;quot;: true,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;channel&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;answer&amp;quot;: &amp;quot;новый ответ&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;question&amp;quot;:&amp;quot;новый вопрос&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;category&amp;quot;: &amp;quot;a3801cc0-f8e5-4f3b-bb10-e42148cd772b&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;aliases&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;новый вопрос&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;синоним&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;еще синоним&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/replace&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Поиск и замена подстроки. Будут заменены все найденные вхождения&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;search&#039;&#039;&#039; - искомая подстрока, будет заменена&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - текст замены&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - в какой категории искать&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION,&amp;quot;replacements&amp;quot;:INT}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/modifyanswers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Массовая замена текста в указанных ответах.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;phrases&#039;&#039;&#039; - JSON массив с изменяемым ответами следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;question_id&#039;: &#039;ad895085-2e48-439a-831e-b5f699b6a54a&#039;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;answer_id&#039;: 5,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;text&#039;: &#039;новый текст&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/paraphrase&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Генерация фраз-синонимов для предложения.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text -&#039;&#039;&#039; предложение&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для ответа, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;, &amp;quot;texts&amp;quot;: [ &amp;quot;перефразированный текст 1&amp;quot;, ... ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionlist/answers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отображает лог массовой обработки вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;на выходе :&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;массив из объектов {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  error: number;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  question: string;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  answer: string;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  confidence: number | null;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/questionlist/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Старт массовой обработки вопросов из файла&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;questions&#039;&#039;&#039; - файл с вопросами&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;format&#039;&#039;&#039; - в json или в text файл с вопросами&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; — id канала&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useCache&#039;&#039;&#039; — использовать кешированные ответы&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;возможные варианты:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;— &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot; не использовать&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;all&#039;&#039;&#039;&amp;quot; использовать все&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;checked&#039;&#039;&#039;&amp;quot; использовать только проверенные&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useGPT&#039;&#039;&#039; — использовать генеративную сеть для поиска ответов в документах. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; - максимальное количество документов одной категории для формирования контекста при генерации ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;addAlias&#039;&#039;&#039; — добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; - порог достоверности при обработке&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionlist/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Статус массовой обработки вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{     error: string;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     status: &#039;started&#039; | &#039;stopped&#039;;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     progress: number; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionlist/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановка массовой обработки вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/mismatchsearcher/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Старт поиска несоответствий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt; &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM для анализа на несоответствия, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;asktemplate&#039;&#039;&#039; - ID шаблона запроса к LLM для генерации ответов по документу, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answers&#039;&#039;&#039; - тип вопросов, по которым осуществляется поиск несоответствий, необязательный параметр, по умолчанию «all»&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/mismatchsearcher/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Статус поиска несоответствий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{     error: string;&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;     status: &#039;started&#039; | &#039;stopped&#039;;&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     progress: number; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/mismatchsearcher/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановка поиска несоответствий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/mismatchsearcher/mismatches&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |Статус получения результатов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;quot;mismatches&amp;quot;: [{&amp;quot;question_id&amp;quot;: &amp;quot;ID вопроса&amp;quot;, &amp;quot;question&amp;quot;: &amp;quot;вопрос&amp;quot;, &amp;quot;category&amp;quot;: &amp;quot;ID категории&amp;quot;,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;answer_id&amp;quot;: &amp;quot;ID ответа&amp;quot;, &amp;quot;answer&amp;quot;: &amp;quot;ответ на вопрос {question}&amp;quot;,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;description&amp;quot;: &amp;quot;результат поиска&amp;quot;, &amp;quot;error&amp;quot; : string,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;context&amp;quot;: &amp;quot;фрагмент документа&amp;quot;, &amp;quot;generatedText&amp;quot; : &amp;quot;Результат генерации&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}, ... ]&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionmaker/start&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |Запуск генерации вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - ID категории, по которой будет происходить генерация вопросов&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;doc&#039;&#039;&#039; - ID документа, по которому будет происходить генерация вопросов&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;generateAnswers&#039;&#039;&#039; - флаг для генерации ответов вместе с вопросами &#039;&#039;&#039;[yse|no]&#039;&#039;&#039;, по умолчанию &#039;&#039;&#039;«no»&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM для анализа генерации вопросов, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionmaker/status&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |Статус генерации вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: string,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;status&amp;quot;: &#039;started&#039; | &#039;stopped&#039;,&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;progress&amp;quot;: 33.3&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionmaker/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Прервать генерацию.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/search&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Поиск фрагментов содержащих ответ&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039;  — текст запроса&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — категория (раздел) знаний. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; - максимальное количество документов одной категории для формирования контекста при поиске ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;similarityArea -&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;определяет допустимую разницу между максимальной и минимальной релевантностью фрагментов при фильтрации результатов&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  Фрагмент 1:Здесь будет текст найденного фрагмента&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  Фрагмент 2:Здесь будет текст найденного фрагмента&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;fragments&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;3a386b0a9e0e19efb0870685e1d0b484&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;Заголовок документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Категория документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;text&amp;quot;: &amp;quot;Здесь будет текст найденного фрагмента&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;44fd73ea1ac63f32cf18d79c854dbfe2&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;Заголовок документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Категория документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;text&amp;quot;: &amp;quot;Здесь будет текст найденного фрагмента&amp;quot;    }  ]   }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/summarization_template/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавление шаблона протокола. В случае успеха метод вернет id шаблона, в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;options&#039;&#039;&#039; — json словарь с именами разделов и их описанием&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,  &amp;quot;id&amp;quot;: &amp;quot;527be9f0-f773-4a3e-bd0b-81b40a061d0d&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETEqas/summarization_template/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление шаблона.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/summarization_template/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение json с шаблоном.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;На выходе словарь, основные элементы: data — словарь с шаблоном, остальные элементы этого уровня служебные. В data: id, name (идентификатор и наименование).И options — словарь с разделами шаблона.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/summarization_template/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение всех шаблонов.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;На выходе словарь, основной элемент — templates, содержит список шаблонов (каждый шаблон как в выдаче метода GET /qas/summarization_template/get/{id}).&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/summarization_template/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Изменение шаблона.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — словарь как в выдаче метода GET/qas/summarization_template/get/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/summarize&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Построение протокола или краткого содержания совещания&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст совещания&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;options&#039;&#039;&#039; — словарь с разделами протокола, где ключ — название раздела, значение - краткая инструкция к формированию раздела.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую GPT модель использовать для построения протокола, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;file&#039;&#039;&#039; — файл с текстом (текст, csv, pdf или текстовые офисные документы)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;summary&amp;quot;: &amp;quot;здесь текст протокола&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/replace&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |корректировка информации в тексте при помощи LLM&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;oldinfo&#039;&#039;&#039; — старая информация&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;newinfo&#039;&#039;&#039; — новая информация&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;model&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;- какую модель использовать для генерации, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt; &lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;итоговый текст&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/replacementlist&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |список всех фраз в документах и ответов в вопросах, подлежащих правке. &amp;lt;small&amp;gt;Векторно ищет все фрагменты по указанному тексту.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — категория, в которой производится векторный поиск&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; — порог похожести, необязательный параметр, если не указан, берется из конфигурационного файла (fragments -&amp;gt; threshold)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answers&#039;&#039;&#039; - тип вопросов, по которым осуществляется поиск для внесения правок, необязательный параметр, по умолчанию «all»&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;docs&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;answers&amp;quot;: []&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/prompt/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Добавление шаблона запроса к LLM. &amp;lt;small&amp;gt;В случае успеха метод вернет id вопроса, в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039;  — тип шаблона&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;- chat - произвольный чат,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- ask - запрос к документам,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- cleandoc - очистка документа, форматирование либо другое преобразование,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- similars_generator - генерация синонимичных которотких фраз,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- paraphrase - перефразировка текста,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- summarize - суммаризация текста (формирование краткой выдержки из текста),&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- question_generator - генерация вопросов по тексту,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- replace - замена информации в тексте, mismatch - поиск несоответствий&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039;  — название шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;prompt&#039;&#039;&#039; — текст шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;postprompt&#039;&#039;&#039; - текст шаблона постобработки результатов (нужен только для summarize)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;params&#039;&#039;&#039; - параметры запроса к LLM&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;small&amp;gt;max_tokens&amp;quot;: 4096,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;top_k&amp;quot;: 30,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;top_p&amp;quot;: 0.5,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;temperature&amp;quot;: 0.5,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;repeat_penalty&amp;quot;: 1.3&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;527be9f0-f773-4a3e-bd0b-81b40a061d0d&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/prompt/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Удаление шаблона. &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/prompt/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Получение шаблона.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;prompt&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;cleandoc&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;cleandoc&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;isDefault&amp;quot;: false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;Чистка документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;prompt&amp;quot;: &amp;quot;Удали сноски, колонтитуры и мусорную информацию из текста ниже. Не удаляй ничего лишнего. Не добавляй ничего, только информация из текста. Выведи только конечный результат без отчета о результате.\n###Текст:\n{context}\n\n###Конечный результат:&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;postprompt&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_modified&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_created&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_modified_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_created_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/prompt/list&#039;&#039;&#039; &lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Получение списка шаблонов.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;prompts&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;: &amp;quot;chat&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;type&amp;quot;: &amp;quot;chat&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;isDefault&amp;quot;: false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;name&amp;quot;: &amp;quot;Чат&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;prompt&amp;quot;: &amp;quot;Ты спокойный вежливый консультант.[\n\n###История переписки:\n{history}]\n\n###Вопрос: {question}\n###Ответ:&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;postprompt&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_modified&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_created&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_modified_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_created_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/prompt/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Модификация шаблона. Позволяет заменить как все параметры, так и отдельные.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — json c измененными параметрами:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ &amp;quot;name&amp;quot;: &amp;quot;новое имя&amp;quot; }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/ses: методы работы с роботом&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;для некоторых путей, где используется {robot_id} - это обращение к версии черновика, чтобы обращаться к продовой версии - нужен постфикс &amp;quot;_prod&amp;quot;, для бэкапа &amp;quot;_backup&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;актуально для методов&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получения данных робота  GET/ses/robot/get/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- применение настроек робота GET/ses/robot/commit/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- экспорт робота GET/ses/robot/export/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- список скриптов GET/ses/robot/script/list/{robot}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получение скрипта GET/ses/robot/script/get/{robot}/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- список ЭД GET/ses/robot/data/list/{robot}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получение ЭД GET/ses/robot/data/get/{robot}/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- список КТ GET/ses/robot/endpoint/list/{robot}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получение КТ GET/ses/robot/endpoint/get/{robot}/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- метода ask (отладчика) POST/ses/ask/{robot_id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- данные сессии (отладчика) GET/ses/session/{robot_id}/{session_id}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/audio/{uuid}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение аудио-файла из архива диалогов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;аудио-файл с расширением opus&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/dialog/{uuid}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение диалога из архива&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;dialog&amp;quot;: [{&amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;,                  &amp;quot;robot&amp;quot;: &amp;quot;...&amp;quot;,                &amp;quot;channel&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                  &amp;quot;unknown&amp;quot;: true/false,        &amp;quot;closed&amp;quot;: true/false,        &amp;quot;endpoint&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                  &amp;quot;answered&amp;quot;: true/false,    &amp;quot;models&amp;quot;: [...],    &amp;quot;variables&amp;quot;: {},   &amp;quot;current&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                         &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;,           &amp;quot;qas&amp;quot;: &amp;quot;&amp;quot;,           &amp;quot;category&amp;quot;: &amp;quot;...&amp;quot;,           &amp;quot;entry&amp;quot;: [...],&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                         &amp;quot;nearest&amp;quot;: &amp;quot;...&amp;quot;,    &amp;quot;missingRunData&amp;quot;: [...],     &amp;quot;waitingRunData&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                         &amp;quot;answered&amp;quot;: true/false,    &amp;quot;lastreply&amp;quot;: &amp;quot;...&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                  &amp;quot;request&amp;quot;: {&amp;quot;datetime&amp;quot;: &amp;quot;...&amp;quot;,           &amp;quot;message&amp;quot;: &amp;quot;&amp;quot;,           &amp;quot;data&amp;quot;: [...]},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                 &amp;quot;reply&amp;quot;: {&amp;quot;answers&amp;quot;: [{&amp;quot;messages&amp;quot;: [...],    &amp;quot;voice&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                                     &amp;quot;interruptible&amp;quot;: true/false,    &amp;quot;file&amp;quot;: null}],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;                  &amp;quot;datetime&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;answered&amp;quot;: true/false}}]}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка диалогов из архива&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;startdate&#039;&#039;&#039; - начало временного интервала в формате date %Y-%m-%d %H:%M&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;enddate&#039;&#039;&#039; - конец временного интервала в формате date %Y-%m-%d %H:%M&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;phone&#039;&#039;&#039; - номер телефона&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;variable&#039;&#039;&#039; - переменная в формате variable=value&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - фрагмент текста в любом сообщении&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - id элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; - название канала (коннектора)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{&amp;quot;uuid&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;datetime&amp;quot;: &amp;quot;...&amp;quot;,&amp;quot;phone&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt; &amp;quot;channel&amp;quot;: [...], &amp;quot;robot&amp;quot;: [&amp;quot;...&amp;quot;]}]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/waveform/{uuid}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Служебный метод для визуализации полученного из архива диалогов аудио-файла, содержит пики сигнала.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[0.016,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;0.015,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;0.01&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/ask/{robot_id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение ответа на запрос пользователя. &amp;lt;small&amp;gt;Метод для отладки робота&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст запроса&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; - id канала&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;connector&#039;&#039;&#039; - имя коннектора&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;session&#039;&#039;&#039; - uuid сессии, если это не первый запрос в сессии&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;tts&#039;&#039;&#039; - вернуть результат синтеза (1- вернуть, 0 - не выполнять синтез)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;variables&#039;&#039;&#039; - словарик с переменными {&amp;quot;переменная1&amp;quot;:&amp;quot;значение&amp;quot;,&amp;quot;переменнаяN&amp;quot;:&amp;quot;значение&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;handler&#039;&#039;&#039; - python скрипт для изменения ответов метода под требования внешних систем, подробнее в следующем разделе. в поле имя файла без расширения.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;restartClosed&#039;&#039;&#039; - перезагрузить сессию при её закрытии с новым id (1 - перезагрузить, 0 - не перезагружать)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;audio&#039;&#039;&#039; - аудиофайл с запросом, текст запроса будет получен распознаванием audio&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;document&#039;&#039;&#039; - документ для последующей обработки&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot_id&#039;&#039;&#039; - id робота&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;endpoint&#039;&#039;&#039; - id точки, в которую передать управление диалогом (необязательный параметр, используется для исходящих оповещений)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;   &amp;quot;question&amp;quot;: &amp;quot;Вопрос&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   &amp;quot;answer&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {    &amp;quot;messages&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                   &amp;quot;ответ&amp;quot;      ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;           &amp;quot;voice&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;           &amp;quot;interruptible&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;file&amp;quot;: &amp;quot;&amp;quot;    }  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;session&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;uuid&amp;quot;: &amp;quot;&amp;quot;   }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание нового робота. &amp;lt;small&amp;gt;На выходе id созданного робота или сообщение об ошибке&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; —  имя нового робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;2fd2f909-2069-4b20-a725-3a598c83f886&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/apply/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Применение робота. &amp;lt;small&amp;gt;Переводит черновик робота в статус prod. Если до этого был prod вариант —  становится backup.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/cleardraft/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Обнуление черновика рабочей версией робота&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/commit/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Применение текущих изменений настроек робота. &amp;lt;small&amp;gt;Применимо ко всем версиям (черновик, рабочая, резервная копия)&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/data/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление элемента данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/data/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление элемента данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/data/get/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение настроек элемента данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,                &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;id ЭД&amp;quot;,         &amp;quot;name&amp;quot;: &amp;quot;Имя ЭД&amp;quot;,          &amp;quot;comment&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;,     &amp;quot;rtype&amp;quot;: &amp;quot;report&amp;quot;,     &amp;quot;model&amp;quot;: &amp;quot;Имя модели&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;param&amp;quot;: &amp;quot;Ответ&amp;quot;,        &amp;quot;script&amp;quot;: &amp;quot;&amp;quot;,              &amp;quot;weight&amp;quot;: 3,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;slaveData&amp;quot;: [],                 &amp;quot;getOnlyAsNearest&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;injectToMessage&amp;quot;: true/false,        &amp;quot;longWaiting&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;dataWaiting&amp;quot;: [],          &amp;quot;actions&amp;quot;: {             &amp;quot;alone&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;        &amp;quot;default&amp;quot;: [{&amp;quot;action&amp;quot;: &amp;quot;say&amp;quot;,   &amp;quot;type&amp;quot;: &amp;quot;random&amp;quot;,   &amp;quot;text&amp;quot;: [&amp;quot;.....&amp;quot;]}]}},&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;    &amp;quot;exceptions&amp;quot;: {}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/data/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка элементов данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  {   &amp;quot;id&amp;quot;: &amp;quot;3ebfe38b-95bf-4927-a662-17f6e5da22ea&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;        &amp;quot;name&amp;quot;: &amp;quot;pve&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;smc&amp;quot;, &amp;quot;rtype&amp;quot;: &amp;quot;report&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;        &amp;quot;weight&amp;quot;: 3, &amp;quot;hasNearestAction&amp;quot;: false } ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/data/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение элемента данных. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как на выходе метода  &#039;&#039;&#039;GET/ses/robot/data/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление всех версий робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/endpoint/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Создание конечной точки. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как на выходе метода &#039;&#039;&#039;GET/ses/robot/endpoint/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами  конечной точки&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;8576593b-b0d8-4b03-a623-74f3132356ea&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/endpoint/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление конечной точки.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  конечной точки&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/endpoint/get/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение настроек конечной точки&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  конечной точки&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;comment&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entryType&amp;quot;: &amp;quot;conditions&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entry&amp;quot;: [{ &amp;quot;conditions&amp;quot;: [{ &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;depth&amp;quot;: 5, &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;operation&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;&amp;quot;}], &amp;quot;run&amp;quot;: []}],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;run&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;actions&amp;quot;: { &amp;quot;default&amp;quot;: [{ &amp;quot;action&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;voice&amp;quot;: &amp;quot;&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;,  &amp;quot;interruptible&amp;quot;: true/false}]},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;report&amp;quot;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/endpoint/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка конечных точек робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{ &amp;quot;error&amp;quot;: 0,  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;точка 1&amp;quot;, &amp;quot;comment&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entryType&amp;quot;: &amp;quot;conditions&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entry&amp;quot;: [{ &amp;quot;conditions&amp;quot;: [{ &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;depth&amp;quot;: 5, &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;operation&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;&amp;quot;}], &amp;quot;run&amp;quot;: []}],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;run&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;actions&amp;quot;: { &amp;quot;default&amp;quot;: [{ &amp;quot;action&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;voice&amp;quot;: &amp;quot;....&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;,  &amp;quot;interruptible&amp;quot;: true/false}]},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;report&amp;quot;}}]&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/endpoint/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение конечной точки. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как на выходе метода &#039;&#039;&#039;GET/ses/robot/endpoint/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка робота в архив&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;zip файл с именем = идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/files/download/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение файла.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор файла&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;файл&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/files/upload/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отправка файла.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;file&#039;&#039;&#039; - файл&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,   &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,   &amp;quot;id&amp;quot;: &amp;quot;Id файла&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Выгрузка основных настроек робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;9fd7f6f1-2cac-4f0f-a121-75c40f2b5e78&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;test&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;description&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;voice&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;session&amp;quot;: {      &amp;quot;lifetime&amp;quot;: 600    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;models&amp;quot;: {},&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;servicedata&amp;quot;: {},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;exceptions&amp;quot;: {},&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;actions&amp;quot;: {},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;holidays&amp;quot;: [],&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;timeintervals&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;name&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;        &amp;quot;weekdays&amp;quot;: [ 1, 2, 3, 4, 5, 6,  7  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;        &amp;quot;dates&amp;quot;: [  0,  1,  2,   3, 4,  5, 6,  7,  8,  9, 10,  11, 12,13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;months&amp;quot;: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;days&amp;quot;: &amp;quot;all&amp;quot;, &amp;quot;intervals&amp;quot;: [ [ 0,  1440 ] ] }}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/import/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузка архива робота в черновик существующего робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;zip —&#039;&#039;&#039;  файл с архивом робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка роботов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  {  &amp;quot;id&amp;quot;: &amp;quot;9fd7f6f1-2cac-4f0f-a121-75c40f2b5e78&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;test&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;hasProd&amp;quot;: true,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;hasBackup&amp;quot;: true  } ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение основных настроек робота. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/robot/get/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с новыми настройками робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/restore/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Откат рабочей версии из бэкапа. &amp;lt;small&amp;gt;Резервная копия становится рабочей, и удаляется, а черновик остается без изменений&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/script/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление нового скрипта. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/robot/script/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/script/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление скрипта&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/script/get/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение текста скрипита&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;6a9f91b6-9634-4079-ac2b-60a944922c61&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;type&amp;quot;: &amp;quot;Тип скрипта&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;Наименование скрипта&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;code&amp;quot;: &amp;quot;Текст скрипта&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/script/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка скриптов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  {    &amp;quot;id&amp;quot;: &amp;quot;9b9d83b7-d5c3-49e6-9bd4-a123a9047939&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;наименование1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;Тип скрипта&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  {    &amp;quot;id&amp;quot;: &amp;quot;48b508ba-a32b-4ada-bcc3-66ce26d81c6a&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;наименование2&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;Тип скрипта&amp;quot;}]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/script/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение скрипта.&amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/robot/script/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/script/test/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Тестирование скрипта. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/session/{robot_id}/{session_id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка с параметрами сессии&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;, &amp;quot;result&amp;quot;: {.....}, &amp;quot;variables&amp;quot;: {}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/add/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление записи в пользовательский справочник.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение n&amp;quot;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;id&amp;quot;: &amp;quot;id записи&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/userdata/data/delete/{robot}/{structure}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление записи из пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор записи (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/userdata/data/list/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение данных из пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{  &amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt; &amp;quot;колонка n&amp;quot;: &amp;quot;значение n&amp;quot;,&amp;lt;/small&amp;gt;   &amp;lt;small&amp;gt; &amp;quot;id&amp;quot;: &amp;quot;id записи&amp;quot;}]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/modify/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Массовое изменение данных в пользовательском справочнике.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;list&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;[{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;: &amp;quot;значение n&amp;quot;, &amp;quot;id&amp;quot;: &amp;quot;id строки&amp;quot;}]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/modify/{robot}/{structure}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение одной записи пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение n&amp;quot;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор записи (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/put/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление данных с заменой в пользовательском справочнике.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;list&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;[{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;: &amp;quot;значение n&amp;quot;, &amp;quot;id&amp;quot;: &amp;quot;id строки&amp;quot;}]&amp;lt;/code&amp;gt; Поле &amp;quot;id&amp;quot; опционально, при его добавлении данные в строке будут заменены.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - замена всех данных в справочнике новыми данными. Возможные значения: yes/no. По-умолчанию - yes.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/structure/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;id справочника&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;справочник&amp;quot;, &amp;quot;fields&amp;quot;: {&amp;quot;колонка 1&amp;quot;: &amp;quot;значение по умолчанию&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение по умолчанию&amp;quot;}}.&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; Поле &amp;quot;id&amp;quot; опционально.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;id&amp;quot;: &amp;quot;id справочника&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/userdata/structure/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/userdata/structure/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка пользовательских справочников.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;[{&amp;quot;id&amp;quot;: &amp;quot;id справочника&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;справочник&amp;quot;, &amp;quot;fields&amp;quot;: {&amp;quot;колонка1&amp;quot;: &amp;quot;значение по умолчанию&amp;quot;}}]&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/structure/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Модификация структуры пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; -  json строка в формате &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{&amp;quot;name&amp;quot;: &amp;quot;справочник&amp;quot;, &amp;quot;fields&amp;quot;: {&amp;quot;колонка 1&amp;quot;: &amp;quot;значение по умолчанию&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение по умолчанию&amp;quot;}}.&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/session/{robot_id}/{session_id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выдает параметры сессии. &amp;lt;small&amp;gt;Для отображения на боковой панели тестирования в UPS. Основные блоки результата:&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot_id&#039;&#039;&#039; —  id робота&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;session_id&#039;&#039;&#039; —  id незакрытой сессии&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;started&amp;quot;: &amp;quot;&amp;quot;,  &amp;quot;modified&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;robot&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;session&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;channel&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;connector&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;unknown&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;current&amp;quot;: {&amp;quot;id&amp;quot;: &amp;quot;&amp;quot;, &amp;quot;qas&amp;quot;: &amp;quot;&amp;quot;, &amp;quot;answered&amp;quot;: true/false, &amp;quot;category&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;              &amp;quot;nearest&amp;quot;: &amp;quot;&amp;quot;,    &amp;quot;entry&amp;quot;: [.....],    &amp;quot;missingRunData&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;              &amp;quot;passedRunData&amp;quot;: [.....],       &amp;quot;waitingRunData&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;              &amp;quot;border&amp;quot;: int,    &amp;quot;preborder&amp;quot;: int,    &amp;quot;lastreply&amp;quot;: &amp;quot;&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;models&amp;quot;: [.....],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;scripts&amp;quot;: [.....],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;  &amp;quot;data&amp;quot;: [{&amp;quot;request&amp;quot;: {.....}, &amp;quot;reply&amp;quot;: {.....}}],&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;timers&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;variables&amp;quot;: {},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;events&amp;quot;: {.....},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;closed&amp;quot;: &amp;quot;&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/widget/config&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выдает параметры виджета для web канала по запросу js скрипта&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;token&#039;&#039;&#039; —  уникальный код виджета, создается при внедрении&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Состав конфига канала, для передачи виджету. Подробней в [https://wiki.connect2ai.net/index.php/SES._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0#%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%B2%D0%B8%D0%B4%D0%B6%D0%B5%D1%82%D0%B0_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B0%D0%B9%D1%82%D0%B0 Руководстве администратора]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/widget/js&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выдает код js скрипта виджета для web-канала &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Код скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/res: методы работы с сервисом отчетов&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/res/dashboards&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получить список рабочих столов kibana с наборами отчетов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;dashboards&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;Наименование1&amp;quot;: &amp;quot;https://........&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;Наименование2&amp;quot;: &amp;quot;https://.........&amp;quot;  }}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/transcription: методы работы со стенографией&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/audio/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Получить аудиофайл по id стенограммы. &amp;lt;small&amp;gt;Идентификатор нужной стенограммы можно получить методом&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;GET /transcription/list&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;wav файл сохраненной стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/transcription/create&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание стенограммы из завершенного задания в очереди распознавания. &amp;lt;small&amp;gt;В ответ придет id созданной стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;taskID&#039;&#039;&#039; — идентификатор задания из очереди&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; —  имя создаваемой стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;74721a3b-9055-4650-9afb-de4d103cafc7&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/transcription/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление стенограммы&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение стенограммы. &amp;lt;small&amp;gt;Используется для отображения стенограммы в веб интерфейсе&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;стенограмма в json формате&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка сохраненных стенограмм&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |[ {  &amp;quot;id&amp;quot;: &amp;quot;926e8d25-4275-4a78-906b-a1109cdacbea&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;name&amp;quot;: &amp;quot;название&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;model&amp;quot;: &amp;quot;big&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;created&amp;quot;: &amp;quot;2024-03-29 12:37:42&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;modified&amp;quot;: &amp;quot;2024-04-24 16:09:09&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;user&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot; }, .... ] &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/transcription/save/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Сохранение стенограмы. &amp;lt;small&amp;gt;Используется для сохранения изменений по нажатию кнопки «Сохранить».&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  стенограмма в json формате&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/waveform/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Служебный метод для отображения аудио в графическом виде, &amp;lt;small&amp;gt;ответ содержит пики сигнала&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;waveform&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   0.016,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ..........&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ..........&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   0.015,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   0.01 ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SEE._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3480</id>
		<title>SEE. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SEE._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3480"/>
		<updated>2026-01-12T10:30:30Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис Simple Entity Extractor предназначен для извлечения именованных сущностей из текстовых фрагментов (фраз естественной речи). Принимает на вход текстовую строку и возвращает структурированные данные в формате JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Simple Entity Extractor (SEE) — сервис извлечения именованных сущностей.&lt;br /&gt;
&lt;br /&gt;
Модель — предварительно подготовленная специализированная модель распознавания и извлечения именованных сущностей из коротких фраз.&lt;br /&gt;
&lt;br /&gt;
Именованная сущность — слово или словосочетание, выделяющее определенный предмет или явление из ряда однотипных предметов или явлений. Например, это названия городов, стран, валют, имен.&lt;br /&gt;
&lt;br /&gt;
Swagger UI — интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису SEE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API SEE&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SEE. По умолчанию используется порт 6184/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса SEE представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6184 будет отображен интерфейс swagger со всеми методами с возможностью их проверки. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/copy&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Копирование существующей модели&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;source&#039;&#039;&#039; - исходная модель&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;destination&#039;&#039;&#039; - целевая модель&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;backup&#039;&#039;&#039; - путь для резервного копирования&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;remove&#039;&#039;&#039; - флаг для удаления исходной модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/see/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение архива модели.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Возвращает zip-файл с моделью.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/import/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавление модели.&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;Метод асинхронный. Окончание работы проверяется через метод /see/info/{id}.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор модели;&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;zip-model&#039;&#039;&#039; — zip-архив с файлами модели;&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/entities/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Поиск сущностей. Вернется массив со всеми моделями, в которых были найдены сущности (модели для поиска указываются в поле id). Каждая переменная с названием модели будет содержать список всех найденных сущностей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;id — идентификатор[ы] модели. Может быть указано несколько через запятую, тогда запрос будет обработан всеми указанными моделями.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;text — текст для анализа.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;similarity — порог похожести найденной сущности на эталонные, %. По умолчанию 70.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;ID-модели: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;position: 0, # позиция слова начала фрагмента, определяющего сущность&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;confidence: 1, #вероятность правильного определения сущности&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;text: текст сущности,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;calculated: vaktsinatsiya # поле, содержащее значение сущности, использованный при обучении модели&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}, {...}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/errors/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение файла с ошибками модели. В случае, если производилось тестирование модели, то файл содержит ошибки тестирования. Если не производилось — ошибки после обучения.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;текстовый файл со строками вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;ИСТИНА&amp;lt;TAB&amp;gt;ОПРЕДЕЛЕНО&amp;lt;TAB&amp;gt;ФРАЗА&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/see/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление постобработчика.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение файла-постобработчика.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл handler.py&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Отправка файла-постобработчика в указанную модель. Становится активным сразу после успешной отправки.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/info/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение информации о модели. В результате выполнения будет возвращен массив с данными о модели. Матрица ошибок отдельно содержат классы, определяющие столбцы и строки матрицы, их количество может быть меньше, т.к. в матрицы попадают только те классы, по которым были ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;id — идентификатор&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;status — статус&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;classes — список сущностей в модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;entityMaxWords — максимальная длина сущности в корпусе обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;sequenceLength — максимальная длина последовательности при обучении&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;noiseLevel — уровень шума, использованный при обучении модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainCorpusName — название файла, использованного при обучении&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainAccuracy — точность обучения и тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;testCorpusLength — размер тестового корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainCorpusLength — размер обучающего корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainConfusionMatrix — матрица ошибок обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;testConfusionMatrix — матрица ошибок тестирования.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/log/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Лог всех действий во время обучения/тестирования модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Лог содержится в переменной log в виде списка.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;log&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;training&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;macroEpoch: 1, microEpoch: 1 loss: 1.23790...&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    ...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/models&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Вывод списка моделей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ models: [model1,...,modelN] }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/stop/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | &amp;lt;small&amp;gt;Остановка обучения модели&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/train/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | &amp;lt;small&amp;gt;Обучение модели&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;csv-file&#039;&#039;&#039; - текстовый файл для обучения модели или json файл с метками&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;noise&#039;&#039;&#039; - уровень шума для генерации синтезированных данных для обучения модели, от 1 до 5, по умолчанию 2.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;corpusName&#039;&#039;&#039; - наименование имеющегося корпуса данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;corpusData&#039;&#039;&#039; -  json строка с корпусом данных&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Постобработка&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
Модель может содержать &#039;&#039;&#039;постобработчик&#039;&#039;&#039;. Это стандартный файл на языке Python, который выполняет произвольные действия с результатом работы модели. Обязательным условием является наличие функции handler, которая должна возвращать данные такого же вида, как и метод GET /see/entities/{id}.&lt;br /&gt;
&lt;br /&gt;
Пример пустой функции, которая просто повторяет на выходе результат:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;def handler(entities=[],text=&amp;quot;&amp;quot;):&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  returns entities&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На вход подается результат работы модели, а также начальный текст.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SEE._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3479</id>
		<title>SEE. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SEE._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3479"/>
		<updated>2026-01-12T10:29:33Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис Simple Entity Extractor предназначен для извлечения именованных сущностей из текстовых фрагментов (фраз естественной речи). Принимает на вход текстовую строку и возвращает структурированные данные в формате JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Simple Entity Extractor (SEE) — сервис извлечения именованных сущностей.&lt;br /&gt;
&lt;br /&gt;
Модель — предварительно подготовленная специализированная модель распознавания и извлечения именованных сущностей из коротких фраз.&lt;br /&gt;
&lt;br /&gt;
Именованная сущность — слово или словосочетание, выделяющее определенный предмет или явление из ряда однотипных предметов или явлений. Например, это названия городов, стран, валют, имен.&lt;br /&gt;
&lt;br /&gt;
Swagger UI — интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису SEE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API SEE&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SEE. По умолчанию используется порт 6184/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса SEE представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6184 будет отображен интерфейс swagger со всеми методами с возможностью их проверки. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/copy&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Копирование существующей модели&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;source&#039;&#039;&#039; - исходная модель&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;destination&#039;&#039;&#039; - целевая модель&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;backup&#039;&#039;&#039; - путь для резервного копирования&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;remove&#039;&#039;&#039; - флаг для удаления исходной модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/see/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение архива модели.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Возвращает zip-файл с моделью.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/import/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавление модели.&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;Метод асинхронный. Окончание работы проверяется через метод /see/info/{id}.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор модели;&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;zip-model&#039;&#039;&#039; — zip-архив с файлами модели;&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/entities/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Поиск сущностей. Вернется массив со всеми моделями, в которых были найдены сущности (модели для поиска указываются в поле id). Каждая переменная с названием модели будет содержать список всех найденных сущностей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;id — идентификатор[ы] модели. Может быть указано несколько через запятую, тогда запрос будет обработан всеми указанными моделями.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;text — текст для анализа.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;similarity — порог похожести найденной сущности на эталонные, %. По умолчанию 70.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;ID-модели: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;position: 0, # позиция слова начала фрагмента, определяющего сущность&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;confidence: 1, #вероятность правильного определения сущности&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;text: текст сущности,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;calculated: vaktsinatsiya # поле, содержащее значение сущности, использованный при обучении модели&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}, {...}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/errors/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение файла с ошибками модели. В случае, если производилось тестирование модели, то файл содержит ошибки тестирования. Если не производилось — ошибки после обучения.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;текстовый файл со строками вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;ИСТИНА&amp;lt;TAB&amp;gt;ОПРЕДЕЛЕНО&amp;lt;TAB&amp;gt;ФРАЗА&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/see/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление постобработчика.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение файла-постобработчика.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл handler.py&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Отправка файла-постобработчика в указанную модель. Становится активным сразу после успешной отправки.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/info/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение информации о модели. В результате выполнения будет возвращен массив с данными о модели. Матрица ошибок отдельно содержат классы, определяющие столбцы и строки матрицы, их количество может быть меньше, т.к. в матрицы попадают только те классы, по которым были ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;id — идентификатор&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;status — статус&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;classes — список сущностей в модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;entityMaxWords — максимальная длина сущности в корпусе обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;sequenceLength — максимальная длина последовательности при обучении&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;noiseLevel — уровень шума, использованный при обучении модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainCorpusName — название файла, использованного при обучении&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainAccuracy — точность обучения и тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;testCorpusLength — размер тестового корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainCorpusLength — размер обучающего корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainConfusionMatrix — матрица ошибок обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;testConfusionMatrix — матрица ошибок тестирования.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/log/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Лог всех действий во время обучения/тестирования модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Лог содержится в переменной log в виде списка.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;log&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;training&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;macroEpoch: 1, microEpoch: 1 loss: 1.23790...&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    ...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/models&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Вывод списка моделей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ models: [model1,...,modelN] }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/stop/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | &amp;lt;small&amp;gt;Остановка обучения модели&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/train/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | &amp;lt;small&amp;gt;Обучение модели&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;csv-file&#039;&#039;&#039; - текстовый файл для обучения модели или json файл с метками&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;noise&#039;&#039;&#039; - уровень шума для генерации синтезированных данных для обучения модели, от 1 до 5, по умолчанию 2.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;corpusName&#039;&#039;&#039; - наименование имеющегося корпуса данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;corpusData&#039;&#039;&#039; -  json строка с корпусом данных&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Постобработка&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
Модель может содержать &#039;&#039;&#039;постобработчик&#039;&#039;&#039;. Это стандартный файл на языке Python, который выполняет произвольные действия с результатом работы модели. Обязательным условием является наличие функции handler, которая должна возвращать данные такого же вида, как и метод GET /see/entities/{id}.&lt;br /&gt;
&lt;br /&gt;
Пример пустой функции, которая просто повторяет на выходе результат:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;def handler(entities=[],text=&amp;quot;&amp;quot;):&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  returns entities&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На вход подается результат работы модели, а также начальный текст.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SEE._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3478</id>
		<title>SEE. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SEE._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3478"/>
		<updated>2026-01-12T10:24:39Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис Simple Entity Extractor предназначен для извлечения именованных сущностей из текстовых фрагментов (фраз естественной речи). Принимает на вход текстовую строку и возвращает структурированные данные в формате JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Simple Entity Extractor (SEE) — сервис извлечения именованных сущностей.&lt;br /&gt;
&lt;br /&gt;
Модель — предварительно подготовленная специализированная модель распознавания и извлечения именованных сущностей из коротких фраз.&lt;br /&gt;
&lt;br /&gt;
Именованная сущность — слово или словосочетание, выделяющее определенный предмет или явление из ряда однотипных предметов или явлений. Например, это названия городов, стран, валют, имен.&lt;br /&gt;
&lt;br /&gt;
Swagger UI — интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису SEE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API SEE&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SEE. По умолчанию используется порт 6184/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса SEE представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6184 будет отображен интерфейс swagger со всеми методами с возможностью их проверки. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/see/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение архива модели.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Возвращает zip-файл с моделью.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/import/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавление модели.&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;Метод асинхронный. Окончание работы проверяется через метод /see/info/{id}.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор модели;&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;zip-model&#039;&#039;&#039; — zip-архив с файлами модели;&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/entities/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Поиск сущностей. Вернется массив со всеми моделями, в которых были найдены сущности (модели для поиска указываются в поле id). Каждая переменная с названием модели будет содержать список всех найденных сущностей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;id — идентификатор[ы] модели. Может быть указано несколько через запятую, тогда запрос будет обработан всеми указанными моделями.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;text — текст для анализа.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;similarity — порог похожести найденной сущности на эталонные, %. По умолчанию 70.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;ID-модели: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;position: 0, # позиция слова начала фрагмента, определяющего сущность&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;confidence: 1, #вероятность правильного определения сущности&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;text: текст сущности,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;calculated: vaktsinatsiya # поле, содержащее значение сущности, использованный при обучении модели&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}, {...}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/errors/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение файла с ошибками модели. В случае, если производилось тестирование модели, то файл содержит ошибки тестирования. Если не производилось — ошибки после обучения.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;текстовый файл со строками вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;ИСТИНА&amp;lt;TAB&amp;gt;ОПРЕДЕЛЕНО&amp;lt;TAB&amp;gt;ФРАЗА&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/see/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление постобработчика.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение файла-постобработчика.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл handler.py&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Отправка файла-постобработчика в указанную модель. Становится активным сразу после успешной отправки.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/info/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение информации о модели. В результате выполнения будет возвращен массив с данными о модели. Матрица ошибок отдельно содержат классы, определяющие столбцы и строки матрицы, их количество может быть меньше, т.к. в матрицы попадают только те классы, по которым были ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;id — идентификатор&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;status — статус&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;classes — список сущностей в модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;entityMaxWords — максимальная длина сущности в корпусе обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;sequenceLength — максимальная длина последовательности при обучении&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;noiseLevel — уровень шума, использованный при обучении модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainCorpusName — название файла, использованного при обучении&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainAccuracy — точность обучения и тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;testCorpusLength — размер тестового корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainCorpusLength — размер обучающего корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainConfusionMatrix — матрица ошибок обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;testConfusionMatrix — матрица ошибок тестирования.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/log/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Лог всех действий во время обучения/тестирования модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Лог содержится в переменной log в виде списка.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;log&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;training&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;macroEpoch: 1, microEpoch: 1 loss: 1.23790...&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    ...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/models&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Вывод списка моделей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ models: [model1,...,modelN] }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Постобработка&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
Модель может содержать &#039;&#039;&#039;постобработчик&#039;&#039;&#039;. Это стандартный файл на языке Python, который выполняет произвольные действия с результатом работы модели. Обязательным условием является наличие функции handler, которая должна возвращать данные такого же вида, как и метод GET /see/entities/{id}.&lt;br /&gt;
&lt;br /&gt;
Пример пустой функции, которая просто повторяет на выходе результат:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;def handler(entities=[],text=&amp;quot;&amp;quot;):&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  returns entities&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На вход подается результат работы модели, а также начальный текст.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SEE._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3477</id>
		<title>SEE. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SEE._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3477"/>
		<updated>2026-01-12T10:23:09Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис Simple Entity Extractor предназначен для извлечения именованных сущностей из текстовых фрагментов (фраз естественной речи). Принимает на вход текстовую строку и возвращает структурированные данные в формате JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Simple Entity Extractor (SEE) — сервис извлечения именованных сущностей.&lt;br /&gt;
&lt;br /&gt;
Модель — предварительно подготовленная специализированная модель распознавания и извлечения именованных сущностей из коротких фраз.&lt;br /&gt;
&lt;br /&gt;
Именованная сущность — слово или словосочетание, выделяющее определенный предмет или явление из ряда однотипных предметов или явлений. Например, это названия городов, стран, валют, имен.&lt;br /&gt;
&lt;br /&gt;
Swagger UI — интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису SEE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API SEE&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SEE. По умолчанию используется порт 6184/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса SEE представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6184 будет отображен интерфейс swagger со всеми методами с возможностью их проверки. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/models&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Вывод списка моделей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ models: [model1,...,modelN] }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/see/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение архива модели.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Возвращает zip-файл с моделью.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/import/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавление модели.&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;Метод асинхронный. Окончание работы проверяется через метод /see/info/{id}.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор модели;&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;zip-model&#039;&#039;&#039; — zip-архив с файлами модели;&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/entities/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Поиск сущностей. Вернется массив со всеми моделями, в которых были найдены сущности (модели для поиска указываются в поле id). Каждая переменная с названием модели будет содержать список всех найденных сущностей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;id — идентификатор[ы] модели. Может быть указано несколько через запятую, тогда запрос будет обработан всеми указанными моделями.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;text — текст для анализа.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;similarity — порог похожести найденной сущности на эталонные, %. По умолчанию 70.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;ID-модели: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;position: 0, # позиция слова начала фрагмента, определяющего сущность&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;confidence: 1, #вероятность правильного определения сущности&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;text: текст сущности,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;calculated: vaktsinatsiya # поле, содержащее значение сущности, использованный при обучении модели&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}, {...}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/errors/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение файла с ошибками модели. В случае, если производилось тестирование модели, то файл содержит ошибки тестирования. Если не производилось — ошибки после обучения.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;текстовый файл со строками вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;ИСТИНА&amp;lt;TAB&amp;gt;ОПРЕДЕЛЕНО&amp;lt;TAB&amp;gt;ФРАЗА&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/see/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление постобработчика.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение файла-постобработчика.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл handler.py&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Отправка файла-постобработчика в указанную модель. Становится активным сразу после успешной отправки.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/info/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение информации о модели. В результате выполнения будет возвращен массив с данными о модели. Матрица ошибок отдельно содержат классы, определяющие столбцы и строки матрицы, их количество может быть меньше, т.к. в матрицы попадают только те классы, по которым были ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;id — идентификатор&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;status — статус&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;classes — список сущностей в модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;entityMaxWords — максимальная длина сущности в корпусе обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;sequenceLength — максимальная длина последовательности при обучении&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;noiseLevel — уровень шума, использованный при обучении модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainCorpusName — название файла, использованного при обучении&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainAccuracy — точность обучения и тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;testCorpusLength — размер тестового корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainCorpusLength — размер обучающего корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainConfusionMatrix — матрица ошибок обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;testConfusionMatrix — матрица ошибок тестирования.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/log/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Лог всех действий во время обучения/тестирования модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Лог содержится в переменной log в виде списка.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;log&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;training&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;macroEpoch: 1, microEpoch: 1 loss: 1.23790...&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    ...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Постобработка&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
Модель может содержать &#039;&#039;&#039;постобработчик&#039;&#039;&#039;. Это стандартный файл на языке Python, который выполняет произвольные действия с результатом работы модели. Обязательным условием является наличие функции handler, которая должна возвращать данные такого же вида, как и метод GET /see/entities/{id}.&lt;br /&gt;
&lt;br /&gt;
Пример пустой функции, которая просто повторяет на выходе результат:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;def handler(entities=[],text=&amp;quot;&amp;quot;):&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  returns entities&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На вход подается результат работы модели, а также начальный текст.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SEE._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3476</id>
		<title>SEE. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SEE._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3476"/>
		<updated>2026-01-12T10:09:32Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис Simple Entity Extractor предназначен для извлечения именованных сущностей из текстовых фрагментов (фраз естественной речи). Принимает на вход текстовую строку и возвращает структурированные данные в формате JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Simple Entity Extractor (SEE) — сервис извлечения именованных сущностей.&lt;br /&gt;
&lt;br /&gt;
Модель — предварительно подготовленная специализированная модель распознавания и извлечения именованных сущностей из коротких фраз.&lt;br /&gt;
&lt;br /&gt;
Именованная сущность — слово или словосочетание, выделяющее определенный предмет или явление из ряда однотипных предметов или явлений. Например, это названия городов, стран, валют, имен.&lt;br /&gt;
&lt;br /&gt;
Swagger UI — интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису SEE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API SEE&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SEE. По умолчанию используется порт 6184/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса SEE представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6184 будет отображен интерфейс swagger со всеми методами с возможностью их проверки. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Вывод списка моделей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ models: [model1,...,modelN] }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/confusion/{id}/{type}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение изображения матрицы ошибок.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039; — тип данных для построения матрицы.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Возвращает PNG-изображение с матрицей ошибок.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/see/data/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление модели.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/data/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение архива модели.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Возвращает zip-файл с моделью.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/data/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавление модели.&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;Метод асинхронный. Окончание работы проверяется через метод /see/info/{id}.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор модели;&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;zip-model&#039;&#039;&#039; — zip-архив с файлами модели; или&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;from-existing-model&#039;&#039;&#039; — название модели, которое должно быть переименовано в id; или&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv&#039;&#039;&#039; — текстовый файл для обучения модели, со строками СУЩНОСТЬ&amp;lt;TAB&amp;gt;ФРАЗА;&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;noise&#039;&#039;&#039; — уровень шума для генерации синтезированных данных для обучения модели, от 1 до 5, по умолчанию 2.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/entities/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Поиск сущностей. Вернется массив со всеми моделями, в которых были найдены сущности (модели для поиска указываются в поле id). Каждая переменная с названием модели будет содержать список всех найденных сущностей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;id — идентификатор[ы] модели. Может быть указано несколько через запятую, тогда запрос будет обработан всеми указанными моделями.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;text — текст для анализа.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;similarity — порог похожести найденной сущности на эталонные, %. По умолчанию 70.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;ID-модели: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;position: 0, # позиция слова начала фрагмента, определяющего сущность&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;confidence: 1, #вероятность правильного определения сущности&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;text: текст сущности,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;calculated: vaktsinatsiya # поле, содержащее значение сущности, использованный при обучении модели&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}, {...}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/errors/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение файла с ошибками модели. В случае, если производилось тестирование модели, то файл содержит ошибки тестирования. Если не производилось — ошибки после обучения.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;текстовый файл со строками вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;ИСТИНА&amp;lt;TAB&amp;gt;ОПРЕДЕЛЕНО&amp;lt;TAB&amp;gt;ФРАЗА&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/see/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление постобработчика.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение файла-постобработчика.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл handler.py&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Отправка файла-постобработчика в указанную модель. Становится активным сразу после успешной отправки.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/info/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение информации о модели. В результате выполнения будет возвращен массив с данными о модели. Матрица ошибок отдельно содержат классы, определяющие столбцы и строки матрицы, их количество может быть меньше, т.к. в матрицы попадают только те классы, по которым были ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;id — идентификатор&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;status — статус&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;classes — список сущностей в модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;entityMaxWords — максимальная длина сущности в корпусе обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;sequenceLength — максимальная длина последовательности при обучении&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;noiseLevel — уровень шума, использованный при обучении модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainCorpusName — название файла, использованного при обучении&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainAccuracy — точность обучения и тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;testCorpusLength — размер тестового корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainCorpusLength — размер обучающего корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;trainConfusionMatrix — матрица ошибок обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;testConfusionMatrix — матрица ошибок тестирования.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/log/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Лог всех действий во время обучения/тестирования модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;id&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;— идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Лог содержится в переменной log в виде списка.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;log&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;training&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;macroEpoch: 1, microEpoch: 1 loss: 1.23790...&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    ...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Постобработка&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
Модель может содержать &#039;&#039;&#039;постобработчик&#039;&#039;&#039;. Это стандартный файл на языке Python, который выполняет произвольные действия с результатом работы модели. Обязательным условием является наличие функции handler, которая должна возвращать данные такого же вида, как и метод GET /see/entities/{id}.&lt;br /&gt;
&lt;br /&gt;
Пример пустой функции, которая просто повторяет на выходе результат:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;def handler(entities=[],text=&amp;quot;&amp;quot;):&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  returns entities&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На вход подается результат работы модели, а также начальный текст.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SEE._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3475</id>
		<title>SEE. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SEE._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3475"/>
		<updated>2026-01-12T10:08:07Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис Simple Entity Extractor (SEE) предназначен для выделения смысловых сущностей из текста. Входным значением для сервиса являются данные в текстовом формате. В ответ на входящий запрос сервис возвращает данные в формате JSON. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Simple Entity Extractor (SEE) – сервис выделения сущностей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Системные требования&#039;&#039;&#039; =====&lt;br /&gt;
Для нормальной работы сервиса на каждые 100 одновременных запросов классификации необходимо обеспечить 1 CPU &amp;gt;= 2.20GHz с поддержкой инструкций AVX2 или новее.&lt;br /&gt;
&lt;br /&gt;
Оперативной памяти необходимо не менее 4Gb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка/обновление сервиса&#039;&#039;&#039; =====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/see&amp;amp;fileid=581 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить сервисный пакет окружения]].&lt;br /&gt;
* Установка/обновление SEE осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./see-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./see-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./see-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
* Загрузить последнюю версию продукта  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/see/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/see&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить SEE &amp;lt;code&amp;gt;/opt/see/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/see/inupdate -b&amp;lt;/code&amp;gt;  — обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/see/inupdate -r&amp;lt;/code&amp;gt;  — обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/see/inupdate -n&amp;lt;/code&amp;gt;  — обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/see/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/see/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt;  — это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/see/.userapi (это файл авторизации в API, нужен для обновления)&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/see/.proxy (это файл конфигурации proxy необходим для обновления, при отсутствующем прямом подключении к интернету)&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable see.service &amp;amp;&amp;amp; sudo systemctl start see.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status see.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к порту 6184 на нужном интерфейсе по протоколу tcp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Лицензия&#039;&#039;&#039; =====&lt;br /&gt;
Сервис не функционирует без действующей лицензии. Информация о лицензии хранится в файле:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/opt/see/license.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл лицензии должен соответствовать следующему формату:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;service&amp;quot;: &amp;quot;see&amp;quot;, &amp;quot;expire&amp;quot;: &amp;quot;2045-01-01&amp;quot;, &amp;quot;licenses&amp;quot;: , &amp;quot;key&amp;quot;: &amp;quot;&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для получения лицензии необходимо:&lt;br /&gt;
&lt;br /&gt;
1. Запустить сервис &amp;lt;code&amp;gt;systemctl start see&amp;lt;/code&amp;gt; и извлечь UUID, указанный в файле &amp;lt;code&amp;gt;/opt/see/logs/log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Передать полученный UUID руководителю проекта для оформления лицензии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Предустановленные модели&#039;&#039;&#039; =====&lt;br /&gt;
В состоянии поставки SEE содержит специализированные модели. Предустановленные модели расположены в каталоге /opt/see/pretrained/. Одна из моделей — «fio» для выделения фамилий, имен, отчеств из текста. Для этой модели возможно создать пользовательский словарь на случай, если модель не смогла определить правильно ФИО. Пользовательские словари нужно располагать в папке /opt/see/pretrained/fio/custom (surnames.txt - фамилии, firstname.txt - имена, lastnames.txt - отчества, в именительном падеже). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Конфигурирование параметров сервиса&#039;&#039;&#039; =====&lt;br /&gt;
Настройка параметров сервиса see производится в файле /opt/see/config.json&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|device&lt;br /&gt;
|cuda:0&lt;br /&gt;
|Вычислительное устройство (cpu/cuda:N, где N — номер графического ускорителя), в ОЗУ которого осуществляется загрузка моделей.&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|logs/&lt;br /&gt;
|Директория для хранения логов. Примеры абсолютного пути: &amp;quot;/var/log/see/&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Количество файлов ротации&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер файла в байтах, триггер для ротации.&lt;br /&gt;
|-&lt;br /&gt;
|stricts&lt;br /&gt;
|[  &amp;quot;не&amp;quot;  ]&lt;br /&gt;
|«Строгие частицы» — частицы речи, меняющие смысл фразы. После применения настройки, если сущность содержит такую частицу, то фраза без этой частицы не вызовет положительного срабатывания.&lt;br /&gt;
|-&lt;br /&gt;
|smc.url&lt;br /&gt;
|&amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
|Адрес по которому доступен smc с моделью [https://wiki.connect2ai.net/index.php/SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0#%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BD%D1%8B%D1%85_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B5%D0%B9_SMC коррекции]&lt;br /&gt;
|-&lt;br /&gt;
|smc.conn_timeout&lt;br /&gt;
|2&lt;br /&gt;
|Таймаут подключения к smc&lt;br /&gt;
|-&lt;br /&gt;
|smc.read_timeout&lt;br /&gt;
|30&lt;br /&gt;
|Таймаут ответа от smc&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.log&lt;br /&gt;
|путь к логу синхронизации ноды кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.statusFile&lt;br /&gt;
|logs/sync.status&lt;br /&gt;
|путь к файлу статуса ноды кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.nodes&lt;br /&gt;
|[]&lt;br /&gt;
|список IP адресов нод кластера&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Сбор данных об ошибках&#039;&#039;&#039; =====&lt;br /&gt;
Логи сервиса по умолчанию находятся в файле /opt/see/logs/log.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Удаление&#039;&#039;&#039; =====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/see/uninstall&amp;lt;/code&amp;gt;. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
         &lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3474</id>
		<title>SMC. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3474"/>
		<updated>2026-01-12T10:01:56Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис Short  Message Classifier предназначен для классификации текстовых фрагментов (фраз естественной речи). Принимает на вход текстовую строку и возвращает структурированные данные в формате JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Short  Message Classifier (SMC) - сервис классификации текстовых фрагментов.&lt;br /&gt;
&lt;br /&gt;
Модель — предварительно обученная специализированная нейронная сеть классификации коротких фраз.&lt;br /&gt;
&lt;br /&gt;
Swagger UI – интерактивная  веб-консоль с кратким описанием методов АPI и возможностью выполнять запросы к сервису SMC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API SMC&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SMC. По умолчанию используется порт 6181/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке &amp;lt;nowiki&amp;gt;http://АДРЕС:6181&amp;lt;/nowiki&amp;gt; будет отображен интерфейс swagger со всеми методами с возможностью их проверки. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/models&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Вывод списка моделей. Выводит только пользовательские модели. Сервисные модели, корпуса, наборы меток не выводит.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Без входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ models: [model1,...,modelN] }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/automark/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Список заданий на автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Без входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;tasks&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;id&amp;quot;: &amp;quot;id-1&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;taskname&amp;quot;: &amp;quot;name1&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    },&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;id&amp;quot;: &amp;quot;id-nnnn&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;taskname&amp;quot;: &amp;quot;name2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/automark/result/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получить результат задания на автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;started&amp;quot;: &amp;quot;2024-10-09 18:05:51&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;finished&amp;quot;: &amp;quot;2024-10-09 18:05:51&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;corpus&amp;quot;: [[ [], [ [&amp;quot;тэг&amp;quot;],&amp;quot;фраза 1&amp;quot;]],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    [ [], [[&amp;quot;тэг&amp;quot;],&amp;quot;фраза 2&amp;quot;]] ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/automark/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Начать автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;taskname&#039;&#039;&#039; - произвольное имя задания&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;corpus&#039;&#039;&#039; - json строка с размечаемым корпусом[&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;[ [класс1,... классН], текст ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[ [класс1,... классН], текст ]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;marks&#039;&#039;&#039; - json строка с набором меток [    [ метка, [синоним, синоним2 ... синоним Н], порог ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[ метка, [синоним, синоним2 ... синоним Н], порог ]]&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;appendMarks&#039;&#039;&#039; - &amp;quot;yes&amp;quot; - дополнить разметку, &amp;quot;no&amp;quot; -заменить разметку&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;уникальный id задания&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/automark/status/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получить статус задания на автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;started&amp;quot;: &amp;quot;2024-10-09 13:49:46&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;finished&amp;quot;: &amp;quot;2024-10-09 13:49:46&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;progress&amp;quot;: 0&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/automark/stop/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Прервать задание на автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/classify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Классификация текстовой фразы. В случает если модель была создана из меток в ответе groups и nearest будут пустыми, а ответ будет построен без учета confidenceThreshold из запроса.&amp;lt;/small&amp;gt; &lt;br /&gt;
&amp;lt;small&amp;gt;В ответе:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;classes&#039;&#039;&#039; - список , для каждого класса которого отображается название класса, к которому был отнесен текст, и вероятность его принадлежности к этому классу.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;groups&#039;&#039;&#039; - название группы и число совпавших классов. Если метки совпадают с несколькими группами, они отображаются в порядке убывания числа совпавших классов (т.е. чем полнее группа, тем выше ее позиция в списке).&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;nearest&#039;&#039;&#039; - отображаются группы, до которых не хватает всего одной метки, с указанием процента заполненности и сортировкой по убыванию этого процента.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст, подлежащий классификации&amp;lt;/small&amp;gt; &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;correction&#039;&#039;&#039; - проверять правописание слов и исправлять ошибки&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;confidenceThreshold&#039;&#039;&#039;, % - минимальный порог доверия.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;classes&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;class&amp;quot;: &amp;quot;название класса&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;confidence&amp;quot;: 1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    },&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;class&amp;quot;: &amp;quot;название класса 2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;confidence&amp;quot;: 1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;groups&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;название группы 1&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;intersection&amp;quot;: 2,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;classes&amp;quot;: [ &amp;quot;название класса&amp;quot;, &amp;quot;название класса 2&amp;quot; ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;nearest&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;название группы 2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;percent&amp;quot;: 0.67,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;need&amp;quot;: &amp;quot;название класса которого не хватило 1&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    },&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;&amp;quot;название группы 3&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;percent&amp;quot;: 0.67,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;need&amp;quot;: &amp;quot;название класса которого не хватило 2&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/compress&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Убирает из фразы слова не влияющие на ее смысл.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для сжатия&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; - уровень компрессии от 1 до 100. Чем меньше число тем меньше слов будет в итоговой фразе&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;сжатый текст&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/copy&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Копирование существующей модели&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;source&#039;&#039;&#039; - исходная модель&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;destination&#039;&#039;&#039; - целевая модель&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;backup&#039;&#039;&#039; - путь для резервного копирования&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;remove&#039;&#039;&#039; - флаг для удаления исходной модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  { error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/correct&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Коррекция правописания. Изменяет неправильно написанные слова меняя их на наиболее близкие правильные (из знакомых модели). Если модель коррекции не смогла предложить правильное написание текста, метод вернет текст неизменным.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для коррекции&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;correction&#039;&#039;&#039; - уровень коррекции, от 1 до 3. По умолчанию 1.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - если указано, то при коррекции дополнительно используется словарь модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;корректный текст&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение архива модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;ZIP-файл с моделью, либо { error: 1, message: DESCRIPTION }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/smc/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/import/{id}&#039;&#039;&#039; &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавление модели. Окончание работы проверяется через метод /smc/info/{id}.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;zip-model&#039;&#039;&#039; - zip-архив с файлами модели&amp;lt;/small&amp;gt; &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/embedding&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - фраза&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/emotion&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Анализ эмоций. На выходе один из вариантов &#039;&#039;positive negative neutral.&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - фраза для анализа эмоций&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ &amp;quot;emotion&amp;quot;: &amp;quot;positive&amp;quot;, &amp;quot;score&amp;quot;: 0.9601 }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/errors/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение файла с ошибками модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039; - тип ошибок, возможные варианты:&amp;lt;/small&amp;gt; &lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;train&#039;&#039;&#039; - ошибки обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;test&#039;&#039;&#039; - ошибки тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;mark&#039;&#039;&#039; - ошибки создания модели из меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;текстовый файл со строками вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;ИСТИНА&amp;lt;TAB&amp;gt;ОПРЕДЕЛЕНО&amp;lt;TAB&amp;gt;ФРАЗА&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/groups/{id}&#039;&#039;&#039; &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Поиск групп по ранее полученным меткам. Ищет группы по набору меток. Результат - группы (если найдены) и ближайшие группы с указанием недостающих меток.  Позволяет сохранять контекст в виде меток и дозапрашивать группы с учетом контекста.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;classes&#039;&#039;&#039; — набор меток через запятую&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Результат в виде json.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;groups&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;Группа 1&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;intersection&amp;quot;: 3,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;classes&amp;quot;: [ &amp;quot;метка1_о&amp;quot;, &amp;quot;метка2_о&amp;quot;, &amp;quot;метка3_о&amp;quot;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    },&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;Группа 2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;intersection&amp;quot;: 2,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;classes&amp;quot;: [ &amp;quot;метка1_о&amp;quot;, &amp;quot;метка5_о&amp;quot; ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;nearest&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;Группа до которой не хватило 1 метки&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;percent&amp;quot;: 0.75,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;need&amp;quot;: &amp;quot;недостающая метка_о&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/groups/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавляет к модели группы.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;groups&#039;&#039;&#039; - JSON с новыми группами&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv-file&#039;&#039;&#039; - файл с группами&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;string&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получает [https://wiki.connect2ai.net/index.php/SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0 постобработчик] модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл программы обработчика на python&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/smc/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
 ! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаляет [https://wiki.connect2ai.net/index.php/SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0 постобработчик] модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;string&amp;quot; }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Устанавливает [https://wiki.connect2ai.net/index.php/SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0 постобработчик] модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;handler&#039;&#039;&#039; - файл постобработчика&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;string&amp;quot; }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/info/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение информации о модели. В результате выполнения будет возвращен массив с данными о модели. Матрица ошибок отдельно содержат классы, определяющие столбцы и строки матрицы, их количество может быть меньше, т.к. в матрицы попадают только те классы, по которым были ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;На выходе будут следующие параметры:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;status&#039;&#039;&#039; - статус&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;classes&#039;&#039;&#039; - список классов в модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;groups&#039;&#039;&#039; - список групп в модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainCorpusName&#039;&#039;&#039;, &#039;&#039;&#039;testCorpusName&#039;&#039;&#039; - названия файлов, использованных при обучении и тестировании&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainAccuracy&#039;&#039;&#039;, &#039;&#039;&#039;testAccuracy&#039;&#039;&#039; - точность обучения и тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;initCorpusLength&#039;&#039;&#039; - начальный размер корпуса обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainCorpusLength&#039;&#039;&#039; - размер корпуса после нормализации и синтеза данных&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;testCorpusLength&#039;&#039;&#039; - размер тестового корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainConfusionMatrix&#039;&#039;&#039; - матрица ошибок обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;testConfusionMatrix&#039;&#039;&#039; - матрица ошибок тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/log/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Лог всех действий во время обучения/тестирования модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Лог содержится в переменной log в виде списка.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ &amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;log&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;training&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;normalization: 5, model size: 2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    ...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/normalize&#039;&#039;&#039; &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Обратная нормализация текста. Пример: двадцать пятого апреля в пятом часу -&amp;gt; 25 апреля в 5-м часу&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для обработки&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;quot;text&amp;quot;: &amp;quot;&amp;lt;строка после обратной нормализации&amp;gt;&amp;quot;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/punctuate&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Расстановка знаков препинания.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для обработки&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{  &amp;quot;text&amp;quot;: &amp;quot;string&amp;quot; }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/search&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Семантический поиск фразы в тексте.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;phrase&#039;&#039;&#039; - искомая фраза&amp;lt;/small&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст в котором нужно найти фразу&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;similarity&amp;quot;: 1,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;fragment&amp;quot;: &amp;quot;найденная фраза&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/stop/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | &amp;lt;small&amp;gt;Остановка обучения модели&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/test/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | &amp;lt;small&amp;gt;Тестирование модели. Тестируется заранее подготовленным текстовым файлом со строками вида: КЛАСС&amp;lt;TAB&amp;gt;ФРАЗА&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Метод асинхронный. Окончание работы проверяется через метод /smc/info/{id}.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;csv-file&#039;&#039;&#039; - файл для тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;correction&#039;&#039;&#039; - исправлять ошибки правописания в файле для тестирования (&#039;&#039;&#039;0&#039;&#039;&#039; или &#039;&#039;&#039;1&#039;&#039;&#039;)&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/toxicity&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Определение токсичности высказывания. Высказывание анализируется по 4 параметрам, по каждому выдается вероятность от 0 до 1:&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текстовая строка с высказыванием&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;insult&amp;quot;: 0.13, # оскорбление&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;obscenity&amp;quot;: 0, # брань&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;threat&amp;quot;: 0, # угрозы&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;politeness&amp;quot;: 0.53 вежливость&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/train/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | &amp;lt;small&amp;gt;Обучение модели&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;csv-file&#039;&#039;&#039; - текстовый файл для обучения модели или json файл с метками&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;isMarks&#039;&#039;&#039; - если &amp;quot;1&amp;quot; то вместо csv файла корпуса метод ожидает json файл с меткам, формат файла csv-file:{&amp;quot;id&amp;quot;: &amp;quot;уникальный идентификатор&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;имя набора&amp;quot;, &amp;quot;data&amp;quot;: [ [&amp;quot;метка1&amp;quot;,[&amp;quot;синоним1&amp;quot;, &amp;quot;еще несколько синонимов через запятую&amp;quot;],порог достоверности], [&amp;quot;еще метка&amp;quot;,[&amp;quot;синоним&amp;quot;, &amp;quot;еще несколько синонимов через запятую&amp;quot;],порог достоверности]]} модель созданная из меток при этом не обучается, созданный файл модели используется для расчетов векторов &amp;quot;на лету&amp;quot; и выдачи результатов на основании сравнения векторов текста и синонимов из файла с метками&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;corpusName&#039;&#039;&#039; - наименование имеющегося корпуса данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;corpusData&#039;&#039;&#039; -  json строка с корпусом данных&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Постобработка&#039;&#039;&#039; =====&lt;br /&gt;
Модель может содержать постобработчик. Это стандартный файл на языке Python, который выполняет произвольные действия с результатом работы модели. Обязательным условием является наличие функции handler, которая должна возвращать данные такого же вида, как и метод GET /smc/classify/{id}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример пустой функции:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;def handler(classes=[],text=&amp;quot;&amp;quot;):&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  returns classes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На вход подается результат работы модели, а также начальный текст.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=UPS._%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_API&amp;diff=3473</id>
		<title>UPS. Описание API</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=UPS._%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_API&amp;diff=3473"/>
		<updated>2026-01-12T10:00:37Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Описание часто используемых параметров&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!Тип&lt;br /&gt;
!Описание&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;servicetype&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Тип сервиса. Возможные значения: spr, smc, see, sbs, tts.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;servertype&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Тип группы серверов. Возможные значения: trainer (серверы обучения), cluster (рабочие серверы).&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;model&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Название модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;modeltype&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Тип модели. Возможные значения: &#039;&#039;&#039;future&#039;&#039;&#039; — планируемая/черновик, &#039;&#039;&#039;current&#039;&#039;&#039; — текущая/рабочая, &#039;&#039;&#039;previous&#039;&#039;&#039; — архивная.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;error&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;ответ&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Флаг ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;message&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;ответ&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Информационное сообщение.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;&amp;quot;/external modules&amp;quot; методы внешних модулей&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
В этом разделе будут методы соответствующим образом оформленных [[UPS. Руководство администратора#Установка модулей для UPS|внешних модулей]]&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/auth: методы  авторизации&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/access&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение токенов доступа. &amp;lt;small&amp;gt;Токен доступа определяет, какие из методов будут доступны конкретному пользователю. Формируется на основании роли. Дополнительный входной параметр во всех методах, кроме перечисленных в разделе «nopassword» конфигурационного файла. Время действия токена определяется параметром auth.accessLifeTime конфигурационного файла.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;username&#039;&#039;&#039; — логин&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;password&#039;&#039;&#039; — пароль&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-access-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-refresh-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/dataset/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление dataset (набора данных). &amp;lt;small&amp;gt;Dataset (набор данных) используется для ограничения доступа к данным. В ответе метод вернет id созданного набора данных.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;data — json строка вида: {    &amp;quot;name&amp;quot;: &amp;quot;название нового набора&amp;quot;     }&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset_id&amp;quot;: &amp;quot;XXXXXXXXXXXXX&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/auth/dataset/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление dataset (набора данных). &lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора данных&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/dataset/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Переименование dataset (набора данных). &amp;lt;small&amp;gt;Метод меняет все параметры набора данных, но на данный момент времени у набора данных, кроме id, только один параметр — наименование.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора данных&amp;lt;/small&amp;gt; &lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — JSON c новыми параметрами&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/datasets&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка наборов данных.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;XXX&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;По умолчанию&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/refresh&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Обновление токенов доступа. &amp;lt;small&amp;gt;Время, в течение которого можно обновить доступ, регулируется параметром auth.refreshLifeTime конфигурационного файла. Служебный метод, используется в основном в веб-интерфейсе, чтобы не запрашивать лишний раз пароль.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;x-refresh-token&#039;&#039;&#039; — токен обновления доступа&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-access-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-refresh-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/rights&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка прав доступа. &amp;lt;small&amp;gt;Служебный метод — по токену получает название роли и все права доступа этой роли, а также общедоступные методы.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;&amp;lt;&amp;lt;{  &amp;quot;РОЛЬ&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;GET:/......&amp;quot;  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;nopassword&amp;quot;: [    &amp;quot;GET:/.......&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;...............&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;&amp;lt;&amp;lt;...............&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;POST:/.......&amp;quot;  ]  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/role/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание роли. &amp;lt;small&amp;gt;Служебный метод — используется веб-интерфейсом при создании роли.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — JSON с параметрами роли:{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;проверка создания&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;rights&amp;quot;: [    &amp;quot;набор прав через запятую&amp;quot; ]&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;, &amp;quot;role_id&amp;quot;: &amp;quot;a7e68bb83169f864c2fc868401b5250c&amp;quot;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/auth/role/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление роли.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; роли&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/role/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение роли. &amp;lt;small&amp;gt;Параметры как при создании роли. Роль будет переписана.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; роли&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — JSON с параметрами роли:{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;проверка создания&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;rights&amp;quot;: [    &amp;quot;набор прав через запятую&amp;quot; ]&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/roles&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка ролей.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;имя роли&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;rights&amp;quot;: [ &amp;quot;набор прав через запятую&amp;quot; ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;},............]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/user/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание нового пользователя. &amp;lt;small&amp;gt;Метод вернет или id нового пользователя или описание ошибки&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — json строка {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;login_name&amp;quot;, &amp;quot;fullname&amp;quot;: &amp;quot;Отображаемое Имя&amp;quot;,&amp;quot;password&amp;quot;: &amp;quot;XXXXX&amp;quot;,&amp;quot;role&amp;quot;: &amp;quot;role_id&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;default dataset id&amp;quot;, &amp;quot;datasets&amp;quot;: [ &amp;quot;dataset id&amp;quot;, ................. ] }&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;user_id&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXX&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/auth/user/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление пользователя&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - идентификатор пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/user/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение параметров пользователя&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; — идентификатор пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;loginname&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;fullname&amp;quot;: &amp;quot;Full Name&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;role&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;datasets&amp;quot;: [ &amp;quot;0&amp;quot;, &amp;quot;2dc34d3454243522e5407d3a170815a2&amp;quot; ] }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/user/info&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение параметров пользователя по его токену доступа. &amp;lt;small&amp;gt;Служебный метод - для предоставления прав текущему пользователю по его токену&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;x-access-token&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;loginname&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;fullname&amp;quot;: &amp;quot;Full Name&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;role&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;datasets&amp;quot;: [  &amp;quot;0&amp;quot;,  &amp;quot;2dc34d3454243522e5407d3a170815a2&amp;quot;]  },  &amp;quot;rights&amp;quot;: [..........] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/user/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка пользователей с их параметрами. &amp;lt;small&amp;gt;Тоже самое что и в методе GET /auth/user/info, только для всех пользователей&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |[&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;loginname&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;fullname&amp;quot;: &amp;quot;Full Name&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;role&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;datasets&amp;quot;: [  &amp;quot;0&amp;quot;,  &amp;quot;2dc34d3454243522e5407d3a170815a2&amp;quot;]  },  &amp;quot;rights&amp;quot;: [..........] },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
......&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/user/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение параметров пользователя&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — параметры пользователя как при создании&amp;lt;/small&amp;gt; &lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/user/password&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Смена пароля пользователя по его токену доступа.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;password&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |{ &amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;} &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/userlog&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение действий пользователя за период времени по его токену&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;from&#039;&#039;&#039; — начало периода в формате &amp;quot;%Y-%m-%d %H:%M&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;to&#039;&#039;&#039; — конец периода в формате &amp;quot;%Y-%m-%d %H:%M&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;время&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;метод&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      {измененные данные в формате метода}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;время&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;метод&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      {измененные данные в формате метода}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    .........&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/version&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение версии сервиса ups&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;version&amp;quot;: &amp;quot;4.082 release&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/lang: методы мультиязычности&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/lang/&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выводит информацию о переводе элементов интерфейса на текущий язык&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;see&amp;quot;:&amp;quot;Сущности&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;smc&amp;quot;:&amp;quot;Классификатор&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;... }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/lang/wallpaper&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отдает случайный фон рабочего стола в виде jpeg из каталога «wallpapers» на сервере ups&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;image/jpeg&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/server: получение информации о серверах&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |GET/server/get/addresses/{servicetype}&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Вывод информации о серверах, обслуживающих данный сервис, а также настроенных параметров обращения к данным серверам. &lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainer&#039;&#039;&#039; — сервер обучения, &#039;&#039;&#039;cluster&#039;&#039;&#039; — рабочие серверы, &#039;&#039;&#039;connect&#039;&#039;&#039; — время на подключение, &#039;&#039;&#039;read&#039;&#039;&#039; — время на ответ,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;failed&#039;&#039;&#039; — время пребывания в сбойных, &#039;&#039;&#039;install&#039;&#039;&#039; — время на установку модели, &#039;&#039;&#039;info&#039;&#039;&#039; — время на получение информации о модели,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;counter&#039;&#039;&#039; — счетчик запросов, &#039;&#039;&#039;current&#039;&#039;&#039; — индекс последнего опрошенного cluster-сервера&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;fail&#039;&#039;&#039; — массив сбойных серверов со временем постановки в сбой.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;trainer&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;cluster&amp;quot;: [ &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;timers&amp;quot;: {  &amp;quot;connect&amp;quot;: 0.5,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;read&amp;quot;: 1,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;failed&amp;quot;: 600,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;install&amp;quot;: 60,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;info&amp;quot;: 3 },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;counter&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;current&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;fail&amp;quot;: {&amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;:1686295678} }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |GET/server/get/models/{servicetype}/{servertype}&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Вывод информации о моделях указанного сервиса на каждом сервере указанного типа. &amp;lt;small&amp;gt;Вывод представляет собой массив URL-серверов, для каждого из которых указан список моделей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servertype&#039;&#039;&#039; — тип серверов&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;model1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;modelN&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ],  ... }&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/model: методы работы с моделями&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/add/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание пустой модели в указанном сервисе. &amp;lt;small&amp;gt;Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;, &#039;&#039;&#039;spr&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 30%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 70%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/apply/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Применение установленной на рабочих серверах модели. &amp;lt;small&amp;gt;После применения модель становится доступна для штатного режима работы. Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;, &#039;&#039;&#039;spr&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;DELETE/model/delete/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Полностью удаляет модель из системы и со всех управляемых серверов. &amp;lt;small&amp;gt;Доступно для следующих сервисов: smc, see, spr.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/errors/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Запрос на получение списка ошибок модели после тестирования/обучения.  &amp;lt;small&amp;gt;Доступен для сервисов see и smc. Ответ содержит список вложенных списков. В каждом три значения: правильное значение, предсказанное моделью значение и начальные данные (фраза).&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039; — тип ошибок в выводе&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;- train&#039;&#039;&#039; ошибки обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;- test&#039;&#039;&#039; ошибки тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;- mark&#039;&#039;&#039; ошибки авторазметки&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[ [true, predicted, phrase],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;... ]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/export/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Экспорт модели, модель скачивается в виде zip-архива.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл model.zip, где model — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;DELETE/model/handler/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление постобработчика из модели типа future. &amp;lt;small&amp;gt;Более подробно об обработчике см. руководства пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/handler/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отправка файла-постобработчика в указанную модель типа future. &amp;lt;small&amp;gt;Обработчик становится активным сразу после успешной отправки. Более подробно об обработчике см. руководства пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;handler&#039;&#039;&#039; — файл, содержащий программный код python постобработчика&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/handler/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение файла-постобработчика из модели типа future.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл handler.py&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;DELETE/model/handler/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление постобработчика в указанной модели указанного типа.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/handler/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отправка файла-постобработчика в указанную модель указанного типа. &amp;lt;small&amp;gt;Становится активным сразу после успешной отправки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;handler&#039;&#039;&#039; — файл, содержащий программный код python постобработчика&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/handler/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение файла-постобработчика из указанной модели указанного типа.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл handler.py&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/import/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Импортирует модель в черновик (modeltype=future)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;zip-model&#039;&#039;&#039; — zip с файлами модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/info/{servicetype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение информации о всех моделях указанного сервиса. &amp;lt;small&amp;gt;Аналогичен методу GET /info/{servicetype}/{model}, но выводит информацию обо всех моделях.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{    &amp;quot;model1&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;previous&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;current&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;future&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;empty&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      ...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    }    },   ...  }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/info/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение информации о каждом типе (modeltype) указанной модели. &amp;lt;small&amp;gt;Итоговый массив содержит переменные типа modeltype, в каждой из который содержится информация о модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{    &amp;quot;previous&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;current&amp;quot;:  {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;status&amp;quot;: &amp;quot;trained&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ...  },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;future&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;status&amp;quot;: &amp;quot;trained&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ...  }  }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/install/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Установка импортированной или обученной модели на рабочих серверах.&lt;br /&gt;
&amp;lt;small&amp;gt;Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;, &#039;&#039;&#039;spr&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/log/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выводит лог обучения и тестирования модели. &amp;lt;small&amp;gt;Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;training&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;preparing data&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;tokenizing&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/restore/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Откат модели. &amp;lt;small&amp;gt;Делает текущую рабочую модель черновиком (future), рабочие серверы после выполнения данного метода продолжают уже с возвращенной моделью. Схематично действия над modeltype в результате выполнения данного метода можно представить так:&amp;lt;/small&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;current -&amp;gt; future&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;previous -&amp;gt; current&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;null -&amp;gt; previous&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |{&amp;quot;error&amp;quot;:0,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&lt;br /&gt;
&lt;br /&gt;
} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/corpus: работа с данными для обучения моделей&#039;&#039;&#039; =====&lt;br /&gt;
Методы данного класса предназначены только для сервисов smc и see&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перечень заданий автоматической маркировки корпусов. &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{   &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;tasks&amp;quot;: [ {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;: &amp;quot;29d9da98-d6c1-4dc1-bbc9-111309816002&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;taskname&amp;quot;: &amp;quot;test_doc&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {  &amp;quot;id&amp;quot;: &amp;quot;1a5e9bdc-9f98-49d2-84de-1a9bde8fc37c&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;taskname&amp;quot;: &amp;quot;sssss&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;    }  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/result/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Результат выполнения задания на автомаркировку корпуса. &amp;lt;small&amp;gt;Если задание завершено в ответе придет маркированый корпус и время старта и финиша задания&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;started&amp;quot;: &amp;quot;2024-10-09 18:05:51&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;finished&amp;quot;: &amp;quot;2024-10-09 18:05:51&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;corpus&amp;quot;: [[ [], [ [&amp;quot;тэг&amp;quot;],&amp;quot;фраза 1&amp;quot;]],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;small&amp;gt;[ [], [[&amp;quot;тэг&amp;quot;],&amp;quot;фраза 2&amp;quot;]] ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Начать автоматическую разметку корпуса.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;taskname&#039;&#039;&#039; — произвольное имя задания&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;corpus&#039;&#039;&#039; — json строка с размечаемым корпусом[[ [класс1,... классН], текст ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[ [класс1,... классН], текст ]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;marks&#039;&#039;&#039; — json строка с набором меток [    [ метка, [синоним, синоним2 ... синоним Н], порог ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[ метка, [синоним, синоним2 ... синоним Н], порог ]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;appendMarks&#039;&#039;&#039; — &amp;quot;yes&amp;quot; - дополнить разметку, &amp;quot;no&amp;quot; -заменить разметку&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;уникальный id задания&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/status/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получить статус задания на автоматическую разметку корпуса.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — уникальный id задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;started&amp;quot;: &amp;quot;2024-10-09 13:49:46&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;finished&amp;quot;: &amp;quot;2024-10-09 13:49:46&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;progress&amp;quot;: 0&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/stop/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Прервать задание на автоматическую разметку корпуса. &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/copy/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Копирование корпуса данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;srcname&#039;&#039;&#039; — текущее имя&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;dstname&#039;&#039;&#039; — новое имя&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/corpus/delete/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаляет корпус с данными&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/export/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Возвращает текстовый файл с корпусом, &amp;lt;small&amp;gt;содержащий строки вида КЛАСС&amp;lt;TAB&amp;gt;ФРАЗА&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл name.txt&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/get/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Возвращает JSON с данными корпуса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;  [ &amp;quot;тэг&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;фраза&amp;quot;&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;  ],&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;  ...&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/import/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Метод для импорта корпуса данных. &amp;lt;small&amp;gt;Возможен как из текстового файла со строками вида КЛАСС&amp;lt;TAB&amp;gt;ФРАЗА (доступно для smc и see), так и из логов работы системы (только для smc). Если на вход поступил файл csv, происходит импорт из файла, в противном случае — из логов.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv&#039;&#039;&#039; — файл данных&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;startDate&#039;&#039;&#039; — дата начала выборки, YYYY-MM-DD&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;stopDate&#039;&#039;&#039; — дата окончания выборки, YYYY-MM-DD&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — имя модели, из логов которой будет произведен импорт&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;limit&#039;&#039;&#039; — числовое ограничение строк импорта&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/list/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Возвращает список всех корпусов данных для указанного типа сервиса &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[ &amp;quot;корпус1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;корпус2&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ...]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/put/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перезаписывает корпус отправленным массивом данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — строка формата json с данными. Аналогична выводу метода GET /get/{servicetype}&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/rename/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Переименование корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;srcname&#039;&#039;&#039; — текущее имя&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;dstname&#039;&#039;&#039; — новое имя&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/marks: работа с наборами меток в smc&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление набора менток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; —список меток в формате: [ [  &amp;quot;метка1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним1&amp;quot;, &amp;quot;синоним2&amp;quot;, &amp;quot;синоним3&amp;quot;, &amp;quot;синонимN&amp;quot; ], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],  [ &amp;quot;меткаN&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним11&amp;quot;, &amp;quot;синоним21&amp;quot;,&amp;quot;синоним31&amp;quot;, &amp;quot;синонимN1&amp;quot;], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ] ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — имя создаваемого набора&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;132310fa-98c7-4b12-896f-ff113827d077&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/marks/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление набора меток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/marks/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение набора меток в виде строк &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;метка1    синоним1,синоним2,синоним3,синонимN     0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;меткаN    синоним11,синоним21,синоним31,синонимN1    0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/marks/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение набора меток в виде json&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;quot;метка1&amp;quot;, [ &amp;quot;синоним1&amp;quot;, &amp;quot;синоним2&amp;quot;, &amp;quot;синоним3&amp;quot;, &amp;quot;синонимN&amp;quot;  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;quot;меткаN&amp;quot;, [&amp;quot;синоним11&amp;quot;,&amp;quot;синоним21&amp;quot;, &amp;quot;синоним31&amp;quot;,&amp;quot;синонимN1&amp;quot;],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ]  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/import/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Импорт в существующий набор меток из файла. &amp;lt;small&amp;gt;Набор будет переписан из файла&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv&#039;&#039;&#039; — файл &amp;quot;метка&amp;quot;ТАБ&amp;quot;синонимы через запятую&amp;quot;ТАБ&amp;quot;достоверность(число от 0 до 1)&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/marks/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка наборов меток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;result&amp;quot;: [    { &amp;quot;id&amp;quot;: &amp;quot;416fbe08-19e9-453c-b140-37008a08a76c&amp;quot;,&amp;quot;name&amp;quot;: &amp;quot;test&amp;quot; },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;quot;id&amp;quot;: &amp;quot;16e77fa2-7c4d-47f9-8644-6385876525d6&amp;quot;,&amp;quot;name&amp;quot;: &amp;quot;Рыжик&amp;quot; },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;quot;id&amp;quot;: &amp;quot;132310fa-98c7-4b12-896f-ff113827d077&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;test&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/put/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Импорт в существующий набор меток из json строки. &amp;lt;small&amp;gt;Набор будет переписан&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — список меток в формате: [ [  &amp;quot;метка1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним1&amp;quot;, &amp;quot;синоним2&amp;quot;, &amp;quot;синоним3&amp;quot;, &amp;quot;синонимN&amp;quot; ], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],  [ &amp;quot;меткаN&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним11&amp;quot;, &amp;quot;синоним21&amp;quot;,&amp;quot;синоним31&amp;quot;, &amp;quot;синонимN1&amp;quot;], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ] ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор заменяемого набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/rename/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Присваивает новое наименование существующему набору меток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — новое имя набора&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/spr: работа с сервисом SPR&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{{:SPR. Руководство пользователя}}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/smc: работа с сервисом SMC&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{{:SMC. Руководство пользователя}}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/see: работа с сервисом SEE&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/entities/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Поиск сущностей. &amp;lt;small&amp;gt;Вернется массив со всеми моделями, в которых были найдены сущности (модели для поиска указываются в поле id). Каждая переменная с названием модели будет содержать список всех найденных сущностей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;model — идентификатор[ы] модели. Может быть указано несколько через запятую, тогда запрос будет обработан всеми указанными моделями.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;text — текст для анализа.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;similarity — порог похожести найденной сущности на эталонные, %. По умолчанию 70.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ ID-модели: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{ &#039;&#039;&#039;position&#039;&#039;&#039;: 0, # позиция слова начала фрагмента, определяющего сущность&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;confidence&#039;&#039;&#039;: 1, #вероятность правильного определения сущности&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;text: текст сущности,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;calculated&#039;&#039;&#039;: vaktsinatsiya # поле, содержащее значение сущности, использованный при обучении модели  }, {...}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]  }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/stop/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановка обучения модели&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/train/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Запуск обучения модели &#039;&#039;&#039;&amp;lt;small&amp;gt;future&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;corpus&#039;&#039;&#039; — название корпуса с данными&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;noise&#039;&#039;&#039; — уровень шума для генерации синтезированных данных для обучения модели, от 1 до 5, по умолчанию 0&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/sbs: работа с сервисом SBS&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/analyze&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение аналитических метаданных из голосового фрагмента. &amp;lt;small&amp;gt;Вернется массив с метаданными голосового фрагмента.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; &amp;lt;span data-darkreader-inline-color=&amp;quot;&amp;quot; data-darkreader-inline-bgcolor=&amp;quot;&amp;quot;&amp;gt;—&amp;lt;/span&amp;gt; файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{ age: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   class: 20-29, # {&amp;quot;00-05&amp;quot;, &amp;quot;06-12&amp;quot;, &amp;quot;13-19&amp;quot;, &amp;quot;20-29&amp;quot;, &amp;quot;30-39&amp;quot;, &amp;quot;40-49&amp;quot;,   &amp;quot;50-59&amp;quot;, &amp;quot;60+&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   confidence: 0.99 },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;emotion: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   class: SADNESS, # { &amp;quot;ANGER&amp;quot;, &amp;quot;BORE&amp;quot;, &amp;quot;DISAPPOINTMENT&amp;quot;, &amp;quot;DISGUST&amp;quot;, &amp;quot;EXCITEMENT&amp;quot;, &amp;quot;FEAR&amp;quot;, &amp;quot;NEUTRAL&amp;quot;, &amp;quot;PAIN&amp;quot;, &amp;quot;PLEASURE&amp;quot;, &amp;quot;SADNESS&amp;quot;, &amp;quot;SUPRISE&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   confidence: 0.99 },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;gender: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   class: FEMALE, # { &amp;quot;MALE&amp;quot;, &amp;quot;FEMALE&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   confidence: 0.99 }  }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/noiselevel&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Возвращает процент зашумленности аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Пример ответа:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: 0, message: &#039;success&#039;, &#039;noise&#039;: 0.79 }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/search&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Поиск говорящего по базе слепков.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; — порог похожести при поиске, от 0 до 1.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то поиск не будет осуществлен, если распознанный текст будет сильно отличаться от text.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;Пример ответа:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{ error: 0, speaker: Ivan, confidence: 0.79 }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/speakers/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление слепка в базу.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — имя говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для создания оцифрованного представления говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то поиск не будет осуществлен, если распознанный текст будет сильно отличаться от text. Для использования необходим сервис spr.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;251f78d7-ee50-4ba1-a669-ee89fdaf5433&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/sbs/speakers/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление слепка из базы.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; &amp;lt;span data-darkreader-inline-color=&amp;quot;&amp;quot; data-darkreader-inline-bgcolor=&amp;quot;&amp;quot;&amp;gt;—&amp;lt;/span&amp;gt; идентификатор говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/sbs/speakers/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка всех слепков.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;[ {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;251f78d7-ee50-4ba1-a669-ee89fdaf5433&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;наименование слепка&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  }]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/speakers/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Дообучение слепка.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор слепка&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то слепок не будет дообучен, если распознанный текст будет сильно отличаться от text. Для использования необходим сервис spr.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;Success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/verify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Сравнение wav-файла cо слепком в базе. &amp;lt;small&amp;gt;В ответе - вероятность совпадения от 0 до 1.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; —  имя говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для создания оцифрованного представления говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, но слепок не будет создан, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0, &amp;quot;confidence&amp;quot;: 0.78 }&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/tts: методы работы с сервисом tts&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/export&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка пользовательского словаря ударений.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;Простой текст — строки со словом и его интерпретацией с ударением.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/get&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка пользовательского словаря ударений в виде json.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[ [   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot;],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[   &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot;],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;...]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/import&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузка пользовательского словаря ударений. &amp;lt;small&amp;gt;Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;csv file&#039;&#039;&#039; — файл строк со словом и его интерпретацией с ударением.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/put&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузка пользовательского словаря ударений в виде json. &amp;lt;small&amp;gt;Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — строка json следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[ &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/normalize&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Нормализация текста &amp;lt;small&amp;gt;— перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы), например «в понедельник 10.10.2025» -&amp;gt; «в понедельник дес+ятого октябр+я две т+ысячи дв+адцать п+ятого г+ода».&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  фраза для нормализации&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;нормализованный текст&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/revoice/{revoicer}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Модификация или искажение голоса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  аудиофайл для обработки&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;revoicer&#039;&#039;&#039; —  модель модификации голоса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;wav-файл с модифицированным (искаженным) голосом&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/revoicers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перечень моделей модификации или искажения голоса. &amp;lt;small&amp;gt;Модели поставляются только в составе дистрибутива. Модель distortion — искажение голоса, делает голос неузнаваемым и речь неразборчивой.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  &amp;quot;distortion&amp;quot; ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/synthesize/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Синтез звукового файла из текста/&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;ID&#039;&#039;&#039; — имя модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст синтезируемой фразы&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;rate&#039;&#039;&#039; — скорость речи&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;pitch&#039;&#039;&#039; — высота (тон)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;volume&#039;&#039;&#039; — громкость&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;frequency&#039;&#039;&#039; — частота дискретизации (по умолчанию 22050 Гц)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;format&#039;&#039;&#039; - формат файла результата (wav, opus, ogg, mp3)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;link&#039;&#039;&#039; - если 1, то вернуть только ссылку на файл&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;файл с синтезированой фразой&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/qas: методы работы с сервисом qas&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/ask&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Метод генерирует ответ на поставленный вопрос на основе информации из документов в базе. &amp;lt;small&amp;gt;Ответ на вопрос генерируется на основе информации, содержащейся в одном или нескольких документах. Документы должны быть в текстовом формате. Ответ возвращается в формате JSON, его можно скачать. Если метод не смог найти ответ, возвращается код ошибки и сообщение.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст вопроса, на основе которого будут искаться фрагменты.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; — id канала&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useCache&#039;&#039;&#039; — использовать кешированные ответы&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;возможные варианты:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot; не использовать&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;all&#039;&#039;&#039;&amp;quot; использовать все&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;checked&#039;&#039;&#039;&amp;quot; использовать только проверенные&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useGPT&#039;&#039;&#039; — использовать генеративную сеть для поиска ответов в документах. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;addAlias&#039;&#039;&#039; — добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; — максимальное количество документов одной категории для формирования контекста при генерации ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;similarityArea -&#039;&#039;&#039; определяет допустимую разницу между максимальной и минимальной релевантностью фрагментов при фильтрации результатов&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;text&amp;quot;: &amp;quot;Здесь будет текст ответа&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/cachemaker/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Генерация ответов на вопросы в кэше.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - категория для которой генерируются ответы&amp;lt;/small&amp;gt;*&amp;lt;small&amp;gt;&#039;&#039;&#039;mode&#039;&#039;&#039; - режим генерации ответов, возможные значения:&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;- paraphrase&#039;&#039;&#039; - генерирует вариации ответов перефразированием уже проверенных ответов, если таковые имеются на вопросе&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;- generate&#039;&#039;&#039; - генерирует кэш через разные ответы на каждый вопрос по документации&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;mode&#039;&#039;&#039; — режим генерации ответов, возможные значения:&#039;&#039;&#039;- paraphrase&#039;&#039;&#039; - генерирует вариации ответов перефразированием уже проверенных ответов, если таковые имеются на вопросе&#039;&#039;&#039;- generate&#039;&#039;&#039; — генерирует кэш через разные ответы на каждый вопрос по документации&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;option&#039;&#039;&#039; - {all | empty} обработать все вопросы  или только не содержащие ответов&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - если указан код категории, то генерация только для этой категории&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;variants&#039;&#039;&#039; - количество ответов, от 1 до 9&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - заменить ответы на сгенерированные&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; - максимальное количество документов одной категории для формирования контекста при генерации ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для генерации, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/cachemaker/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Состояние генерации ответов на вопросы в кэше. &amp;lt;small&amp;gt;Статусы: &#039;&#039;&#039;started&#039;&#039;&#039;, &#039;&#039;&#039;stopped&#039;&#039;&#039;, если были ошибки, поле ответа &#039;&#039;&#039;error&#039;&#039;&#039; будет содержать код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;status&amp;quot;: &amp;quot;started&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;progress&amp;quot;: 33.33}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/cachemaker/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановить генерацию ответов на вопросы в кэше.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/category/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавить категорию с указанным именем. &amp;lt;small&amp;gt;В ответе — id созданной категории или сообщение об ошибке:&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — наименование категории&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;ad895085-2e48-439a-831e-b5f699b6a54a&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/category/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удалить категорию. &amp;lt;small&amp;gt;В ответе или сообщении об успехе, или ошибке, если категория используется или не существует.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор категории&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{   &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/category/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получить список категорий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;В ответе json с именами и id категорий&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/category/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменить категорию. &amp;lt;small&amp;gt;У категории пока есть только наименование, поэтому метод только переименовывает категорию&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор категории&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — наименование категории&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/channel/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление канала. &amp;lt;small&amp;gt;В ответе id созданного канала или сообщение об ошибке&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — наименование канала&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;a46fb887-5d98-41e0-8299-bcc94f615e91&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/channel/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление канала&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор канала&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/channel/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получить список всех каналов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;channels&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;1&amp;quot;,      &amp;quot;name&amp;quot;: &amp;quot;voice&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;56442779-e871-43fd-ae4d-caf4ab6d09b9&amp;quot;,      &amp;quot;name&amp;quot;: &amp;quot;канал++&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;0&amp;quot;,      &amp;quot;name&amp;quot;: &amp;quot;default&amp;quot;    }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/channel/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменить канал. &amp;lt;small&amp;gt;У канала пока есть только наименование, поэтому метод только переименовывает канал&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — новое наименование канала&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор канала&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/chat&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Поиск ответа за пределами документов. &amp;lt;small&amp;gt;На стадии разработки, не используется.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text -&#039;&#039;&#039; текст вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;history&#039;&#039;&#039; - история вопросов, будет склеена с text при запросе&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для ответа, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useInternalTemplate&#039;&#039;&#039; - использовать ли шаблон запроса. &#039;&#039;&#039;no&#039;&#039;&#039; - не использовать, либо код шаблона запроса к LLM. Необязательный параметр. Если не указан, используется шаблон по умолчанию.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;params&#039;&#039;&#039; - необязательный параметр. JSON с произвольными параметрами запроса к LLM. Описание параметров см. в [[QAS. Руководство администратора|руководстве администратора]].&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Пример ответа на вопрос &amp;quot;как пройти в библиотеку&amp;quot;&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;text&amp;quot;: &amp;quot;1. Проверить время работы библиотеки (обычно от 9 до 20)\n2. Проверить местоположение библиотеки на карте или с помощью сервиса Google Maps\n3. Убедиться, что у вас есть необходимые документы для входа (паспорт, карта члена библиотеки и т.д.)\n4. Посетить библиотеку по адресу: [адрес библиотеки]\n5. Проверить правила поведения в библиотеке перед входом&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/cleandoc/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Очистка документа от лишней информации &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text -&#039;&#039;&#039; текст документа&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для ответа, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;doc_id&#039;&#039;&#039; - необязательный параметр, ID документа&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; | &#039;&#039;&#039;GET/qas/cleandoc/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Остановка очистки документа для конкретного пользователя&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; | &#039;&#039;&#039;GET/qas/cleandoc/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Статус очистки документа для конкретного пользователя&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;status&amp;quot;: stopped | started,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;progress&amp;quot;: 33.3,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: string,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;place&amp;quot;: number, #место в очереди&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;queue&amp;quot;: True | False #состояния - в очереди или в процессе очистки&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; | &#039;&#039;&#039;GET/qas/cleandoc/result&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Результат очистки документа для конкретного пользователя&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;doc_id&#039;&#039;&#039; - необязательный параметр, ID документа&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;status&amp;quot;: &amp;quot;stopped&amp;quot;,&amp;quot;text&amp;quot;: &amp;quot;очищенный текст&amp;quot;,&amp;quot;doc_id&amp;quot;: &amp;quot;ID документа&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузить текстовый документ. &amp;lt;small&amp;gt;Добавляет документ в базу. В ответе — id созданного документа или сообщение об ошибке.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;title&#039;&#039;&#039; — заголовок документа&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — категория документа&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039;&amp;lt;/small&amp;gt; — &amp;lt;small&amp;gt;файл документа&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;ebe2bc57551c2d17f892987d1f62306d&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/doc/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Удаление документа&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор документа&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/doc/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка текста документа&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор документа&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;﻿Здесь будет полный текст документа&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/doc/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка имеющихся документов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;docs&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {id&amp;quot;: &amp;quot;d4999cdee5ad1faf2cb3066ea1b5e96b&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;PVE. Установка сервисного пакета окружения&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Техническая поддержка&amp;quot; },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;quot;id&amp;quot;: &amp;quot;759042575b965745b9d2af869bca1740&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;UPS. Руководство администратора&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Техническая поддержка&amp;quot;}      ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Обновление документа. &amp;lt;small&amp;gt;В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — json c изменяемыми параметрами документа&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  title: string,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  category: string,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  text: string&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;параметр который не меняется может отсутствовать в json&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор документа.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/replace&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Замена подстроки в текстах категории &amp;lt;small&amp;gt;Будут заменены все найденные вхождения&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;search&#039;&#039;&#039; - искомая подстрока, будет заменена&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - текст замены&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - в какой категории искать&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION,&amp;quot;replacements&amp;quot;:INT}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/modifyphrases&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Массовая замена текста в указанных фразах.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;phrases&#039;&#039;&#039; - JSON массив с изменяемым фразами следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;doc_id&#039;: &#039;ad895085-2e48-439a-831e-b5f699b6a54a&#039;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;phrase_id&#039;: 5,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;text&#039;: &#039;новый текст&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/gpt/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Получение списка доступных(установленных) GPT моделей&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;models&amp;quot;: [&amp;quot;default&amp;quot; ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление вопроса. &amp;lt;small&amp;gt;В случае успеха метод вернет id вопроса, в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;question&#039;&#039;&#039; —  текст вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; —  id категории к которой относится вопрос&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answers&#039;&#039;&#039; —  ответы в виде Json:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[ { &amp;quot;checked&amp;quot;: true, &amp;quot;channel&amp;quot;: &amp;quot;0&amp;quot;, &amp;quot;answer&amp;quot;: &amp;quot;ответ&amp;quot; } ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;aliases&#039;&#039;&#039; —  вопросы к которым подходят ответы из блока answers в виде json:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;quot;вопрос&amp;quot;,&amp;quot;еще вопрос&amp;quot;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;527be9f0-f773-4a3e-bd0b-81b40a061d0d&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/append/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавляет алиасы/кандидаты к другому вопросу&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;aliases&#039;&#039;&#039; —  JSON list с синонимами&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;candidates&#039;&#039;&#039; JSON list с кандидатами&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор вопроса к которому добавить синонимы и(или) кандидаты&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/approve/{destination_id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перемещает кандидаты в формулировки другого вопроса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;candidates&#039;&#039;&#039; —  json массив c текстами кандидатов&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;destination_id&#039;&#039;&#039; —  идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/delete/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление списка вопросов или ответов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;questions&#039;&#039;&#039; — json строка с перечнем id&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039; — выбор, удалять вопросы или ответы (&#039;&#039;&#039;questions&#039;&#039;&#039;, &#039;&#039;&#039;answers&#039;&#039;&#039;)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/question/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление вопроса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/question/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Получение вопроса вместе с ответами и синонимами вопроса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;answers&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {   &amp;quot;checked&amp;quot;: true,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;channel&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;answer&amp;quot;: &amp;quot;ответ&amp;quot;    }  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;aliases&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;вопрос&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;синоним вопроса&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;еще синоним вопроса&amp;quot;  ]   }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/question/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Получение списка вопросов.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;question&#039;&#039;&#039; —  фильтр вопросов, ограничение списка по вопросам&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — фильтр категорий&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answer&#039;&#039;&#039; —  фильтр ответов, ограничение списка по ответам&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;created&#039;&#039;&#039; — фильтр по дате создания, оставляет вопросы, созданные &#039;&#039;&#039;не ранее&#039;&#039;&#039; указанной даты&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;createdBefore&#039;&#039;&#039; — фильтр по дате создания, оставляет вопросы, созданные &#039;&#039;&#039;не позже&#039;&#039;&#039; указанной даты&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;modified&#039;&#039;&#039; — фильтр по дате изменения, оставляет вопросы, &#039;&#039;&#039;изменённые в точности&#039;&#039;&#039; в указанную дату&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;onlyNew&#039;&#039;&#039; - фильтр, оставляющий только новые (необработанные) вопросы&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;questions&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;question&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;incomplete&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;aliases&amp;quot;: [],&amp;quot;candidates&amp;quot;: [],&amp;quot;category&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;checked&amp;quot;: 0,&amp;quot;unchecked&amp;quot;: 0}&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;question&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;incomplete&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;aliases&amp;quot;: [],&amp;quot;candidates&amp;quot;: [],&amp;quot;category&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;checked&amp;quot;: 0,&amp;quot;unchecked&amp;quot;: 0}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Модификация вопроса. &amp;lt;small&amp;gt;Позволяет заменить как все параметры так и отдельные&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json c измененными параметрами, пример полного:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{   &amp;quot;answers&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;checked&amp;quot;: true,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;channel&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;answer&amp;quot;: &amp;quot;новый ответ&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;question&amp;quot;:&amp;quot;новый вопрос&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;category&amp;quot;: &amp;quot;a3801cc0-f8e5-4f3b-bb10-e42148cd772b&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;aliases&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;новый вопрос&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;синоним&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;еще синоним&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/replace&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Поиск и замена подстроки. Будут заменены все найденные вхождения&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;search&#039;&#039;&#039; - искомая подстрока, будет заменена&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - текст замены&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - в какой категории искать&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION,&amp;quot;replacements&amp;quot;:INT}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/modifyanswers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Массовая замена текста в указанных ответах.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;phrases&#039;&#039;&#039; - JSON массив с изменяемым ответами следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;question_id&#039;: &#039;ad895085-2e48-439a-831e-b5f699b6a54a&#039;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;answer_id&#039;: 5,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;text&#039;: &#039;новый текст&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/paraphrase&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Генерация фраз-синонимов для предложения.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text -&#039;&#039;&#039; предложение&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для ответа, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;, &amp;quot;texts&amp;quot;: [ &amp;quot;перефразированный текст 1&amp;quot;, ... ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionlist/answers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отображает лог массовой обработки вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;на выходе :&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;массив из объектов {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  error: number;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  question: string;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  answer: string;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  confidence: number | null;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/questionlist/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Старт массовой обработки вопросов из файла&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;questions&#039;&#039;&#039; - файл с вопросами&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;format&#039;&#039;&#039; - в json или в text файл с вопросами&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; — id канала&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useCache&#039;&#039;&#039; — использовать кешированные ответы&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;возможные варианты:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;— &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot; не использовать&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;all&#039;&#039;&#039;&amp;quot; использовать все&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;checked&#039;&#039;&#039;&amp;quot; использовать только проверенные&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useGPT&#039;&#039;&#039; — использовать генеративную сеть для поиска ответов в документах. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; - максимальное количество документов одной категории для формирования контекста при генерации ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;addAlias&#039;&#039;&#039; — добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; - порог достоверности при обработке&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionlist/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Статус массовой обработки вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{     error: string;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     status: &#039;started&#039; | &#039;stopped&#039;;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     progress: number; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionlist/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановка массовой обработки вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/mismatchsearcher/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Старт поиска несоответствий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt; &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM для анализа на несоответствия, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;asktemplate&#039;&#039;&#039; - ID шаблона запроса к LLM для генерации ответов по документу, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answers&#039;&#039;&#039; - тип вопросов, по которым осуществляется поиск несоответствий, необязательный параметр, по умолчанию «all»&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/mismatchsearcher/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Статус поиска несоответствий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{     error: string;&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;     status: &#039;started&#039; | &#039;stopped&#039;;&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     progress: number; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/mismatchsearcher/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановка поиска несоответствий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/mismatchsearcher/mismatches&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |Статус получения результатов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;quot;mismatches&amp;quot;: [{&amp;quot;question_id&amp;quot;: &amp;quot;ID вопроса&amp;quot;, &amp;quot;question&amp;quot;: &amp;quot;вопрос&amp;quot;, &amp;quot;category&amp;quot;: &amp;quot;ID категории&amp;quot;,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;answer_id&amp;quot;: &amp;quot;ID ответа&amp;quot;, &amp;quot;answer&amp;quot;: &amp;quot;ответ на вопрос {question}&amp;quot;,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;description&amp;quot;: &amp;quot;результат поиска&amp;quot;, &amp;quot;error&amp;quot; : string,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;context&amp;quot;: &amp;quot;фрагмент документа&amp;quot;, &amp;quot;generatedText&amp;quot; : &amp;quot;Результат генерации&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}, ... ]&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionmaker/start&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |Запуск генерации вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - ID категории, по которой будет происходить генерация вопросов&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;doc&#039;&#039;&#039; - ID документа, по которому будет происходить генерация вопросов&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;generateAnswers&#039;&#039;&#039; - флаг для генерации ответов вместе с вопросами &#039;&#039;&#039;[yse|no]&#039;&#039;&#039;, по умолчанию &#039;&#039;&#039;«no»&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM для анализа генерации вопросов, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionmaker/status&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |Статус генерации вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: string,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;status&amp;quot;: &#039;started&#039; | &#039;stopped&#039;,&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;progress&amp;quot;: 33.3&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionmaker/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Прервать генерацию.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/search&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Поиск фрагментов содержащих ответ&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039;  — текст запроса&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — категория (раздел) знаний. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; - максимальное количество документов одной категории для формирования контекста при поиске ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;similarityArea -&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;определяет допустимую разницу между максимальной и минимальной релевантностью фрагментов при фильтрации результатов&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  Фрагмент 1:Здесь будет текст найденного фрагмента&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  Фрагмент 2:Здесь будет текст найденного фрагмента&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;fragments&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;3a386b0a9e0e19efb0870685e1d0b484&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;Заголовок документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Категория документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;text&amp;quot;: &amp;quot;Здесь будет текст найденного фрагмента&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;44fd73ea1ac63f32cf18d79c854dbfe2&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;Заголовок документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Категория документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;text&amp;quot;: &amp;quot;Здесь будет текст найденного фрагмента&amp;quot;    }  ]   }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/summarization_template/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавление шаблона протокола. В случае успеха метод вернет id шаблона, в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;options&#039;&#039;&#039; — json словарь с именами разделов и их описанием&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,  &amp;quot;id&amp;quot;: &amp;quot;527be9f0-f773-4a3e-bd0b-81b40a061d0d&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETEqas/summarization_template/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление шаблона.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/summarization_template/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение json с шаблоном.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;На выходе словарь, основные элементы: data — словарь с шаблоном, остальные элементы этого уровня служебные. В data: id, name (идентификатор и наименование).И options — словарь с разделами шаблона.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/summarization_template/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение всех шаблонов.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;На выходе словарь, основной элемент — templates, содержит список шаблонов (каждый шаблон как в выдаче метода GET /qas/summarization_template/get/{id}).&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/summarization_template/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Изменение шаблона.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — словарь как в выдаче метода GET/qas/summarization_template/get/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/summarize&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Построение протокола или краткого содержания совещания&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст совещания&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;options&#039;&#039;&#039; — словарь с разделами протокола, где ключ — название раздела, значение - краткая инструкция к формированию раздела.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую GPT модель использовать для построения протокола, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;file&#039;&#039;&#039; — файл с текстом (текст, csv, pdf или текстовые офисные документы)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;summary&amp;quot;: &amp;quot;здесь текст протокола&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/replace&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |корректировка информации в тексте при помощи LLM&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;oldinfo&#039;&#039;&#039; — старая информация&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;newinfo&#039;&#039;&#039; — новая информация&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;model&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;- какую модель использовать для генерации, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt; &lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;итоговый текст&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/replacementlist&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |список всех фраз в документах и ответов в вопросах, подлежащих правке. &amp;lt;small&amp;gt;Векторно ищет все фрагменты по указанному тексту.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — категория, в которой производится векторный поиск&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; — порог похожести, необязательный параметр, если не указан, берется из конфигурационного файла (fragments -&amp;gt; threshold)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answers&#039;&#039;&#039; - тип вопросов, по которым осуществляется поиск для внесения правок, необязательный параметр, по умолчанию «all»&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;docs&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;answers&amp;quot;: []&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/prompt/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Добавление шаблона запроса к LLM. &amp;lt;small&amp;gt;В случае успеха метод вернет id вопроса, в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039;  — тип шаблона&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;- chat - произвольный чат,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- ask - запрос к документам,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- cleandoc - очистка документа, форматирование либо другое преобразование,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- similars_generator - генерация синонимичных которотких фраз,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- paraphrase - перефразировка текста,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- summarize - суммаризация текста (формирование краткой выдержки из текста),&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- question_generator - генерация вопросов по тексту,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- replace - замена информации в тексте, mismatch - поиск несоответствий&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039;  — название шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;prompt&#039;&#039;&#039; — текст шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;postprompt&#039;&#039;&#039; - текст шаблона постобработки результатов (нужен только для summarize)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;params&#039;&#039;&#039; - параметры запроса к LLM&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;small&amp;gt;max_tokens&amp;quot;: 4096,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;top_k&amp;quot;: 30,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;top_p&amp;quot;: 0.5,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;temperature&amp;quot;: 0.5,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;repeat_penalty&amp;quot;: 1.3&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;527be9f0-f773-4a3e-bd0b-81b40a061d0d&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/prompt/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Удаление шаблона. &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/prompt/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Получение шаблона.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;prompt&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;cleandoc&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;cleandoc&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;isDefault&amp;quot;: false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;Чистка документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;prompt&amp;quot;: &amp;quot;Удали сноски, колонтитуры и мусорную информацию из текста ниже. Не удаляй ничего лишнего. Не добавляй ничего, только информация из текста. Выведи только конечный результат без отчета о результате.\n###Текст:\n{context}\n\n###Конечный результат:&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;postprompt&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_modified&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_created&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_modified_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_created_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/prompt/list&#039;&#039;&#039; &lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Получение списка шаблонов.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;prompts&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;: &amp;quot;chat&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;type&amp;quot;: &amp;quot;chat&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;isDefault&amp;quot;: false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;name&amp;quot;: &amp;quot;Чат&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;prompt&amp;quot;: &amp;quot;Ты спокойный вежливый консультант.[\n\n###История переписки:\n{history}]\n\n###Вопрос: {question}\n###Ответ:&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;postprompt&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_modified&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_created&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_modified_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_created_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/prompt/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Модификация шаблона. Позволяет заменить как все параметры, так и отдельные.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — json c измененными параметрами:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ &amp;quot;name&amp;quot;: &amp;quot;новое имя&amp;quot; }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/ses: методы работы с роботом&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;для некоторых путей, где используется {robot_id} - это обращение к версии черновика, чтобы обращаться к продовой версии - нужен постфикс &amp;quot;_prod&amp;quot;, для бэкапа &amp;quot;_backup&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;актуально для методов&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получения данных робота  GET/ses/robot/get/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- применение настроек робота GET/ses/robot/commit/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- экспорт робота GET/ses/robot/export/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- список скриптов GET/ses/robot/script/list/{robot}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получение скрипта GET/ses/robot/script/get/{robot}/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- список ЭД GET/ses/robot/data/list/{robot}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получение ЭД GET/ses/robot/data/get/{robot}/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- список КТ GET/ses/robot/endpoint/list/{robot}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получение КТ GET/ses/robot/endpoint/get/{robot}/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- метода ask (отладчика) POST/ses/ask/{robot_id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- данные сессии (отладчика) GET/ses/session/{robot_id}/{session_id}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/audio/{uuid}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение аудио-файла из архива диалогов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;аудио-файл с расширением opus&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/dialog/{uuid}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение диалога из архива&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;dialog&amp;quot;: [{&amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;,                  &amp;quot;robot&amp;quot;: &amp;quot;...&amp;quot;,                &amp;quot;channel&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                  &amp;quot;unknown&amp;quot;: true/false,        &amp;quot;closed&amp;quot;: true/false,        &amp;quot;endpoint&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                  &amp;quot;answered&amp;quot;: true/false,    &amp;quot;models&amp;quot;: [...],    &amp;quot;variables&amp;quot;: {},   &amp;quot;current&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                         &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;,           &amp;quot;qas&amp;quot;: &amp;quot;&amp;quot;,           &amp;quot;category&amp;quot;: &amp;quot;...&amp;quot;,           &amp;quot;entry&amp;quot;: [...],&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                         &amp;quot;nearest&amp;quot;: &amp;quot;...&amp;quot;,    &amp;quot;missingRunData&amp;quot;: [...],     &amp;quot;waitingRunData&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                         &amp;quot;answered&amp;quot;: true/false,    &amp;quot;lastreply&amp;quot;: &amp;quot;...&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                  &amp;quot;request&amp;quot;: {&amp;quot;datetime&amp;quot;: &amp;quot;...&amp;quot;,           &amp;quot;message&amp;quot;: &amp;quot;&amp;quot;,           &amp;quot;data&amp;quot;: [...]},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                 &amp;quot;reply&amp;quot;: {&amp;quot;answers&amp;quot;: [{&amp;quot;messages&amp;quot;: [...],    &amp;quot;voice&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                                     &amp;quot;interruptible&amp;quot;: true/false,    &amp;quot;file&amp;quot;: null}],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;                  &amp;quot;datetime&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;answered&amp;quot;: true/false}}]}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка диалогов из архива&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;startdate&#039;&#039;&#039; - начало временного интервала в формате date %Y-%m-%d %H:%M&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;enddate&#039;&#039;&#039; - конец временного интервала в формате date %Y-%m-%d %H:%M&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;phone&#039;&#039;&#039; - номер телефона&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;variable&#039;&#039;&#039; - переменная в формате variable=value&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - фрагмент текста в любом сообщении&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - id элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; - название канала (коннектора)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{&amp;quot;uuid&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;datetime&amp;quot;: &amp;quot;...&amp;quot;,&amp;quot;phone&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt; &amp;quot;channel&amp;quot;: [...], &amp;quot;robot&amp;quot;: [&amp;quot;...&amp;quot;]}]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/waveform/{uuid}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Служебный метод для визуализации полученного из архива диалогов аудио-файла, содержит пики сигнала.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[0.016,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;0.015,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;0.01&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/ask/{robot_id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение ответа на запрос пользователя. &amp;lt;small&amp;gt;Метод для отладки робота&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст запроса&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; - id канала&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;connector&#039;&#039;&#039; - имя коннектора&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;session&#039;&#039;&#039; - uuid сессии, если это не первый запрос в сессии&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;tts&#039;&#039;&#039; - вернуть результат синтеза (1- вернуть, 0 - не выполнять синтез)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;variables&#039;&#039;&#039; - словарик с переменными {&amp;quot;переменная1&amp;quot;:&amp;quot;значение&amp;quot;,&amp;quot;переменнаяN&amp;quot;:&amp;quot;значение&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;handler&#039;&#039;&#039; - python скрипт для изменения ответов метода под требования внешних систем, подробнее в следующем разделе. в поле имя файла без расширения.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;restartClosed&#039;&#039;&#039; - перезагрузить сессию при её закрытии с новым id (1 - перезагрузить, 0 - не перезагружать)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;audio&#039;&#039;&#039; - аудиофайл с запросом, текст запроса будет получен распознаванием audio&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;document&#039;&#039;&#039; - документ для последующей обработки&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot_id&#039;&#039;&#039; - id робота&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;endpoint&#039;&#039;&#039; - id точки, в которую передать управление диалогом (необязательный параметр, используется для исходящих оповещений)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;   &amp;quot;question&amp;quot;: &amp;quot;Вопрос&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   &amp;quot;answer&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {    &amp;quot;messages&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                   &amp;quot;ответ&amp;quot;      ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;           &amp;quot;voice&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;           &amp;quot;interruptible&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;file&amp;quot;: &amp;quot;&amp;quot;    }  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;session&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;uuid&amp;quot;: &amp;quot;&amp;quot;   }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание нового робота. &amp;lt;small&amp;gt;На выходе id созданного робота или сообщение об ошибке&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; —  имя нового робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;2fd2f909-2069-4b20-a725-3a598c83f886&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/apply/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Применение робота. &amp;lt;small&amp;gt;Переводит черновик робота в статус prod. Если до этого был prod вариант —  становится backup.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/cleardraft/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Обнуление черновика рабочей версией робота&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/commit/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Применение текущих изменений настроек робота. &amp;lt;small&amp;gt;Применимо ко всем версиям (черновик, рабочая, резервная копия)&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/data/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление элемента данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/data/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление элемента данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/data/get/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение настроек элемента данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,                &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;id ЭД&amp;quot;,         &amp;quot;name&amp;quot;: &amp;quot;Имя ЭД&amp;quot;,          &amp;quot;comment&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;,     &amp;quot;rtype&amp;quot;: &amp;quot;report&amp;quot;,     &amp;quot;model&amp;quot;: &amp;quot;Имя модели&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;param&amp;quot;: &amp;quot;Ответ&amp;quot;,        &amp;quot;script&amp;quot;: &amp;quot;&amp;quot;,              &amp;quot;weight&amp;quot;: 3,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;slaveData&amp;quot;: [],                 &amp;quot;getOnlyAsNearest&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;injectToMessage&amp;quot;: true/false,        &amp;quot;longWaiting&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;dataWaiting&amp;quot;: [],          &amp;quot;actions&amp;quot;: {             &amp;quot;alone&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;        &amp;quot;default&amp;quot;: [{&amp;quot;action&amp;quot;: &amp;quot;say&amp;quot;,   &amp;quot;type&amp;quot;: &amp;quot;random&amp;quot;,   &amp;quot;text&amp;quot;: [&amp;quot;.....&amp;quot;]}]}},&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;    &amp;quot;exceptions&amp;quot;: {}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/data/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка элементов данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  {   &amp;quot;id&amp;quot;: &amp;quot;3ebfe38b-95bf-4927-a662-17f6e5da22ea&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;        &amp;quot;name&amp;quot;: &amp;quot;pve&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;smc&amp;quot;, &amp;quot;rtype&amp;quot;: &amp;quot;report&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;        &amp;quot;weight&amp;quot;: 3, &amp;quot;hasNearestAction&amp;quot;: false } ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/data/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение элемента данных. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как на выходе метода  &#039;&#039;&#039;GET/ses/robot/data/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление всех версий робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/endpoint/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Создание конечной точки. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как на выходе метода &#039;&#039;&#039;GET/ses/robot/endpoint/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами  конечной точки&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;8576593b-b0d8-4b03-a623-74f3132356ea&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/endpoint/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление конечной точки.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  конечной точки&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/endpoint/get/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение настроек конечной точки&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  конечной точки&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;comment&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entryType&amp;quot;: &amp;quot;conditions&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entry&amp;quot;: [{ &amp;quot;conditions&amp;quot;: [{ &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;depth&amp;quot;: 5, &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;operation&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;&amp;quot;}], &amp;quot;run&amp;quot;: []}],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;run&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;actions&amp;quot;: { &amp;quot;default&amp;quot;: [{ &amp;quot;action&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;voice&amp;quot;: &amp;quot;&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;,  &amp;quot;interruptible&amp;quot;: true/false}]},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;report&amp;quot;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/endpoint/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка конечных точек робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{ &amp;quot;error&amp;quot;: 0,  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;точка 1&amp;quot;, &amp;quot;comment&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entryType&amp;quot;: &amp;quot;conditions&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entry&amp;quot;: [{ &amp;quot;conditions&amp;quot;: [{ &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;depth&amp;quot;: 5, &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;operation&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;&amp;quot;}], &amp;quot;run&amp;quot;: []}],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;run&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;actions&amp;quot;: { &amp;quot;default&amp;quot;: [{ &amp;quot;action&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;voice&amp;quot;: &amp;quot;....&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;,  &amp;quot;interruptible&amp;quot;: true/false}]},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;report&amp;quot;}}]&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/endpoint/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение конечной точки. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как на выходе метода &#039;&#039;&#039;GET/ses/robot/endpoint/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка робота в архив&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;zip файл с именем = идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/files/download/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение файла.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор файла&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;файл&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/files/upload/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отправка файла.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;file&#039;&#039;&#039; - файл&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,   &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,   &amp;quot;id&amp;quot;: &amp;quot;Id файла&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Выгрузка основных настроек робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;9fd7f6f1-2cac-4f0f-a121-75c40f2b5e78&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;test&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;description&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;voice&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;session&amp;quot;: {      &amp;quot;lifetime&amp;quot;: 600    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;models&amp;quot;: {},&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;servicedata&amp;quot;: {},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;exceptions&amp;quot;: {},&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;actions&amp;quot;: {},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;holidays&amp;quot;: [],&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;timeintervals&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;name&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;        &amp;quot;weekdays&amp;quot;: [ 1, 2, 3, 4, 5, 6,  7  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;        &amp;quot;dates&amp;quot;: [  0,  1,  2,   3, 4,  5, 6,  7,  8,  9, 10,  11, 12,13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;months&amp;quot;: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;days&amp;quot;: &amp;quot;all&amp;quot;, &amp;quot;intervals&amp;quot;: [ [ 0,  1440 ] ] }}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/import/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузка архива робота в черновик существующего робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;zip —&#039;&#039;&#039;  файл с архивом робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка роботов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  {  &amp;quot;id&amp;quot;: &amp;quot;9fd7f6f1-2cac-4f0f-a121-75c40f2b5e78&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;test&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;hasProd&amp;quot;: true,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;hasBackup&amp;quot;: true  } ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение основных настроек робота. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/robot/get/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с новыми настройками робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/restore/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Откат рабочей версии из бэкапа. &amp;lt;small&amp;gt;Резервная копия становится рабочей, и удаляется, а черновик остается без изменений&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/script/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление нового скрипта. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/robot/script/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/script/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление скрипта&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/script/get/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение текста скрипита&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;6a9f91b6-9634-4079-ac2b-60a944922c61&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;type&amp;quot;: &amp;quot;Тип скрипта&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;Наименование скрипта&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;code&amp;quot;: &amp;quot;Текст скрипта&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/script/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка скриптов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  {    &amp;quot;id&amp;quot;: &amp;quot;9b9d83b7-d5c3-49e6-9bd4-a123a9047939&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;наименование1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;Тип скрипта&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  {    &amp;quot;id&amp;quot;: &amp;quot;48b508ba-a32b-4ada-bcc3-66ce26d81c6a&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;наименование2&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;Тип скрипта&amp;quot;}]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/script/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение скрипта.&amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/robot/script/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/script/test/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Тестирование скрипта. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/session/{robot_id}/{session_id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка с параметрами сессии&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;, &amp;quot;result&amp;quot;: {.....}, &amp;quot;variables&amp;quot;: {}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/add/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление записи в пользовательский справочник.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение n&amp;quot;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;id&amp;quot;: &amp;quot;id записи&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/userdata/data/delete/{robot}/{structure}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление записи из пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор записи (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/userdata/data/list/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение данных из пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{  &amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt; &amp;quot;колонка n&amp;quot;: &amp;quot;значение n&amp;quot;,&amp;lt;/small&amp;gt;   &amp;lt;small&amp;gt; &amp;quot;id&amp;quot;: &amp;quot;id записи&amp;quot;}]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/modify/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Массовое изменение данных в пользовательском справочнике.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;list&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;[{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;: &amp;quot;значение n&amp;quot;, &amp;quot;id&amp;quot;: &amp;quot;id строки&amp;quot;}]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/modify/{robot}/{structure}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение одной записи пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение n&amp;quot;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор записи (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/put/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление данных с заменой в пользовательском справочнике.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;list&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;[{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;: &amp;quot;значение n&amp;quot;, &amp;quot;id&amp;quot;: &amp;quot;id строки&amp;quot;}]&amp;lt;/code&amp;gt; Поле &amp;quot;id&amp;quot; опционально, при его добавлении данные в строке будут заменены.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - замена всех данных в справочнике новыми данными. Возможные значения: yes/no. По-умолчанию - yes.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/structure/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;id справочника&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;справочник&amp;quot;, &amp;quot;fields&amp;quot;: {&amp;quot;колонка 1&amp;quot;: &amp;quot;значение по умолчанию&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение по умолчанию&amp;quot;}}.&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; Поле &amp;quot;id&amp;quot; опционально.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;id&amp;quot;: &amp;quot;id справочника&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/userdata/structure/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/userdata/structure/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка пользовательских справочников.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;[{&amp;quot;id&amp;quot;: &amp;quot;id справочника&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;справочник&amp;quot;, &amp;quot;fields&amp;quot;: {&amp;quot;колонка1&amp;quot;: &amp;quot;значение по умолчанию&amp;quot;}}]&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/structure/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Модификация структуры пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; -  json строка в формате &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{&amp;quot;name&amp;quot;: &amp;quot;справочник&amp;quot;, &amp;quot;fields&amp;quot;: {&amp;quot;колонка 1&amp;quot;: &amp;quot;значение по умолчанию&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение по умолчанию&amp;quot;}}.&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/session/{robot_id}/{session_id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выдает параметры сессии. &amp;lt;small&amp;gt;Для отображения на боковой панели тестирования в UPS. Основные блоки результата:&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot_id&#039;&#039;&#039; —  id робота&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;session_id&#039;&#039;&#039; —  id незакрытой сессии&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;started&amp;quot;: &amp;quot;&amp;quot;,  &amp;quot;modified&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;robot&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;session&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;channel&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;connector&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;unknown&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;current&amp;quot;: {&amp;quot;id&amp;quot;: &amp;quot;&amp;quot;, &amp;quot;qas&amp;quot;: &amp;quot;&amp;quot;, &amp;quot;answered&amp;quot;: true/false, &amp;quot;category&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;              &amp;quot;nearest&amp;quot;: &amp;quot;&amp;quot;,    &amp;quot;entry&amp;quot;: [.....],    &amp;quot;missingRunData&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;              &amp;quot;passedRunData&amp;quot;: [.....],       &amp;quot;waitingRunData&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;              &amp;quot;border&amp;quot;: int,    &amp;quot;preborder&amp;quot;: int,    &amp;quot;lastreply&amp;quot;: &amp;quot;&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;models&amp;quot;: [.....],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;scripts&amp;quot;: [.....],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;  &amp;quot;data&amp;quot;: [{&amp;quot;request&amp;quot;: {.....}, &amp;quot;reply&amp;quot;: {.....}}],&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;timers&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;variables&amp;quot;: {},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;events&amp;quot;: {.....},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;closed&amp;quot;: &amp;quot;&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/widget/config&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выдает параметры виджета для web канала по запросу js скрипта&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;token&#039;&#039;&#039; —  уникальный код виджета, создается при внедрении&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Состав конфига канала, для передачи виджету. Подробней в [https://wiki.connect2ai.net/index.php/SES._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0#%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%B2%D0%B8%D0%B4%D0%B6%D0%B5%D1%82%D0%B0_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B0%D0%B9%D1%82%D0%B0 Руководстве администратора]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/widget/js&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выдает код js скрипта виджета для web-канала &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Код скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/res: методы работы с сервисом отчетов&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/res/dashboards&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получить список рабочих столов kibana с наборами отчетов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;dashboards&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;Наименование1&amp;quot;: &amp;quot;https://........&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;Наименование2&amp;quot;: &amp;quot;https://.........&amp;quot;  }}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/transcription: методы работы со стенографией&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/audio/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Получить аудиофайл по id стенограммы. &amp;lt;small&amp;gt;Идентификатор нужной стенограммы можно получить методом&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;GET /transcription/list&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;wav файл сохраненной стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/transcription/create&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание стенограммы из завершенного задания в очереди распознавания. &amp;lt;small&amp;gt;В ответ придет id созданной стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;taskID&#039;&#039;&#039; — идентификатор задания из очереди&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; —  имя создаваемой стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;74721a3b-9055-4650-9afb-de4d103cafc7&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/transcription/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление стенограммы&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение стенограммы. &amp;lt;small&amp;gt;Используется для отображения стенограммы в веб интерфейсе&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;стенограмма в json формате&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка сохраненных стенограмм&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |[ {  &amp;quot;id&amp;quot;: &amp;quot;926e8d25-4275-4a78-906b-a1109cdacbea&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;name&amp;quot;: &amp;quot;название&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;model&amp;quot;: &amp;quot;big&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;created&amp;quot;: &amp;quot;2024-03-29 12:37:42&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;modified&amp;quot;: &amp;quot;2024-04-24 16:09:09&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;user&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot; }, .... ] &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/transcription/save/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Сохранение стенограмы. &amp;lt;small&amp;gt;Используется для сохранения изменений по нажатию кнопки «Сохранить».&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  стенограмма в json формате&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/waveform/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Служебный метод для отображения аудио в графическом виде, &amp;lt;small&amp;gt;ответ содержит пики сигнала&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;waveform&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   0.016,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ..........&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ..........&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   0.015,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   0.01 ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3472</id>
		<title>SMC. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3472"/>
		<updated>2026-01-12T09:58:58Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис Short  Message Classifier предназначен для классификации текстовых фрагментов (фраз естественной речи). Принимает на вход текстовую строку и возвращает структурированные данные в формате JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Short  Message Classifier (SMC) - сервис классификации текстовых фрагментов.&lt;br /&gt;
&lt;br /&gt;
Модель — предварительно обученная специализированная нейронная сеть классификации коротких фраз.&lt;br /&gt;
&lt;br /&gt;
Swagger UI – интерактивная  веб-консоль с кратким описанием методов АPI и возможностью выполнять запросы к сервису SMC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API SMC&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SMC. По умолчанию используется порт 6181/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке &amp;lt;nowiki&amp;gt;http://АДРЕС:6181&amp;lt;/nowiki&amp;gt; будет отображен интерфейс swagger со всеми методами с возможностью их проверки. &lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Постобработка&#039;&#039;&#039; =====&lt;br /&gt;
Модель может содержать постобработчик. Это стандартный файл на языке Python, который выполняет произвольные действия с результатом работы модели. Обязательным условием является наличие функции handler, которая должна возвращать данные такого же вида, как и метод GET /smc/classify/{id}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример пустой функции:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;def handler(classes=[],text=&amp;quot;&amp;quot;):&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  returns classes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На вход подается результат работы модели, а также начальный текст.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/models&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Вывод списка моделей. Выводит только пользовательские модели. Сервисные модели, корпуса, наборы меток не выводит.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Без входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ models: [model1,...,modelN] }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/automark/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Список заданий на автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Без входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;tasks&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;id&amp;quot;: &amp;quot;id-1&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;taskname&amp;quot;: &amp;quot;name1&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    },&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;id&amp;quot;: &amp;quot;id-nnnn&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;taskname&amp;quot;: &amp;quot;name2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/automark/result/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получить результат задания на автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;started&amp;quot;: &amp;quot;2024-10-09 18:05:51&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;finished&amp;quot;: &amp;quot;2024-10-09 18:05:51&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;corpus&amp;quot;: [[ [], [ [&amp;quot;тэг&amp;quot;],&amp;quot;фраза 1&amp;quot;]],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    [ [], [[&amp;quot;тэг&amp;quot;],&amp;quot;фраза 2&amp;quot;]] ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/automark/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Начать автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;taskname&#039;&#039;&#039; - произвольное имя задания&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;corpus&#039;&#039;&#039; - json строка с размечаемым корпусом[&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;[ [класс1,... классН], текст ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[ [класс1,... классН], текст ]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;marks&#039;&#039;&#039; - json строка с набором меток [    [ метка, [синоним, синоним2 ... синоним Н], порог ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[ метка, [синоним, синоним2 ... синоним Н], порог ]]&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;appendMarks&#039;&#039;&#039; - &amp;quot;yes&amp;quot; - дополнить разметку, &amp;quot;no&amp;quot; -заменить разметку&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;уникальный id задания&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/automark/status/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получить статус задания на автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;started&amp;quot;: &amp;quot;2024-10-09 13:49:46&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;finished&amp;quot;: &amp;quot;2024-10-09 13:49:46&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;progress&amp;quot;: 0&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/automark/stop/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Прервать задание на автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/classify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Классификация текстовой фразы. В случает если модель была создана из меток в ответе groups и nearest будут пустыми, а ответ будет построен без учета confidenceThreshold из запроса.&amp;lt;/small&amp;gt; &lt;br /&gt;
&amp;lt;small&amp;gt;В ответе:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;classes&#039;&#039;&#039; - список , для каждого класса которого отображается название класса, к которому был отнесен текст, и вероятность его принадлежности к этому классу.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;groups&#039;&#039;&#039; - название группы и число совпавших классов. Если метки совпадают с несколькими группами, они отображаются в порядке убывания числа совпавших классов (т.е. чем полнее группа, тем выше ее позиция в списке).&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;nearest&#039;&#039;&#039; - отображаются группы, до которых не хватает всего одной метки, с указанием процента заполненности и сортировкой по убыванию этого процента.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст, подлежащий классификации&amp;lt;/small&amp;gt; &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;correction&#039;&#039;&#039; - проверять правописание слов и исправлять ошибки&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;confidenceThreshold&#039;&#039;&#039;, % - минимальный порог доверия.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;classes&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;class&amp;quot;: &amp;quot;название класса&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;confidence&amp;quot;: 1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    },&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;class&amp;quot;: &amp;quot;название класса 2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;confidence&amp;quot;: 1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;groups&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;название группы 1&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;intersection&amp;quot;: 2,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;classes&amp;quot;: [ &amp;quot;название класса&amp;quot;, &amp;quot;название класса 2&amp;quot; ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;nearest&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;название группы 2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;percent&amp;quot;: 0.67,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;need&amp;quot;: &amp;quot;название класса которого не хватило 1&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    },&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;&amp;quot;название группы 3&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;percent&amp;quot;: 0.67,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;need&amp;quot;: &amp;quot;название класса которого не хватило 2&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/compress&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Убирает из фразы слова не влияющие на ее смысл.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для сжатия&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; - уровень компрессии от 1 до 100. Чем меньше число тем меньше слов будет в итоговой фразе&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;сжатый текст&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/copy&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Копирование существующей модели&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;source&#039;&#039;&#039; - исходная модель&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;destination&#039;&#039;&#039; - целевая модель&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;backup&#039;&#039;&#039; - путь для резервного копирования&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;remove&#039;&#039;&#039; - флаг для удаления исходной модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  { error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/correct&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Коррекция правописания. Изменяет неправильно написанные слова меняя их на наиболее близкие правильные (из знакомых модели). Если модель коррекции не смогла предложить правильное написание текста, метод вернет текст неизменным.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для коррекции&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;correction&#039;&#039;&#039; - уровень коррекции, от 1 до 3. По умолчанию 1.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - если указано, то при коррекции дополнительно используется словарь модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;корректный текст&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение архива модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;ZIP-файл с моделью, либо { error: 1, message: DESCRIPTION }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/smc/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/import/{id}&#039;&#039;&#039; &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавление модели. Окончание работы проверяется через метод /smc/info/{id}.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;zip-model&#039;&#039;&#039; - zip-архив с файлами модели&amp;lt;/small&amp;gt; &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/embedding&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - фраза&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/emotion&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Анализ эмоций. На выходе один из вариантов &#039;&#039;positive negative neutral.&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - фраза для анализа эмоций&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ &amp;quot;emotion&amp;quot;: &amp;quot;positive&amp;quot;, &amp;quot;score&amp;quot;: 0.9601 }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/errors/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение файла с ошибками модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039; - тип ошибок, возможные варианты:&amp;lt;/small&amp;gt; &lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;train&#039;&#039;&#039; - ошибки обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;test&#039;&#039;&#039; - ошибки тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;mark&#039;&#039;&#039; - ошибки создания модели из меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;текстовый файл со строками вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;ИСТИНА&amp;lt;TAB&amp;gt;ОПРЕДЕЛЕНО&amp;lt;TAB&amp;gt;ФРАЗА&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/groups/{id}&#039;&#039;&#039; &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Поиск групп по ранее полученным меткам. Ищет группы по набору меток. Результат - группы (если найдены) и ближайшие группы с указанием недостающих меток.  Позволяет сохранять контекст в виде меток и дозапрашивать группы с учетом контекста.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;classes&#039;&#039;&#039; — набор меток через запятую&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Результат в виде json.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;groups&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;Группа 1&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;intersection&amp;quot;: 3,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;classes&amp;quot;: [ &amp;quot;метка1_о&amp;quot;, &amp;quot;метка2_о&amp;quot;, &amp;quot;метка3_о&amp;quot;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    },&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;Группа 2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;intersection&amp;quot;: 2,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;classes&amp;quot;: [ &amp;quot;метка1_о&amp;quot;, &amp;quot;метка5_о&amp;quot; ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;nearest&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;Группа до которой не хватило 1 метки&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;percent&amp;quot;: 0.75,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;need&amp;quot;: &amp;quot;недостающая метка_о&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/groups/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавляет к модели группы.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;groups&#039;&#039;&#039; - JSON с новыми группами&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv-file&#039;&#039;&#039; - файл с группами&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;string&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получает [https://wiki.connect2ai.net/index.php/SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0 постобработчик] модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл программы обработчика на python&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/smc/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
 ! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаляет [https://wiki.connect2ai.net/index.php/SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0 постобработчик] модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;string&amp;quot; }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Устанавливает [https://wiki.connect2ai.net/index.php/SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0 постобработчик] модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;handler&#039;&#039;&#039; - файл постобработчика&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;string&amp;quot; }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/info/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение информации о модели. В результате выполнения будет возвращен массив с данными о модели. Матрица ошибок отдельно содержат классы, определяющие столбцы и строки матрицы, их количество может быть меньше, т.к. в матрицы попадают только те классы, по которым были ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;На выходе будут следующие параметры:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;status&#039;&#039;&#039; - статус&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;classes&#039;&#039;&#039; - список классов в модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;groups&#039;&#039;&#039; - список групп в модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainCorpusName&#039;&#039;&#039;, &#039;&#039;&#039;testCorpusName&#039;&#039;&#039; - названия файлов, использованных при обучении и тестировании&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainAccuracy&#039;&#039;&#039;, &#039;&#039;&#039;testAccuracy&#039;&#039;&#039; - точность обучения и тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;initCorpusLength&#039;&#039;&#039; - начальный размер корпуса обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainCorpusLength&#039;&#039;&#039; - размер корпуса после нормализации и синтеза данных&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;testCorpusLength&#039;&#039;&#039; - размер тестового корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainConfusionMatrix&#039;&#039;&#039; - матрица ошибок обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;testConfusionMatrix&#039;&#039;&#039; - матрица ошибок тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/log/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Лог всех действий во время обучения/тестирования модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Лог содержится в переменной log в виде списка.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ &amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;log&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;training&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;normalization: 5, model size: 2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    ...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/normalize&#039;&#039;&#039; &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Обратная нормализация текста. Пример: двадцать пятого апреля в пятом часу -&amp;gt; 25 апреля в 5-м часу&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для обработки&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;quot;text&amp;quot;: &amp;quot;&amp;lt;строка после обратной нормализации&amp;gt;&amp;quot;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/punctuate&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Расстановка знаков препинания.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для обработки&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{  &amp;quot;text&amp;quot;: &amp;quot;string&amp;quot; }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/search&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Семантический поиск фразы в тексте.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;phrase&#039;&#039;&#039; - искомая фраза&amp;lt;/small&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст в котором нужно найти фразу&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;similarity&amp;quot;: 1,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;fragment&amp;quot;: &amp;quot;найденная фраза&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/stop/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | &amp;lt;small&amp;gt;Остановка обучения модели&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/test/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | &amp;lt;small&amp;gt;Тестирование модели. Тестируется заранее подготовленным текстовым файлом со строками вида: КЛАСС&amp;lt;TAB&amp;gt;ФРАЗА&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Метод асинхронный. Окончание работы проверяется через метод /smc/info/{id}.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;csv-file&#039;&#039;&#039; - файл для тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;correction&#039;&#039;&#039; - исправлять ошибки правописания в файле для тестирования (&#039;&#039;&#039;0&#039;&#039;&#039; или &#039;&#039;&#039;1&#039;&#039;&#039;)&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/toxicity&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Определение токсичности высказывания. Высказывание анализируется по 4 параметрам, по каждому выдается вероятность от 0 до 1:&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текстовая строка с высказыванием&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;insult&amp;quot;: 0.13, # оскорбление&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;obscenity&amp;quot;: 0, # брань&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;threat&amp;quot;: 0, # угрозы&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;politeness&amp;quot;: 0.53 вежливость&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/train/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | &amp;lt;small&amp;gt;Обучение модели&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;csv-file&#039;&#039;&#039; - текстовый файл для обучения модели или json файл с метками&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;isMarks&#039;&#039;&#039; - если &amp;quot;1&amp;quot; то вместо csv файла корпуса метод ожидает json файл с меткам, формат файла csv-file:{&amp;quot;id&amp;quot;: &amp;quot;уникальный идентификатор&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;имя набора&amp;quot;, &amp;quot;data&amp;quot;: [ [&amp;quot;метка1&amp;quot;,[&amp;quot;синоним1&amp;quot;, &amp;quot;еще несколько синонимов через запятую&amp;quot;],порог достоверности], [&amp;quot;еще метка&amp;quot;,[&amp;quot;синоним&amp;quot;, &amp;quot;еще несколько синонимов через запятую&amp;quot;],порог достоверности]]} модель созданная из меток при этом не обучается, созданный файл модели используется для расчетов векторов &amp;quot;на лету&amp;quot; и выдачи результатов на основании сравнения векторов текста и синонимов из файла с метками&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;corpusName&#039;&#039;&#039; - наименование имеющегося корпуса данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;corpusData&#039;&#039;&#039; -  json строка с корпусом данных&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3471</id>
		<title>SMC. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3471"/>
		<updated>2026-01-12T09:57:53Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис Short  Message Classifier предназначен для классификации текстовых фрагментов (фраз естественной речи). Принимает на вход текстовую строку и возвращает структурированные данные в формате JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Short  Message Classifier (SMC) - сервис классификации текстовых фрагментов.&lt;br /&gt;
&lt;br /&gt;
Модель — предварительно обученная специализированная нейронная сеть классификации коротких фраз.&lt;br /&gt;
&lt;br /&gt;
Swagger UI – интерактивная  веб-консоль с кратким описанием методов АPI и возможностью выполнять запросы к сервису SMC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API SMC&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SMC. По умолчанию используется порт 6181/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке &amp;lt;nowiki&amp;gt;http://АДРЕС:6181&amp;lt;/nowiki&amp;gt; будет отображен интерфейс swagger со всеми методами с возможностью их проверки. &lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Постобработка&#039;&#039;&#039; =====&lt;br /&gt;
Модель может содержать постобработчик. Это стандартный файл на языке Python, который выполняет произвольные действия с результатом работы модели. Обязательным условием является наличие функции handler, которая должна возвращать данные такого же вида, как и метод GET /smc/classify/{id}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример пустой функции:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;def handler(classes=[],text=&amp;quot;&amp;quot;):&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  returns classes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На вход подается результат работы модели, а также начальный текст.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/models&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Вывод списка моделей. Выводит только пользовательские модели. Сервисные модели, корпуса, наборы меток не выводит.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Без входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ models: [model1,...,modelN] }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/automark/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Список заданий на автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Без входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;tasks&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;id&amp;quot;: &amp;quot;id-1&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;taskname&amp;quot;: &amp;quot;name1&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    },&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;id&amp;quot;: &amp;quot;id-nnnn&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;taskname&amp;quot;: &amp;quot;name2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/automark/result/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получить результат задания на автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;started&amp;quot;: &amp;quot;2024-10-09 18:05:51&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;finished&amp;quot;: &amp;quot;2024-10-09 18:05:51&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;corpus&amp;quot;: [[ [], [ [&amp;quot;тэг&amp;quot;],&amp;quot;фраза 1&amp;quot;]],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    [ [], [[&amp;quot;тэг&amp;quot;],&amp;quot;фраза 2&amp;quot;]] ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/automark/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Начать автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;taskname&#039;&#039;&#039; - произвольное имя задания&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;corpus&#039;&#039;&#039; - json строка с размечаемым корпусом[&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;[ [класс1,... классН], текст ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[ [класс1,... классН], текст ]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;marks&#039;&#039;&#039; - json строка с набором меток [    [ метка, [синоним, синоним2 ... синоним Н], порог ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[ метка, [синоним, синоним2 ... синоним Н], порог ]]&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;appendMarks&#039;&#039;&#039; - &amp;quot;yes&amp;quot; - дополнить разметку, &amp;quot;no&amp;quot; -заменить разметку&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;уникальный id задания&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/automark/status/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получить статус задания на автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;started&amp;quot;: &amp;quot;2024-10-09 13:49:46&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;finished&amp;quot;: &amp;quot;2024-10-09 13:49:46&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;progress&amp;quot;: 0&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/automark/stop/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Прервать задание на автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/classify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Классификация текстовой фразы. В случает если модель была создана из меток в ответе groups и nearest будут пустыми, а ответ будет построен без учета confidenceThreshold из запроса.&amp;lt;/small&amp;gt; &lt;br /&gt;
&amp;lt;small&amp;gt;В ответе:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;classes&#039;&#039;&#039; - список , для каждого класса которого отображается название класса, к которому был отнесен текст, и вероятность его принадлежности к этому классу.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;groups&#039;&#039;&#039; - название группы и число совпавших классов. Если метки совпадают с несколькими группами, они отображаются в порядке убывания числа совпавших классов (т.е. чем полнее группа, тем выше ее позиция в списке).&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;nearest&#039;&#039;&#039; - отображаются группы, до которых не хватает всего одной метки, с указанием процента заполненности и сортировкой по убыванию этого процента.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст, подлежащий классификации&amp;lt;/small&amp;gt; &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;correction&#039;&#039;&#039; - проверять правописание слов и исправлять ошибки&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;confidenceThreshold&#039;&#039;&#039;, % - минимальный порог доверия.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;classes&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;class&amp;quot;: &amp;quot;название класса&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;confidence&amp;quot;: 1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    },&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;class&amp;quot;: &amp;quot;название класса 2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;confidence&amp;quot;: 1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;groups&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;название группы 1&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;intersection&amp;quot;: 2,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;classes&amp;quot;: [ &amp;quot;название класса&amp;quot;, &amp;quot;название класса 2&amp;quot; ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;nearest&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;название группы 2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;percent&amp;quot;: 0.67,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;need&amp;quot;: &amp;quot;название класса которого не хватило 1&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    },&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;&amp;quot;название группы 3&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;percent&amp;quot;: 0.67,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;need&amp;quot;: &amp;quot;название класса которого не хватило 2&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/compress&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Убирает из фразы слова не влияющие на ее смысл.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для сжатия&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; - уровень компрессии от 1 до 100. Чем меньше число тем меньше слов будет в итоговой фразе&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;сжатый текст&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/copy&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Копирование существующей модели&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;source&#039;&#039;&#039; - исходная модель&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;destination&#039;&#039;&#039; - целевая модель&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;backup&#039;&#039;&#039; - путь для резервного копирования&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;remove&#039;&#039;&#039; - флаг для удаления исходной модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  { error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/correct&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Коррекция правописания. Изменяет неправильно написанные слова меняя их на наиболее близкие правильные (из знакомых модели). Если модель коррекции не смогла предложить правильное написание текста, метод вернет текст неизменным.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для коррекции&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;correction&#039;&#039;&#039; - уровень коррекции, от 1 до 3. По умолчанию 1.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - если указано, то при коррекции дополнительно используется словарь модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;корректный текст&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение архива модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;ZIP-файл с моделью, либо { error: 1, message: DESCRIPTION }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/smc/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/import/{id}&#039;&#039;&#039; &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавление модели. Окончание работы проверяется через метод /smc/info/{id}.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;zip-model&#039;&#039;&#039; - zip-архив с файлами модели&amp;lt;/small&amp;gt; &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/embedding&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - фраза&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/emotion&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Анализ эмоций. На выходе один из вариантов &#039;&#039;positive negative neutral.&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - фраза для анализа эмоций&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ &amp;quot;emotion&amp;quot;: &amp;quot;positive&amp;quot;, &amp;quot;score&amp;quot;: 0.9601 }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/errors/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение файла с ошибками модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039; - тип ошибок, возможные варианты:&amp;lt;/small&amp;gt; &lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;train&#039;&#039;&#039; - ошибки обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;test&#039;&#039;&#039; - ошибки тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;mark&#039;&#039;&#039; - ошибки создания модели из меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;текстовый файл со строками вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;ИСТИНА&amp;lt;TAB&amp;gt;ОПРЕДЕЛЕНО&amp;lt;TAB&amp;gt;ФРАЗА&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/groups/{id}&#039;&#039;&#039; &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Поиск групп по ранее полученным меткам. Ищет группы по набору меток. Результат - группы (если найдены) и ближайшие группы с указанием недостающих меток.  Позволяет сохранять контекст в виде меток и дозапрашивать группы с учетом контекста.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;classes&#039;&#039;&#039; — набор меток через запятую&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Результат в виде json.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;groups&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;Группа 1&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;intersection&amp;quot;: 3,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;classes&amp;quot;: [ &amp;quot;метка1_о&amp;quot;, &amp;quot;метка2_о&amp;quot;, &amp;quot;метка3_о&amp;quot;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    },&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;Группа 2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;intersection&amp;quot;: 2,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;classes&amp;quot;: [ &amp;quot;метка1_о&amp;quot;, &amp;quot;метка5_о&amp;quot; ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;nearest&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;Группа до которой не хватило 1 метки&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;percent&amp;quot;: 0.75,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;need&amp;quot;: &amp;quot;недостающая метка_о&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/groups/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавляет к модели группы.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;groups&#039;&#039;&#039; - JSON с новыми группами&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv-file&#039;&#039;&#039; - файл с группами&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;string&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получает [https://wiki.connect2ai.net/index.php/SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0 постобработчик] модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл программы обработчика на python&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/smc/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
 ! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаляет [https://wiki.connect2ai.net/index.php/SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0 постобработчик] модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;string&amp;quot; }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Устанавливает [https://wiki.connect2ai.net/index.php/SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0 постобработчик] модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;handler&#039;&#039;&#039; - файл постобработчика&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;string&amp;quot; }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/info/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение информации о модели. В результате выполнения будет возвращен массив с данными о модели. Матрица ошибок отдельно содержат классы, определяющие столбцы и строки матрицы, их количество может быть меньше, т.к. в матрицы попадают только те классы, по которым были ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;На выходе будут следующие параметры:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;status&#039;&#039;&#039; - статус&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;classes&#039;&#039;&#039; - список классов в модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;groups&#039;&#039;&#039; - список групп в модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainCorpusName&#039;&#039;&#039;, &#039;&#039;&#039;testCorpusName&#039;&#039;&#039; - названия файлов, использованных при обучении и тестировании&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainAccuracy&#039;&#039;&#039;, &#039;&#039;&#039;testAccuracy&#039;&#039;&#039; - точность обучения и тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;initCorpusLength&#039;&#039;&#039; - начальный размер корпуса обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainCorpusLength&#039;&#039;&#039; - размер корпуса после нормализации и синтеза данных&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;testCorpusLength&#039;&#039;&#039; - размер тестового корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainConfusionMatrix&#039;&#039;&#039; - матрица ошибок обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;testConfusionMatrix&#039;&#039;&#039; - матрица ошибок тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/log/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Лог всех действий во время обучения/тестирования модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Лог содержится в переменной log в виде списка.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ &amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;log&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;training&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;normalization: 5, model size: 2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    ...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/normalize&#039;&#039;&#039; &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Обратная нормализация текста. Пример: двадцать пятого апреля в пятом часу -&amp;gt; 25 апреля в 5-м часу&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для обработки&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;quot;text&amp;quot;: &amp;quot;&amp;lt;строка после обратной нормализации&amp;gt;&amp;quot;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/punctuate&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Расстановка знаков препинания.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для обработки&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{  &amp;quot;text&amp;quot;: &amp;quot;string&amp;quot; }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/search&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Семантический поиск фразы в тексте.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;phrase&#039;&#039;&#039; - искомая фраза&amp;lt;/small&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст в котором нужно найти фразу&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;similarity&amp;quot;: 1,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;fragment&amp;quot;: &amp;quot;найденная фраза&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/stop/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | &amp;lt;small&amp;gt;Остановка обучения модели&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/test/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | &amp;lt;small&amp;gt;Тестирование модели. Тестируется заранее подготовленным текстовым файлом со строками вида: КЛАСС&amp;lt;TAB&amp;gt;ФРАЗА&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Метод асинхронный. Окончание работы проверяется через метод /smc/info/{id}.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;csv-file&#039;&#039;&#039; - файл для тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;correction&#039;&#039;&#039; - исправлять ошибки правописания в файле для тестирования (&#039;&#039;&#039;0&#039;&#039;&#039; или &#039;&#039;&#039;1&#039;&#039;&#039;)&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/toxicity&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Определение токсичности высказывания. Высказывание анализируется по 4 параметрам, по каждому выдается вероятность от 0 до 1:&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текстовая строка с высказыванием&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;insult&amp;quot;: 0.13, # оскорбление&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;obscenity&amp;quot;: 0, # брань&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;threat&amp;quot;: 0, # угрозы&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;politeness&amp;quot;: 0.53 вежливость&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/train/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | &amp;lt;small&amp;gt;Обучение модели&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;csv-file&#039;&#039;&#039; - текстовый файл для обучения модели или json файл с метками&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;isMarks&#039;&#039;&#039; - если &amp;quot;1&amp;quot; то вместо csv файла корпуса метод ожидает json файл с меткам, формат файла csv-file:{&amp;quot;id&amp;quot;: &amp;quot;уникальный идентификатор&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;имя набора&amp;quot;, &amp;quot;data&amp;quot;: [ [&amp;quot;метка1&amp;quot;,[&amp;quot;синоним1&amp;quot;, &amp;quot;еще несколько синонимов через запятую&amp;quot;],порог достоверности], [&amp;quot;еще метка&amp;quot;,[&amp;quot;синоним&amp;quot;, &amp;quot;еще несколько синонимов через запятую&amp;quot;],порог достоверности]]} модель созданная из меток при этом не обучается, созданный файл модели используется для расчетов векторов &amp;quot;на лету&amp;quot; и выдачи результатов на основании сравнения векторов текста и синонимов из файла с метками&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;corpusName&#039;&#039;&#039; - наименование имеющегося корпуса данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;corpusData&#039;&#039;&#039; -  json строка с корпусом данных&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3470</id>
		<title>SMC. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3470"/>
		<updated>2026-01-12T09:56:55Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис Short  Message Classifier предназначен для классификации текстовых фрагментов (фраз естественной речи). Принимает на вход текстовую строку и возвращает структурированные данные в формате JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Short  Message Classifier (SMC) - сервис классификации текстовых фрагментов.&lt;br /&gt;
&lt;br /&gt;
Модель — предварительно обученная специализированная нейронная сеть классификации коротких фраз.&lt;br /&gt;
&lt;br /&gt;
Swagger UI – интерактивная  веб-консоль с кратким описанием методов АPI и возможностью выполнять запросы к сервису SMC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API SMC&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SMC. По умолчанию используется порт 6181/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке &amp;lt;nowiki&amp;gt;http://АДРЕС:6181&amp;lt;/nowiki&amp;gt; будет отображен интерфейс swagger со всеми методами с возможностью их проверки. &lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Постобработка&#039;&#039;&#039; =====&lt;br /&gt;
Модель может содержать постобработчик. Это стандартный файл на языке Python, который выполняет произвольные действия с результатом работы модели. Обязательным условием является наличие функции handler, которая должна возвращать данные такого же вида, как и метод GET /smc/classify/{id}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример пустой функции:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;def handler(classes=[],text=&amp;quot;&amp;quot;):&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  returns classes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На вход подается результат работы модели, а также начальный текст.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/models&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Вывод списка моделей. Выводит только пользовательские модели. Сервисные модели, корпуса, наборы меток не выводит.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Без входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ models: [model1,...,modelN] }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/automark/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Список заданий на автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Без входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;tasks&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;id&amp;quot;: &amp;quot;id-1&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;taskname&amp;quot;: &amp;quot;name1&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    },&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;id&amp;quot;: &amp;quot;id-nnnn&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;taskname&amp;quot;: &amp;quot;name2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/automark/result/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получить результат задания на автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;started&amp;quot;: &amp;quot;2024-10-09 18:05:51&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;finished&amp;quot;: &amp;quot;2024-10-09 18:05:51&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;corpus&amp;quot;: [[ [], [ [&amp;quot;тэг&amp;quot;],&amp;quot;фраза 1&amp;quot;]],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    [ [], [[&amp;quot;тэг&amp;quot;],&amp;quot;фраза 2&amp;quot;]] ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/automark/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Начать автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;taskname&#039;&#039;&#039; - произвольное имя задания&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;corpus&#039;&#039;&#039; - json строка с размечаемым корпусом[&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;[ [класс1,... классН], текст ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[ [класс1,... классН], текст ]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;marks&#039;&#039;&#039; - json строка с набором меток [    [ метка, [синоним, синоним2 ... синоним Н], порог ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[ метка, [синоним, синоним2 ... синоним Н], порог ]]&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;appendMarks&#039;&#039;&#039; - &amp;quot;yes&amp;quot; - дополнить разметку, &amp;quot;no&amp;quot; -заменить разметку&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;уникальный id задания&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/automark/status/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получить статус задания на автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;started&amp;quot;: &amp;quot;2024-10-09 13:49:46&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;finished&amp;quot;: &amp;quot;2024-10-09 13:49:46&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;progress&amp;quot;: 0&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/automark/stop/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Прервать задание на автоматическую разметку корпуса. Метод для использования сервисом ups.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/classify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Классификация текстовой фразы. В случает если модель была создана из меток в ответе groups и nearest будут пустыми, а ответ будет построен без учета confidenceThreshold из запроса.&amp;lt;/small&amp;gt; &lt;br /&gt;
&amp;lt;small&amp;gt;В ответе:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;classes&#039;&#039;&#039; - список , для каждого класса которого отображается название класса, к которому был отнесен текст, и вероятность его принадлежности к этому классу.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;groups&#039;&#039;&#039; - название группы и число совпавших классов. Если метки совпадают с несколькими группами, они отображаются в порядке убывания числа совпавших классов (т.е. чем полнее группа, тем выше ее позиция в списке).&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;nearest&#039;&#039;&#039; - отображаются группы, до которых не хватает всего одной метки, с указанием процента заполненности и сортировкой по убыванию этого процента.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст, подлежащий классификации&amp;lt;/small&amp;gt; &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;correction&#039;&#039;&#039; - проверять правописание слов и исправлять ошибки&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;confidenceThreshold&#039;&#039;&#039;, % - минимальный порог доверия.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;classes&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;class&amp;quot;: &amp;quot;название класса&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;confidence&amp;quot;: 1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    },&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;class&amp;quot;: &amp;quot;название класса 2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;confidence&amp;quot;: 1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;groups&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;название группы 1&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;intersection&amp;quot;: 2,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;classes&amp;quot;: [ &amp;quot;название класса&amp;quot;, &amp;quot;название класса 2&amp;quot; ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;nearest&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;название группы 2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;percent&amp;quot;: 0.67,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;need&amp;quot;: &amp;quot;название класса которого не хватило 1&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    },&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;&amp;quot;название группы 3&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;percent&amp;quot;: 0.67,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;need&amp;quot;: &amp;quot;название класса которого не хватило 2&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/compress&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Убирает из фразы слова не влияющие на ее смысл.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для сжатия&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; - уровень компрессии от 1 до 100. Чем меньше число тем меньше слов будет в итоговой фразе&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;сжатый текст&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/copy&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Копирование существующей модели&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;source&#039;&#039;&#039; - исходная модель&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;destination&#039;&#039;&#039; - целевая модель&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;backup&#039;&#039;&#039; - путь для резервного копирования&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;remove&#039;&#039;&#039; - флаг для удаления исходной модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  { error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/correct&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Коррекция правописания. Изменяет неправильно написанные слова меняя их на наиболее близкие правильные (из знакомых модели). Если модель коррекции не смогла предложить правильное написание текста, метод вернет текст неизменным.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для коррекции&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;correction&#039;&#039;&#039; - уровень коррекции, от 1 до 3. По умолчанию 1.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - если указано, то при коррекции дополнительно используется словарь модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;корректный текст&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение архива модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;ZIP-файл с моделью, либо { error: 1, message: DESCRIPTION }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/smc/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/import/{id}&#039;&#039;&#039; &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавление модели. Окончание работы проверяется через метод /smc/info/{id}.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;zip-model&#039;&#039;&#039; - zip-архив с файлами модели&amp;lt;/small&amp;gt; &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/embedding&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - фраза&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/emotion&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Анализ эмоций. На выходе один из вариантов &#039;&#039;positive negative neutral.&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - фраза для анализа эмоций&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ &amp;quot;emotion&amp;quot;: &amp;quot;positive&amp;quot;, &amp;quot;score&amp;quot;: 0.9601 }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/errors/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение файла с ошибками модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039; - тип ошибок, возможные варианты:&amp;lt;/small&amp;gt; &lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;train&#039;&#039;&#039; - ошибки обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;test&#039;&#039;&#039; - ошибки тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;mark&#039;&#039;&#039; - ошибки создания модели из меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;текстовый файл со строками вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;ИСТИНА&amp;lt;TAB&amp;gt;ОПРЕДЕЛЕНО&amp;lt;TAB&amp;gt;ФРАЗА&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/groups/{id}&#039;&#039;&#039; &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Поиск групп по ранее полученным меткам. Ищет группы по набору меток. Результат - группы (если найдены) и ближайшие группы с указанием недостающих меток.  Позволяет сохранять контекст в виде меток и дозапрашивать группы с учетом контекста.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;classes&#039;&#039;&#039; — набор меток через запятую&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Результат в виде json.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;groups&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;Группа 1&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;intersection&amp;quot;: 3,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;classes&amp;quot;: [ &amp;quot;метка1_о&amp;quot;, &amp;quot;метка2_о&amp;quot;, &amp;quot;метка3_о&amp;quot;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    },&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;Группа 2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;intersection&amp;quot;: 2,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;classes&amp;quot;: [ &amp;quot;метка1_о&amp;quot;, &amp;quot;метка5_о&amp;quot; ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;nearest&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;group&amp;quot;: &amp;quot;Группа до которой не хватило 1 метки&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;percent&amp;quot;: 0.75,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;need&amp;quot;: &amp;quot;недостающая метка_о&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/groups/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавляет к модели группы.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;groups&#039;&#039;&#039; - JSON с новыми группами&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv-file&#039;&#039;&#039; - файл с группами&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;string&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получает [https://wiki.connect2ai.net/index.php/SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0 постобработчик] модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл программы обработчика на python&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/smc/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
 ! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаляет [https://wiki.connect2ai.net/index.php/SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0 постобработчик] модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;string&amp;quot; }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/handler/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Устанавливает [https://wiki.connect2ai.net/index.php/SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F#%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0 постобработчик] модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;handler&#039;&#039;&#039; - файл постобработчика&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;string&amp;quot; }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/info/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение информации о модели. В результате выполнения будет возвращен массив с данными о модели. Матрица ошибок отдельно содержат классы, определяющие столбцы и строки матрицы, их количество может быть меньше, т.к. в матрицы попадают только те классы, по которым были ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;На выходе будут следующие параметры:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;status&#039;&#039;&#039; - статус&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;classes&#039;&#039;&#039; - список классов в модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;groups&#039;&#039;&#039; - список групп в модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainCorpusName&#039;&#039;&#039;, &#039;&#039;&#039;testCorpusName&#039;&#039;&#039; - названия файлов, использованных при обучении и тестировании&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainAccuracy&#039;&#039;&#039;, &#039;&#039;&#039;testAccuracy&#039;&#039;&#039; - точность обучения и тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;initCorpusLength&#039;&#039;&#039; - начальный размер корпуса обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainCorpusLength&#039;&#039;&#039; - размер корпуса после нормализации и синтеза данных&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;testCorpusLength&#039;&#039;&#039; - размер тестового корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainConfusionMatrix&#039;&#039;&#039; - матрица ошибок обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;testConfusionMatrix&#039;&#039;&#039; - матрица ошибок тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/log/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Лог всех действий во время обучения/тестирования модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Лог содержится в переменной log в виде списка.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ &amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;log&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;training&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;normalization: 5, model size: 2&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    ...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/normalize&#039;&#039;&#039; &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Обратная нормализация текста. Пример: двадцать пятого апреля в пятом часу -&amp;gt; 25 апреля в 5-м часу&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для обработки&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;quot;text&amp;quot;: &amp;quot;&amp;lt;строка после обратной нормализации&amp;gt;&amp;quot;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/punctuate&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Расстановка знаков препинания.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для обработки&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{  &amp;quot;text&amp;quot;: &amp;quot;string&amp;quot; }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/search&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Семантический поиск фразы в тексте.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;phrase&#039;&#039;&#039; - искомая фраза&amp;lt;/small&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст в котором нужно найти фразу&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;similarity&amp;quot;: 1,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;fragment&amp;quot;: &amp;quot;найденная фраза&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/stop/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | &amp;lt;small&amp;gt;Остановка обучения модели&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/test/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | &amp;lt;small&amp;gt;Тестирование модели. Тестируется заранее подготовленным текстовым файлом со строками вида: КЛАСС&amp;lt;TAB&amp;gt;ФРАЗА&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Метод асинхронный. Окончание работы проверяется через метод /smc/info/{id}.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;csv-file&#039;&#039;&#039; - файл для тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;correction&#039;&#039;&#039; - исправлять ошибки правописания в файле для тестирования (&#039;&#039;&#039;0&#039;&#039;&#039; или &#039;&#039;&#039;1&#039;&#039;&#039;)&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/toxicity&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Определение токсичности высказывания. Высказывание анализируется по 4 параметрам, по каждому выдается вероятность от 0 до 1:&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текстовая строка с высказыванием&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;insult&amp;quot;: 0.13, # оскорбление&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;obscenity&amp;quot;: 0, # брань&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;threat&amp;quot;: 0, # угрозы&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;politeness&amp;quot;: 0.53 вежливость&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/train/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | &amp;lt;small&amp;gt;Обучение модели&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;csv-file&#039;&#039;&#039; - текстовый файл для обучения модели или json файл с метками&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;isMarks&#039;&#039;&#039; - если &amp;quot;1&amp;quot; то вместо csv файла корпуса метод ожидает json файл с меткам, формат файла csv-file:{&amp;quot;id&amp;quot;: &amp;quot;уникальный идентификатор&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;имя набора&amp;quot;, &amp;quot;data&amp;quot;: [ [&amp;quot;метка1&amp;quot;,[&amp;quot;синоним1&amp;quot;, &amp;quot;еще несколько синонимов через запятую&amp;quot;],порог достоверности], [&amp;quot;еще метка&amp;quot;,[&amp;quot;синоним&amp;quot;, &amp;quot;еще несколько синонимов через запятую&amp;quot;],порог достоверности]]} модель созданная из меток при этом не обучается, созданный файл модели используется для расчетов векторов &amp;quot;на лету&amp;quot; и выдачи результатов на основании сравнения векторов текста и синонимов из файла с метками&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;corpusName&#039;&#039;&#039; - наименование имеющегося корпуса данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;corpusData&#039;&#039;&#039; -  json строка с корпусом данных&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3469</id>
		<title>SMC. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3469"/>
		<updated>2026-01-12T08:44:14Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для анализа и классификации текстовой информации. Входным значением для сервиса являются данные в текстовом формате. В ответ на входящий запрос сервис возвращает данные в формате JSON.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Simple Message Classifier (SMC) – сервис анализа и классификации. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Системные требования для SMC&#039;&#039;&#039; =====&lt;br /&gt;
Для работы smc рекомендуется использовать видеокарту NVIDIA, поддерживающую технологию CUDA и имеющую в составе ядра CUDA.&lt;br /&gt;
&lt;br /&gt;
В случае отсутствия видеокарты для нормальной работы сервиса необходимо обеспечить не менее 8 потоков CPU &amp;gt;= 2.20GHz с поддержкой инструкций AVX2 или новее. В конфигурации 8 потоков Intel(R) Xeon(R) Gold 6148 2.40GHz 6Гб ОЗУ фраза из 10 слов классифицируется 0.2с, соответственно за секунду может быть распознано до 5 фраз, отправленных на распознавание последовательно или одновременно. Увеличение количества ядер/потоков дает прирост производительности, но не прямо пропорциональный.&lt;br /&gt;
&lt;br /&gt;
Оперативной памяти необходимо не менее 4Gb.&lt;br /&gt;
&lt;br /&gt;
Для обучения моделей рекомендуется использовать видеокарту. Обучение модели на корпусе размером 7500 строк занимает на ВМ с 16 ядрами, 16Гб ОЗУ и видеокартой А16 (одном из 4-х ее ядер) около 20 минут. Недостаточная мощность CPU может увеличить время обучения за счет подготовки данных.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка/обновление сервиса SMC&#039;&#039;&#039; =====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/smc&amp;amp;fileid=560 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить сервисный пакет окружения]].&lt;br /&gt;
&lt;br /&gt;
* Установка/обновление SMC осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./smc-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./smc-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./smc-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
* Загрузить последнюю версию продукта  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/smc/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/smc&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить SMC&amp;lt;code&amp;gt;/opt/smc/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/smc/inupdate -b&amp;lt;/code&amp;gt; – обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/smc/inupdate -r&amp;lt;/code&amp;gt; – обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/smc/inupdate -n&amp;lt;/code&amp;gt; – обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Установить модели  &amp;lt;code&amp;gt;/opt/smc/inmodel&amp;lt;/code&amp;gt; в интерактивном режиме.&lt;br /&gt;
* Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/smc/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/smc/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; – это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/smc/.userapi (это файл авторизации в API, нужен для обновления и загрузки моделей)&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/smc/.proxy (это файл конфигурации proxy, необходим для обновления и загрузки моделей, при отсутствующем прямом подключении к интернету)&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable smc.service &amp;amp;&amp;amp; sudo systemctl start smc.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status smc.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к порту 6181 на нужном интерфейсе по протоколу tcp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Лицензия&#039;&#039;&#039; =====&lt;br /&gt;
Сервис не функционирует без действующей лицензии. Информация о лицензии хранится в файле:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/opt/smc/license.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл лицензии должен соответствовать следующему формату:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;service&amp;quot;: &amp;quot;smc&amp;quot;, &amp;quot;expire&amp;quot;: &amp;quot;2045-01-01&amp;quot;, &amp;quot;licenses&amp;quot;: , &amp;quot;key&amp;quot;: &amp;quot;&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для получения лицензии необходимо:&lt;br /&gt;
&lt;br /&gt;
1. Запустить сервис &amp;lt;code&amp;gt;systemctl start smc&amp;lt;/code&amp;gt; и извлечь UUID, указанный в файле &amp;lt;code&amp;gt;/opt/smc/logs/log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Передать полученный UUID руководителю проекта для оформления лицензии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка сервисных моделей SMC&#039;&#039;&#039; =====&lt;br /&gt;
Установка сервисных моделей возможна только копированием файла(файлов) модели в каталог с названием модели. Названия моделей предопределены и соответствуют их назначению (compressor,  correction,  embeddings,  emotions,  normalization,  punctuation, toxicity). Установка сервисных моделей невозможна через API, в отличие от моделей классификации.&lt;br /&gt;
&lt;br /&gt;
Модели располагаются в каталоге /opt/smc/pretrained/. Для установки модели необходимо создать каталог /opt/smc/pretrained/&amp;lt;название модели&amp;gt;/ и распаковать в неё архив модели, после чего перезагрузить сервис командой systemctl restart smc.&lt;br /&gt;
&lt;br /&gt;
Проверить корректность работы модели пунктуации можно запросом к API с отправкой текста на распознавание:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -H &amp;quot;accept: application/json&amp;quot; -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/punctuate?text=&amp;lt;/nowiki&amp;gt;&amp;lt;текст&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Список всех моделей представлен в таблице:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&#039;&#039;&#039;Модель&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Описание&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Пример запроса к модели&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Пример ответа от модели&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;embeddings&#039;&#039;&#039;&lt;br /&gt;
|Языковая, отвечает за вычисление векторов при обучении модели. &lt;br /&gt;
|Проверить работу напрямую запросом к API не получится, метод не предусмотрен.&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;compressor&#039;&#039;&#039; &lt;br /&gt;
|Модель сжатия фраз. Убирает из фразы слова, не влияющие на ее смысл.&lt;br /&gt;
|Проверить работу можно через API запросом: &lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/compress?threshold=30&amp;lt;/nowiki&amp;gt;&amp;quot; --data-urlencode &amp;quot;text=как можно было бы получить выплату мне бы&amp;quot;  -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;{ &amp;quot;text&amp;quot;: &amp;quot;получить выплату мне бы&amp;quot; }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;emotions&#039;&#039;&#039; &lt;br /&gt;
|Анализ эмоций.&lt;br /&gt;
|Проверить работу можно через API запросом: &lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/emotion&amp;lt;/nowiki&amp;gt;&amp;quot; --data-urlencode &amp;quot;text=спасибо все хорошо&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;{ &amp;quot;emotion&amp;quot;: &amp;quot;positive&amp;quot;, &amp;quot;score&amp;quot;: 0.9601 }&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;punctuation&#039;&#039;&#039; &lt;br /&gt;
|Пунктуация.&lt;br /&gt;
|Проверить работу можно через API запросом: &lt;br /&gt;
&#039;&#039;&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/punctuate&amp;lt;/nowiki&amp;gt;?&amp;quot; --data-urlencode &amp;quot;text=я пришел как мне получить услугу&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|&amp;lt;code&amp;gt;{ &amp;quot;text&amp;quot;: &amp;quot;Я пришел. Как мне получить услугу?&amp;quot; }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;normalization&#039;&#039;&#039; &lt;br /&gt;
|Обратная нормализация, заменяет числа прописью на цифры. &amp;lt;blockquote&amp;gt;&#039;&#039;Внимание! У модели есть дополнительные требования к модулям Python в файле requirements.txt!&#039;&#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
|Проверить работу можно через API запросом:&lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/normalize&amp;lt;/nowiki&amp;gt;?&amp;quot; --data-urlencode &amp;quot;text=запишите меня к тринадцати&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;{&amp;quot;text&amp;quot;: &amp;quot;запишите меня к 13-ти&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;correction&#039;&#039;&#039; &lt;br /&gt;
|Коррекция правописания. Изменяет неправильно написанные слова, меняя их на наиболее близкие правильные (из знакомых модели). &lt;br /&gt;
|Проверить работу можно через API запросом:&lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/correct&amp;lt;/nowiki&amp;gt;?&amp;quot; --data-urlencode &amp;quot;text=халодная вода&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;{&amp;quot;text&amp;quot;: &amp;quot;холодная вода&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;toxicity&#039;&#039;&#039; &lt;br /&gt;
|Анализ текста на невежливость, угрозы, брань.&lt;br /&gt;
|Проверить работу можно через API запросом:&lt;br /&gt;
&amp;lt;code&amp;gt;curl -s  -G -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6181/smc/toxicity&amp;lt;/nowiki&amp;gt;?&amp;quot; --data-urlencode &amp;quot;text=нехороший человек&amp;quot; -H &amp;quot;accept: application/json&amp;quot;|jq&amp;lt;/code&amp;gt; &lt;br /&gt;
Подробнее см в [[SMC. Руководство пользователя|руководстве пользователя]].&lt;br /&gt;
&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ВНИМАНИЕ!&#039;&#039;&#039; Модели &#039;&#039;&#039;punctuation, embeddings, correction&#039;&#039;&#039; обязательны для установки, остальные  - в зависимости от сценария использования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка моделей классификации&#039;&#039;&#039; =====&lt;br /&gt;
Модель классификации — это модель, обученная на определенном наборе данных (корпусе) и предназначенная непосредственно для классификации. Установка модели возможна запросом с помощью методов API. Методы описаны в [https://wiki.connect2ai.net/index.php/SMC._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F руководстве пользователя]. Также модель может быть установлена копированием содержимого каталога /opt/smc/nnets/&amp;lt;имя модели&amp;gt; с одного сервера smc на другой. Внимание! При этом способе UPS, в конфигурационном файле которого указан новый smc, не увидит скопированную модель.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Конфигурирование параметров сервиса&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
Настройка параметров сервиса smc производится в файле /opt/smc/config.json&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|logs/&lt;br /&gt;
|Директория для хранения логов. Примеры абсолютного пути: &amp;quot;/var/log/smc/&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Количество файлов ротации.&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер файла в байтах, триггер для ротации.&lt;br /&gt;
|-&lt;br /&gt;
|noise.enabled&lt;br /&gt;
|true&lt;br /&gt;
|Детекция мусора при классификации (фраз, которые не относятся ни к одному классу)&lt;br /&gt;
|-&lt;br /&gt;
|noise.threshold&lt;br /&gt;
|0.7&lt;br /&gt;
|Порог отсева&lt;br /&gt;
|-&lt;br /&gt;
|devices.productionModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |Вычислительное устройство (cpu/cuda:N, где N — номер графического ускорителя), в ОЗУ которого осуществляется загрузка моделей. productionModel подразумевает все рабочие модели классификации, которые создаются в системе. Остальные модели — сервисные: embeddingModel — языковая, punctuationModel — пунктуация, emotionsModel — анализ эмоций, compressorModel — модель сжатия фраз, toxicityModel — модель анализа фразы на токсичность. Можно отдельно по названию сервисной модели включать/выключать ее загрузку в GPU. Рабочие модели можно включить в память GPU только все вместе.&lt;br /&gt;
|-&lt;br /&gt;
|devices.normalizationModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.embeddingModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.punctuationModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.emotionsModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.compressorModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.emotionsModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.toxicityModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|devices.correctionModel&lt;br /&gt;
|cuda:0&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.log&lt;br /&gt;
|путь к логу синхронизации ноды кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.statusFile&lt;br /&gt;
|logs/sync.status&lt;br /&gt;
|путь к файлу статуса ноды кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.nodes&lt;br /&gt;
|[]&lt;br /&gt;
|список IP адресов нод кластера &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Работа сервиса через реверс-прокси&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предполагает передачу больших объемов данных через HTTP. Рекомендуем соответствующим образом настроить конфигурацию сайта в реверс-прокси. Например, в nginx дополнительные параметры:&lt;br /&gt;
   client_max_body_size 0;&lt;br /&gt;
   proxy_read_timeout 3h;&lt;br /&gt;
   large_client_header_buffers 8 256k;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Сбор данных об ошибках&#039;&#039;&#039; =====&lt;br /&gt;
Логи сервиса по умолчанию находятся в файле /opt/smc/logs/log.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Удаление&#039;&#039;&#039; =====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/smc/uninstall&amp;lt;/code&amp;gt;. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Практические рекомендации&#039;&#039;&#039; =====&lt;br /&gt;
Сервис SMC в работе использует большую языковую модель, которая формирует многомерное семантическое пространство. Смысл фразы для ее классификации вычисляется на основании вектора фразы в этом пространстве. Для производительности таких вычислений рекомендуется использовать GPU с 16 Гб видеопамяти. В случае отсутствия видеокарт рекомендуется использовать не менее 3 серверов по 8 ядер и 16 Гб оперативной памяти. При этом желательно в строке запуска gunicorn в файле сервиса добавить параметр &#039;&#039;&#039;«-w 2»&#039;&#039;&#039;. Это приведет к загрузке в память 2-х экземпляров приложения и моделей и позволит при высокой нагрузке полностью загрузить процессорные ядра.&lt;br /&gt;
&lt;br /&gt;
В папке /opt/smc/cache/ находится кэш векторов фраз, которые были созданы моделью векторизации. При работе сервиса при наличии вектора в кэше, он берется из него, а не создается моделью заново. Причем остается в ОЗУ тоже, что значительно увеличивает производительность сервиса, однако при прохождении через сервис большого количества различных фраз может привести к потреблению нескольких гигабайт памяти. Необходимо либо увеличить количество ОЗУ, либо просто перезагружать сервис в нерабочее время. Папку cache при желании можно периодически чистить, но в данном случае кэш будет постепенно заполняться заново с использованием GPU.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SPR._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3468</id>
		<title>SPR. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SPR._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3468"/>
		<updated>2026-01-12T08:39:42Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===== &#039;&#039;&#039;﻿Общее описание сервиса распознавания речи (SPR)&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для преобразования естественной речи в текст. Входными данными для сервиса являются аудиофайлы в формате *.wav, результатом работы выступают данные в текстовом формате.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Термины и определения&#039;&#039;&#039;=====&lt;br /&gt;
Short Phrase Recognizer (SPR) — сервис распознавания речи.&lt;br /&gt;
&lt;br /&gt;
Модель — модель нейронной сети, описывает её архитектуру и конфигурацию, а также используемые алгоритмы обучения.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Расчет нагрузки SPR&#039;&#039;&#039;=====&lt;br /&gt;
Для нормальной работы сервиса требуются CPU с поддержкой инструкций AVX2 или новее.&lt;br /&gt;
&lt;br /&gt;
Сервис требует разных ресурсов в зависимости от сценария использования.&lt;br /&gt;
&lt;br /&gt;
Распознавание для голосовых помощников — рекомендуется модель common и работа на GPU NVIDIA. Возможна работа на CPU. В этом случае приемлемую задержку распознавания для одиночных фраз можно получить на ВМ с 8 потоками, 6 Гб оперативной памяти с резервом по частоте 9600 МГц (соответствует 4 ядрам по 2,4 ГГц). В этом случае 8-секундная речь будет распознана ориентировочно за 0,8 с. 4 таких ВМ обеспечат распознавание голоса абонента в диалогах длительностью 60–80 с с количеством одновременных диалогов до 60.&lt;br /&gt;
&lt;br /&gt;
В случае использования GPU A16 (одной из 4 голов на ВМ 8 потоков, 6 Гб) 8-секундная речь будет распознана примерно за 0,2 с. На такой ВМ можно распознавать до 100 одновременных диалогов. При расчетах и моделировании предполагалось, что за весь диалог длительностью 60–80 с будет распознано до 6 фраз длительностью до 8 с. GPU A16 содержит 1300 ядер CUDA в одной голове. На более мощных GPU возможности возрастают кратно количеству CUDA ядер.&lt;br /&gt;
&lt;br /&gt;
При распознавании для голосовых помощников рекомендуется использовать от 2-х воркеров gunicorn (-w 2 в строке запуска в файле службы) в зависимости от наличия памяти.&lt;br /&gt;
&lt;br /&gt;
Распознавание для диаризации (транскрибации) длительных переговоров — одновременное, используются модели common и big. Распознавание на CPU в этом режиме не поддерживается. Для распознавания рекомендуется минимум ВМ 8 ядер 16 Гб GPU A16. На такой ВМ время распознавания в 2,5 раза меньше длительности аудио. На GPU V100 время распознавания меньше длительности аудио ориентировочно в 5 раз. Пример распознавания одного и того же файла на разных GPU:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Карта&lt;br /&gt;
!Видеопамять&lt;br /&gt;
!Количество ядер CUDA&lt;br /&gt;
!Время распознавания&lt;br /&gt;
(минут)&lt;br /&gt;
!Примечание&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;big&amp;gt;A100&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|80&lt;br /&gt;
|6912&lt;br /&gt;
|12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;big&amp;gt;V100&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|16&lt;br /&gt;
|5120&lt;br /&gt;
|16&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;big&amp;gt;RTX 3060&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|12&lt;br /&gt;
|3584&lt;br /&gt;
|24&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;big&amp;gt;A16&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
|1280&lt;br /&gt;
|33&lt;br /&gt;
|1/4 карты&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Переключение между режимами распознавания — в зависимости от длительности аудио. Аудио короче 30 с распознаются для голосовых помощников. Остальные аудио разбиваются на фразы и выделяются фрагменты речи, принадлежащие разным лицам, то есть формат вывода тоже изменяется.&lt;br /&gt;
&lt;br /&gt;
Требования к загружаемому аудио&lt;br /&gt;
&lt;br /&gt;
Для преобразования фрагментов речи в текст используйте аудио в форматах, поддерживаемых ffmpeg.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Установка/обновление SPR&#039;&#039;&#039;=====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/spr&amp;amp;fileid=519 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить сервисный пакет окружения]].&lt;br /&gt;
&lt;br /&gt;
* Установка/обновление SPR осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./spr-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./spr-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./spr-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
* Загрузить последнюю версию продукта  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/spr/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/spr&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить SPR &amp;lt;code&amp;gt;/opt/spr/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/spr/inupdate -b&amp;lt;/code&amp;gt;  — обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/spr/inupdate -r&amp;lt;/code&amp;gt;  — обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/spr/inupdate -n&amp;lt;/code&amp;gt;  — обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Установить модели  &amp;lt;code&amp;gt;/opt/spr/inmodel&amp;lt;/code&amp;gt; в интерактивном режиме.&lt;br /&gt;
* Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/spr/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/spr/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; — это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/spr/.userapi (это файл авторизации в API, нужен для обновления и загрузки моделей),&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/spr/.proxy (это файл конфигурации proxy, необходим для обновления и загрузки моделей, при отсутствующем прямом подключении к интернету),&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable spr.service &amp;amp;&amp;amp; sudo systemctl start spr.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status spr.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к порту 6183 на нужном интерфейсе по протоколу tcp.     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Лицензия&#039;&#039;&#039; =====&lt;br /&gt;
Сервис не функционирует без действующей лицензии. Информация о лицензии хранится в файле:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/opt/spr/license.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл лицензии должен соответствовать следующему формату:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;service&amp;quot;: &amp;quot;spr&amp;quot;, &amp;quot;expire&amp;quot;: &amp;quot;2045-01-01&amp;quot;, &amp;quot;licenses&amp;quot;: , &amp;quot;key&amp;quot;: &amp;quot;&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для получения лицензии необходимо:&lt;br /&gt;
&lt;br /&gt;
1. Запустить сервис &amp;lt;code&amp;gt;systemctl start spr&amp;lt;/code&amp;gt; и извлечь UUID, указанный в файле &amp;lt;code&amp;gt;/opt/spr/logs/log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Передать полученный UUID руководителю проекта для оформления лицензии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка моделей SPR&#039;&#039;&#039;=====&lt;br /&gt;
Установка моделей возможна прямым копированием файла модели или загрузкой через API сервиса (метод POST /spr/data/{id}). &lt;br /&gt;
&lt;br /&gt;
Модели располагаются в каталоге /opt/spr/nnets/. Для установки модели необходимо создать каталог /opt/spr/nnets/&amp;lt;название модели&amp;gt;/ и скопировать в него содержимое архива модели, после чего перезагрузить сервис командой systemctl restart spr.&lt;br /&gt;
&lt;br /&gt;
Чтобы убедиться, что модели доступны, выполните запрос &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -H &amp;quot;accept: application/json&amp;quot; -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В ответе должно содержаться название новой модели или перечень названий моделей в формате json.&lt;br /&gt;
&lt;br /&gt;
Проверить корректность работы модели можно запросом к API с отправкой файла на распознавание:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -X POST &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/stt/common&amp;lt;/nowiki&amp;gt;&amp;quot; -H &amp;quot;accept: application/json&amp;quot; -H &amp;quot;Content-Type: multipart/form-data&amp;quot; -F &amp;quot;wav=@ФАЙЛ.wav;type=audio/wav&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Некоторые модели работают только на GPU. На данный момент такая модель только одна — «big».&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Внешние модули распознавания&#039;&#039;&#039; =====&lt;br /&gt;
Сервис SPR поддерживает установку произвольных модулей распознавания. Для этого папка external должна содержать директорию с нужным модулем, в которой обязательным является наличие файла handler.py с функцией recognize(data, sr). Сервис передаст в данную функцию аудиоданные в переменную data, в формате pydub.AudioSegment, а также значение sample rate в переменной sr. Готовые внешние модули распознавания доступны по [https://cloud.connect2ai.net/index.php/apps/files/?dir=/spr ссылке].&lt;br /&gt;
&lt;br /&gt;
Проверить корректность работы модели можно запросом к API с отправкой файла на распознавание:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -X POST &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/stt/Имя_Модуля&amp;lt;/nowiki&amp;gt;&amp;quot; -H &amp;quot;accept: application/json&amp;quot; -H &amp;quot;Content-Type: multipart/form-data&amp;quot; -F &amp;quot;wav=@ФАЙЛ.wav;type=audio/wav&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;Со списком методов можно ознакомиться в [[SPR. Руководство пользователя|руководстве пользователя]]. Метод на загрузку модели &amp;lt;code&amp;gt;curl -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/data/Имя_Модуля&amp;lt;/nowiki&amp;gt;&amp;quot; -H  &amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt; не работает с модулями в целях безопасности. Также модули не отображаются в списке моделей по запросу &amp;lt;code&amp;gt;curl -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/&amp;lt;/nowiki&amp;gt;&amp;quot; -H  &amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;. В некоторых модулях конфигурация может быть вынесена в отдельный файл. Например, для модуля yandex это - /opt/spr/external/config.json.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Конфигурирование параметров сервиса SPR&#039;&#039;&#039;=====&lt;br /&gt;
Настройка параметров сервиса spr производится в файле /opt/spr/config.json.&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|device&lt;br /&gt;
|cuda:0&lt;br /&gt;
|Вычислительное устройство (cpu/cuda:N, где N — номер графического ускорителя), в ОЗУ которого осуществляется загрузка моделей.&lt;br /&gt;
|-&lt;br /&gt;
|max_gpu_memory&lt;br /&gt;
|0.99&lt;br /&gt;
|Лимит использования ОЗУ видеокарты.&lt;br /&gt;
|-&lt;br /&gt;
|punctuation&lt;br /&gt;
|false&lt;br /&gt;
|Расстановка знаков препинания через [[SMC. Руководство пользователя|сервис SMC]].&lt;br /&gt;
|-&lt;br /&gt;
|normalization&lt;br /&gt;
|false&lt;br /&gt;
|Обратная нормализация текста через [[SMC. Руководство пользователя|сервис SMC]].&lt;br /&gt;
|-&lt;br /&gt;
|toxicity&lt;br /&gt;
|false&lt;br /&gt;
|Анализ текста на токсичность через [[SMC. Руководство пользователя|сервис SMC]].&lt;br /&gt;
|-&lt;br /&gt;
|emotions&lt;br /&gt;
|false&lt;br /&gt;
|Анализ текста на эмоции через [[SMC. Руководство пользователя|сервис SMC]].&lt;br /&gt;
|-&lt;br /&gt;
|voice_analyzer&lt;br /&gt;
|false&lt;br /&gt;
|Анализ голоса спикера на эмоции, возраст, пол через [[SBS. Руководство пользователя.|сервис SBS]].&lt;br /&gt;
|-&lt;br /&gt;
|save_audio_requests&lt;br /&gt;
|false&lt;br /&gt;
|Записывать аудио получаемые для распознавания в синхронном режиме. Будут сохраняться в /tmp/spr/. Только для диагностики. Не применять в нагруженных серверах.&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|logs/&lt;br /&gt;
|Путь к папке логов.&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Количество старых сохраняемых логов.&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер текущего лог-файла в байтах.&lt;br /&gt;
|-&lt;br /&gt;
|cache.lifetime&lt;br /&gt;
|604800&lt;br /&gt;
|Время жизни кэша результатов отложенного распознавания.&lt;br /&gt;
|-&lt;br /&gt;
| sbs.url&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;http://127.0.0.1:6185&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Путь к [[SBS. Руководство пользователя|сервису биометрии]] для получения метаданных голосового фрагмента.&lt;br /&gt;
|-&lt;br /&gt;
|sbs.conn_timeout&lt;br /&gt;
|2&lt;br /&gt;
|Таймаут на подключение к API SBS.&lt;br /&gt;
|-&lt;br /&gt;
|sbs.read_timeout&lt;br /&gt;
|30&lt;br /&gt;
|Таймаут на получение ответа от API SBS.&lt;br /&gt;
|-&lt;br /&gt;
|smc.url&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Путь к [[SMC. Руководство пользователя|сервису классификации]] для дополнительной работы с распознанным текстом.&lt;br /&gt;
|-&lt;br /&gt;
|smc.conn_timeout&lt;br /&gt;
|2&lt;br /&gt;
|Таймаут на подключение к API SMC.&lt;br /&gt;
|-&lt;br /&gt;
|smc.read_timeout&lt;br /&gt;
|30&lt;br /&gt;
|Таймаут на получение ответа от API SMC.&lt;br /&gt;
|-&lt;br /&gt;
|see.url&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;http://127.0.0.1:6184&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Путь к [[SEE. Руководство пользователя|сервису поиска сущностей]] для дополнительной работы с распознанным текстом.&lt;br /&gt;
|-&lt;br /&gt;
|see.conn_timeout&lt;br /&gt;
|2&lt;br /&gt;
|Таймаут на подключение к API SEE.&lt;br /&gt;
|-&lt;br /&gt;
|see.read_timeout&lt;br /&gt;
|30&lt;br /&gt;
|Таймаут на получение ответа от API SEE.&lt;br /&gt;
|-&lt;br /&gt;
|vad.default&lt;br /&gt;
|webrtc&lt;br /&gt;
|Тип VAD по умолчанию для разбивки аудиофайлов. Возможные значения — пока только webrtc.&lt;br /&gt;
|-&lt;br /&gt;
|vad.maxSilence&lt;br /&gt;
|2000&lt;br /&gt;
|Длительность паузы в речи в миллисекундах для разбивки длинных аудиофайлов на фрагменты.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.similarityThreshold&lt;br /&gt;
|0.7&lt;br /&gt;
|Порог различия для разделения говорящих.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.maxSpeechLength&lt;br /&gt;
|10000&lt;br /&gt;
|Максимальная длительность фрагмента для сравнения говорящих в миллисекундах.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.wordMinLimit&lt;br /&gt;
|5&lt;br /&gt;
|Минимальный размер фразы при определении говорящих.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.timeMinLimit&lt;br /&gt;
|3000&lt;br /&gt;
|Минимальная длительность аудио, чтобы оно могло быть использовано для добавления нового говорящего.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.batch&lt;br /&gt;
|4&lt;br /&gt;
|Количество одновременного анализируемых аудиофрагментов при разделении говорящих.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.concatEqual&lt;br /&gt;
|true&lt;br /&gt;
|Позволяет склеивать последовательные фразы одного и того же говорящего.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.defaultModel&lt;br /&gt;
|call&lt;br /&gt;
|Модель определения говорящего.&lt;br /&gt;
|-&lt;br /&gt;
|blacklist&lt;br /&gt;
|[]&lt;br /&gt;
|Список моделей распознавания в папках nnets и external, которые не должны быть загружены при старте сервиса SPR.&lt;br /&gt;
|-&lt;br /&gt;
|corrections&lt;br /&gt;
|{ &amp;quot;big&amp;quot;: &amp;quot;common&amp;quot;  }&lt;br /&gt;
|Добавление модели коррекции для стенографирования.&lt;br /&gt;
|-&lt;br /&gt;
|garbage&lt;br /&gt;
|[ &amp;quot;—&amp;quot;, &amp;quot;[*]&amp;quot; ]&lt;br /&gt;
|Массив фраз, которые считаются мусорными и откидываются из распознанного текста.&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.log&lt;br /&gt;
|путь к логу синхронизации ноды кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.statusFile&lt;br /&gt;
|logs/sync.status&lt;br /&gt;
|путь к файлу статуса ноды кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.nodes&lt;br /&gt;
|[]&lt;br /&gt;
|список IP адресов нод кластера&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Сбор данных об ошибках&#039;&#039;&#039;=====&lt;br /&gt;
Логи сервиса по умолчанию находятся в файле /opt/spr/logs/log.txt&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Удаление&#039;&#039;&#039;=====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/spr/uninstall&amp;lt;/code&amp;gt;. Команда удалит сервис и  рабочий каталог, включая все установленные модели.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Практические рекомендации&#039;&#039;&#039;=====&lt;br /&gt;
Сервис spr на системах с видеокартой на большой нагрузке может не полностью использовать ресурсы GPU, при этом могут быть задержки в распознавании. Для более полного использования ресурсов рекомендуется в строке запуска gunicorn в файле сервиса добавить параметр «&#039;&#039;&#039;-w 2&#039;&#039;&#039;». Это приведет к загрузке в видеопамять 2-х экземпляров приложения и моделей. Таким образом приложение сможет более эффективно использовать ресурсы GPU, но при этом возрастет потребность в памяти GPU.&lt;br /&gt;
&lt;br /&gt;
В случае если в системе обработки речи используется несколько несимметричных по ресурсам серверов spr, регулировать нагрузку на них можно указывая адрес сервера, в котором больше ресурсов, большее количество раз в разделе «spr.cluster» конфигурационного файла ups.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=UPS._%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_API&amp;diff=3467</id>
		<title>UPS. Описание API</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=UPS._%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_API&amp;diff=3467"/>
		<updated>2026-01-12T08:08:55Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Описание часто используемых параметров&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!Тип&lt;br /&gt;
!Описание&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;servicetype&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Тип сервиса. Возможные значения: spr, smc, see, sbs, tts.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;servertype&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Тип группы серверов. Возможные значения: trainer (серверы обучения), cluster (рабочие серверы).&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;model&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Название модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;modeltype&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Тип модели. Возможные значения: &#039;&#039;&#039;future&#039;&#039;&#039; — планируемая/черновик, &#039;&#039;&#039;current&#039;&#039;&#039; — текущая/рабочая, &#039;&#039;&#039;previous&#039;&#039;&#039; — архивная.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;error&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;ответ&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Флаг ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;message&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;ответ&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Информационное сообщение.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;&amp;quot;/external modules&amp;quot; методы внешних модулей&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
В этом разделе будут методы соответствующим образом оформленных [[UPS. Руководство администратора#Установка модулей для UPS|внешних модулей]]&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/auth: методы  авторизации&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/access&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение токенов доступа. &amp;lt;small&amp;gt;Токен доступа определяет, какие из методов будут доступны конкретному пользователю. Формируется на основании роли. Дополнительный входной параметр во всех методах, кроме перечисленных в разделе «nopassword» конфигурационного файла. Время действия токена определяется параметром auth.accessLifeTime конфигурационного файла.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;username&#039;&#039;&#039; — логин&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;password&#039;&#039;&#039; — пароль&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-access-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-refresh-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/dataset/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление dataset (набора данных). &amp;lt;small&amp;gt;Dataset (набор данных) используется для ограничения доступа к данным. В ответе метод вернет id созданного набора данных.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;data — json строка вида: {    &amp;quot;name&amp;quot;: &amp;quot;название нового набора&amp;quot;     }&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset_id&amp;quot;: &amp;quot;XXXXXXXXXXXXX&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/auth/dataset/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление dataset (набора данных). &lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора данных&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/dataset/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Переименование dataset (набора данных). &amp;lt;small&amp;gt;Метод меняет все параметры набора данных, но на данный момент времени у набора данных, кроме id, только один параметр — наименование.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора данных&amp;lt;/small&amp;gt; &lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — JSON c новыми параметрами&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/datasets&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка наборов данных.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;XXX&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;По умолчанию&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/refresh&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Обновление токенов доступа. &amp;lt;small&amp;gt;Время, в течение которого можно обновить доступ, регулируется параметром auth.refreshLifeTime конфигурационного файла. Служебный метод, используется в основном в веб-интерфейсе, чтобы не запрашивать лишний раз пароль.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;x-refresh-token&#039;&#039;&#039; — токен обновления доступа&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-access-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-refresh-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/rights&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка прав доступа. &amp;lt;small&amp;gt;Служебный метод — по токену получает название роли и все права доступа этой роли, а также общедоступные методы.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;&amp;lt;&amp;lt;{  &amp;quot;РОЛЬ&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;GET:/......&amp;quot;  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;nopassword&amp;quot;: [    &amp;quot;GET:/.......&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;...............&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;&amp;lt;&amp;lt;...............&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;POST:/.......&amp;quot;  ]  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/role/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание роли. &amp;lt;small&amp;gt;Служебный метод — используется веб-интерфейсом при создании роли.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — JSON с параметрами роли:{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;проверка создания&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;rights&amp;quot;: [    &amp;quot;набор прав через запятую&amp;quot; ]&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;, &amp;quot;role_id&amp;quot;: &amp;quot;a7e68bb83169f864c2fc868401b5250c&amp;quot;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/auth/role/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление роли.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; роли&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/role/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение роли. &amp;lt;small&amp;gt;Параметры как при создании роли. Роль будет переписана.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; роли&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — JSON с параметрами роли:{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;проверка создания&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;rights&amp;quot;: [    &amp;quot;набор прав через запятую&amp;quot; ]&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/roles&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка ролей.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;имя роли&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;rights&amp;quot;: [ &amp;quot;набор прав через запятую&amp;quot; ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;},............]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/user/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание нового пользователя. &amp;lt;small&amp;gt;Метод вернет или id нового пользователя или описание ошибки&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — json строка {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;login_name&amp;quot;, &amp;quot;fullname&amp;quot;: &amp;quot;Отображаемое Имя&amp;quot;,&amp;quot;password&amp;quot;: &amp;quot;XXXXX&amp;quot;,&amp;quot;role&amp;quot;: &amp;quot;role_id&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;default dataset id&amp;quot;, &amp;quot;datasets&amp;quot;: [ &amp;quot;dataset id&amp;quot;, ................. ] }&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;user_id&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXX&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/auth/user/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление пользователя&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - идентификатор пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/user/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение параметров пользователя&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; — идентификатор пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;loginname&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;fullname&amp;quot;: &amp;quot;Full Name&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;role&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;datasets&amp;quot;: [ &amp;quot;0&amp;quot;, &amp;quot;2dc34d3454243522e5407d3a170815a2&amp;quot; ] }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/user/info&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение параметров пользователя по его токену доступа. &amp;lt;small&amp;gt;Служебный метод - для предоставления прав текущему пользователю по его токену&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;x-access-token&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;loginname&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;fullname&amp;quot;: &amp;quot;Full Name&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;role&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;datasets&amp;quot;: [  &amp;quot;0&amp;quot;,  &amp;quot;2dc34d3454243522e5407d3a170815a2&amp;quot;]  },  &amp;quot;rights&amp;quot;: [..........] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/user/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка пользователей с их параметрами. &amp;lt;small&amp;gt;Тоже самое что и в методе GET /auth/user/info, только для всех пользователей&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |[&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;loginname&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;fullname&amp;quot;: &amp;quot;Full Name&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;role&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;datasets&amp;quot;: [  &amp;quot;0&amp;quot;,  &amp;quot;2dc34d3454243522e5407d3a170815a2&amp;quot;]  },  &amp;quot;rights&amp;quot;: [..........] },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
......&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/user/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение параметров пользователя&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — параметры пользователя как при создании&amp;lt;/small&amp;gt; &lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/user/password&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Смена пароля пользователя по его токену доступа.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;password&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |{ &amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;} &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/userlog&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение действий пользователя за период времени по его токену&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;from&#039;&#039;&#039; — начало периода в формате &amp;quot;%Y-%m-%d %H:%M&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;to&#039;&#039;&#039; — конец периода в формате &amp;quot;%Y-%m-%d %H:%M&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;время&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;метод&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      {измененные данные в формате метода}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;время&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;метод&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      {измененные данные в формате метода}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    .........&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/version&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение версии сервиса ups&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;version&amp;quot;: &amp;quot;4.082 release&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/lang: методы мультиязычности&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/lang/&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выводит информацию о переводе элементов интерфейса на текущий язык&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;see&amp;quot;:&amp;quot;Сущности&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;smc&amp;quot;:&amp;quot;Классификатор&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;... }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/lang/wallpaper&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отдает случайный фон рабочего стола в виде jpeg из каталога «wallpapers» на сервере ups&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;image/jpeg&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/server: получение информации о серверах&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |GET/server/get/addresses/{servicetype}&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Вывод информации о серверах, обслуживающих данный сервис, а также настроенных параметров обращения к данным серверам. &lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainer&#039;&#039;&#039; — сервер обучения, &#039;&#039;&#039;cluster&#039;&#039;&#039; — рабочие серверы, &#039;&#039;&#039;connect&#039;&#039;&#039; — время на подключение, &#039;&#039;&#039;read&#039;&#039;&#039; — время на ответ,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;failed&#039;&#039;&#039; — время пребывания в сбойных, &#039;&#039;&#039;install&#039;&#039;&#039; — время на установку модели, &#039;&#039;&#039;info&#039;&#039;&#039; — время на получение информации о модели,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;counter&#039;&#039;&#039; — счетчик запросов, &#039;&#039;&#039;current&#039;&#039;&#039; — индекс последнего опрошенного cluster-сервера&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;fail&#039;&#039;&#039; — массив сбойных серверов со временем постановки в сбой.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;trainer&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;cluster&amp;quot;: [ &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;timers&amp;quot;: {  &amp;quot;connect&amp;quot;: 0.5,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;read&amp;quot;: 1,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;failed&amp;quot;: 600,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;install&amp;quot;: 60,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;info&amp;quot;: 3 },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;counter&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;current&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;fail&amp;quot;: {&amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;:1686295678} }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |GET/server/get/models/{servicetype}/{servertype}&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Вывод информации о моделях указанного сервиса на каждом сервере указанного типа. &amp;lt;small&amp;gt;Вывод представляет собой массив URL-серверов, для каждого из которых указан список моделей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servertype&#039;&#039;&#039; — тип серверов&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;model1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;modelN&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ],  ... }&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/model: методы работы с моделями&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/add/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание пустой модели в указанном сервисе. &amp;lt;small&amp;gt;Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;, &#039;&#039;&#039;spr&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 30%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 70%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/apply/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Применение установленной на рабочих серверах модели. &amp;lt;small&amp;gt;После применения модель становится доступна для штатного режима работы. Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;, &#039;&#039;&#039;spr&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;DELETE/model/delete/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Полностью удаляет модель из системы и со всех управляемых серверов. &amp;lt;small&amp;gt;Доступно для следующих сервисов: smc, see, spr.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/errors/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Запрос на получение списка ошибок модели после тестирования/обучения.  &amp;lt;small&amp;gt;Доступен для сервисов see и smc. Ответ содержит список вложенных списков. В каждом три значения: правильное значение, предсказанное моделью значение и начальные данные (фраза).&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039; — тип ошибок в выводе&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;- train&#039;&#039;&#039; ошибки обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;- test&#039;&#039;&#039; ошибки тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;- mark&#039;&#039;&#039; ошибки авторазметки&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[ [true, predicted, phrase],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;... ]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/export/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Экспорт модели, модель скачивается в виде zip-архива.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл model.zip, где model — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;DELETE/model/handler/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление постобработчика из модели типа future. &amp;lt;small&amp;gt;Более подробно об обработчике см. руководства пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/handler/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отправка файла-постобработчика в указанную модель типа future. &amp;lt;small&amp;gt;Обработчик становится активным сразу после успешной отправки. Более подробно об обработчике см. руководства пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;handler&#039;&#039;&#039; — файл, содержащий программный код python постобработчика&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/handler/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение файла-постобработчика из модели типа future.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл handler.py&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;DELETE/model/handler/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление постобработчика в указанной модели указанного типа.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/handler/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отправка файла-постобработчика в указанную модель указанного типа. &amp;lt;small&amp;gt;Становится активным сразу после успешной отправки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;handler&#039;&#039;&#039; — файл, содержащий программный код python постобработчика&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/handler/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение файла-постобработчика из указанной модели указанного типа.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл handler.py&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/import/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Импортирует модель в черновик (modeltype=future)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;zip-model&#039;&#039;&#039; — zip с файлами модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/info/{servicetype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение информации о всех моделях указанного сервиса. &amp;lt;small&amp;gt;Аналогичен методу GET /info/{servicetype}/{model}, но выводит информацию обо всех моделях.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{    &amp;quot;model1&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;previous&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;current&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;future&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;empty&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      ...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    }    },   ...  }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/info/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение информации о каждом типе (modeltype) указанной модели. &amp;lt;small&amp;gt;Итоговый массив содержит переменные типа modeltype, в каждой из который содержится информация о модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{    &amp;quot;previous&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;current&amp;quot;:  {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;status&amp;quot;: &amp;quot;trained&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ...  },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;future&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;status&amp;quot;: &amp;quot;trained&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ...  }  }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/install/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Установка импортированной или обученной модели на рабочих серверах.&lt;br /&gt;
&amp;lt;small&amp;gt;Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;, &#039;&#039;&#039;spr&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/log/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выводит лог обучения и тестирования модели. &amp;lt;small&amp;gt;Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;training&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;preparing data&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;tokenizing&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/restore/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Откат модели. &amp;lt;small&amp;gt;Делает текущую рабочую модель черновиком (future), рабочие серверы после выполнения данного метода продолжают уже с возвращенной моделью. Схематично действия над modeltype в результате выполнения данного метода можно представить так:&amp;lt;/small&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;current -&amp;gt; future&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;previous -&amp;gt; current&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;null -&amp;gt; previous&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |{&amp;quot;error&amp;quot;:0,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&lt;br /&gt;
&lt;br /&gt;
} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/corpus: работа с данными для обучения моделей&#039;&#039;&#039; =====&lt;br /&gt;
Методы данного класса предназначены только для сервисов smc и see&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перечень заданий автоматической маркировки корпусов. &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{   &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;tasks&amp;quot;: [ {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;: &amp;quot;29d9da98-d6c1-4dc1-bbc9-111309816002&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;taskname&amp;quot;: &amp;quot;test_doc&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {  &amp;quot;id&amp;quot;: &amp;quot;1a5e9bdc-9f98-49d2-84de-1a9bde8fc37c&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;taskname&amp;quot;: &amp;quot;sssss&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;    }  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/result/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Результат выполнения задания на автомаркировку корпуса. &amp;lt;small&amp;gt;Если задание завершено в ответе придет маркированый корпус и время старта и финиша задания&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;started&amp;quot;: &amp;quot;2024-10-09 18:05:51&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;finished&amp;quot;: &amp;quot;2024-10-09 18:05:51&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;corpus&amp;quot;: [[ [], [ [&amp;quot;тэг&amp;quot;],&amp;quot;фраза 1&amp;quot;]],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;small&amp;gt;[ [], [[&amp;quot;тэг&amp;quot;],&amp;quot;фраза 2&amp;quot;]] ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Начать автоматическую разметку корпуса.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;taskname&#039;&#039;&#039; — произвольное имя задания&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;corpus&#039;&#039;&#039; — json строка с размечаемым корпусом[[ [класс1,... классН], текст ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[ [класс1,... классН], текст ]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;marks&#039;&#039;&#039; — json строка с набором меток [    [ метка, [синоним, синоним2 ... синоним Н], порог ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[ метка, [синоним, синоним2 ... синоним Н], порог ]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;appendMarks&#039;&#039;&#039; — &amp;quot;yes&amp;quot; - дополнить разметку, &amp;quot;no&amp;quot; -заменить разметку&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;уникальный id задания&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/status/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получить статус задания на автоматическую разметку корпуса.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — уникальный id задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;started&amp;quot;: &amp;quot;2024-10-09 13:49:46&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;finished&amp;quot;: &amp;quot;2024-10-09 13:49:46&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;progress&amp;quot;: 0&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/stop/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Прервать задание на автоматическую разметку корпуса. &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/copy/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Копирование корпуса данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;srcname&#039;&#039;&#039; — текущее имя&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;dstname&#039;&#039;&#039; — новое имя&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/corpus/delete/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаляет корпус с данными&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/export/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Возвращает текстовый файл с корпусом, &amp;lt;small&amp;gt;содержащий строки вида КЛАСС&amp;lt;TAB&amp;gt;ФРАЗА&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл name.txt&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/get/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Возвращает JSON с данными корпуса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;  [ &amp;quot;тэг&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;фраза&amp;quot;&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;  ],&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;  ...&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/import/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Метод для импорта корпуса данных. &amp;lt;small&amp;gt;Возможен как из текстового файла со строками вида КЛАСС&amp;lt;TAB&amp;gt;ФРАЗА (доступно для smc и see), так и из логов работы системы (только для smc). Если на вход поступил файл csv, происходит импорт из файла, в противном случае — из логов.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv&#039;&#039;&#039; — файл данных&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;startDate&#039;&#039;&#039; — дата начала выборки, YYYY-MM-DD&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;stopDate&#039;&#039;&#039; — дата окончания выборки, YYYY-MM-DD&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — имя модели, из логов которой будет произведен импорт&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;limit&#039;&#039;&#039; — числовое ограничение строк импорта&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/list/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Возвращает список всех корпусов данных для указанного типа сервиса &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[ &amp;quot;корпус1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;корпус2&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ...]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/put/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перезаписывает корпус отправленным массивом данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — строка формата json с данными. Аналогична выводу метода GET /get/{servicetype}&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/rename/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Переименование корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;srcname&#039;&#039;&#039; — текущее имя&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;dstname&#039;&#039;&#039; — новое имя&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/marks: работа с наборами меток в smc&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление набора менток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; —список меток в формате: [ [  &amp;quot;метка1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним1&amp;quot;, &amp;quot;синоним2&amp;quot;, &amp;quot;синоним3&amp;quot;, &amp;quot;синонимN&amp;quot; ], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],  [ &amp;quot;меткаN&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним11&amp;quot;, &amp;quot;синоним21&amp;quot;,&amp;quot;синоним31&amp;quot;, &amp;quot;синонимN1&amp;quot;], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ] ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — имя создаваемого набора&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;132310fa-98c7-4b12-896f-ff113827d077&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/marks/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление набора меток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/marks/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение набора меток в виде строк &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;метка1    синоним1,синоним2,синоним3,синонимN     0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;меткаN    синоним11,синоним21,синоним31,синонимN1    0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/marks/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение набора меток в виде json&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;quot;метка1&amp;quot;, [ &amp;quot;синоним1&amp;quot;, &amp;quot;синоним2&amp;quot;, &amp;quot;синоним3&amp;quot;, &amp;quot;синонимN&amp;quot;  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;quot;меткаN&amp;quot;, [&amp;quot;синоним11&amp;quot;,&amp;quot;синоним21&amp;quot;, &amp;quot;синоним31&amp;quot;,&amp;quot;синонимN1&amp;quot;],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ]  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/import/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Импорт в существующий набор меток из файла. &amp;lt;small&amp;gt;Набор будет переписан из файла&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv&#039;&#039;&#039; — файл &amp;quot;метка&amp;quot;ТАБ&amp;quot;синонимы через запятую&amp;quot;ТАБ&amp;quot;достоверность(число от 0 до 1)&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/marks/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка наборов меток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;result&amp;quot;: [    { &amp;quot;id&amp;quot;: &amp;quot;416fbe08-19e9-453c-b140-37008a08a76c&amp;quot;,&amp;quot;name&amp;quot;: &amp;quot;test&amp;quot; },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;quot;id&amp;quot;: &amp;quot;16e77fa2-7c4d-47f9-8644-6385876525d6&amp;quot;,&amp;quot;name&amp;quot;: &amp;quot;Рыжик&amp;quot; },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;quot;id&amp;quot;: &amp;quot;132310fa-98c7-4b12-896f-ff113827d077&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;test&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/put/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Импорт в существующий набор меток из json строки. &amp;lt;small&amp;gt;Набор будет переписан&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — список меток в формате: [ [  &amp;quot;метка1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним1&amp;quot;, &amp;quot;синоним2&amp;quot;, &amp;quot;синоним3&amp;quot;, &amp;quot;синонимN&amp;quot; ], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],  [ &amp;quot;меткаN&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним11&amp;quot;, &amp;quot;синоним21&amp;quot;,&amp;quot;синоним31&amp;quot;, &amp;quot;синонимN1&amp;quot;], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ] ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор заменяемого набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/rename/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Присваивает новое наименование существующему набору меток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — новое имя набора&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/spr: работа с сервисом SPR&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{{:SPR. Руководство пользователя}}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/smc: работа с сервисом SMC&#039;&#039;&#039; =====&lt;br /&gt;
{{:SMC. Руководство пользователя}}&lt;br /&gt;
&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/compress&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Убирает из фразы слова не влияющие на ее смысл.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; &amp;lt;span data-darkreader-inline-color=&amp;quot;&amp;quot; data-darkreader-inline-bgcolor=&amp;quot;&amp;quot;&amp;gt;—&amp;lt;/span&amp;gt; текст для сжатия&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; &amp;lt;span data-darkreader-inline-color=&amp;quot;&amp;quot; data-darkreader-inline-bgcolor=&amp;quot;&amp;quot;&amp;gt;—&amp;lt;/span&amp;gt; уровень компрессии от 1 до 100. Чем меньше число тем меньше слов будет в итоговой фразе&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;text&amp;quot;: &amp;quot;сжатый текст&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/correct&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Коррекция правописания. &amp;lt;small&amp;gt;Изменяет неправильно написанные слова, меняя их на наиболее близкие правильные (из знакомых модели). Если модель коррекции не смогла предложить правильное написание текста, метод вернёт текст неизменным.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для коррекции&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;correction&#039;&#039;&#039; - уровень коррекции, от 1 до 3. По умолчанию 1.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - если указано, то при коррекции дополнительно используется словарь модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;text&amp;quot;: &amp;quot;корректный текст&amp;quot; }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/emotion&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Анализ эмоций. &amp;lt;small&amp;gt;На выходе один из вариантов: positive, negative, neutral.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; &amp;lt;span data-darkreader-inline-color=&amp;quot;&amp;quot; data-darkreader-inline-bgcolor=&amp;quot;&amp;quot;&amp;gt;—&amp;lt;/span&amp;gt; фраза для анализа эмоций&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;emotion&amp;quot;: &amp;quot;positive&amp;quot;, &amp;quot;score&amp;quot;: 0.9601 }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/groups/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавляет к модели группы из корпуса. &amp;lt;small&amp;gt;Группы в модели будут перезаписаны&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;corpus&#039;&#039;&#039; — наименование корпуса- источника групп&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;string&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/groups/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Поиск групп по ранее полученным меткам. &amp;lt;small&amp;gt;Ищет группы по набору меток. Результат — группы (если найдены) и ближайшие группы с указанием недостающих меток. Позволяет сохранять контекст в виде меток и дозапрашивать группы с учетом контекста.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;classes&#039;&#039;&#039; — набор меток через запятую&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — имя модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;groups&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   {     &amp;quot;group&amp;quot;: &amp;quot;Группа 1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     &amp;quot;intersection&amp;quot;: 3,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     &amp;quot;classes&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;       &amp;quot;метка1_о&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;       &amp;quot;метка2_о&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;       &amp;quot;метка3_о&amp;quot;     ]   },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   {     &amp;quot;group&amp;quot;: &amp;quot;Группа 2&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     &amp;quot;intersection&amp;quot;: 2,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     &amp;quot;classes&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;       &amp;quot;метка1_о&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;       &amp;quot;метка5_о&amp;quot;     ]   }],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;nearest&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   {     &amp;quot;group&amp;quot;: &amp;quot;Группа до которой не хватило 1 метки&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     &amp;quot;percent&amp;quot;: 0.75,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     &amp;quot;need&amp;quot;: &amp;quot;недостающая метка_о&amp;quot;   } ] }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/normalize&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Обратная нормализация текста. &amp;lt;small&amp;gt;Пример: двадцать пятого апреля в пятом часу — 25 апреля в 5-м часу.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст для обработки.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;text&amp;quot;: &amp;quot;&amp;lt;строка после обратной нормализации&amp;gt;&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/punctuate&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Расстановка знаков препинания&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст для обработки.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;text&amp;quot;: &amp;quot;string&amp;quot;  }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/stop/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановка обучения модели. &amp;lt;small&amp;gt;Удаляет тестовую версию модели с сервера обучения, тем самым прерывает обучение.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;string&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/test/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Запуск тестирования модели smc. &amp;lt;small&amp;gt;Метод асинхронный, статус тестирования можно запросить методом GET/info/{servicetype}/{model}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;corpus&#039;&#039;&#039; — название корпуса с тестовыми данными&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/toxicity&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Определение токсичности высказывания. &amp;lt;small&amp;gt;Высказывание анализируется по 4 параметрам, по каждому выдается вероятность от 0 до 1:&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; &amp;lt;span data-darkreader-inline-color=&amp;quot;&amp;quot; data-darkreader-inline-bgcolor=&amp;quot;&amp;quot;&amp;gt;—&amp;lt;/span&amp;gt; текстовая строка с высказыванием&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;insult&amp;quot;: 0.13, # оскорбление&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;obscenity&amp;quot;: 0, # брань&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;threat&amp;quot;: 0, # угрозы&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;politeness&amp;quot;: 0.53 вежливость}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/train/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление модели. &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;corpus&#039;&#039;&#039; — имя текстового корпуса для обучения модели или имя набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;isMarks&#039;&#039;&#039; — если «1», то вместо корпуса метод ожидает набор меток. Модель, созданная из меток, при этом не обучается, созданный файл модели используется для расчетов векторов «на лету» и выдачи результатов на основании сравнения векторов текста и синонимов из файла с метками.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/see: работа с сервисом SEE&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/entities/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Поиск сущностей. &amp;lt;small&amp;gt;Вернется массив со всеми моделями, в которых были найдены сущности (модели для поиска указываются в поле id). Каждая переменная с названием модели будет содержать список всех найденных сущностей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;model — идентификатор[ы] модели. Может быть указано несколько через запятую, тогда запрос будет обработан всеми указанными моделями.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;text — текст для анализа.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;similarity — порог похожести найденной сущности на эталонные, %. По умолчанию 70.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ ID-модели: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{ &#039;&#039;&#039;position&#039;&#039;&#039;: 0, # позиция слова начала фрагмента, определяющего сущность&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;confidence&#039;&#039;&#039;: 1, #вероятность правильного определения сущности&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;text: текст сущности,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;calculated&#039;&#039;&#039;: vaktsinatsiya # поле, содержащее значение сущности, использованный при обучении модели  }, {...}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]  }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/stop/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановка обучения модели&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/train/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Запуск обучения модели &#039;&#039;&#039;&amp;lt;small&amp;gt;future&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;corpus&#039;&#039;&#039; — название корпуса с данными&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;noise&#039;&#039;&#039; — уровень шума для генерации синтезированных данных для обучения модели, от 1 до 5, по умолчанию 0&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/sbs: работа с сервисом SBS&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/analyze&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение аналитических метаданных из голосового фрагмента. &amp;lt;small&amp;gt;Вернется массив с метаданными голосового фрагмента.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; &amp;lt;span data-darkreader-inline-color=&amp;quot;&amp;quot; data-darkreader-inline-bgcolor=&amp;quot;&amp;quot;&amp;gt;—&amp;lt;/span&amp;gt; файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{ age: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   class: 20-29, # {&amp;quot;00-05&amp;quot;, &amp;quot;06-12&amp;quot;, &amp;quot;13-19&amp;quot;, &amp;quot;20-29&amp;quot;, &amp;quot;30-39&amp;quot;, &amp;quot;40-49&amp;quot;,   &amp;quot;50-59&amp;quot;, &amp;quot;60+&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   confidence: 0.99 },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;emotion: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   class: SADNESS, # { &amp;quot;ANGER&amp;quot;, &amp;quot;BORE&amp;quot;, &amp;quot;DISAPPOINTMENT&amp;quot;, &amp;quot;DISGUST&amp;quot;, &amp;quot;EXCITEMENT&amp;quot;, &amp;quot;FEAR&amp;quot;, &amp;quot;NEUTRAL&amp;quot;, &amp;quot;PAIN&amp;quot;, &amp;quot;PLEASURE&amp;quot;, &amp;quot;SADNESS&amp;quot;, &amp;quot;SUPRISE&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   confidence: 0.99 },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;gender: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   class: FEMALE, # { &amp;quot;MALE&amp;quot;, &amp;quot;FEMALE&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   confidence: 0.99 }  }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/noiselevel&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Возвращает процент зашумленности аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Пример ответа:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: 0, message: &#039;success&#039;, &#039;noise&#039;: 0.79 }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/search&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Поиск говорящего по базе слепков.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; — порог похожести при поиске, от 0 до 1.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то поиск не будет осуществлен, если распознанный текст будет сильно отличаться от text.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;Пример ответа:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{ error: 0, speaker: Ivan, confidence: 0.79 }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/speakers/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление слепка в базу.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — имя говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для создания оцифрованного представления говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то поиск не будет осуществлен, если распознанный текст будет сильно отличаться от text. Для использования необходим сервис spr.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;251f78d7-ee50-4ba1-a669-ee89fdaf5433&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/sbs/speakers/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление слепка из базы.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; &amp;lt;span data-darkreader-inline-color=&amp;quot;&amp;quot; data-darkreader-inline-bgcolor=&amp;quot;&amp;quot;&amp;gt;—&amp;lt;/span&amp;gt; идентификатор говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/sbs/speakers/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка всех слепков.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;[ {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;251f78d7-ee50-4ba1-a669-ee89fdaf5433&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;наименование слепка&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  }]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/speakers/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Дообучение слепка.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор слепка&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то слепок не будет дообучен, если распознанный текст будет сильно отличаться от text. Для использования необходим сервис spr.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;Success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/verify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Сравнение wav-файла cо слепком в базе. &amp;lt;small&amp;gt;В ответе - вероятность совпадения от 0 до 1.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; —  имя говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для создания оцифрованного представления говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, но слепок не будет создан, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0, &amp;quot;confidence&amp;quot;: 0.78 }&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/tts: методы работы с сервисом tts&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/export&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка пользовательского словаря ударений.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;Простой текст — строки со словом и его интерпретацией с ударением.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/get&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка пользовательского словаря ударений в виде json.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[ [   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot;],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[   &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot;],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;...]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/import&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузка пользовательского словаря ударений. &amp;lt;small&amp;gt;Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;csv file&#039;&#039;&#039; — файл строк со словом и его интерпретацией с ударением.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/put&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузка пользовательского словаря ударений в виде json. &amp;lt;small&amp;gt;Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — строка json следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[ &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/normalize&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Нормализация текста &amp;lt;small&amp;gt;— перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы), например «в понедельник 10.10.2025» -&amp;gt; «в понедельник дес+ятого октябр+я две т+ысячи дв+адцать п+ятого г+ода».&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  фраза для нормализации&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;нормализованный текст&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/revoice/{revoicer}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Модификация или искажение голоса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  аудиофайл для обработки&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;revoicer&#039;&#039;&#039; —  модель модификации голоса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;wav-файл с модифицированным (искаженным) голосом&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/revoicers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перечень моделей модификации или искажения голоса. &amp;lt;small&amp;gt;Модели поставляются только в составе дистрибутива. Модель distortion — искажение голоса, делает голос неузнаваемым и речь неразборчивой.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  &amp;quot;distortion&amp;quot; ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/synthesize/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Синтез звукового файла из текста/&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;ID&#039;&#039;&#039; — имя модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст синтезируемой фразы&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;rate&#039;&#039;&#039; — скорость речи&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;pitch&#039;&#039;&#039; — высота (тон)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;volume&#039;&#039;&#039; — громкость&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;frequency&#039;&#039;&#039; — частота дискретизации (по умолчанию 22050 Гц)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;format&#039;&#039;&#039; - формат файла результата (wav, opus, ogg, mp3)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;link&#039;&#039;&#039; - если 1, то вернуть только ссылку на файл&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;файл с синтезированой фразой&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/qas: методы работы с сервисом qas&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/ask&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Метод генерирует ответ на поставленный вопрос на основе информации из документов в базе. &amp;lt;small&amp;gt;Ответ на вопрос генерируется на основе информации, содержащейся в одном или нескольких документах. Документы должны быть в текстовом формате. Ответ возвращается в формате JSON, его можно скачать. Если метод не смог найти ответ, возвращается код ошибки и сообщение.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст вопроса, на основе которого будут искаться фрагменты.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; — id канала&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useCache&#039;&#039;&#039; — использовать кешированные ответы&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;возможные варианты:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot; не использовать&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;all&#039;&#039;&#039;&amp;quot; использовать все&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;checked&#039;&#039;&#039;&amp;quot; использовать только проверенные&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useGPT&#039;&#039;&#039; — использовать генеративную сеть для поиска ответов в документах. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;addAlias&#039;&#039;&#039; — добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; — максимальное количество документов одной категории для формирования контекста при генерации ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;similarityArea -&#039;&#039;&#039; определяет допустимую разницу между максимальной и минимальной релевантностью фрагментов при фильтрации результатов&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;text&amp;quot;: &amp;quot;Здесь будет текст ответа&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/cachemaker/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Генерация ответов на вопросы в кэше.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - категория для которой генерируются ответы&amp;lt;/small&amp;gt;*&amp;lt;small&amp;gt;&#039;&#039;&#039;mode&#039;&#039;&#039; - режим генерации ответов, возможные значения:&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;- paraphrase&#039;&#039;&#039; - генерирует вариации ответов перефразированием уже проверенных ответов, если таковые имеются на вопросе&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;- generate&#039;&#039;&#039; - генерирует кэш через разные ответы на каждый вопрос по документации&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;mode&#039;&#039;&#039; — режим генерации ответов, возможные значения:&#039;&#039;&#039;- paraphrase&#039;&#039;&#039; - генерирует вариации ответов перефразированием уже проверенных ответов, если таковые имеются на вопросе&#039;&#039;&#039;- generate&#039;&#039;&#039; — генерирует кэш через разные ответы на каждый вопрос по документации&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;option&#039;&#039;&#039; - {all | empty} обработать все вопросы  или только не содержащие ответов&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - если указан код категории, то генерация только для этой категории&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;variants&#039;&#039;&#039; - количество ответов, от 1 до 9&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - заменить ответы на сгенерированные&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; - максимальное количество документов одной категории для формирования контекста при генерации ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для генерации, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/cachemaker/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Состояние генерации ответов на вопросы в кэше. &amp;lt;small&amp;gt;Статусы: &#039;&#039;&#039;started&#039;&#039;&#039;, &#039;&#039;&#039;stopped&#039;&#039;&#039;, если были ошибки, поле ответа &#039;&#039;&#039;error&#039;&#039;&#039; будет содержать код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;status&amp;quot;: &amp;quot;started&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;progress&amp;quot;: 33.33}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/cachemaker/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановить генерацию ответов на вопросы в кэше.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/category/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавить категорию с указанным именем. &amp;lt;small&amp;gt;В ответе — id созданной категории или сообщение об ошибке:&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — наименование категории&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;ad895085-2e48-439a-831e-b5f699b6a54a&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/category/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удалить категорию. &amp;lt;small&amp;gt;В ответе или сообщении об успехе, или ошибке, если категория используется или не существует.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор категории&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{   &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/category/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получить список категорий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;В ответе json с именами и id категорий&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/category/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменить категорию. &amp;lt;small&amp;gt;У категории пока есть только наименование, поэтому метод только переименовывает категорию&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор категории&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — наименование категории&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/channel/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление канала. &amp;lt;small&amp;gt;В ответе id созданного канала или сообщение об ошибке&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — наименование канала&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;a46fb887-5d98-41e0-8299-bcc94f615e91&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/channel/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление канала&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор канала&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/channel/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получить список всех каналов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;channels&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;1&amp;quot;,      &amp;quot;name&amp;quot;: &amp;quot;voice&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;56442779-e871-43fd-ae4d-caf4ab6d09b9&amp;quot;,      &amp;quot;name&amp;quot;: &amp;quot;канал++&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;0&amp;quot;,      &amp;quot;name&amp;quot;: &amp;quot;default&amp;quot;    }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/channel/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменить канал. &amp;lt;small&amp;gt;У канала пока есть только наименование, поэтому метод только переименовывает канал&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — новое наименование канала&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор канала&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/chat&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Поиск ответа за пределами документов. &amp;lt;small&amp;gt;На стадии разработки, не используется.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text -&#039;&#039;&#039; текст вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;history&#039;&#039;&#039; - история вопросов, будет склеена с text при запросе&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для ответа, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useInternalTemplate&#039;&#039;&#039; - использовать ли шаблон запроса. &#039;&#039;&#039;no&#039;&#039;&#039; - не использовать, либо код шаблона запроса к LLM. Необязательный параметр. Если не указан, используется шаблон по умолчанию.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;params&#039;&#039;&#039; - необязательный параметр. JSON с произвольными параметрами запроса к LLM. Описание параметров см. в [[QAS. Руководство администратора|руководстве администратора]].&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Пример ответа на вопрос &amp;quot;как пройти в библиотеку&amp;quot;&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;text&amp;quot;: &amp;quot;1. Проверить время работы библиотеки (обычно от 9 до 20)\n2. Проверить местоположение библиотеки на карте или с помощью сервиса Google Maps\n3. Убедиться, что у вас есть необходимые документы для входа (паспорт, карта члена библиотеки и т.д.)\n4. Посетить библиотеку по адресу: [адрес библиотеки]\n5. Проверить правила поведения в библиотеке перед входом&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/cleandoc/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Очистка документа от лишней информации &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text -&#039;&#039;&#039; текст документа&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для ответа, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;doc_id&#039;&#039;&#039; - необязательный параметр, ID документа&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; | &#039;&#039;&#039;GET/qas/cleandoc/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Остановка очистки документа для конкретного пользователя&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; | &#039;&#039;&#039;GET/qas/cleandoc/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Статус очистки документа для конкретного пользователя&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;status&amp;quot;: stopped | started,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;progress&amp;quot;: 33.3,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: string,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;place&amp;quot;: number, #место в очереди&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;queue&amp;quot;: True | False #состояния - в очереди или в процессе очистки&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; | &#039;&#039;&#039;GET/qas/cleandoc/result&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Результат очистки документа для конкретного пользователя&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;doc_id&#039;&#039;&#039; - необязательный параметр, ID документа&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;status&amp;quot;: &amp;quot;stopped&amp;quot;,&amp;quot;text&amp;quot;: &amp;quot;очищенный текст&amp;quot;,&amp;quot;doc_id&amp;quot;: &amp;quot;ID документа&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузить текстовый документ. &amp;lt;small&amp;gt;Добавляет документ в базу. В ответе — id созданного документа или сообщение об ошибке.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;title&#039;&#039;&#039; — заголовок документа&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — категория документа&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039;&amp;lt;/small&amp;gt; — &amp;lt;small&amp;gt;файл документа&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;ebe2bc57551c2d17f892987d1f62306d&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/doc/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Удаление документа&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор документа&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/doc/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка текста документа&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор документа&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;﻿Здесь будет полный текст документа&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/doc/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка имеющихся документов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;docs&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {id&amp;quot;: &amp;quot;d4999cdee5ad1faf2cb3066ea1b5e96b&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;PVE. Установка сервисного пакета окружения&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Техническая поддержка&amp;quot; },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;quot;id&amp;quot;: &amp;quot;759042575b965745b9d2af869bca1740&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;UPS. Руководство администратора&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Техническая поддержка&amp;quot;}      ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Обновление документа. &amp;lt;small&amp;gt;В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — json c изменяемыми параметрами документа&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  title: string,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  category: string,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  text: string&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;параметр который не меняется может отсутствовать в json&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор документа.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/replace&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Замена подстроки в текстах категории &amp;lt;small&amp;gt;Будут заменены все найденные вхождения&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;search&#039;&#039;&#039; - искомая подстрока, будет заменена&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - текст замены&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - в какой категории искать&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION,&amp;quot;replacements&amp;quot;:INT}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/modifyphrases&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Массовая замена текста в указанных фразах.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;phrases&#039;&#039;&#039; - JSON массив с изменяемым фразами следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;doc_id&#039;: &#039;ad895085-2e48-439a-831e-b5f699b6a54a&#039;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;phrase_id&#039;: 5,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;text&#039;: &#039;новый текст&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/gpt/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Получение списка доступных(установленных) GPT моделей&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;models&amp;quot;: [&amp;quot;default&amp;quot; ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление вопроса. &amp;lt;small&amp;gt;В случае успеха метод вернет id вопроса, в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;question&#039;&#039;&#039; —  текст вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; —  id категории к которой относится вопрос&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answers&#039;&#039;&#039; —  ответы в виде Json:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[ { &amp;quot;checked&amp;quot;: true, &amp;quot;channel&amp;quot;: &amp;quot;0&amp;quot;, &amp;quot;answer&amp;quot;: &amp;quot;ответ&amp;quot; } ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;aliases&#039;&#039;&#039; —  вопросы к которым подходят ответы из блока answers в виде json:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;quot;вопрос&amp;quot;,&amp;quot;еще вопрос&amp;quot;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;527be9f0-f773-4a3e-bd0b-81b40a061d0d&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/append/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавляет алиасы/кандидаты к другому вопросу&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;aliases&#039;&#039;&#039; —  JSON list с синонимами&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;candidates&#039;&#039;&#039; JSON list с кандидатами&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор вопроса к которому добавить синонимы и(или) кандидаты&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/approve/{destination_id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перемещает кандидаты в формулировки другого вопроса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;candidates&#039;&#039;&#039; —  json массив c текстами кандидатов&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;destination_id&#039;&#039;&#039; —  идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/delete/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление списка вопросов или ответов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;questions&#039;&#039;&#039; — json строка с перечнем id&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039; — выбор, удалять вопросы или ответы (&#039;&#039;&#039;questions&#039;&#039;&#039;, &#039;&#039;&#039;answers&#039;&#039;&#039;)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/question/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление вопроса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/question/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Получение вопроса вместе с ответами и синонимами вопроса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;answers&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {   &amp;quot;checked&amp;quot;: true,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;channel&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;answer&amp;quot;: &amp;quot;ответ&amp;quot;    }  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;aliases&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;вопрос&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;синоним вопроса&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;еще синоним вопроса&amp;quot;  ]   }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/question/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Получение списка вопросов.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;question&#039;&#039;&#039; —  фильтр вопросов, ограничение списка по вопросам&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — фильтр категорий&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answer&#039;&#039;&#039; —  фильтр ответов, ограничение списка по ответам&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;created&#039;&#039;&#039; — фильтр по дате создания, оставляет вопросы, созданные &#039;&#039;&#039;не ранее&#039;&#039;&#039; указанной даты&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;createdBefore&#039;&#039;&#039; — фильтр по дате создания, оставляет вопросы, созданные &#039;&#039;&#039;не позже&#039;&#039;&#039; указанной даты&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;modified&#039;&#039;&#039; — фильтр по дате изменения, оставляет вопросы, &#039;&#039;&#039;изменённые в точности&#039;&#039;&#039; в указанную дату&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;onlyNew&#039;&#039;&#039; - фильтр, оставляющий только новые (необработанные) вопросы&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;questions&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;question&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;incomplete&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;aliases&amp;quot;: [],&amp;quot;candidates&amp;quot;: [],&amp;quot;category&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;checked&amp;quot;: 0,&amp;quot;unchecked&amp;quot;: 0}&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;question&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;incomplete&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;aliases&amp;quot;: [],&amp;quot;candidates&amp;quot;: [],&amp;quot;category&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;checked&amp;quot;: 0,&amp;quot;unchecked&amp;quot;: 0}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Модификация вопроса. &amp;lt;small&amp;gt;Позволяет заменить как все параметры так и отдельные&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json c измененными параметрами, пример полного:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{   &amp;quot;answers&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;checked&amp;quot;: true,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;channel&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;answer&amp;quot;: &amp;quot;новый ответ&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;question&amp;quot;:&amp;quot;новый вопрос&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;category&amp;quot;: &amp;quot;a3801cc0-f8e5-4f3b-bb10-e42148cd772b&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;aliases&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;новый вопрос&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;синоним&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;еще синоним&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/replace&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Поиск и замена подстроки. Будут заменены все найденные вхождения&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;search&#039;&#039;&#039; - искомая подстрока, будет заменена&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - текст замены&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - в какой категории искать&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION,&amp;quot;replacements&amp;quot;:INT}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/modifyanswers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Массовая замена текста в указанных ответах.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;phrases&#039;&#039;&#039; - JSON массив с изменяемым ответами следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;question_id&#039;: &#039;ad895085-2e48-439a-831e-b5f699b6a54a&#039;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;answer_id&#039;: 5,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;text&#039;: &#039;новый текст&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/paraphrase&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Генерация фраз-синонимов для предложения.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text -&#039;&#039;&#039; предложение&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для ответа, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;, &amp;quot;texts&amp;quot;: [ &amp;quot;перефразированный текст 1&amp;quot;, ... ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionlist/answers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отображает лог массовой обработки вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;на выходе :&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;массив из объектов {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  error: number;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  question: string;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  answer: string;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  confidence: number | null;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/questionlist/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Старт массовой обработки вопросов из файла&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;questions&#039;&#039;&#039; - файл с вопросами&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;format&#039;&#039;&#039; - в json или в text файл с вопросами&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; — id канала&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useCache&#039;&#039;&#039; — использовать кешированные ответы&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;возможные варианты:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;— &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot; не использовать&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;all&#039;&#039;&#039;&amp;quot; использовать все&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;checked&#039;&#039;&#039;&amp;quot; использовать только проверенные&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useGPT&#039;&#039;&#039; — использовать генеративную сеть для поиска ответов в документах. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; - максимальное количество документов одной категории для формирования контекста при генерации ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;addAlias&#039;&#039;&#039; — добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; - порог достоверности при обработке&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionlist/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Статус массовой обработки вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{     error: string;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     status: &#039;started&#039; | &#039;stopped&#039;;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     progress: number; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionlist/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановка массовой обработки вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/mismatchsearcher/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Старт поиска несоответствий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt; &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM для анализа на несоответствия, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;asktemplate&#039;&#039;&#039; - ID шаблона запроса к LLM для генерации ответов по документу, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answers&#039;&#039;&#039; - тип вопросов, по которым осуществляется поиск несоответствий, необязательный параметр, по умолчанию «all»&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/mismatchsearcher/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Статус поиска несоответствий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{     error: string;&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;     status: &#039;started&#039; | &#039;stopped&#039;;&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     progress: number; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/mismatchsearcher/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановка поиска несоответствий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/mismatchsearcher/mismatches&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |Статус получения результатов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;quot;mismatches&amp;quot;: [{&amp;quot;question_id&amp;quot;: &amp;quot;ID вопроса&amp;quot;, &amp;quot;question&amp;quot;: &amp;quot;вопрос&amp;quot;, &amp;quot;category&amp;quot;: &amp;quot;ID категории&amp;quot;,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;answer_id&amp;quot;: &amp;quot;ID ответа&amp;quot;, &amp;quot;answer&amp;quot;: &amp;quot;ответ на вопрос {question}&amp;quot;,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;description&amp;quot;: &amp;quot;результат поиска&amp;quot;, &amp;quot;error&amp;quot; : string,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;context&amp;quot;: &amp;quot;фрагмент документа&amp;quot;, &amp;quot;generatedText&amp;quot; : &amp;quot;Результат генерации&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}, ... ]&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionmaker/start&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |Запуск генерации вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - ID категории, по которой будет происходить генерация вопросов&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;doc&#039;&#039;&#039; - ID документа, по которому будет происходить генерация вопросов&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;generateAnswers&#039;&#039;&#039; - флаг для генерации ответов вместе с вопросами &#039;&#039;&#039;[yse|no]&#039;&#039;&#039;, по умолчанию &#039;&#039;&#039;«no»&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM для анализа генерации вопросов, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionmaker/status&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |Статус генерации вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: string,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;status&amp;quot;: &#039;started&#039; | &#039;stopped&#039;,&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;progress&amp;quot;: 33.3&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionmaker/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Прервать генерацию.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/search&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Поиск фрагментов содержащих ответ&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039;  — текст запроса&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — категория (раздел) знаний. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; - максимальное количество документов одной категории для формирования контекста при поиске ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;similarityArea -&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;определяет допустимую разницу между максимальной и минимальной релевантностью фрагментов при фильтрации результатов&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  Фрагмент 1:Здесь будет текст найденного фрагмента&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  Фрагмент 2:Здесь будет текст найденного фрагмента&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;fragments&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;3a386b0a9e0e19efb0870685e1d0b484&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;Заголовок документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Категория документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;text&amp;quot;: &amp;quot;Здесь будет текст найденного фрагмента&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;44fd73ea1ac63f32cf18d79c854dbfe2&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;Заголовок документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Категория документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;text&amp;quot;: &amp;quot;Здесь будет текст найденного фрагмента&amp;quot;    }  ]   }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/summarization_template/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавление шаблона протокола. В случае успеха метод вернет id шаблона, в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;options&#039;&#039;&#039; — json словарь с именами разделов и их описанием&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,  &amp;quot;id&amp;quot;: &amp;quot;527be9f0-f773-4a3e-bd0b-81b40a061d0d&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETEqas/summarization_template/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление шаблона.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/summarization_template/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение json с шаблоном.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;На выходе словарь, основные элементы: data — словарь с шаблоном, остальные элементы этого уровня служебные. В data: id, name (идентификатор и наименование).И options — словарь с разделами шаблона.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/summarization_template/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение всех шаблонов.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;На выходе словарь, основной элемент — templates, содержит список шаблонов (каждый шаблон как в выдаче метода GET /qas/summarization_template/get/{id}).&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/summarization_template/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Изменение шаблона.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — словарь как в выдаче метода GET/qas/summarization_template/get/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/summarize&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Построение протокола или краткого содержания совещания&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст совещания&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;options&#039;&#039;&#039; — словарь с разделами протокола, где ключ — название раздела, значение - краткая инструкция к формированию раздела.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую GPT модель использовать для построения протокола, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;file&#039;&#039;&#039; — файл с текстом (текст, csv, pdf или текстовые офисные документы)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;summary&amp;quot;: &amp;quot;здесь текст протокола&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/replace&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |корректировка информации в тексте при помощи LLM&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;oldinfo&#039;&#039;&#039; — старая информация&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;newinfo&#039;&#039;&#039; — новая информация&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;model&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;- какую модель использовать для генерации, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt; &lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;итоговый текст&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/replacementlist&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |список всех фраз в документах и ответов в вопросах, подлежащих правке. &amp;lt;small&amp;gt;Векторно ищет все фрагменты по указанному тексту.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — категория, в которой производится векторный поиск&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; — порог похожести, необязательный параметр, если не указан, берется из конфигурационного файла (fragments -&amp;gt; threshold)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answers&#039;&#039;&#039; - тип вопросов, по которым осуществляется поиск для внесения правок, необязательный параметр, по умолчанию «all»&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;docs&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;answers&amp;quot;: []&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/prompt/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Добавление шаблона запроса к LLM. &amp;lt;small&amp;gt;В случае успеха метод вернет id вопроса, в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039;  — тип шаблона&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;- chat - произвольный чат,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- ask - запрос к документам,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- cleandoc - очистка документа, форматирование либо другое преобразование,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- similars_generator - генерация синонимичных которотких фраз,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- paraphrase - перефразировка текста,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- summarize - суммаризация текста (формирование краткой выдержки из текста),&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- question_generator - генерация вопросов по тексту,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- replace - замена информации в тексте, mismatch - поиск несоответствий&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039;  — название шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;prompt&#039;&#039;&#039; — текст шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;postprompt&#039;&#039;&#039; - текст шаблона постобработки результатов (нужен только для summarize)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;params&#039;&#039;&#039; - параметры запроса к LLM&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;small&amp;gt;max_tokens&amp;quot;: 4096,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;top_k&amp;quot;: 30,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;top_p&amp;quot;: 0.5,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;temperature&amp;quot;: 0.5,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;repeat_penalty&amp;quot;: 1.3&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;527be9f0-f773-4a3e-bd0b-81b40a061d0d&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/prompt/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Удаление шаблона. &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/prompt/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Получение шаблона.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;prompt&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;cleandoc&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;cleandoc&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;isDefault&amp;quot;: false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;Чистка документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;prompt&amp;quot;: &amp;quot;Удали сноски, колонтитуры и мусорную информацию из текста ниже. Не удаляй ничего лишнего. Не добавляй ничего, только информация из текста. Выведи только конечный результат без отчета о результате.\n###Текст:\n{context}\n\n###Конечный результат:&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;postprompt&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_modified&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_created&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_modified_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_created_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/prompt/list&#039;&#039;&#039; &lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Получение списка шаблонов.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;prompts&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;: &amp;quot;chat&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;type&amp;quot;: &amp;quot;chat&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;isDefault&amp;quot;: false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;name&amp;quot;: &amp;quot;Чат&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;prompt&amp;quot;: &amp;quot;Ты спокойный вежливый консультант.[\n\n###История переписки:\n{history}]\n\n###Вопрос: {question}\n###Ответ:&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;postprompt&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_modified&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_created&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_modified_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_created_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/prompt/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Модификация шаблона. Позволяет заменить как все параметры, так и отдельные.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — json c измененными параметрами:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ &amp;quot;name&amp;quot;: &amp;quot;новое имя&amp;quot; }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/ses: методы работы с роботом&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;для некоторых путей, где используется {robot_id} - это обращение к версии черновика, чтобы обращаться к продовой версии - нужен постфикс &amp;quot;_prod&amp;quot;, для бэкапа &amp;quot;_backup&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;актуально для методов&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получения данных робота  GET/ses/robot/get/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- применение настроек робота GET/ses/robot/commit/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- экспорт робота GET/ses/robot/export/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- список скриптов GET/ses/robot/script/list/{robot}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получение скрипта GET/ses/robot/script/get/{robot}/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- список ЭД GET/ses/robot/data/list/{robot}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получение ЭД GET/ses/robot/data/get/{robot}/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- список КТ GET/ses/robot/endpoint/list/{robot}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получение КТ GET/ses/robot/endpoint/get/{robot}/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- метода ask (отладчика) POST/ses/ask/{robot_id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- данные сессии (отладчика) GET/ses/session/{robot_id}/{session_id}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/audio/{uuid}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение аудио-файла из архива диалогов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;аудио-файл с расширением opus&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/dialog/{uuid}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение диалога из архива&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;dialog&amp;quot;: [{&amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;,                  &amp;quot;robot&amp;quot;: &amp;quot;...&amp;quot;,                &amp;quot;channel&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                  &amp;quot;unknown&amp;quot;: true/false,        &amp;quot;closed&amp;quot;: true/false,        &amp;quot;endpoint&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                  &amp;quot;answered&amp;quot;: true/false,    &amp;quot;models&amp;quot;: [...],    &amp;quot;variables&amp;quot;: {},   &amp;quot;current&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                         &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;,           &amp;quot;qas&amp;quot;: &amp;quot;&amp;quot;,           &amp;quot;category&amp;quot;: &amp;quot;...&amp;quot;,           &amp;quot;entry&amp;quot;: [...],&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                         &amp;quot;nearest&amp;quot;: &amp;quot;...&amp;quot;,    &amp;quot;missingRunData&amp;quot;: [...],     &amp;quot;waitingRunData&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                         &amp;quot;answered&amp;quot;: true/false,    &amp;quot;lastreply&amp;quot;: &amp;quot;...&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                  &amp;quot;request&amp;quot;: {&amp;quot;datetime&amp;quot;: &amp;quot;...&amp;quot;,           &amp;quot;message&amp;quot;: &amp;quot;&amp;quot;,           &amp;quot;data&amp;quot;: [...]},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                 &amp;quot;reply&amp;quot;: {&amp;quot;answers&amp;quot;: [{&amp;quot;messages&amp;quot;: [...],    &amp;quot;voice&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                                     &amp;quot;interruptible&amp;quot;: true/false,    &amp;quot;file&amp;quot;: null}],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;                  &amp;quot;datetime&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;answered&amp;quot;: true/false}}]}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка диалогов из архива&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;startdate&#039;&#039;&#039; - начало временного интервала в формате date %Y-%m-%d %H:%M&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;enddate&#039;&#039;&#039; - конец временного интервала в формате date %Y-%m-%d %H:%M&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;phone&#039;&#039;&#039; - номер телефона&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;variable&#039;&#039;&#039; - переменная в формате variable=value&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - фрагмент текста в любом сообщении&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - id элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; - название канала (коннектора)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{&amp;quot;uuid&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;datetime&amp;quot;: &amp;quot;...&amp;quot;,&amp;quot;phone&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt; &amp;quot;channel&amp;quot;: [...], &amp;quot;robot&amp;quot;: [&amp;quot;...&amp;quot;]}]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/waveform/{uuid}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Служебный метод для визуализации полученного из архива диалогов аудио-файла, содержит пики сигнала.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[0.016,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;0.015,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;0.01&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/ask/{robot_id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение ответа на запрос пользователя. &amp;lt;small&amp;gt;Метод для отладки робота&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст запроса&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; - id канала&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;connector&#039;&#039;&#039; - имя коннектора&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;session&#039;&#039;&#039; - uuid сессии, если это не первый запрос в сессии&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;tts&#039;&#039;&#039; - вернуть результат синтеза (1- вернуть, 0 - не выполнять синтез)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;variables&#039;&#039;&#039; - словарик с переменными {&amp;quot;переменная1&amp;quot;:&amp;quot;значение&amp;quot;,&amp;quot;переменнаяN&amp;quot;:&amp;quot;значение&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;handler&#039;&#039;&#039; - python скрипт для изменения ответов метода под требования внешних систем, подробнее в следующем разделе. в поле имя файла без расширения.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;restartClosed&#039;&#039;&#039; - перезагрузить сессию при её закрытии с новым id (1 - перезагрузить, 0 - не перезагружать)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;audio&#039;&#039;&#039; - аудиофайл с запросом, текст запроса будет получен распознаванием audio&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;document&#039;&#039;&#039; - документ для последующей обработки&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot_id&#039;&#039;&#039; - id робота&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;endpoint&#039;&#039;&#039; - id точки, в которую передать управление диалогом (необязательный параметр, используется для исходящих оповещений)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;   &amp;quot;question&amp;quot;: &amp;quot;Вопрос&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   &amp;quot;answer&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {    &amp;quot;messages&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                   &amp;quot;ответ&amp;quot;      ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;           &amp;quot;voice&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;           &amp;quot;interruptible&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;file&amp;quot;: &amp;quot;&amp;quot;    }  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;session&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;uuid&amp;quot;: &amp;quot;&amp;quot;   }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание нового робота. &amp;lt;small&amp;gt;На выходе id созданного робота или сообщение об ошибке&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; —  имя нового робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;2fd2f909-2069-4b20-a725-3a598c83f886&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/apply/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Применение робота. &amp;lt;small&amp;gt;Переводит черновик робота в статус prod. Если до этого был prod вариант —  становится backup.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/cleardraft/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Обнуление черновика рабочей версией робота&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/commit/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Применение текущих изменений настроек робота. &amp;lt;small&amp;gt;Применимо ко всем версиям (черновик, рабочая, резервная копия)&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/data/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление элемента данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/data/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление элемента данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/data/get/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение настроек элемента данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,                &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;id ЭД&amp;quot;,         &amp;quot;name&amp;quot;: &amp;quot;Имя ЭД&amp;quot;,          &amp;quot;comment&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;,     &amp;quot;rtype&amp;quot;: &amp;quot;report&amp;quot;,     &amp;quot;model&amp;quot;: &amp;quot;Имя модели&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;param&amp;quot;: &amp;quot;Ответ&amp;quot;,        &amp;quot;script&amp;quot;: &amp;quot;&amp;quot;,              &amp;quot;weight&amp;quot;: 3,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;slaveData&amp;quot;: [],                 &amp;quot;getOnlyAsNearest&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;injectToMessage&amp;quot;: true/false,        &amp;quot;longWaiting&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;dataWaiting&amp;quot;: [],          &amp;quot;actions&amp;quot;: {             &amp;quot;alone&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;        &amp;quot;default&amp;quot;: [{&amp;quot;action&amp;quot;: &amp;quot;say&amp;quot;,   &amp;quot;type&amp;quot;: &amp;quot;random&amp;quot;,   &amp;quot;text&amp;quot;: [&amp;quot;.....&amp;quot;]}]}},&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;    &amp;quot;exceptions&amp;quot;: {}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/data/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка элементов данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  {   &amp;quot;id&amp;quot;: &amp;quot;3ebfe38b-95bf-4927-a662-17f6e5da22ea&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;        &amp;quot;name&amp;quot;: &amp;quot;pve&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;smc&amp;quot;, &amp;quot;rtype&amp;quot;: &amp;quot;report&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;        &amp;quot;weight&amp;quot;: 3, &amp;quot;hasNearestAction&amp;quot;: false } ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/data/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение элемента данных. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как на выходе метода  &#039;&#039;&#039;GET/ses/robot/data/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление всех версий робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/endpoint/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Создание конечной точки. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как на выходе метода &#039;&#039;&#039;GET/ses/robot/endpoint/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами  конечной точки&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;8576593b-b0d8-4b03-a623-74f3132356ea&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/endpoint/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление конечной точки.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  конечной точки&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/endpoint/get/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение настроек конечной точки&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  конечной точки&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;comment&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entryType&amp;quot;: &amp;quot;conditions&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entry&amp;quot;: [{ &amp;quot;conditions&amp;quot;: [{ &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;depth&amp;quot;: 5, &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;operation&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;&amp;quot;}], &amp;quot;run&amp;quot;: []}],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;run&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;actions&amp;quot;: { &amp;quot;default&amp;quot;: [{ &amp;quot;action&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;voice&amp;quot;: &amp;quot;&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;,  &amp;quot;interruptible&amp;quot;: true/false}]},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;report&amp;quot;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/endpoint/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка конечных точек робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{ &amp;quot;error&amp;quot;: 0,  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;точка 1&amp;quot;, &amp;quot;comment&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entryType&amp;quot;: &amp;quot;conditions&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entry&amp;quot;: [{ &amp;quot;conditions&amp;quot;: [{ &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;depth&amp;quot;: 5, &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;operation&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;&amp;quot;}], &amp;quot;run&amp;quot;: []}],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;run&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;actions&amp;quot;: { &amp;quot;default&amp;quot;: [{ &amp;quot;action&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;voice&amp;quot;: &amp;quot;....&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;,  &amp;quot;interruptible&amp;quot;: true/false}]},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;report&amp;quot;}}]&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/endpoint/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение конечной точки. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как на выходе метода &#039;&#039;&#039;GET/ses/robot/endpoint/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка робота в архив&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;zip файл с именем = идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/files/download/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение файла.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор файла&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;файл&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/files/upload/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отправка файла.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;file&#039;&#039;&#039; - файл&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,   &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,   &amp;quot;id&amp;quot;: &amp;quot;Id файла&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Выгрузка основных настроек робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;9fd7f6f1-2cac-4f0f-a121-75c40f2b5e78&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;test&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;description&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;voice&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;session&amp;quot;: {      &amp;quot;lifetime&amp;quot;: 600    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;models&amp;quot;: {},&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;servicedata&amp;quot;: {},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;exceptions&amp;quot;: {},&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;actions&amp;quot;: {},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;holidays&amp;quot;: [],&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;timeintervals&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;name&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;        &amp;quot;weekdays&amp;quot;: [ 1, 2, 3, 4, 5, 6,  7  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;        &amp;quot;dates&amp;quot;: [  0,  1,  2,   3, 4,  5, 6,  7,  8,  9, 10,  11, 12,13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;months&amp;quot;: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;days&amp;quot;: &amp;quot;all&amp;quot;, &amp;quot;intervals&amp;quot;: [ [ 0,  1440 ] ] }}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/import/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузка архива робота в черновик существующего робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;zip —&#039;&#039;&#039;  файл с архивом робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка роботов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  {  &amp;quot;id&amp;quot;: &amp;quot;9fd7f6f1-2cac-4f0f-a121-75c40f2b5e78&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;test&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;hasProd&amp;quot;: true,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;hasBackup&amp;quot;: true  } ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение основных настроек робота. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/robot/get/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с новыми настройками робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/restore/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Откат рабочей версии из бэкапа. &amp;lt;small&amp;gt;Резервная копия становится рабочей, и удаляется, а черновик остается без изменений&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/script/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление нового скрипта. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/robot/script/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/script/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление скрипта&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/script/get/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение текста скрипита&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;6a9f91b6-9634-4079-ac2b-60a944922c61&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;type&amp;quot;: &amp;quot;Тип скрипта&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;Наименование скрипта&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;code&amp;quot;: &amp;quot;Текст скрипта&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/script/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка скриптов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  {    &amp;quot;id&amp;quot;: &amp;quot;9b9d83b7-d5c3-49e6-9bd4-a123a9047939&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;наименование1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;Тип скрипта&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  {    &amp;quot;id&amp;quot;: &amp;quot;48b508ba-a32b-4ada-bcc3-66ce26d81c6a&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;наименование2&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;Тип скрипта&amp;quot;}]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/script/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение скрипта.&amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/robot/script/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/script/test/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Тестирование скрипта. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/session/{robot_id}/{session_id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка с параметрами сессии&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;, &amp;quot;result&amp;quot;: {.....}, &amp;quot;variables&amp;quot;: {}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/add/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление записи в пользовательский справочник.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение n&amp;quot;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;id&amp;quot;: &amp;quot;id записи&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/userdata/data/delete/{robot}/{structure}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление записи из пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор записи (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/userdata/data/list/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение данных из пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{  &amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt; &amp;quot;колонка n&amp;quot;: &amp;quot;значение n&amp;quot;,&amp;lt;/small&amp;gt;   &amp;lt;small&amp;gt; &amp;quot;id&amp;quot;: &amp;quot;id записи&amp;quot;}]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/modify/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Массовое изменение данных в пользовательском справочнике.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;list&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;[{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;: &amp;quot;значение n&amp;quot;, &amp;quot;id&amp;quot;: &amp;quot;id строки&amp;quot;}]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/modify/{robot}/{structure}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение одной записи пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение n&amp;quot;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор записи (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/put/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление данных с заменой в пользовательском справочнике.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;list&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;[{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;: &amp;quot;значение n&amp;quot;, &amp;quot;id&amp;quot;: &amp;quot;id строки&amp;quot;}]&amp;lt;/code&amp;gt; Поле &amp;quot;id&amp;quot; опционально, при его добавлении данные в строке будут заменены.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - замена всех данных в справочнике новыми данными. Возможные значения: yes/no. По-умолчанию - yes.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/structure/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;id справочника&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;справочник&amp;quot;, &amp;quot;fields&amp;quot;: {&amp;quot;колонка 1&amp;quot;: &amp;quot;значение по умолчанию&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение по умолчанию&amp;quot;}}.&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; Поле &amp;quot;id&amp;quot; опционально.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;id&amp;quot;: &amp;quot;id справочника&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/userdata/structure/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/userdata/structure/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка пользовательских справочников.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;[{&amp;quot;id&amp;quot;: &amp;quot;id справочника&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;справочник&amp;quot;, &amp;quot;fields&amp;quot;: {&amp;quot;колонка1&amp;quot;: &amp;quot;значение по умолчанию&amp;quot;}}]&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/structure/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Модификация структуры пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; -  json строка в формате &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{&amp;quot;name&amp;quot;: &amp;quot;справочник&amp;quot;, &amp;quot;fields&amp;quot;: {&amp;quot;колонка 1&amp;quot;: &amp;quot;значение по умолчанию&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение по умолчанию&amp;quot;}}.&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/session/{robot_id}/{session_id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выдает параметры сессии. &amp;lt;small&amp;gt;Для отображения на боковой панели тестирования в UPS. Основные блоки результата:&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot_id&#039;&#039;&#039; —  id робота&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;session_id&#039;&#039;&#039; —  id незакрытой сессии&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;started&amp;quot;: &amp;quot;&amp;quot;,  &amp;quot;modified&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;robot&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;session&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;channel&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;connector&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;unknown&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;current&amp;quot;: {&amp;quot;id&amp;quot;: &amp;quot;&amp;quot;, &amp;quot;qas&amp;quot;: &amp;quot;&amp;quot;, &amp;quot;answered&amp;quot;: true/false, &amp;quot;category&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;              &amp;quot;nearest&amp;quot;: &amp;quot;&amp;quot;,    &amp;quot;entry&amp;quot;: [.....],    &amp;quot;missingRunData&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;              &amp;quot;passedRunData&amp;quot;: [.....],       &amp;quot;waitingRunData&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;              &amp;quot;border&amp;quot;: int,    &amp;quot;preborder&amp;quot;: int,    &amp;quot;lastreply&amp;quot;: &amp;quot;&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;models&amp;quot;: [.....],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;scripts&amp;quot;: [.....],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;  &amp;quot;data&amp;quot;: [{&amp;quot;request&amp;quot;: {.....}, &amp;quot;reply&amp;quot;: {.....}}],&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;timers&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;variables&amp;quot;: {},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;events&amp;quot;: {.....},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;closed&amp;quot;: &amp;quot;&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/widget/config&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выдает параметры виджета для web канала по запросу js скрипта&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;token&#039;&#039;&#039; —  уникальный код виджета, создается при внедрении&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Состав конфига канала, для передачи виджету. Подробней в [https://wiki.connect2ai.net/index.php/SES._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0#%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%B2%D0%B8%D0%B4%D0%B6%D0%B5%D1%82%D0%B0_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B0%D0%B9%D1%82%D0%B0 Руководстве администратора]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/widget/js&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выдает код js скрипта виджета для web-канала &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Код скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/res: методы работы с сервисом отчетов&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/res/dashboards&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получить список рабочих столов kibana с наборами отчетов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;dashboards&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;Наименование1&amp;quot;: &amp;quot;https://........&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;Наименование2&amp;quot;: &amp;quot;https://.........&amp;quot;  }}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/transcription: методы работы со стенографией&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/audio/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Получить аудиофайл по id стенограммы. &amp;lt;small&amp;gt;Идентификатор нужной стенограммы можно получить методом&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;GET /transcription/list&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;wav файл сохраненной стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/transcription/create&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание стенограммы из завершенного задания в очереди распознавания. &amp;lt;small&amp;gt;В ответ придет id созданной стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;taskID&#039;&#039;&#039; — идентификатор задания из очереди&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; —  имя создаваемой стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;74721a3b-9055-4650-9afb-de4d103cafc7&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/transcription/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление стенограммы&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение стенограммы. &amp;lt;small&amp;gt;Используется для отображения стенограммы в веб интерфейсе&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;стенограмма в json формате&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка сохраненных стенограмм&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |[ {  &amp;quot;id&amp;quot;: &amp;quot;926e8d25-4275-4a78-906b-a1109cdacbea&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;name&amp;quot;: &amp;quot;название&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;model&amp;quot;: &amp;quot;big&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;created&amp;quot;: &amp;quot;2024-03-29 12:37:42&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;modified&amp;quot;: &amp;quot;2024-04-24 16:09:09&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;user&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot; }, .... ] &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/transcription/save/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Сохранение стенограмы. &amp;lt;small&amp;gt;Используется для сохранения изменений по нажатию кнопки «Сохранить».&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  стенограмма в json формате&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/waveform/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Служебный метод для отображения аудио в графическом виде, &amp;lt;small&amp;gt;ответ содержит пики сигнала&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;waveform&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   0.016,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ..........&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ..........&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   0.015,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   0.01 ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=UPS._%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_API&amp;diff=3466</id>
		<title>UPS. Описание API</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=UPS._%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_API&amp;diff=3466"/>
		<updated>2026-01-12T08:07:44Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Описание часто используемых параметров&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!Тип&lt;br /&gt;
!Описание&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;servicetype&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Тип сервиса. Возможные значения: spr, smc, see, sbs, tts.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;servertype&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Тип группы серверов. Возможные значения: trainer (серверы обучения), cluster (рабочие серверы).&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;model&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Название модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;modeltype&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;запрос&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Тип модели. Возможные значения: &#039;&#039;&#039;future&#039;&#039;&#039; — планируемая/черновик, &#039;&#039;&#039;current&#039;&#039;&#039; — текущая/рабочая, &#039;&#039;&#039;previous&#039;&#039;&#039; — архивная.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;error&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;ответ&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Флаг ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;small&amp;gt;message&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;small&amp;gt;ответ&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Информационное сообщение.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;&amp;quot;/external modules&amp;quot; методы внешних модулей&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
В этом разделе будут методы соответствующим образом оформленных [[UPS. Руководство администратора#Установка модулей для UPS|внешних модулей]]&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/auth: методы  авторизации&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/access&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение токенов доступа. &amp;lt;small&amp;gt;Токен доступа определяет, какие из методов будут доступны конкретному пользователю. Формируется на основании роли. Дополнительный входной параметр во всех методах, кроме перечисленных в разделе «nopassword» конфигурационного файла. Время действия токена определяется параметром auth.accessLifeTime конфигурационного файла.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;username&#039;&#039;&#039; — логин&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;password&#039;&#039;&#039; — пароль&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-access-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-refresh-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/dataset/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление dataset (набора данных). &amp;lt;small&amp;gt;Dataset (набор данных) используется для ограничения доступа к данным. В ответе метод вернет id созданного набора данных.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;data — json строка вида: {    &amp;quot;name&amp;quot;: &amp;quot;название нового набора&amp;quot;     }&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset_id&amp;quot;: &amp;quot;XXXXXXXXXXXXX&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/auth/dataset/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление dataset (набора данных). &lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора данных&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/dataset/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Переименование dataset (набора данных). &amp;lt;small&amp;gt;Метод меняет все параметры набора данных, но на данный момент времени у набора данных, кроме id, только один параметр — наименование.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора данных&amp;lt;/small&amp;gt; &lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — JSON c новыми параметрами&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/datasets&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка наборов данных.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;XXX&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;По умолчанию&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/refresh&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Обновление токенов доступа. &amp;lt;small&amp;gt;Время, в течение которого можно обновить доступ, регулируется параметром auth.refreshLifeTime конфигурационного файла. Служебный метод, используется в основном в веб-интерфейсе, чтобы не запрашивать лишний раз пароль.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;x-refresh-token&#039;&#039;&#039; — токен обновления доступа&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-access-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;x-refresh-token&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/rights&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка прав доступа. &amp;lt;small&amp;gt;Служебный метод — по токену получает название роли и все права доступа этой роли, а также общедоступные методы.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;&amp;lt;&amp;lt;{  &amp;quot;РОЛЬ&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;GET:/......&amp;quot;  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;nopassword&amp;quot;: [    &amp;quot;GET:/.......&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;...............&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;&amp;lt;&amp;lt;...............&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;POST:/.......&amp;quot;  ]  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/role/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание роли. &amp;lt;small&amp;gt;Служебный метод — используется веб-интерфейсом при создании роли.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — JSON с параметрами роли:{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;проверка создания&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;rights&amp;quot;: [    &amp;quot;набор прав через запятую&amp;quot; ]&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;, &amp;quot;role_id&amp;quot;: &amp;quot;a7e68bb83169f864c2fc868401b5250c&amp;quot;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/auth/role/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление роли.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; роли&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/role/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение роли. &amp;lt;small&amp;gt;Параметры как при создании роли. Роль будет переписана.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; роли&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — JSON с параметрами роли:{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;проверка создания&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;rights&amp;quot;: [    &amp;quot;набор прав через запятую&amp;quot; ]&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/roles&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка ролей.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;name&amp;quot;: &amp;quot;имя роли&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;rights&amp;quot;: [ &amp;quot;набор прав через запятую&amp;quot; ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;},............]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/user/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание нового пользователя. &amp;lt;small&amp;gt;Метод вернет или id нового пользователя или описание ошибки&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — json строка {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;login_name&amp;quot;, &amp;quot;fullname&amp;quot;: &amp;quot;Отображаемое Имя&amp;quot;,&amp;quot;password&amp;quot;: &amp;quot;XXXXX&amp;quot;,&amp;quot;role&amp;quot;: &amp;quot;role_id&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;default dataset id&amp;quot;, &amp;quot;datasets&amp;quot;: [ &amp;quot;dataset id&amp;quot;, ................. ] }&amp;lt;/small&amp;gt; &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;user_id&amp;quot;: &amp;quot;XXXXXXXXXXXXXXXX&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/auth/user/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление пользователя&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - идентификатор пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/user/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение параметров пользователя&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; — идентификатор пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;loginname&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;fullname&amp;quot;: &amp;quot;Full Name&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;role&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;datasets&amp;quot;: [ &amp;quot;0&amp;quot;, &amp;quot;2dc34d3454243522e5407d3a170815a2&amp;quot; ] }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/user/info&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение параметров пользователя по его токену доступа. &amp;lt;small&amp;gt;Служебный метод - для предоставления прав текущему пользователю по его токену&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;x-access-token&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;loginname&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;fullname&amp;quot;: &amp;quot;Full Name&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;role&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;datasets&amp;quot;: [  &amp;quot;0&amp;quot;,  &amp;quot;2dc34d3454243522e5407d3a170815a2&amp;quot;]  },  &amp;quot;rights&amp;quot;: [..........] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/user/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка пользователей с их параметрами. &amp;lt;small&amp;gt;Тоже самое что и в методе GET /auth/user/info, только для всех пользователей&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |[&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;XXXXXXXXXX&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;username&amp;quot;: &amp;quot;loginname&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;fullname&amp;quot;: &amp;quot;Full Name&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;role&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;datasets&amp;quot;: [  &amp;quot;0&amp;quot;,  &amp;quot;2dc34d3454243522e5407d3a170815a2&amp;quot;]  },  &amp;quot;rights&amp;quot;: [..........] },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
......&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/user/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение параметров пользователя&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — параметры пользователя как при создании&amp;lt;/small&amp;gt; &lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/user/password&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Смена пароля пользователя по его токену доступа.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;password&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |{ &amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;} &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/auth/userlog&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение действий пользователя за период времени по его токену&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;from&#039;&#039;&#039; — начало периода в формате &amp;quot;%Y-%m-%d %H:%M&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;to&#039;&#039;&#039; — конец периода в формате &amp;quot;%Y-%m-%d %H:%M&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;время&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;метод&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      {измененные данные в формате метода}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;время&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;метод&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      {измененные данные в формате метода}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    .........&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/auth/version&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение версии сервиса ups&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;version&amp;quot;: &amp;quot;4.082 release&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/lang: методы мультиязычности&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/lang/&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выводит информацию о переводе элементов интерфейса на текущий язык&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;see&amp;quot;:&amp;quot;Сущности&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;smc&amp;quot;:&amp;quot;Классификатор&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;... }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/lang/wallpaper&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отдает случайный фон рабочего стола в виде jpeg из каталога «wallpapers» на сервере ups&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;image/jpeg&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/server: получение информации о серверах&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |GET/server/get/addresses/{servicetype}&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Вывод информации о серверах, обслуживающих данный сервис, а также настроенных параметров обращения к данным серверам. &lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;trainer&#039;&#039;&#039; — сервер обучения, &#039;&#039;&#039;cluster&#039;&#039;&#039; — рабочие серверы, &#039;&#039;&#039;connect&#039;&#039;&#039; — время на подключение, &#039;&#039;&#039;read&#039;&#039;&#039; — время на ответ,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;failed&#039;&#039;&#039; — время пребывания в сбойных, &#039;&#039;&#039;install&#039;&#039;&#039; — время на установку модели, &#039;&#039;&#039;info&#039;&#039;&#039; — время на получение информации о модели,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;counter&#039;&#039;&#039; — счетчик запросов, &#039;&#039;&#039;current&#039;&#039;&#039; — индекс последнего опрошенного cluster-сервера&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;fail&#039;&#039;&#039; — массив сбойных серверов со временем постановки в сбой.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;trainer&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;cluster&amp;quot;: [ &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;timers&amp;quot;: {  &amp;quot;connect&amp;quot;: 0.5,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;read&amp;quot;: 1,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;failed&amp;quot;: 600,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;install&amp;quot;: 60,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;info&amp;quot;: 3 },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;counter&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;current&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;fail&amp;quot;: {&amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;:1686295678} }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |GET/server/get/models/{servicetype}/{servertype}&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Вывод информации о моделях указанного сервиса на каждом сервере указанного типа. &amp;lt;small&amp;gt;Вывод представляет собой массив URL-серверов, для каждого из которых указан список моделей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servertype&#039;&#039;&#039; — тип серверов&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;model1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;modelN&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ],  ... }&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/model: методы работы с моделями&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/add/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание пустой модели в указанном сервисе. &amp;lt;small&amp;gt;Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;, &#039;&#039;&#039;spr&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 30%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 70%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/apply/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Применение установленной на рабочих серверах модели. &amp;lt;small&amp;gt;После применения модель становится доступна для штатного режима работы. Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;, &#039;&#039;&#039;spr&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;DELETE/model/delete/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Полностью удаляет модель из системы и со всех управляемых серверов. &amp;lt;small&amp;gt;Доступно для следующих сервисов: smc, see, spr.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/errors/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Запрос на получение списка ошибок модели после тестирования/обучения.  &amp;lt;small&amp;gt;Доступен для сервисов see и smc. Ответ содержит список вложенных списков. В каждом три значения: правильное значение, предсказанное моделью значение и начальные данные (фраза).&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039; — тип ошибок в выводе&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;- train&#039;&#039;&#039; ошибки обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;- test&#039;&#039;&#039; ошибки тестирования&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;- mark&#039;&#039;&#039; ошибки авторазметки&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[ [true, predicted, phrase],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;... ]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/export/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Экспорт модели, модель скачивается в виде zip-архива.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл model.zip, где model — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;DELETE/model/handler/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление постобработчика из модели типа future. &amp;lt;small&amp;gt;Более подробно об обработчике см. руководства пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/handler/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отправка файла-постобработчика в указанную модель типа future. &amp;lt;small&amp;gt;Обработчик становится активным сразу после успешной отправки. Более подробно об обработчике см. руководства пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;handler&#039;&#039;&#039; — файл, содержащий программный код python постобработчика&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/handler/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение файла-постобработчика из модели типа future.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл handler.py&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;DELETE/model/handler/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление постобработчика в указанной модели указанного типа.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/handler/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отправка файла-постобработчика в указанную модель указанного типа. &amp;lt;small&amp;gt;Становится активным сразу после успешной отправки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;handler&#039;&#039;&#039; — файл, содержащий программный код python постобработчика&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/handler/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение файла-постобработчика из указанной модели указанного типа.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл handler.py&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/import/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Импортирует модель в черновик (modeltype=future)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;zip-model&#039;&#039;&#039; — zip с файлами модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/info/{servicetype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение информации о всех моделях указанного сервиса. &amp;lt;small&amp;gt;Аналогичен методу GET /info/{servicetype}/{model}, но выводит информацию обо всех моделях.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{    &amp;quot;model1&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;previous&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;current&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;future&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;empty&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      ...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    }    },   ...  }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/info/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение информации о каждом типе (modeltype) указанной модели. &amp;lt;small&amp;gt;Итоговый массив содержит переменные типа modeltype, в каждой из который содержится информация о модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{    &amp;quot;previous&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;current&amp;quot;:  {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;status&amp;quot;: &amp;quot;trained&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ...  },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;future&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;status&amp;quot;: &amp;quot;trained&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ...  }  }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/install/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Установка импортированной или обученной модели на рабочих серверах.&lt;br /&gt;
&amp;lt;small&amp;gt;Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;, &#039;&#039;&#039;spr&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;:0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;GET/model/log/{servicetype}/{model}/{modeltype}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выводит лог обучения и тестирования модели. &amp;lt;small&amp;gt;Доступно для следующих сервисов: &#039;&#039;&#039;smc&#039;&#039;&#039;, &#039;&#039;&#039;see&#039;&#039;&#039;.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;modeltype&#039;&#039;&#039; — тип модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;training&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;preparing data&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;tokenizing&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ...&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;&amp;lt;small&amp;gt;POST/model/restore/{servicetype}/{model}&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Откат модели. &amp;lt;small&amp;gt;Делает текущую рабочую модель черновиком (future), рабочие серверы после выполнения данного метода продолжают уже с возвращенной моделью. Схематично действия над modeltype в результате выполнения данного метода можно представить так:&amp;lt;/small&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;current -&amp;gt; future&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;previous -&amp;gt; current&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;small&amp;gt;null -&amp;gt; previous&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — название модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |{&amp;quot;error&amp;quot;:0,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;message&amp;quot;:&amp;quot;success&amp;quot;&lt;br /&gt;
&lt;br /&gt;
} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/corpus: работа с данными для обучения моделей&#039;&#039;&#039; =====&lt;br /&gt;
Методы данного класса предназначены только для сервисов smc и see&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перечень заданий автоматической маркировки корпусов. &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{   &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;tasks&amp;quot;: [ {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;: &amp;quot;29d9da98-d6c1-4dc1-bbc9-111309816002&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;taskname&amp;quot;: &amp;quot;test_doc&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {  &amp;quot;id&amp;quot;: &amp;quot;1a5e9bdc-9f98-49d2-84de-1a9bde8fc37c&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;taskname&amp;quot;: &amp;quot;sssss&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;    }  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/result/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Результат выполнения задания на автомаркировку корпуса. &amp;lt;small&amp;gt;Если задание завершено в ответе придет маркированый корпус и время старта и финиша задания&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;started&amp;quot;: &amp;quot;2024-10-09 18:05:51&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;finished&amp;quot;: &amp;quot;2024-10-09 18:05:51&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;small&amp;gt;&amp;quot;corpus&amp;quot;: [[ [], [ [&amp;quot;тэг&amp;quot;],&amp;quot;фраза 1&amp;quot;]],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;small&amp;gt;[ [], [[&amp;quot;тэг&amp;quot;],&amp;quot;фраза 2&amp;quot;]] ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Начать автоматическую разметку корпуса.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;taskname&#039;&#039;&#039; — произвольное имя задания&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;corpus&#039;&#039;&#039; — json строка с размечаемым корпусом[[ [класс1,... классН], текст ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[ [класс1,... классН], текст ]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;marks&#039;&#039;&#039; — json строка с набором меток [    [ метка, [синоним, синоним2 ... синоним Н], порог ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[ метка, [синоним, синоним2 ... синоним Н], порог ]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;appendMarks&#039;&#039;&#039; — &amp;quot;yes&amp;quot; - дополнить разметку, &amp;quot;no&amp;quot; -заменить разметку&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;уникальный id задания&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/status/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получить статус задания на автоматическую разметку корпуса.&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — уникальный id задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;status&amp;quot;: &amp;quot;finished&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;started&amp;quot;: &amp;quot;2024-10-09 13:49:46&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;finished&amp;quot;: &amp;quot;2024-10-09 13:49:46&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;progress&amp;quot;: 0&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/automark/stop/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Прервать задание на автоматическую разметку корпуса. &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/copy/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Копирование корпуса данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;srcname&#039;&#039;&#039; — текущее имя&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;dstname&#039;&#039;&#039; — новое имя&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/corpus/delete/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаляет корпус с данными&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/export/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Возвращает текстовый файл с корпусом, &amp;lt;small&amp;gt;содержащий строки вида КЛАСС&amp;lt;TAB&amp;gt;ФРАЗА&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Файл name.txt&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/get/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Возвращает JSON с данными корпуса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;  [ &amp;quot;тэг&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;фраза&amp;quot;&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;  ],&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;  ...&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/import/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Метод для импорта корпуса данных. &amp;lt;small&amp;gt;Возможен как из текстового файла со строками вида КЛАСС&amp;lt;TAB&amp;gt;ФРАЗА (доступно для smc и see), так и из логов работы системы (только для smc). Если на вход поступил файл csv, происходит импорт из файла, в противном случае — из логов.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv&#039;&#039;&#039; — файл данных&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;startDate&#039;&#039;&#039; — дата начала выборки, YYYY-MM-DD&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;stopDate&#039;&#039;&#039; — дата окончания выборки, YYYY-MM-DD&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — имя модели, из логов которой будет произведен импорт&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;limit&#039;&#039;&#039; — числовое ограничение строк импорта&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/corpus/list/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Возвращает список всех корпусов данных для указанного типа сервиса &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[ &amp;quot;корпус1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;корпус2&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ...]&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/put/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перезаписывает корпус отправленным массивом данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — строка формата json с данными. Аналогична выводу метода GET /get/{servicetype}&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color: green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/corpus/rename/{servicetype}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Переименование корпуса&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;servicetype&#039;&#039;&#039; — тип сервиса&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;srcname&#039;&#039;&#039; — текущее имя&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;dstname&#039;&#039;&#039; — новое имя&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/marks: работа с наборами меток в smc&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление набора менток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; —список меток в формате: [ [  &amp;quot;метка1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним1&amp;quot;, &amp;quot;синоним2&amp;quot;, &amp;quot;синоним3&amp;quot;, &amp;quot;синонимN&amp;quot; ], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],  [ &amp;quot;меткаN&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним11&amp;quot;, &amp;quot;синоним21&amp;quot;,&amp;quot;синоним31&amp;quot;, &amp;quot;синонимN1&amp;quot;], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ] ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — имя создаваемого набора&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;132310fa-98c7-4b12-896f-ff113827d077&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/marks/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление набора меток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/marks/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение набора меток в виде строк &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;метка1    синоним1,синоним2,синоним3,синонимN     0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;меткаN    синоним11,синоним21,синоним31,синонимN1    0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/marks/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение набора меток в виде json&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;quot;метка1&amp;quot;, [ &amp;quot;синоним1&amp;quot;, &amp;quot;синоним2&amp;quot;, &amp;quot;синоним3&amp;quot;, &amp;quot;синонимN&amp;quot;  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    [&amp;quot;меткаN&amp;quot;, [&amp;quot;синоним11&amp;quot;,&amp;quot;синоним21&amp;quot;, &amp;quot;синоним31&amp;quot;,&amp;quot;синонимN1&amp;quot;],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      0.9&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ]  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/import/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Импорт в существующий набор меток из файла. &amp;lt;small&amp;gt;Набор будет переписан из файла&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;csv&#039;&#039;&#039; — файл &amp;quot;метка&amp;quot;ТАБ&amp;quot;синонимы через запятую&amp;quot;ТАБ&amp;quot;достоверность(число от 0 до 1)&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/marks/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка наборов меток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;result&amp;quot;: [    { &amp;quot;id&amp;quot;: &amp;quot;416fbe08-19e9-453c-b140-37008a08a76c&amp;quot;,&amp;quot;name&amp;quot;: &amp;quot;test&amp;quot; },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;quot;id&amp;quot;: &amp;quot;16e77fa2-7c4d-47f9-8644-6385876525d6&amp;quot;,&amp;quot;name&amp;quot;: &amp;quot;Рыжик&amp;quot; },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;quot;id&amp;quot;: &amp;quot;132310fa-98c7-4b12-896f-ff113827d077&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;test&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/put/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Импорт в существующий набор меток из json строки. &amp;lt;small&amp;gt;Набор будет переписан&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — список меток в формате: [ [  &amp;quot;метка1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним1&amp;quot;, &amp;quot;синоним2&amp;quot;, &amp;quot;синоним3&amp;quot;, &amp;quot;синонимN&amp;quot; ], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ],  [ &amp;quot;меткаN&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      [&amp;quot;синоним11&amp;quot;, &amp;quot;синоним21&amp;quot;,&amp;quot;синоним31&amp;quot;, &amp;quot;синонимN1&amp;quot;], 0.9 # достоверность для метки (0 - 1)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    ] ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор заменяемого набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/marks/rename/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Присваивает новое наименование существующему набору меток&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — новое имя набора&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/spr: работа с сервисом SPR&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{{:SPR. Руководство пользователя}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/spr/audio/{taskID}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение аудиофайла отложенного задания&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;taskID&#039;&#039;&#039; — идентификатор задания в очереди/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Wav файл&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/spr/queue&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение очереди отложенных заданий. &amp;lt;small&amp;gt;Выводит очередь со статусами выполнения заданий. Статусы: &#039;&#039;&#039;ready&#039;&#039;&#039; — готово,  &#039;&#039;&#039;waiting&#039;&#039;&#039; — ожидание, &#039;&#039;&#039;failed&#039;&#039;&#039; — сбой&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Нет входных параметров&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &amp;lt;small&amp;gt;{  &amp;quot;id задания&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   &amp;quot;created&amp;quot;: &amp;quot;ХХХХ-ХХ-ХХ ХХ:ХХ:ХХ&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   &amp;quot;status&amp;quot;: &amp;quot;waiting&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   &amp;quot;filename&amp;quot;: &amp;quot;wav&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/spr/queue/{taskID}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление задания из очереди&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;taskID&#039;&#039;&#039; — идентификатор задания в очереди/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/spr/result/{taskID}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |получениеПезультатов распознавания отложенного задания. &amp;lt;small&amp;gt;Статусы: &#039;&#039;&#039;ready&#039;&#039;&#039; — готово,  &#039;&#039;&#039;waiting&#039;&#039;&#039; — ожидание, &#039;&#039;&#039;failed&#039;&#039;&#039; — сбой, &#039;&#039;&#039;not found&#039;&#039;&#039; — не найдена&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;taskID&#039;&#039;&#039; — идентификатор задания в очереди/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Вывод аналогичен выводу метода stt + добавлено поле status, которое содержит информацию о статусе отложенной задачи&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/spr/stt/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отправка файла на распознавание речи. &amp;lt;small&amp;gt;Моно-файлы до 30 секунд распознаются без разбивки на фрагменты. Многоканальные файлы и файлы длиннее 30 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в [[SPR. Руководство администратора.|руководстве администратора]] spr.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для распознавания&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;speakers&#039;&#039;&#039; — опция поиска говорящих по базе SBS. Если 1, то дополнительно производится поиск говорящих и получение метаданных по каждому говорящему (используется сервис SBS с предварительно обученными слепками метаданных говорящих)&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;punctuation&#039;&#039;&#039; — опция для расстановки знаков препинания. Если 1, то дополнительно вызывает метод punctuate в SMC и расставляет знаки препинания в распознанном тексте, значение по умолчанию берётся из файла конфигурации (для модели big пунктуация выполняется в любом случае).&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;normalization&#039;&#039;&#039; — опция обратной нормализации текста, если 1, то выполняется обратная нормализация текста текста (для модели big выполняется в любом случае).&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;vad&#039;&#039;&#039; — используемый VAD, по умолчанию webrtc&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;toxicity&#039;&#039;&#039; — анализировать распознанный текст на токсичность через smc (GET/smc/toxicity).Высказывание анализируется по 4 параметрам, по каждому выдается вероятность от 0 до 1:&amp;quot;оскорбление&amp;quot;: 0.13,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;непристойность&amp;quot;: 0,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;угроза&amp;quot;: 0,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;вежливость&amp;quot;: 0.53&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;emotion&#039;&#039;&#039; — выявить эмоции из распознанного текста через smc (GET/smc/emotion). Возможные ответы: negative, neutral, positive.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;voice_analyzer&#039;&#039;&#039; — анализировать аудиофрагменты каждого из говорящих на эмоции, возраст и пол, запрашивается в sbs метод POST/sbs/analyze.Аудио говорящего анализируется на возраст (child, adult, old).Эмоции (ANGER, BORE, DISAPPOINTMENT, DISGUST, EXCITEMENT, FEAR, NEUTRAL, PAIN, PLEASURE, SADNESS, SUPRISE).&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;Пол (male, female).&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;speaker_counter&#039;&#039;&#039; — количество докладчиков, по умолчанию 0, автоматическое определение количества. При отправке значения -1 разделение на докладчиков будет отключено.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;async&#039;&#039;&#039; — отложенный запуск распознавания&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;classifiers&#039;&#039;&#039;&amp;lt;nowiki&amp;gt; - дополнительно проанализировать все распознанные фразы через модели smc и/или see. отправляется в виде {&amp;quot;smс&amp;quot;:&amp;quot;название модели&amp;quot;:{ параметры запроса }}. Подробнее о параметрах запроса см. в документации по сервисам &amp;lt;/nowiki&amp;gt;[[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;В случае &#039;&#039;&#039;async=1&#039;&#039;&#039; возвращается только &#039;&#039;&#039;taskID&#039;&#039;&#039;, результат по taskID смотреть в методе /spr/result.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;Для коротких файлов&#039;&#039;&#039;:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;model&amp;quot;: &amp;quot;call&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;текст фрагмента&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;classifiers&amp;quot;: тут ответы от моделей smc и see,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;words&amp;quot;: [&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{ &amp;quot;word&amp;quot;: &amp;quot;текст&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;start&amp;quot;: 520,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;      &amp;quot;stop&amp;quot;: 1240 },&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;    { &amp;quot;word&amp;quot;: &amp;quot;фрагмента&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;start&amp;quot;: 1240,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;      &amp;quot;stop&amp;quot;: 1920  }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;Для транскрибации больших файлов:&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;speakers&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;id&amp;quot;: null,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;duration&amp;quot;: 18980,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;fragments&amp;quot;: 3,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;age&amp;quot;: &amp;quot;old&amp;quot;, # только для voice_analyzer=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;gender&amp;quot;: &amp;quot;female&amp;quot; # только для voice_analyzer=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;splitted&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;start&amp;quot;: &amp;quot;00:00:01.870&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;text&amp;quot;: &amp;quot;текст.&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;words&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;word&amp;quot;: &amp;quot;текст.&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;start&amp;quot;: 1870,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;stop&amp;quot;: 2710,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;confidence&amp;quot;: 0.95263671875&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;stop&amp;quot;: &amp;quot;00:00:05.510&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;channel&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;duration&amp;quot;: &amp;quot;00:00:03.640&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;start_ms&amp;quot;: 1870,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;stop_ms&amp;quot;: 5510,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;duration_ms&amp;quot;: 3640,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;speaker&amp;quot;: 4,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;speakerConfidence&amp;quot;: 0.87,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;classifiers&amp;quot;: тут ответы от моделей smc и see,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;toxicity&amp;quot;: { # только для toxicity=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;insult&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;obscenity&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;threat&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;politeness&amp;quot;: 0.99&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;},&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;emotion&amp;quot;: { &amp;quot;neutral&amp;quot;: -0.3315 }, # только для emotion=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;voice_analysis&amp;quot;: { # только для voice_analyzer=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;emotion&amp;quot;: {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;class&amp;quot;: &amp;quot;NEUTRAL&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;confidence&amp;quot;: 0.7554781436920166  }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/spr/waveform/{taskID}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Служебный метод для отображения аудио в графическом виде, содержит пики сигнала.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;taskID&#039;&#039;&#039; — идентификатор задания&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;waveform&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;0.016,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    0.015,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    0.01 ] }&amp;lt;/small&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/smc: работа с сервисом SMC&#039;&#039;&#039; =====&lt;br /&gt;
{{:SMC. Руководство пользователя}}&lt;br /&gt;
&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/compress&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Убирает из фразы слова не влияющие на ее смысл.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; &amp;lt;span data-darkreader-inline-color=&amp;quot;&amp;quot; data-darkreader-inline-bgcolor=&amp;quot;&amp;quot;&amp;gt;—&amp;lt;/span&amp;gt; текст для сжатия&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; &amp;lt;span data-darkreader-inline-color=&amp;quot;&amp;quot; data-darkreader-inline-bgcolor=&amp;quot;&amp;quot;&amp;gt;—&amp;lt;/span&amp;gt; уровень компрессии от 1 до 100. Чем меньше число тем меньше слов будет в итоговой фразе&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;text&amp;quot;: &amp;quot;сжатый текст&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/correct&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Коррекция правописания. &amp;lt;small&amp;gt;Изменяет неправильно написанные слова, меняя их на наиболее близкие правильные (из знакомых модели). Если модель коррекции не смогла предложить правильное написание текста, метод вернёт текст неизменным.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст для коррекции&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;correction&#039;&#039;&#039; - уровень коррекции, от 1 до 3. По умолчанию 1.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - если указано, то при коррекции дополнительно используется словарь модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;text&amp;quot;: &amp;quot;корректный текст&amp;quot; }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/emotion&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Анализ эмоций. &amp;lt;small&amp;gt;На выходе один из вариантов: positive, negative, neutral.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; &amp;lt;span data-darkreader-inline-color=&amp;quot;&amp;quot; data-darkreader-inline-bgcolor=&amp;quot;&amp;quot;&amp;gt;—&amp;lt;/span&amp;gt; фраза для анализа эмоций&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;emotion&amp;quot;: &amp;quot;positive&amp;quot;, &amp;quot;score&amp;quot;: 0.9601 }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/groups/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавляет к модели группы из корпуса. &amp;lt;small&amp;gt;Группы в модели будут перезаписаны&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — наименование модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;corpus&#039;&#039;&#039; — наименование корпуса- источника групп&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;string&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/groups/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Поиск групп по ранее полученным меткам. &amp;lt;small&amp;gt;Ищет группы по набору меток. Результат — группы (если найдены) и ближайшие группы с указанием недостающих меток. Позволяет сохранять контекст в виде меток и дозапрашивать группы с учетом контекста.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;classes&#039;&#039;&#039; — набор меток через запятую&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — имя модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;groups&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   {     &amp;quot;group&amp;quot;: &amp;quot;Группа 1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     &amp;quot;intersection&amp;quot;: 3,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     &amp;quot;classes&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;       &amp;quot;метка1_о&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;       &amp;quot;метка2_о&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;       &amp;quot;метка3_о&amp;quot;     ]   },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   {     &amp;quot;group&amp;quot;: &amp;quot;Группа 2&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     &amp;quot;intersection&amp;quot;: 2,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     &amp;quot;classes&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;       &amp;quot;метка1_о&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;       &amp;quot;метка5_о&amp;quot;     ]   }],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;nearest&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   {     &amp;quot;group&amp;quot;: &amp;quot;Группа до которой не хватило 1 метки&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     &amp;quot;percent&amp;quot;: 0.75,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     &amp;quot;need&amp;quot;: &amp;quot;недостающая метка_о&amp;quot;   } ] }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/normalize&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Обратная нормализация текста. &amp;lt;small&amp;gt;Пример: двадцать пятого апреля в пятом часу — 25 апреля в 5-м часу.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст для обработки.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;text&amp;quot;: &amp;quot;&amp;lt;строка после обратной нормализации&amp;gt;&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/punctuate&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Расстановка знаков препинания&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст для обработки.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;text&amp;quot;: &amp;quot;string&amp;quot;  }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/stop/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановка обучения модели. &amp;lt;small&amp;gt;Удаляет тестовую версию модели с сервера обучения, тем самым прерывает обучение.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;string&amp;quot;}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/test/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Запуск тестирования модели smc. &amp;lt;small&amp;gt;Метод асинхронный, статус тестирования можно запросить методом GET/info/{servicetype}/{model}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;corpus&#039;&#039;&#039; — название корпуса с тестовыми данными&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/smc/toxicity&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Определение токсичности высказывания. &amp;lt;small&amp;gt;Высказывание анализируется по 4 параметрам, по каждому выдается вероятность от 0 до 1:&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; &amp;lt;span data-darkreader-inline-color=&amp;quot;&amp;quot; data-darkreader-inline-bgcolor=&amp;quot;&amp;quot;&amp;gt;—&amp;lt;/span&amp;gt; текстовая строка с высказыванием&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;insult&amp;quot;: 0.13, # оскорбление&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;obscenity&amp;quot;: 0, # брань&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;threat&amp;quot;: 0, # угрозы&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;politeness&amp;quot;: 0.53 вежливость}&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/smc/train/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление модели. &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;corpus&#039;&#039;&#039; — имя текстового корпуса для обучения модели или имя набора меток&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;isMarks&#039;&#039;&#039; — если «1», то вместо корпуса метод ожидает набор меток. Модель, созданная из меток, при этом не обучается, созданный файл модели используется для расчетов векторов «на лету» и выдачи результатов на основании сравнения векторов текста и синонимов из файла с метками.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/see: работа с сервисом SEE&#039;&#039;&#039; =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/see/entities/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Поиск сущностей. &amp;lt;small&amp;gt;Вернется массив со всеми моделями, в которых были найдены сущности (модели для поиска указываются в поле id). Каждая переменная с названием модели будет содержать список всех найденных сущностей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;model — идентификатор[ы] модели. Может быть указано несколько через запятую, тогда запрос будет обработан всеми указанными моделями.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;text — текст для анализа.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;similarity — порог похожести найденной сущности на эталонные, %. По умолчанию 70.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ ID-модели: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{ &#039;&#039;&#039;position&#039;&#039;&#039;: 0, # позиция слова начала фрагмента, определяющего сущность&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;confidence&#039;&#039;&#039;: 1, #вероятность правильного определения сущности&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;text: текст сущности,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;calculated&#039;&#039;&#039;: vaktsinatsiya # поле, содержащее значение сущности, использованный при обучении модели  }, {...}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]  }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/stop/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановка обучения модели&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/see/train/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Запуск обучения модели &#039;&#039;&#039;&amp;lt;small&amp;gt;future&amp;lt;/small&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; — идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;corpus&#039;&#039;&#039; — название корпуса с данными&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;noise&#039;&#039;&#039; — уровень шума для генерации синтезированных данных для обучения модели, от 1 до 5, по умолчанию 0&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;/sbs: работа с сервисом SBS&#039;&#039;&#039; =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/analyze&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение аналитических метаданных из голосового фрагмента. &amp;lt;small&amp;gt;Вернется массив с метаданными голосового фрагмента.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; &amp;lt;span data-darkreader-inline-color=&amp;quot;&amp;quot; data-darkreader-inline-bgcolor=&amp;quot;&amp;quot;&amp;gt;—&amp;lt;/span&amp;gt; файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{ age: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   class: 20-29, # {&amp;quot;00-05&amp;quot;, &amp;quot;06-12&amp;quot;, &amp;quot;13-19&amp;quot;, &amp;quot;20-29&amp;quot;, &amp;quot;30-39&amp;quot;, &amp;quot;40-49&amp;quot;,   &amp;quot;50-59&amp;quot;, &amp;quot;60+&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   confidence: 0.99 },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;emotion: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   class: SADNESS, # { &amp;quot;ANGER&amp;quot;, &amp;quot;BORE&amp;quot;, &amp;quot;DISAPPOINTMENT&amp;quot;, &amp;quot;DISGUST&amp;quot;, &amp;quot;EXCITEMENT&amp;quot;, &amp;quot;FEAR&amp;quot;, &amp;quot;NEUTRAL&amp;quot;, &amp;quot;PAIN&amp;quot;, &amp;quot;PLEASURE&amp;quot;, &amp;quot;SADNESS&amp;quot;, &amp;quot;SUPRISE&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   confidence: 0.99 },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;gender: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   class: FEMALE, # { &amp;quot;MALE&amp;quot;, &amp;quot;FEMALE&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   confidence: 0.99 }  }&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/noiselevel&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Возвращает процент зашумленности аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Пример ответа:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: 0, message: &#039;success&#039;, &#039;noise&#039;: 0.79 }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/search&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Поиск говорящего по базе слепков.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для анализа&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; — порог похожести при поиске, от 0 до 1.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то поиск не будет осуществлен, если распознанный текст будет сильно отличаться от text.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;Пример ответа:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{ error: 0, speaker: Ivan, confidence: 0.79 }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/speakers/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление слепка в базу.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — имя говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для создания оцифрованного представления говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то поиск не будет осуществлен, если распознанный текст будет сильно отличаться от text. Для использования необходим сервис spr.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;251f78d7-ee50-4ba1-a669-ee89fdaf5433&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/sbs/speakers/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление слепка из базы.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; &amp;lt;span data-darkreader-inline-color=&amp;quot;&amp;quot; data-darkreader-inline-bgcolor=&amp;quot;&amp;quot;&amp;gt;—&amp;lt;/span&amp;gt; идентификатор говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/sbs/speakers/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка всех слепков.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;[ {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;251f78d7-ee50-4ba1-a669-ee89fdaf5433&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;наименование слепка&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  }]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/speakers/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Дообучение слепка.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для обучения&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор слепка&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то слепок не будет дообучен, если распознанный текст будет сильно отличаться от text. Для использования необходим сервис spr.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;Success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/sbs/verify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Сравнение wav-файла cо слепком в базе. &amp;lt;small&amp;gt;В ответе - вероятность совпадения от 0 до 1.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; —  имя говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  файл для создания оцифрованного представления говорящего&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  текст для сравнения с распознанным текстом из &#039;&#039;&#039;wav&#039;&#039;&#039;, необязательный параметр. Если указан, но слепок не будет создан, если распознанный текст будет сильно отличаться от &#039;&#039;&#039;text.&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;textSimilarity&amp;lt;/small&amp;gt;&#039;&#039;&#039; - &amp;lt;small&amp;gt;порог похожести текста и распознанного аудио&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0, &amp;quot;confidence&amp;quot;: 0.78 }&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/tts: методы работы с сервисом tts&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/export&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка пользовательского словаря ударений.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 20%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 80%&amp;quot; |&amp;lt;small&amp;gt;Простой текст — строки со словом и его интерпретацией с ударением.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/dictionary/get&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка пользовательского словаря ударений в виде json.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[ [   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot;],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;[   &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot;],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;...]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/import&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузка пользовательского словаря ударений. &amp;lt;small&amp;gt;Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;csv file&#039;&#039;&#039; — файл строк со словом и его интерпретацией с ударением.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/dictionary/put&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузка пользовательского словаря ударений в виде json. &amp;lt;small&amp;gt;Текущий словарь будет переписан.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;json&#039;&#039;&#039; — строка json следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[   &amp;quot;слово&amp;quot;,   &amp;quot;замена слова с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[ &amp;quot;слово2&amp;quot;,   &amp;quot;замена слова2 с удар+ением&amp;quot; ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;сообщение о статусе результата&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/normalize&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Нормализация текста &amp;lt;small&amp;gt;— перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы), например «в понедельник 10.10.2025» -&amp;gt; «в понедельник дес+ятого октябр+я две т+ысячи дв+адцать п+ятого г+ода».&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; —  фраза для нормализации&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;нормализованный текст&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/revoice/{revoicer}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Модификация или искажение голоса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; —  аудиофайл для обработки&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;revoicer&#039;&#039;&#039; —  модель модификации голоса&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;wav-файл с модифицированным (искаженным) голосом&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/tts/revoicers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перечень моделей модификации или искажения голоса. &amp;lt;small&amp;gt;Модели поставляются только в составе дистрибутива. Модель distortion — искажение голоса, делает голос неузнаваемым и речь неразборчивой.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  &amp;quot;distortion&amp;quot; ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/tts/synthesize/{model}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Синтез звукового файла из текста/&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;ID&#039;&#039;&#039; — имя модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст синтезируемой фразы&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;rate&#039;&#039;&#039; — скорость речи&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;pitch&#039;&#039;&#039; — высота (тон)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;volume&#039;&#039;&#039; — громкость&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;frequency&#039;&#039;&#039; — частота дискретизации (по умолчанию 22050 Гц)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;format&#039;&#039;&#039; - формат файла результата (wav, opus, ogg, mp3)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;link&#039;&#039;&#039; - если 1, то вернуть только ссылку на файл&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;файл с синтезированой фразой&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/qas: методы работы с сервисом qas&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/ask&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Метод генерирует ответ на поставленный вопрос на основе информации из документов в базе. &amp;lt;small&amp;gt;Ответ на вопрос генерируется на основе информации, содержащейся в одном или нескольких документах. Документы должны быть в текстовом формате. Ответ возвращается в формате JSON, его можно скачать. Если метод не смог найти ответ, возвращается код ошибки и сообщение.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; — текст вопроса, на основе которого будут искаться фрагменты.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; — id канала&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useCache&#039;&#039;&#039; — использовать кешированные ответы&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;возможные варианты:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot; не использовать&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;all&#039;&#039;&#039;&amp;quot; использовать все&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;checked&#039;&#039;&#039;&amp;quot; использовать только проверенные&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useGPT&#039;&#039;&#039; — использовать генеративную сеть для поиска ответов в документах. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;addAlias&#039;&#039;&#039; — добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; — максимальное количество документов одной категории для формирования контекста при генерации ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;similarityArea -&#039;&#039;&#039; определяет допустимую разницу между максимальной и минимальной релевантностью фрагментов при фильтрации результатов&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;text&amp;quot;: &amp;quot;Здесь будет текст ответа&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/cachemaker/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Генерация ответов на вопросы в кэше.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - категория для которой генерируются ответы&amp;lt;/small&amp;gt;*&amp;lt;small&amp;gt;&#039;&#039;&#039;mode&#039;&#039;&#039; - режим генерации ответов, возможные значения:&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;- paraphrase&#039;&#039;&#039; - генерирует вариации ответов перефразированием уже проверенных ответов, если таковые имеются на вопросе&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;- generate&#039;&#039;&#039; - генерирует кэш через разные ответы на каждый вопрос по документации&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;mode&#039;&#039;&#039; — режим генерации ответов, возможные значения:&#039;&#039;&#039;- paraphrase&#039;&#039;&#039; - генерирует вариации ответов перефразированием уже проверенных ответов, если таковые имеются на вопросе&#039;&#039;&#039;- generate&#039;&#039;&#039; — генерирует кэш через разные ответы на каждый вопрос по документации&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;option&#039;&#039;&#039; - {all | empty} обработать все вопросы  или только не содержащие ответов&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - если указан код категории, то генерация только для этой категории&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;variants&#039;&#039;&#039; - количество ответов, от 1 до 9&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - заменить ответы на сгенерированные&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; - максимальное количество документов одной категории для формирования контекста при генерации ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для генерации, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/cachemaker/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Состояние генерации ответов на вопросы в кэше. &amp;lt;small&amp;gt;Статусы: &#039;&#039;&#039;started&#039;&#039;&#039;, &#039;&#039;&#039;stopped&#039;&#039;&#039;, если были ошибки, поле ответа &#039;&#039;&#039;error&#039;&#039;&#039; будет содержать код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;status&amp;quot;: &amp;quot;started&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;progress&amp;quot;: 33.33}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/cachemaker/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановить генерацию ответов на вопросы в кэше.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/category/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавить категорию с указанным именем. &amp;lt;small&amp;gt;В ответе — id созданной категории или сообщение об ошибке:&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — наименование категории&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;ad895085-2e48-439a-831e-b5f699b6a54a&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/category/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удалить категорию. &amp;lt;small&amp;gt;В ответе или сообщении об успехе, или ошибке, если категория используется или не существует.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор категории&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{   &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/category/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получить список категорий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;В ответе json с именами и id категорий&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/category/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменить категорию. &amp;lt;small&amp;gt;У категории пока есть только наименование, поэтому метод только переименовывает категорию&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор категории&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — наименование категории&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/channel/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление канала. &amp;lt;small&amp;gt;В ответе id созданного канала или сообщение об ошибке&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — наименование канала&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;a46fb887-5d98-41e0-8299-bcc94f615e91&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/channel/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление канала&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор канала&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/channel/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получить список всех каналов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;channels&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;1&amp;quot;,      &amp;quot;name&amp;quot;: &amp;quot;voice&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;56442779-e871-43fd-ae4d-caf4ab6d09b9&amp;quot;,      &amp;quot;name&amp;quot;: &amp;quot;канал++&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;0&amp;quot;,      &amp;quot;name&amp;quot;: &amp;quot;default&amp;quot;    }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/channel/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменить канал. &amp;lt;small&amp;gt;У канала пока есть только наименование, поэтому метод только переименовывает канал&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — новое наименование канала&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор канала&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/chat&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Поиск ответа за пределами документов. &amp;lt;small&amp;gt;На стадии разработки, не используется.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text -&#039;&#039;&#039; текст вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;history&#039;&#039;&#039; - история вопросов, будет склеена с text при запросе&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для ответа, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useInternalTemplate&#039;&#039;&#039; - использовать ли шаблон запроса. &#039;&#039;&#039;no&#039;&#039;&#039; - не использовать, либо код шаблона запроса к LLM. Необязательный параметр. Если не указан, используется шаблон по умолчанию.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;params&#039;&#039;&#039; - необязательный параметр. JSON с произвольными параметрами запроса к LLM. Описание параметров см. в [[QAS. Руководство администратора|руководстве администратора]].&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Пример ответа на вопрос &amp;quot;как пройти в библиотеку&amp;quot;&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;text&amp;quot;: &amp;quot;1. Проверить время работы библиотеки (обычно от 9 до 20)\n2. Проверить местоположение библиотеки на карте или с помощью сервиса Google Maps\n3. Убедиться, что у вас есть необходимые документы для входа (паспорт, карта члена библиотеки и т.д.)\n4. Посетить библиотеку по адресу: [адрес библиотеки]\n5. Проверить правила поведения в библиотеке перед входом&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/cleandoc/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Очистка документа от лишней информации &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;text -&#039;&#039;&#039; текст документа&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для ответа, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;doc_id&#039;&#039;&#039; - необязательный параметр, ID документа&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; | &#039;&#039;&#039;GET/qas/cleandoc/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Остановка очистки документа для конкретного пользователя&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; | &#039;&#039;&#039;GET/qas/cleandoc/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Статус очистки документа для конкретного пользователя&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;status&amp;quot;: stopped | started,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;progress&amp;quot;: 33.3,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: string,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;place&amp;quot;: number, #место в очереди&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;queue&amp;quot;: True | False #состояния - в очереди или в процессе очистки&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; | &#039;&#039;&#039;GET/qas/cleandoc/result&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Результат очистки документа для конкретного пользователя&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;doc_id&#039;&#039;&#039; - необязательный параметр, ID документа&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;user_id&#039;&#039;&#039; - ID пользователя&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;status&amp;quot;: &amp;quot;stopped&amp;quot;,&amp;quot;text&amp;quot;: &amp;quot;очищенный текст&amp;quot;,&amp;quot;doc_id&amp;quot;: &amp;quot;ID документа&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузить текстовый документ. &amp;lt;small&amp;gt;Добавляет документ в базу. В ответе — id созданного документа или сообщение об ошибке.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;title&#039;&#039;&#039; — заголовок документа&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — категория документа&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039;&amp;lt;/small&amp;gt; — &amp;lt;small&amp;gt;файл документа&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;ebe2bc57551c2d17f892987d1f62306d&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/doc/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Удаление документа&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор документа&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/doc/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка текста документа&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор документа&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;﻿Здесь будет полный текст документа&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/doc/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка имеющихся документов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Пример:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;docs&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {id&amp;quot;: &amp;quot;d4999cdee5ad1faf2cb3066ea1b5e96b&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;PVE. Установка сервисного пакета окружения&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Техническая поддержка&amp;quot; },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;quot;id&amp;quot;: &amp;quot;759042575b965745b9d2af869bca1740&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;UPS. Руководство администратора&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Техническая поддержка&amp;quot;}      ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Обновление документа. &amp;lt;small&amp;gt;В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — json c изменяемыми параметрами документа&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  title: string,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  category: string,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  text: string&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;параметр который не меняется может отсутствовать в json&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор документа.&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/replace&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Замена подстроки в текстах категории &amp;lt;small&amp;gt;Будут заменены все найденные вхождения&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;search&#039;&#039;&#039; - искомая подстрока, будет заменена&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - текст замены&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - в какой категории искать&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION,&amp;quot;replacements&amp;quot;:INT}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/doc/modifyphrases&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Массовая замена текста в указанных фразах.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;phrases&#039;&#039;&#039; - JSON массив с изменяемым фразами следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;doc_id&#039;: &#039;ad895085-2e48-439a-831e-b5f699b6a54a&#039;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;phrase_id&#039;: 5,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;text&#039;: &#039;новый текст&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/gpt/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Получение списка доступных(установленных) GPT моделей&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;models&amp;quot;: [&amp;quot;default&amp;quot; ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление вопроса. &amp;lt;small&amp;gt;В случае успеха метод вернет id вопроса, в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;question&#039;&#039;&#039; —  текст вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; —  id категории к которой относится вопрос&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answers&#039;&#039;&#039; —  ответы в виде Json:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[ { &amp;quot;checked&amp;quot;: true, &amp;quot;channel&amp;quot;: &amp;quot;0&amp;quot;, &amp;quot;answer&amp;quot;: &amp;quot;ответ&amp;quot; } ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;aliases&#039;&#039;&#039; —  вопросы к которым подходят ответы из блока answers в виде json:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;[&amp;quot;вопрос&amp;quot;,&amp;quot;еще вопрос&amp;quot;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;527be9f0-f773-4a3e-bd0b-81b40a061d0d&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/append/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавляет алиасы/кандидаты к другому вопросу&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;aliases&#039;&#039;&#039; —  JSON list с синонимами&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;candidates&#039;&#039;&#039; JSON list с кандидатами&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор вопроса к которому добавить синонимы и(или) кандидаты&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/approve/{destination_id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Перемещает кандидаты в формулировки другого вопроса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;candidates&#039;&#039;&#039; —  json массив c текстами кандидатов&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;destination_id&#039;&#039;&#039; —  идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/delete/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление списка вопросов или ответов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;questions&#039;&#039;&#039; — json строка с перечнем id&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039; — выбор, удалять вопросы или ответы (&#039;&#039;&#039;questions&#039;&#039;&#039;, &#039;&#039;&#039;answers&#039;&#039;&#039;)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/question/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление вопроса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/question/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Получение вопроса вместе с ответами и синонимами вопроса&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;answers&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {   &amp;quot;checked&amp;quot;: true,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;channel&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;answer&amp;quot;: &amp;quot;ответ&amp;quot;    }  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;aliases&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;вопрос&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;синоним вопроса&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;еще синоним вопроса&amp;quot;  ]   }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/question/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Получение списка вопросов.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;question&#039;&#039;&#039; —  фильтр вопросов, ограничение списка по вопросам&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — фильтр категорий&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answer&#039;&#039;&#039; —  фильтр ответов, ограничение списка по ответам&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;created&#039;&#039;&#039; — фильтр по дате создания, оставляет вопросы, созданные &#039;&#039;&#039;не ранее&#039;&#039;&#039; указанной даты&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;createdBefore&#039;&#039;&#039; — фильтр по дате создания, оставляет вопросы, созданные &#039;&#039;&#039;не позже&#039;&#039;&#039; указанной даты&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;modified&#039;&#039;&#039; — фильтр по дате изменения, оставляет вопросы, &#039;&#039;&#039;изменённые в точности&#039;&#039;&#039; в указанную дату&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;onlyNew&#039;&#039;&#039; - фильтр, оставляющий только новые (необработанные) вопросы&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;questions&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;question&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;incomplete&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;aliases&amp;quot;: [],&amp;quot;candidates&amp;quot;: [],&amp;quot;category&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;checked&amp;quot;: 0,&amp;quot;unchecked&amp;quot;: 0}&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;question&amp;quot;: &amp;quot;&amp;quot;,&amp;quot;incomplete&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;aliases&amp;quot;: [],&amp;quot;candidates&amp;quot;: [],&amp;quot;category&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;checked&amp;quot;: 0,&amp;quot;unchecked&amp;quot;: 0}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Модификация вопроса. &amp;lt;small&amp;gt;Позволяет заменить как все параметры так и отдельные&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json c измененными параметрами, пример полного:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{   &amp;quot;answers&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;checked&amp;quot;: true,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;channel&amp;quot;: &amp;quot;0&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;answer&amp;quot;: &amp;quot;новый ответ&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;question&amp;quot;:&amp;quot;новый вопрос&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;category&amp;quot;: &amp;quot;a3801cc0-f8e5-4f3b-bb10-e42148cd772b&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;aliases&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;новый вопрос&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;синоним&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    &amp;quot;еще синоним&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  ]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/replace&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Поиск и замена подстроки. Будут заменены все найденные вхождения&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;search&#039;&#039;&#039; - искомая подстрока, будет заменена&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - текст замены&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - в какой категории искать&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION,&amp;quot;replacements&amp;quot;:INT}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/question/modifyanswers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Массовая замена текста в указанных ответах.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;phrases&#039;&#039;&#039; - JSON массив с изменяемым ответами следующего вида:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;question_id&#039;: &#039;ad895085-2e48-439a-831e-b5f699b6a54a&#039;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;answer_id&#039;: 5,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;text&#039;: &#039;новый текст&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/paraphrase&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Генерация фраз-синонимов для предложения.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text -&#039;&#039;&#039; предложение&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую модель использовать для ответа, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;, &amp;quot;texts&amp;quot;: [ &amp;quot;перефразированный текст 1&amp;quot;, ... ]}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionlist/answers&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отображает лог массовой обработки вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;на выходе :&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;массив из объектов {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  error: number;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  question: string;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  answer: string;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  confidence: number | null;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/questionlist/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Старт массовой обработки вопросов из файла&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;questions&#039;&#039;&#039; - файл с вопросами&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;format&#039;&#039;&#039; - в json или в text файл с вопросами&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; — id канала&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useCache&#039;&#039;&#039; — использовать кешированные ответы&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;возможные варианты:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;— &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot; не использовать&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;all&#039;&#039;&#039;&amp;quot; использовать все&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- &amp;quot;&#039;&#039;&#039;checked&#039;&#039;&#039;&amp;quot; использовать только проверенные&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;useGPT&#039;&#039;&#039; — использовать генеративную сеть для поиска ответов в документах. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; - максимальное количество документов одной категории для формирования контекста при генерации ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;addAlias&#039;&#039;&#039; — добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. возможные варианты &amp;quot;&#039;&#039;&#039;yes&#039;&#039;&#039;&amp;quot; &amp;quot;&#039;&#039;&#039;no&#039;&#039;&#039;&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; - порог достоверности при обработке&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionlist/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Статус массовой обработки вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{     error: string;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     status: &#039;started&#039; | &#039;stopped&#039;;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     progress: number; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionlist/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановка массовой обработки вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/mismatchsearcher/start&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Старт поиска несоответствий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt; &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM для анализа на несоответствия, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;asktemplate&#039;&#039;&#039; - ID шаблона запроса к LLM для генерации ответов по документу, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answers&#039;&#039;&#039; - тип вопросов, по которым осуществляется поиск несоответствий, необязательный параметр, по умолчанию «all»&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/mismatchsearcher/status&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Статус поиска несоответствий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{     error: string;&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;     status: &#039;started&#039; | &#039;stopped&#039;;&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;     progress: number; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/mismatchsearcher/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Остановка поиска несоответствий&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{error: 0 | 1, message: string}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/mismatchsearcher/mismatches&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |Статус получения результатов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;quot;mismatches&amp;quot;: [{&amp;quot;question_id&amp;quot;: &amp;quot;ID вопроса&amp;quot;, &amp;quot;question&amp;quot;: &amp;quot;вопрос&amp;quot;, &amp;quot;category&amp;quot;: &amp;quot;ID категории&amp;quot;,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;answer_id&amp;quot;: &amp;quot;ID ответа&amp;quot;, &amp;quot;answer&amp;quot;: &amp;quot;ответ на вопрос {question}&amp;quot;,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;description&amp;quot;: &amp;quot;результат поиска&amp;quot;, &amp;quot;error&amp;quot; : string,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;context&amp;quot;: &amp;quot;фрагмент документа&amp;quot;, &amp;quot;generatedText&amp;quot; : &amp;quot;Результат генерации&amp;quot;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}, ... ]&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionmaker/start&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |Запуск генерации вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; - ID категории, по которой будет происходить генерация вопросов&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;doc&#039;&#039;&#039; - ID документа, по которому будет происходить генерация вопросов&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;generateAnswers&#039;&#039;&#039; - флаг для генерации ответов вместе с вопросами &#039;&#039;&#039;[yse|no]&#039;&#039;&#039;, по умолчанию &#039;&#039;&#039;«no»&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - имя модели GPT, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM для анализа генерации вопросов, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot; }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionmaker/status&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |Статус генерации вопросов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: string,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;status&amp;quot;: &#039;started&#039; | &#039;stopped&#039;,&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;quot;progress&amp;quot;: 33.3&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/questionmaker/stop&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Прервать генерацию.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/search&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Поиск фрагментов содержащих ответ&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039;  — текст запроса&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — категория (раздел) знаний. Допускается указание нескольких категорий через разделитель &amp;quot;|&amp;quot;.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;maxDocs&#039;&#039;&#039; - максимальное количество документов одной категории для формирования контекста при поиске ответа на вопрос, по умолчанию 1&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;similarityArea -&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;определяет допустимую разницу между максимальной и минимальной релевантностью фрагментов при фильтрации результатов&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  Фрагмент 1:Здесь будет текст найденного фрагмента&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  Фрагмент 2:Здесь будет текст найденного фрагмента&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;fragments&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;3a386b0a9e0e19efb0870685e1d0b484&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;Заголовок документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Категория документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;text&amp;quot;: &amp;quot;Здесь будет текст найденного фрагмента&amp;quot;    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {      &amp;quot;id&amp;quot;: &amp;quot;44fd73ea1ac63f32cf18d79c854dbfe2&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;title&amp;quot;: &amp;quot;Заголовок документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;category&amp;quot;: &amp;quot;Категория документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;text&amp;quot;: &amp;quot;Здесь будет текст найденного фрагмента&amp;quot;    }  ]   }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/summarization_template/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Добавление шаблона протокола. В случае успеха метод вернет id шаблона, в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; — название шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;options&#039;&#039;&#039; — json словарь с именами разделов и их описанием&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,  &amp;quot;id&amp;quot;: &amp;quot;527be9f0-f773-4a3e-bd0b-81b40a061d0d&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETEqas/summarization_template/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Удаление шаблона.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/summarization_template/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение json с шаблоном.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;На выходе словарь, основные элементы: data — словарь с шаблоном, остальные элементы этого уровня служебные. В data: id, name (идентификатор и наименование).И options — словарь с разделами шаблона.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/summarization_template/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Получение всех шаблонов.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;На выходе словарь, основной элемент — templates, содержит список шаблонов (каждый шаблон как в выдаче метода GET /qas/summarization_template/get/{id}).&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/summarization_template/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Изменение шаблона.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — словарь как в выдаче метода GET/qas/summarization_template/get/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/summarize&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |&amp;lt;small&amp;gt;Построение протокола или краткого содержания совещания&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст совещания&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;options&#039;&#039;&#039; — словарь с разделами протокола, где ключ — название раздела, значение - краткая инструкция к формированию раздела.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;model&#039;&#039;&#039; - какую GPT модель использовать для построения протокола, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;file&#039;&#039;&#039; — файл с текстом (текст, csv, pdf или текстовые офисные документы)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;summary&amp;quot;: &amp;quot;здесь текст протокола&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/replace&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |корректировка информации в тексте при помощи LLM&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;oldinfo&#039;&#039;&#039; — старая информация&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;newinfo&#039;&#039;&#039; — новая информация&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;&amp;lt;small&amp;gt;model&amp;lt;/small&amp;gt;&#039;&#039;&#039; &amp;lt;small&amp;gt;- какую модель использовать для генерации, если кроме default используются другие модели&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;template&#039;&#039;&#039; - ID шаблона запроса к LLM, необязательный параметр&amp;lt;/small&amp;gt; &lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;итоговый текст&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/replacementlist&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |список всех фраз в документах и ответов в вопросах, подлежащих правке. &amp;lt;small&amp;gt;Векторно ищет все фрагменты по указанному тексту.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;category&#039;&#039;&#039; — категория, в которой производится векторный поиск&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;threshold&#039;&#039;&#039; — порог похожести, необязательный параметр, если не указан, берется из конфигурационного файла (fragments -&amp;gt; threshold)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;answers&#039;&#039;&#039; - тип вопросов, по которым осуществляется поиск для внесения правок, необязательный параметр, по умолчанию «all»&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;[&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;docs&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;answers&amp;quot;: []&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/prompt/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Добавление шаблона запроса к LLM. &amp;lt;small&amp;gt;В случае успеха метод вернет id вопроса, в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039;  — тип шаблона&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;- chat - произвольный чат,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- ask - запрос к документам,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- cleandoc - очистка документа, форматирование либо другое преобразование,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- similars_generator - генерация синонимичных которотких фраз,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- paraphrase - перефразировка текста,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- summarize - суммаризация текста (формирование краткой выдержки из текста),&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- question_generator - генерация вопросов по тексту,&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;- replace - замена информации в тексте, mismatch - поиск несоответствий&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039;  — название шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;prompt&#039;&#039;&#039; — текст шаблона&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;postprompt&#039;&#039;&#039; - текст шаблона постобработки результатов (нужен только для summarize)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;params&#039;&#039;&#039; - параметры запроса к LLM&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;small&amp;gt;max_tokens&amp;quot;: 4096,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;top_k&amp;quot;: 30,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;top_p&amp;quot;: 0.5,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;temperature&amp;quot;: 0.5,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;repeat_penalty&amp;quot;: 1.3&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;527be9f0-f773-4a3e-bd0b-81b40a061d0d&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/qas/prompt/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Удаление шаблона. &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/prompt/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Получение шаблона.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;prompt&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;cleandoc&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;cleandoc&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;isDefault&amp;quot;: false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;Чистка документа&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;prompt&amp;quot;: &amp;quot;Удали сноски, колонтитуры и мусорную информацию из текста ниже. Не удаляй ничего лишнего. Не добавляй ничего, только информация из текста. Выведи только конечный результат без отчета о результате.\n###Текст:\n{context}\n\n###Конечный результат:&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;postprompt&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_modified&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_created&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_modified_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;_created_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/qas/prompt/list&#039;&#039;&#039; &lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Получение списка шаблонов.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;prompts&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;id&amp;quot;: &amp;quot;chat&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;type&amp;quot;: &amp;quot;chat&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;isDefault&amp;quot;: false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;name&amp;quot;: &amp;quot;Чат&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;prompt&amp;quot;: &amp;quot;Ты спокойный вежливый консультант.[\n\n###История переписки:\n{history}]\n\n###Вопрос: {question}\n###Ответ:&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;postprompt&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_modified&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_created&amp;quot;: 1751475766.7460272,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_modified_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;_created_date&amp;quot;: &amp;quot;2025-07-02&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/qas/prompt/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Модификация шаблона. Позволяет заменить как все параметры, так и отдельные.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; — json c измененными параметрами:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ &amp;quot;name&amp;quot;: &amp;quot;новое имя&amp;quot; }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор вопроса&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: INT, &amp;quot;message&amp;quot;: DESCRIPTION}&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/ses: методы работы с роботом&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;для некоторых путей, где используется {robot_id} - это обращение к версии черновика, чтобы обращаться к продовой версии - нужен постфикс &amp;quot;_prod&amp;quot;, для бэкапа &amp;quot;_backup&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;актуально для методов&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получения данных робота  GET/ses/robot/get/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- применение настроек робота GET/ses/robot/commit/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- экспорт робота GET/ses/robot/export/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- список скриптов GET/ses/robot/script/list/{robot}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получение скрипта GET/ses/robot/script/get/{robot}/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- список ЭД GET/ses/robot/data/list/{robot}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получение ЭД GET/ses/robot/data/get/{robot}/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- список КТ GET/ses/robot/endpoint/list/{robot}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- получение КТ GET/ses/robot/endpoint/get/{robot}/{id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- метода ask (отладчика) POST/ses/ask/{robot_id}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;- данные сессии (отладчика) GET/ses/session/{robot_id}/{session_id}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/audio/{uuid}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение аудио-файла из архива диалогов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;аудио-файл с расширением opus&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/dialog/{uuid}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение диалога из архива&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;dialog&amp;quot;: [{&amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;,                  &amp;quot;robot&amp;quot;: &amp;quot;...&amp;quot;,                &amp;quot;channel&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                  &amp;quot;unknown&amp;quot;: true/false,        &amp;quot;closed&amp;quot;: true/false,        &amp;quot;endpoint&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                  &amp;quot;answered&amp;quot;: true/false,    &amp;quot;models&amp;quot;: [...],    &amp;quot;variables&amp;quot;: {},   &amp;quot;current&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                         &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;,           &amp;quot;qas&amp;quot;: &amp;quot;&amp;quot;,           &amp;quot;category&amp;quot;: &amp;quot;...&amp;quot;,           &amp;quot;entry&amp;quot;: [...],&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                         &amp;quot;nearest&amp;quot;: &amp;quot;...&amp;quot;,    &amp;quot;missingRunData&amp;quot;: [...],     &amp;quot;waitingRunData&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                         &amp;quot;answered&amp;quot;: true/false,    &amp;quot;lastreply&amp;quot;: &amp;quot;...&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                  &amp;quot;request&amp;quot;: {&amp;quot;datetime&amp;quot;: &amp;quot;...&amp;quot;,           &amp;quot;message&amp;quot;: &amp;quot;&amp;quot;,           &amp;quot;data&amp;quot;: [...]},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                 &amp;quot;reply&amp;quot;: {&amp;quot;answers&amp;quot;: [{&amp;quot;messages&amp;quot;: [...],    &amp;quot;voice&amp;quot;: &amp;quot;...&amp;quot;,&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                                     &amp;quot;interruptible&amp;quot;: true/false,    &amp;quot;file&amp;quot;: null}],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;                  &amp;quot;datetime&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;answered&amp;quot;: true/false}}]}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка диалогов из архива&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;startdate&#039;&#039;&#039; - начало временного интервала в формате date %Y-%m-%d %H:%M&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;enddate&#039;&#039;&#039; - конец временного интервала в формате date %Y-%m-%d %H:%M&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;phone&#039;&#039;&#039; - номер телефона&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;variable&#039;&#039;&#039; - переменная в формате variable=value&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - фрагмент текста в любом сообщении&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - id элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; - название канала (коннектора)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{&amp;quot;uuid&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;datetime&amp;quot;: &amp;quot;...&amp;quot;,&amp;quot;phone&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt; &amp;quot;channel&amp;quot;: [...], &amp;quot;robot&amp;quot;: [&amp;quot;...&amp;quot;]}]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/archive/waveform/{uuid}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Служебный метод для визуализации полученного из архива диалогов аудио-файла, содержит пики сигнала.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;uuid&#039;&#039;&#039; - идентификатор диалога&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[0.016,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;0.015,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;0.01&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/ask/{robot_id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение ответа на запрос пользователя. &amp;lt;small&amp;gt;Метод для отладки робота&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;text&#039;&#039;&#039; - текст запроса&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;channel&#039;&#039;&#039; - id канала&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;connector&#039;&#039;&#039; - имя коннектора&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;session&#039;&#039;&#039; - uuid сессии, если это не первый запрос в сессии&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;tts&#039;&#039;&#039; - вернуть результат синтеза (1- вернуть, 0 - не выполнять синтез)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;variables&#039;&#039;&#039; - словарик с переменными {&amp;quot;переменная1&amp;quot;:&amp;quot;значение&amp;quot;,&amp;quot;переменнаяN&amp;quot;:&amp;quot;значение&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;handler&#039;&#039;&#039; - python скрипт для изменения ответов метода под требования внешних систем, подробнее в следующем разделе. в поле имя файла без расширения.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;restartClosed&#039;&#039;&#039; - перезагрузить сессию при её закрытии с новым id (1 - перезагрузить, 0 - не перезагружать)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;audio&#039;&#039;&#039; - аудиофайл с запросом, текст запроса будет получен распознаванием audio&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;document&#039;&#039;&#039; - документ для последующей обработки&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot_id&#039;&#039;&#039; - id робота&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;endpoint&#039;&#039;&#039; - id точки, в которую передать управление диалогом (необязательный параметр, используется для исходящих оповещений)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;   &amp;quot;question&amp;quot;: &amp;quot;Вопрос&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   &amp;quot;answer&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    {    &amp;quot;messages&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;                   &amp;quot;ответ&amp;quot;      ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;           &amp;quot;voice&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;           &amp;quot;interruptible&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;file&amp;quot;: &amp;quot;&amp;quot;    }  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;session&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;uuid&amp;quot;: &amp;quot;&amp;quot;   }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/add&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание нового робота. &amp;lt;small&amp;gt;На выходе id созданного робота или сообщение об ошибке&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; —  имя нового робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;2fd2f909-2069-4b20-a725-3a598c83f886&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/apply/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Применение робота. &amp;lt;small&amp;gt;Переводит черновик робота в статус prod. Если до этого был prod вариант —  становится backup.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/cleardraft/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Обнуление черновика рабочей версией робота&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/commit/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Применение текущих изменений настроек робота. &amp;lt;small&amp;gt;Применимо ко всем версиям (черновик, рабочая, резервная копия)&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/data/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление элемента данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/data/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление элемента данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/data/get/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение настроек элемента данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,                &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;id ЭД&amp;quot;,         &amp;quot;name&amp;quot;: &amp;quot;Имя ЭД&amp;quot;,          &amp;quot;comment&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;,     &amp;quot;rtype&amp;quot;: &amp;quot;report&amp;quot;,     &amp;quot;model&amp;quot;: &amp;quot;Имя модели&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;param&amp;quot;: &amp;quot;Ответ&amp;quot;,        &amp;quot;script&amp;quot;: &amp;quot;&amp;quot;,              &amp;quot;weight&amp;quot;: 3,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;slaveData&amp;quot;: [],                 &amp;quot;getOnlyAsNearest&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;injectToMessage&amp;quot;: true/false,        &amp;quot;longWaiting&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;dataWaiting&amp;quot;: [],          &amp;quot;actions&amp;quot;: {             &amp;quot;alone&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;        &amp;quot;default&amp;quot;: [{&amp;quot;action&amp;quot;: &amp;quot;say&amp;quot;,   &amp;quot;type&amp;quot;: &amp;quot;random&amp;quot;,   &amp;quot;text&amp;quot;: [&amp;quot;.....&amp;quot;]}]}},&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;    &amp;quot;exceptions&amp;quot;: {}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/data/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка элементов данных&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  {   &amp;quot;id&amp;quot;: &amp;quot;3ebfe38b-95bf-4927-a662-17f6e5da22ea&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;        &amp;quot;name&amp;quot;: &amp;quot;pve&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;smc&amp;quot;, &amp;quot;rtype&amp;quot;: &amp;quot;report&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;        &amp;quot;weight&amp;quot;: 3, &amp;quot;hasNearestAction&amp;quot;: false } ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/data/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение элемента данных. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как на выходе метода  &#039;&#039;&#039;GET/ses/robot/data/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление всех версий робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/endpoint/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Создание конечной точки. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как на выходе метода &#039;&#039;&#039;GET/ses/robot/endpoint/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами  конечной точки&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;id&amp;quot;: &amp;quot;8576593b-b0d8-4b03-a623-74f3132356ea&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/endpoint/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление конечной точки.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  конечной точки&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/endpoint/get/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение настроек конечной точки&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  конечной точки&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;comment&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entryType&amp;quot;: &amp;quot;conditions&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entry&amp;quot;: [{ &amp;quot;conditions&amp;quot;: [{ &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;depth&amp;quot;: 5, &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;operation&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;&amp;quot;}], &amp;quot;run&amp;quot;: []}],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;run&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;actions&amp;quot;: { &amp;quot;default&amp;quot;: [{ &amp;quot;action&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;voice&amp;quot;: &amp;quot;&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;,  &amp;quot;interruptible&amp;quot;: true/false}]},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;report&amp;quot;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/endpoint/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка конечных точек робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{ &amp;quot;error&amp;quot;: 0,  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;точка 1&amp;quot;, &amp;quot;comment&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entryType&amp;quot;: &amp;quot;conditions&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;entry&amp;quot;: [{ &amp;quot;conditions&amp;quot;: [{ &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;depth&amp;quot;: 5, &amp;quot;id&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;operation&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;&amp;quot;}], &amp;quot;run&amp;quot;: []}],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;run&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;actions&amp;quot;: { &amp;quot;default&amp;quot;: [{ &amp;quot;action&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;voice&amp;quot;: &amp;quot;....&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;...&amp;quot;,  &amp;quot;interruptible&amp;quot;: true/false}]},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;report&amp;quot;}}]&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/endpoint/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение конечной точки. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как на выходе метода &#039;&#039;&#039;GET/ses/robot/endpoint/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выгрузка робота в архив&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;zip файл с именем = идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/files/download/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение файла.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор файла&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;файл&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/files/upload/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Отправка файла.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;file&#039;&#039;&#039; - файл&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,   &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,   &amp;quot;id&amp;quot;: &amp;quot;Id файла&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Выгрузка основных настроек робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;9fd7f6f1-2cac-4f0f-a121-75c40f2b5e78&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;test&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;description&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;voice&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;session&amp;quot;: {      &amp;quot;lifetime&amp;quot;: 600    },&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;models&amp;quot;: {},&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;servicedata&amp;quot;: {},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;exceptions&amp;quot;: {},&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;actions&amp;quot;: {},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;holidays&amp;quot;: [],&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;timeintervals&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;      &amp;quot;name&amp;quot;: {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;        &amp;quot;weekdays&amp;quot;: [ 1, 2, 3, 4, 5, 6,  7  ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;        &amp;quot;dates&amp;quot;: [  0,  1,  2,   3, 4,  5, 6,  7,  8,  9, 10,  11, 12,13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;months&amp;quot;: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;days&amp;quot;: &amp;quot;all&amp;quot;, &amp;quot;intervals&amp;quot;: [ [ 0,  1440 ] ] }}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/import/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Загрузка архива робота в черновик существующего робота&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;zip —&#039;&#039;&#039;  файл с архивом робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка роботов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  {  &amp;quot;id&amp;quot;: &amp;quot;9fd7f6f1-2cac-4f0f-a121-75c40f2b5e78&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;test&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;hasProd&amp;quot;: true,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;hasBackup&amp;quot;: true  } ]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/modify/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение основных настроек робота. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/robot/get/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с новыми настройками робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/restore/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Откат рабочей версии из бэкапа. &amp;lt;small&amp;gt;Резервная копия становится рабочей, и удаляется, а черновик остается без изменений&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/script/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление нового скрипта. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/robot/script/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/script/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление скрипта&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/script/get/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение текста скрипита&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор  скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;data&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;id&amp;quot;: &amp;quot;6a9f91b6-9634-4079-ac2b-60a944922c61&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;type&amp;quot;: &amp;quot;Тип скрипта&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;Наименование скрипта&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;code&amp;quot;: &amp;quot;Текст скрипта&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/script/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка скриптов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[  {    &amp;quot;id&amp;quot;: &amp;quot;9b9d83b7-d5c3-49e6-9bd4-a123a9047939&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;наименование1&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;Тип скрипта&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  {    &amp;quot;id&amp;quot;: &amp;quot;48b508ba-a32b-4ada-bcc3-66ce26d81c6a&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;name&amp;quot;: &amp;quot;наименование2&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;    &amp;quot;type&amp;quot;: &amp;quot;Тип скрипта&amp;quot;}]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/script/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение скрипта.&amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/robot/script/get/{robot}/{id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  json строка с параметрами элемента данных&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; —  идентификатор скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; —  идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/script/test/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Тестирование скрипта. &amp;lt;small&amp;gt;Формат &#039;&#039;&#039;data&#039;&#039;&#039; как в ответе метода &#039;&#039;&#039;GET/ses/session/{robot_id}/{session_id}&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка с параметрами сессии&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;{&amp;quot;error&amp;quot;: 0, &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;, &amp;quot;result&amp;quot;: {.....}, &amp;quot;variables&amp;quot;: {}}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/add/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление записи в пользовательский справочник.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение n&amp;quot;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;id&amp;quot;: &amp;quot;id записи&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/userdata/data/delete/{robot}/{structure}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление записи из пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор записи (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/userdata/data/list/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение данных из пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;[{  &amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt; &amp;quot;колонка n&amp;quot;: &amp;quot;значение n&amp;quot;,&amp;lt;/small&amp;gt;   &amp;lt;small&amp;gt; &amp;quot;id&amp;quot;: &amp;quot;id записи&amp;quot;}]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/modify/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Массовое изменение данных в пользовательском справочнике.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;list&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;[{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;: &amp;quot;значение n&amp;quot;, &amp;quot;id&amp;quot;: &amp;quot;id строки&amp;quot;}]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/modify/{robot}/{structure}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Изменение одной записи пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение n&amp;quot;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор записи (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/data/put/{robot}/{structure}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление данных с заменой в пользовательском справочнике.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;list&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;[{&amp;quot;колонка 1&amp;quot;: &amp;quot;значение 1&amp;quot;,&amp;quot;колонка n&amp;quot;: &amp;quot;значение n&amp;quot;, &amp;quot;id&amp;quot;: &amp;quot;id строки&amp;quot;}]&amp;lt;/code&amp;gt; Поле &amp;quot;id&amp;quot; опционально, при его добавлении данные в строке будут заменены.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;replace&#039;&#039;&#039; - замена всех данных в справочнике новыми данными. Возможные значения: yes/no. По-умолчанию - yes.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;structure&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/structure/add/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Добавление пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; - json строка в формате &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{&amp;quot;id&amp;quot;: &amp;quot;id справочника&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;справочник&amp;quot;, &amp;quot;fields&amp;quot;: {&amp;quot;колонка 1&amp;quot;: &amp;quot;значение по умолчанию&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение по умолчанию&amp;quot;}}.&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; Поле &amp;quot;id&amp;quot; опционально.&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;id&amp;quot;: &amp;quot;id справочника&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/ses/robot/userdata/structure/delete/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; | &lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/robot/userdata/structure/list/{robot}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка пользовательских справочников.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;[{&amp;quot;id&amp;quot;: &amp;quot;id справочника&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;справочник&amp;quot;, &amp;quot;fields&amp;quot;: {&amp;quot;колонка1&amp;quot;: &amp;quot;значение по умолчанию&amp;quot;}}]&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/ses/robot/userdata/structure/modify/{robot}/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Модификация структуры пользовательского справочника.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; -  json строка в формате &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{&amp;quot;name&amp;quot;: &amp;quot;справочник&amp;quot;, &amp;quot;fields&amp;quot;: {&amp;quot;колонка 1&amp;quot;: &amp;quot;значение по умолчанию&amp;quot;,&amp;quot;колонка n&amp;quot;:&amp;quot;значение по умолчанию&amp;quot;}}.&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot&#039;&#039;&#039; - идентификатор робота (id)&amp;lt;/small&amp;gt;&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; - идентификатор пользовательского справочника&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/session/{robot_id}/{session_id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выдает параметры сессии. &amp;lt;small&amp;gt;Для отображения на боковой панели тестирования в UPS. Основные блоки результата:&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;robot_id&#039;&#039;&#039; —  id робота&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;session_id&#039;&#039;&#039; —  id незакрытой сессии&amp;lt;/small&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;started&amp;quot;: &amp;quot;&amp;quot;,  &amp;quot;modified&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;robot&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;session&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;channel&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;connector&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;unknown&amp;quot;: true/false,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;current&amp;quot;: {&amp;quot;id&amp;quot;: &amp;quot;&amp;quot;, &amp;quot;qas&amp;quot;: &amp;quot;&amp;quot;, &amp;quot;answered&amp;quot;: true/false, &amp;quot;category&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;              &amp;quot;nearest&amp;quot;: &amp;quot;&amp;quot;,    &amp;quot;entry&amp;quot;: [.....],    &amp;quot;missingRunData&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;              &amp;quot;passedRunData&amp;quot;: [.....],       &amp;quot;waitingRunData&amp;quot;: null,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;              &amp;quot;border&amp;quot;: int,    &amp;quot;preborder&amp;quot;: int,    &amp;quot;lastreply&amp;quot;: &amp;quot;&amp;quot;},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;models&amp;quot;: [.....],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;scripts&amp;quot;: [.....],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;  &amp;quot;data&amp;quot;: [{&amp;quot;request&amp;quot;: {.....}, &amp;quot;reply&amp;quot;: {.....}}],&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;timers&amp;quot;: [],&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;variables&amp;quot;: {},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;error&amp;quot;: &amp;quot;&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;events&amp;quot;: {.....},&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;closed&amp;quot;: &amp;quot;&amp;quot;  }&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/widget/config&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выдает параметры виджета для web канала по запросу js скрипта&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;token&#039;&#039;&#039; —  уникальный код виджета, создается при внедрении&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Состав конфига канала, для передачи виджету. Подробней в [https://wiki.connect2ai.net/index.php/SES._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0#%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%B2%D0%B8%D0%B4%D0%B6%D0%B5%D1%82%D0%B0_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B0%D0%B9%D1%82%D0%B0 Руководстве администратора]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/ses/widget/js&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Выдает код js скрипта виджета для web-канала &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Код скрипта&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/res: методы работы с сервисом отчетов&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&#039;&#039;Описание методов API&#039;&#039;&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/res/dashboards&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получить список рабочих столов kibana с наборами отчетов&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{  &amp;quot;error&amp;quot;: 0,  &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  &amp;quot;dashboards&amp;quot;: {&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;Наименование1&amp;quot;: &amp;quot;https://........&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;Наименование2&amp;quot;: &amp;quot;https://.........&amp;quot;  }}&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;/transcription: методы работы со стенографией&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/audio/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; | Получить аудиофайл по id стенограммы. &amp;lt;small&amp;gt;Идентификатор нужной стенограммы можно получить методом&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;GET /transcription/list&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;wav файл сохраненной стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/transcription/create&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Создание стенограммы из завершенного задания в очереди распознавания. &amp;lt;small&amp;gt;В ответ придет id созданной стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;taskID&#039;&#039;&#039; — идентификатор задания из очереди&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;name&#039;&#039;&#039; —  имя создаваемой стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;id&amp;quot;: &amp;quot;74721a3b-9055-4650-9afb-de4d103cafc7&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:red;width: 15%&amp;quot; |&#039;&#039;&#039;DELETE/transcription/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Удаление стенограммы&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/get/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение стенограммы. &amp;lt;small&amp;gt;Используется для отображения стенограммы в веб интерфейсе&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;стенограмма в json формате&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/list&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Получение списка сохраненных стенограмм&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;Входные параметры отсутствуют&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |[ {  &amp;quot;id&amp;quot;: &amp;quot;926e8d25-4275-4a78-906b-a1109cdacbea&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;name&amp;quot;: &amp;quot;название&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;model&amp;quot;: &amp;quot;big&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;created&amp;quot;: &amp;quot;2024-03-29 12:37:42&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;modified&amp;quot;: &amp;quot;2024-04-24 16:09:09&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;user&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;dataset&amp;quot;: &amp;quot;0&amp;quot; }, .... ] &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:green;width: 15%&amp;quot; |&#039;&#039;&#039;POST/transcription/save/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Сохранение стенограмы. &amp;lt;small&amp;gt;Используется для сохранения изменений по нажатию кнопки «Сохранить».&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;data&#039;&#039;&#039; —  стенограмма в json формате&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{&amp;quot;error&amp;quot;: 0,&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot; |&#039;&#039;&#039;GET/transcription/waveform/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 85%&amp;quot; |Служебный метод для отображения аудио в графическом виде, &amp;lt;small&amp;gt;ответ содержит пики сигнала&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
*&amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; стенограммы&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;{ &amp;quot;error&amp;quot;: 0,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;quot;waveform&amp;quot;: [&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   0.016,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ..........&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;  ..........&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   0.015,&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;   0.01 ] }&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SPR._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3465</id>
		<title>SPR. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SPR._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3465"/>
		<updated>2026-01-12T08:01:41Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис Short phrase recognizer предназначен для преобразования речи в текст. Принимает на вход аудиофайл в формате wav и возвращает структурированные данные в формате JSON.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Short Phrase Recognizer (SPR) — сервис распознавания речи.&lt;br /&gt;
&lt;br /&gt;
Модель — предварительно обученная специализированная нейронная сеть для распознавания естественной речи в аудиозаписях.&lt;br /&gt;
&lt;br /&gt;
Swagger UI — интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису SPR в реальном времени.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API SPR&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SPR. По умолчанию используется порт 6183/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6183 будет отображен интерфейс Swagger со всеми методами с возможностью их проверки.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot;|&#039;&#039;&#039;GET:/spr/models&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Вывод списка моделей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Без входных параметров.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ models: [model1,...,modelN] }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot;|&#039;&#039;&#039;GET:/spr/audio/{taskID}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Получение файла аудиозаписи отложенного задания.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;taskID — идентификатор задания.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Файл аудиозаписи или&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT , message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot;|&#039;&#039;&#039;GET:/spr/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Получение архива модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;id — идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;ZIP-файл с моделью, либо &amp;lt;code&amp;gt;{ error: INT , message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot;|&#039;&#039;&#039;POST:/spr/import/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Добавление модели. Может быть добавлена как из файла архива, так и переименованием существующей модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;id — идентификатор модели, обязательный параметр.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;zip-model — zip-архив с файлами модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Или&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;from-existing-model — название модели, которая должна перемещена на место id.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot;|&#039;&#039;&#039;DELETE:/spr/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Удаление модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;id — идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot;|&#039;&#039;&#039;GET:/spr/queue&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Получение очереди отложенных заданий на распознавание.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Без входных параметров.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;id задания&amp;quot;:&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;created&amp;quot;: &amp;quot;ХХХХ-ХХ-ХХ ХХ:ХХ:ХХ&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;waiting&amp;quot;, # ready | waiting | failed&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;filename&amp;quot;: &amp;quot;wav&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot;|&#039;&#039;&#039;DELETE:/spr/queue/{taskID}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Удаление отложенных заданий на распознавание.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;taskID — идентификатор задания в очереди.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot;|&#039;&#039;&#039;POST:/spr/stt/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Отправка файла на распознавание речи. Моно-файлы до 60 секунд распознаются без разбивки на фрагменты и определения спикеров. Многоканальные файлы и файлы длиннее 60 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в [[SPR. Руководство администратора.|руководстве администратора]].&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для распознавания&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;speakers&#039;&#039;&#039; — опция поиска говорящих по базе SBS. Если 1, то дополнительно производится поиск говорящих и получение метаданных по каждому говорящему (используется сервис SBS с предварительно обученными слепками метаданных говорящих)&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;punctuation&#039;&#039;&#039; — опция для расстановки знаков препинания. Если 1, то дополнительно вызывает метод punctuate в SMC и расставляет знаки препинания в распознанном тексте, значение по умолчанию берётся из файла конфигурации (для модели big пунктуация выполняется в любом случае).&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;normalization&#039;&#039;&#039; — опция обратной нормализации текста, если 1, то выполняется обратная нормализация текста текста (для модели big выполняется в любом случае).&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;vad&#039;&#039;&#039; — используемый VAD, по умолчанию webrtc&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;toxicity&#039;&#039;&#039; — анализировать распознанный текст на токсичность через smc (GET/smc/toxicity).&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;Высказывание анализируется по 4 параметрам, по каждому выдается вероятность от 0 до 1:&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;quot;оскорбление&amp;quot;: 0.13,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;непристойность&amp;quot;: 0,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;угроза&amp;quot;: 0,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;вежливость&amp;quot;: 0.53&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;emotion&#039;&#039;&#039; — выявить эмоции из распознанного текста через smc (GET/smc/emotion). Возможные ответы: negative, neutral, positive.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;voice_analyzer&#039;&#039;&#039; — анализировать аудиофрагменты каждого из говорящих на эмоции, возраст и пол, запрашивается в sbs метод POST/sbs/analyze.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;Аудио говорящего анализируется на возраст (child, adult, old).&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;Эмоции (ANGER, BORE, DISAPPOINTMENT, DISGUST, EXCITEMENT, FEAR, NEUTRAL, PAIN, PLEASURE, SADNESS, SUPRISE).&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;Пол (male, female).&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;speaker_counter&#039;&#039;&#039; — количество докладчиков, по умолчанию 0, автоматическое определение количества. При отправке значения -1 разделение на докладчиков будет отключено.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;async&#039;&#039;&#039; — отложенный запуск распознавания&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;classifiers&#039;&#039;&#039;&amp;lt;nowiki&amp;gt; - дополнительно проанализировать все распознанные фразы через модели smc и/или see. отправляется в виде {&amp;quot;smс&amp;quot;:&amp;quot;название модели&amp;quot;:{ параметры запроса }}. Подробнее о параметрах запроса см. в документации по сервисам &amp;lt;/nowiki&amp;gt;[[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;В случае &#039;&#039;&#039;async=1&#039;&#039;&#039; возвращается только &#039;&#039;&#039;taskID&#039;&#039;&#039;, результат по taskID смотреть в методе /spr/result.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;Для коротких файлов&#039;&#039;&#039;:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;model&amp;quot;: &amp;quot;call&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;текст фрагмента&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;classifiers&amp;quot;: тут ответы от моделей smc и see,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;words&amp;quot;: [&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt; &amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt; &amp;quot;word&amp;quot;: &amp;quot;текст&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;start&amp;quot;: 520,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;      &amp;quot;stop&amp;quot;: 1240&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt; },&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;    {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt; &amp;quot;word&amp;quot;: &amp;quot;фрагмента&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;start&amp;quot;: 1240,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;      &amp;quot;stop&amp;quot;: 1920&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;Для транскрибации больших файлов:&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;speakers&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    { &amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;id&amp;quot;: null,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;duration&amp;quot;: 18980,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;fragments&amp;quot;: 3,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;age&amp;quot;: &amp;quot;old&amp;quot;, # только для voice_analyzer=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;gender&amp;quot;: &amp;quot;female&amp;quot; # только для voice_analyzer=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;splitted&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;start&amp;quot;: &amp;quot;00:00:01.870&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;text&amp;quot;: &amp;quot;текст.&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;words&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        { &amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;word&amp;quot;: &amp;quot;текст.&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;start&amp;quot;: 1870,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;stop&amp;quot;: 2710,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;confidence&amp;quot;: 0.95263671875&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;stop&amp;quot;: &amp;quot;00:00:05.510&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;channel&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;duration&amp;quot;: &amp;quot;00:00:03.640&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;start_ms&amp;quot;: 1870,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;stop_ms&amp;quot;: 5510,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;duration_ms&amp;quot;: 3640,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;speaker&amp;quot;: 4,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;speakerConfidence&amp;quot;: 0.87,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;classifiers&amp;quot;: тут ответы от моделей smc и see,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;toxicity&amp;quot;: { # только для toxicity=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;insult&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;obscenity&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;threat&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;politeness&amp;quot;: 0.99&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;},&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;emotion&amp;quot;: { &amp;quot;neutral&amp;quot;: -0.3315 }, # только для emotion=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;voice_analysis&amp;quot;: { # только для voice_analyzer=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;emotion&amp;quot;: {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;class&amp;quot;: &amp;quot;NEUTRAL&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;confidence&amp;quot;: 0.7554781436920166  } &amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot;|&#039;&#039;&#039;GET:/spr/result/{taskID}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Получение результата отложенного распознавания.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;taskID — идентификатор задания.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Вывод по окончанию распознавания аналогичен выводу метода stt + добавлено поле status, которое содержит информацию о статусе отложенной задачи:&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;ready — готово&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;waiting — ожидание&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;not found — не найдена&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;failed — сбой.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot;|&#039;&#039;&#039;GET:/spr/waveform/{taskID}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Служебный метод для отображения аудио в графическом виде, содержит пики сигнала.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  style=&amp;quot;width: 50%&amp;quot; colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;taskID — идентификатор задания.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;waveform&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;0.016,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    0.015,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    0.01&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SPR._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3464</id>
		<title>SPR. Руководство пользователя</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SPR._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3464"/>
		<updated>2026-01-12T07:57:25Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Сервис Short phrase recognizer предназначен для преобразования речи в текст. Принимает на вход аудиофайл в формате wav и возвращает структурированные данные в формате JSON.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Термины и определения&#039;&#039;&#039; =====&lt;br /&gt;
Short Phrase Recognizer (SPR) — сервис распознавания речи.&lt;br /&gt;
&lt;br /&gt;
Модель — предварительно обученная специализированная нейронная сеть для распознавания естественной речи в аудиозаписях.&lt;br /&gt;
&lt;br /&gt;
Swagger UI — интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису SPR в реальном времени.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Описание методов API SPR&#039;&#039;&#039; =====&lt;br /&gt;
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SPR. По умолчанию используется порт 6183/tcp.&lt;br /&gt;
&lt;br /&gt;
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок &amp;lt;code&amp;gt;&amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ сервиса представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6183 будет отображен интерфейс Swagger со всеми методами с возможностью их проверки.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 110%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot;|&#039;&#039;&#039;GET:/spr/models&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Вывод списка моделей.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Без входных параметров.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ models: [model1,...,modelN] }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot;|&#039;&#039;&#039;GET:/spr/audio/{taskID}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Получение файла аудиозаписи отложенного задания.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;taskID — идентификатор задания.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;Файл аудиозаписи или&amp;lt;/small&amp;gt; &amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT , message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot;|&#039;&#039;&#039;GET:/spr/export/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Получение архива модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;id — идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;ZIP-файл с моделью, либо &amp;lt;code&amp;gt;{ error: INT , message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot;|&#039;&#039;&#039;POST:/spr/import/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Добавление модели. Может быть добавлена как из файла архива, так и переименованием существующей модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;id — идентификатор модели, обязательный параметр.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;zip-model — zip-архив с файлами модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Или&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;from-existing-model — название модели, которая должна перемещена на место id.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot;|&#039;&#039;&#039;DELETE:/spr/delete/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Удаление модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;id — идентификатор модели.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{ error: INT, message: DESCRIPTION }&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot;|&#039;&#039;&#039;GET:/spr/queue&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Получение очереди отложенных заданий на распознавание.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Без входных параметров.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;id задания&amp;quot;:&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;created&amp;quot;: &amp;quot;ХХХХ-ХХ-ХХ ХХ:ХХ:ХХ&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;status&amp;quot;: &amp;quot;waiting&amp;quot;, # ready | waiting | failed&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;filename&amp;quot;: &amp;quot;wav&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:red;width: 15%&amp;quot;|&#039;&#039;&#039;DELETE:/spr/queue/{taskID}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Удаление отложенных заданий на распознавание.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;taskID — идентификатор задания в очереди.&amp;lt;/small&amp;gt;&lt;br /&gt;
|&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;color:green;width: 15%&amp;quot;|&#039;&#039;&#039;POST:/spr/stt/{id}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Отправка файла на распознавание речи. Моно-файлы до 60 секунд распознаются без разбивки на фрагменты и определения спикеров. Многоканальные файлы и файлы длиннее 60 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в [[SPR. Руководство администратора.|руководстве администратора]].&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;width: 50%&amp;quot; |&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;id&#039;&#039;&#039; — идентификатор модели&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;wav&#039;&#039;&#039; — файл для распознавания&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;speakers&#039;&#039;&#039; — опция поиска говорящих по базе SBS. Если 1, то дополнительно производится поиск говорящих и получение метаданных по каждому говорящему (используется сервис SBS с предварительно обученными слепками метаданных говорящих)&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;punctuation&#039;&#039;&#039; — опция для расстановки знаков препинания. Если 1, то дополнительно вызывает метод punctuate в SMC и расставляет знаки препинания в распознанном тексте, значение по умолчанию берётся из файла конфигурации (для модели big пунктуация выполняется в любом случае).&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;normalization&#039;&#039;&#039; — опция обратной нормализации текста, если 1, то выполняется обратная нормализация текста текста (для модели big выполняется в любом случае).&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;vad&#039;&#039;&#039; — используемый VAD, по умолчанию webrtc&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;toxicity&#039;&#039;&#039; — анализировать распознанный текст на токсичность через smc (GET/smc/toxicity).&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;Высказывание анализируется по 4 параметрам, по каждому выдается вероятность от 0 до 1:&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;quot;оскорбление&amp;quot;: 0.13,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;непристойность&amp;quot;: 0,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;угроза&amp;quot;: 0,&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;&amp;quot;вежливость&amp;quot;: 0.53&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;emotion&#039;&#039;&#039; — выявить эмоции из распознанного текста через smc (GET/smc/emotion). Возможные ответы: negative, neutral, positive.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;voice_analyzer&#039;&#039;&#039; — анализировать аудиофрагменты каждого из говорящих на эмоции, возраст и пол, запрашивается в sbs метод POST/sbs/analyze.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;Аудио говорящего анализируется на возраст (child, adult, old).&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;Эмоции (ANGER, BORE, DISAPPOINTMENT, DISGUST, EXCITEMENT, FEAR, NEUTRAL, PAIN, PLEASURE, SADNESS, SUPRISE).&amp;lt;/small&amp;gt;  &amp;lt;small&amp;gt;Пол (male, female).&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;speaker_counter&#039;&#039;&#039; — количество докладчиков, по умолчанию 0, автоматическое определение количества. При отправке значения -1 разделение на докладчиков будет отключено.&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;async&#039;&#039;&#039; — отложенный запуск распознавания&amp;lt;/small&amp;gt;&lt;br /&gt;
* &amp;lt;small&amp;gt;&#039;&#039;&#039;classifiers&#039;&#039;&#039;&amp;lt;nowiki&amp;gt; - дополнительно проанализировать все распознанные фразы через модели smc и/или see. отправляется в виде {&amp;quot;smс&amp;quot;:&amp;quot;название модели&amp;quot;:{ параметры запроса }}. Подробнее о параметрах запроса см. в документации по сервисам &amp;lt;/nowiki&amp;gt;[[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 50%&amp;quot; |&amp;lt;small&amp;gt;В случае &#039;&#039;&#039;async=1&#039;&#039;&#039; возвращается только &#039;&#039;&#039;taskID&#039;&#039;&#039;, результат по taskID смотреть в методе /spr/result.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;Для коротких файлов&#039;&#039;&#039;:&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;model&amp;quot;: &amp;quot;call&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;  &amp;quot;text&amp;quot;: &amp;quot;текст фрагмента&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;classifiers&amp;quot;: тут ответы от моделей smc и see,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;  &amp;quot;words&amp;quot;: [&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt; &amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;{&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt; &amp;quot;word&amp;quot;: &amp;quot;текст&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;start&amp;quot;: 520,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;      &amp;quot;stop&amp;quot;: 1240&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt; },&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;    {&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt; &amp;quot;word&amp;quot;: &amp;quot;фрагмента&amp;quot;,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;start&amp;quot;: 1240,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;      &amp;quot;stop&amp;quot;: 1920&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;  }&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;]&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;}&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;&#039;Для транскрибации больших файлов:&#039;&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;speakers&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    { &amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;id&amp;quot;: null,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;duration&amp;quot;: 18980,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;fragments&amp;quot;: 3,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;age&amp;quot;: &amp;quot;old&amp;quot;, # только для voice_analyzer=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;gender&amp;quot;: &amp;quot;female&amp;quot; # только для voice_analyzer=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;splitted&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;start&amp;quot;: &amp;quot;00:00:01.870&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;text&amp;quot;: &amp;quot;текст.&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;words&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        { &amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;word&amp;quot;: &amp;quot;текст.&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;start&amp;quot;: 1870,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;stop&amp;quot;: 2710,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;confidence&amp;quot;: 0.95263671875&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;],&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;stop&amp;quot;: &amp;quot;00:00:05.510&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;channel&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;duration&amp;quot;: &amp;quot;00:00:03.640&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;start_ms&amp;quot;: 1870,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;stop_ms&amp;quot;: 5510,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;duration_ms&amp;quot;: 3640,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;speaker&amp;quot;: 4,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;speakerConfidence&amp;quot;: 0.87,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;small&amp;gt;&amp;quot;classifiers&amp;quot;: тут ответы от моделей smc и see,&amp;lt;/small&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;toxicity&amp;quot;: { # только для toxicity=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;insult&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;obscenity&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;threat&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;politeness&amp;quot;: 0.99&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;},&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;emotion&amp;quot;: { &amp;quot;neutral&amp;quot;: -0.3315 }, # только для emotion=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;      &amp;quot;voice_analysis&amp;quot;: { # только для voice_analyzer=1&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;        &amp;quot;emotion&amp;quot;: {&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;class&amp;quot;: &amp;quot;NEUTRAL&amp;quot;,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;          &amp;quot;confidence&amp;quot;: 0.7554781436920166  } &amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot;|&#039;&#039;&#039;GET:/spr/result/{taskID}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Получение результата отложенного распознавания.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;taskID — идентификатор задания.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;Вывод по окончанию распознавания аналогичен выводу метода stt + добавлено поле status, которое содержит информацию о статусе отложенной задачи:&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;ready — готово&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;waiting — ожидание&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;not found — не найдена&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;failed — сбой.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;color:blue;width: 15%&amp;quot;|&#039;&#039;&#039;GET:/spr/waveform/{taskID}&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |&amp;lt;small&amp;gt;Служебный метод для отображения аудио в графическом виде, содержит пики сигнала.&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  style=&amp;quot;width: 50%&amp;quot; colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;taskID — идентификатор задания.&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;error&amp;quot;: 0,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;&amp;quot;waveform&amp;quot;: [&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;0.016,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    0.015,&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;    0.01&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=SPR._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3459</id>
		<title>SPR. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=SPR._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3459"/>
		<updated>2026-01-12T07:36:34Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===== &#039;&#039;&#039;﻿Общее описание сервиса распознавания речи (SPR)&#039;&#039;&#039; =====&lt;br /&gt;
Сервис предназначен для преобразования естественной речи в текст. Входными данными для сервиса являются аудиофайлы в формате *.wav, результатом работы выступают данные в текстовом формате.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Термины и определения&#039;&#039;&#039;=====&lt;br /&gt;
Short Phrase Recognizer (SPR) — сервис распознавания речи.&lt;br /&gt;
&lt;br /&gt;
Модель — модель нейронной сети, описывает её архитектуру и конфигурацию, а также используемые алгоритмы обучения.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Расчет нагрузки SPR&#039;&#039;&#039;=====&lt;br /&gt;
Для нормальной работы сервиса требуются CPU с поддержкой инструкций AVX2 или новее.&lt;br /&gt;
&lt;br /&gt;
Сервис требует разных ресурсов в зависимости от сценария использования.&lt;br /&gt;
&lt;br /&gt;
Распознавание для голосовых помощников — рекомендуется модель common и работа на GPU NVIDIA. Возможна работа на CPU. В этом случае приемлемую задержку распознавания для одиночных фраз можно получить на ВМ с 8 потоками, 6 Гб оперативной памяти с резервом по частоте 9600 МГц (соответствует 4 ядрам по 2,4 ГГц). В этом случае 8-секундная речь будет распознана ориентировочно за 0,8 с. 4 таких ВМ обеспечат распознавание голоса абонента в диалогах длительностью 60–80 с с количеством одновременных диалогов до 60.&lt;br /&gt;
&lt;br /&gt;
В случае использования GPU A16 (одной из 4 голов на ВМ 8 потоков, 6 Гб) 8-секундная речь будет распознана примерно за 0,2 с. На такой ВМ можно распознавать до 100 одновременных диалогов. При расчетах и моделировании предполагалось, что за весь диалог длительностью 60–80 с будет распознано до 6 фраз длительностью до 8 с. GPU A16 содержит 1300 ядер CUDA в одной голове. На более мощных GPU возможности возрастают кратно количеству CUDA ядер.&lt;br /&gt;
&lt;br /&gt;
При распознавании для голосовых помощников рекомендуется использовать от 2-х воркеров gunicorn (-w 2 в строке запуска в файле службы) в зависимости от наличия памяти.&lt;br /&gt;
&lt;br /&gt;
Распознавание для диаризации (транскрибации) длительных переговоров — одновременное, используются модели common и big. Распознавание на CPU в этом режиме не поддерживается. Для распознавания рекомендуется минимум ВМ 8 ядер 16 Гб GPU A16. На такой ВМ время распознавания в 2,5 раза меньше длительности аудио. На GPU V100 время распознавания меньше длительности аудио ориентировочно в 5 раз. Пример распознавания одного и того же файла на разных GPU:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Карта&lt;br /&gt;
!Видеопамять&lt;br /&gt;
!Количество ядер CUDA&lt;br /&gt;
!Время распознавания&lt;br /&gt;
(минут)&lt;br /&gt;
!Примечание&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;big&amp;gt;A100&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|80&lt;br /&gt;
|6912&lt;br /&gt;
|12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;big&amp;gt;V100&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|16&lt;br /&gt;
|5120&lt;br /&gt;
|16&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;big&amp;gt;RTX 3060&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|12&lt;br /&gt;
|3584&lt;br /&gt;
|24&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;big&amp;gt;A16&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
|1280&lt;br /&gt;
|33&lt;br /&gt;
|1/4 карты&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Переключение между режимами распознавания — в зависимости от длительности аудио. Аудио короче 30 с распознаются для голосовых помощников. Остальные аудио разбиваются на фразы и выделяются фрагменты речи, принадлежащие разным лицам, то есть формат вывода тоже изменяется.&lt;br /&gt;
&lt;br /&gt;
Требования к загружаемому аудио&lt;br /&gt;
&lt;br /&gt;
Для преобразования фрагментов речи в текст используйте аудио в форматах, поддерживаемых ffmpeg.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Установка/обновление SPR&#039;&#039;&#039;=====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/spr&amp;amp;fileid=519 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить сервисный пакет окружения]].&lt;br /&gt;
&lt;br /&gt;
* Установка/обновление SPR осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./spr-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./spr-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./spr-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
* Загрузить последнюю версию продукта  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/spr/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/spr&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить SPR &amp;lt;code&amp;gt;/opt/spr/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/spr/inupdate -b&amp;lt;/code&amp;gt;  — обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/spr/inupdate -r&amp;lt;/code&amp;gt;  — обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/spr/inupdate -n&amp;lt;/code&amp;gt;  — обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Установить модели  &amp;lt;code&amp;gt;/opt/spr/inmodel&amp;lt;/code&amp;gt; в интерактивном режиме.&lt;br /&gt;
* Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/spr/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/spr/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; — это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/spr/.userapi (это файл авторизации в API, нужен для обновления и загрузки моделей),&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/spr/.proxy (это файл конфигурации proxy, необходим для обновления и загрузки моделей, при отсутствующем прямом подключении к интернету),&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable spr.service &amp;amp;&amp;amp; sudo systemctl start spr.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status spr.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к порту 6183 на нужном интерфейсе по протоколу tcp.     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Лицензия&#039;&#039;&#039; =====&lt;br /&gt;
Сервис не функционирует без действующей лицензии. Информация о лицензии хранится в файле:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/opt/spr/license.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл лицензии должен соответствовать следующему формату:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;service&amp;quot;: &amp;quot;spr&amp;quot;, &amp;quot;expire&amp;quot;: &amp;quot;2045-01-01&amp;quot;, &amp;quot;licenses&amp;quot;: , &amp;quot;key&amp;quot;: &amp;quot;&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для получения лицензии необходимо:&lt;br /&gt;
&lt;br /&gt;
1. Запустить сервис &amp;lt;code&amp;gt;systemctl start spr&amp;lt;/code&amp;gt; и извлечь UUID, указанный в файле &amp;lt;code&amp;gt;/opt/spr/logs/log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Передать полученный UUID руководителю проекта для оформления лицензии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Установка моделей SPR&#039;&#039;&#039;=====&lt;br /&gt;
Установка моделей возможна прямым копированием файла модели или загрузкой через API сервиса (метод POST /spr/data/{id}). &lt;br /&gt;
&lt;br /&gt;
Модели располагаются в каталоге /opt/spr/nnets/. Для установки модели необходимо создать каталог /opt/spr/nnets/&amp;lt;название модели&amp;gt;/ и скопировать в него содержимое архива модели, после чего перезагрузить сервис командой systemctl restart spr.&lt;br /&gt;
&lt;br /&gt;
Чтобы убедиться, что модели доступны, выполните запрос &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -H &amp;quot;accept: application/json&amp;quot; -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В ответе должно содержаться название новой модели или перечень названий моделей в формате json.&lt;br /&gt;
&lt;br /&gt;
Проверить корректность работы модели можно запросом к API с отправкой файла на распознавание:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -X POST &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/stt/common&amp;lt;/nowiki&amp;gt;&amp;quot; -H &amp;quot;accept: application/json&amp;quot; -H &amp;quot;Content-Type: multipart/form-data&amp;quot; -F &amp;quot;wav=@ФАЙЛ.wav;type=audio/wav&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Некоторые модели работают только на GPU. На данный момент такая модель только одна — «big».&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Внешние модули распознавания&#039;&#039;&#039; =====&lt;br /&gt;
Сервис SPR поддерживает установку произвольных модулей распознавания. Для этого папка external должна содержать директорию с нужным модулем, в которой обязательным является наличие файла handler.py с функцией recognize(data, sr). Сервис передаст в данную функцию аудиоданные в переменную data, в формате pydub.AudioSegment, а также значение sample rate в переменной sr. Готовые внешние модули распознавания доступны по [https://cloud.connect2ai.net/index.php/apps/files/?dir=/spr ссылке].&lt;br /&gt;
&lt;br /&gt;
Проверить корректность работы модели можно запросом к API с отправкой файла на распознавание:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -X POST &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/stt/Имя_Модуля&amp;lt;/nowiki&amp;gt;&amp;quot; -H &amp;quot;accept: application/json&amp;quot; -H &amp;quot;Content-Type: multipart/form-data&amp;quot; -F &amp;quot;wav=@ФАЙЛ.wav;type=audio/wav&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;Со списком методов можно ознакомиться в [[SPR. Руководство пользователя|руководстве пользователя]]. Метод на загрузку модели &amp;lt;code&amp;gt;curl -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/data/Имя_Модуля&amp;lt;/nowiki&amp;gt;&amp;quot; -H  &amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt; не работает с модулями в целях безопасности. Также модули не отображаются в списке моделей по запросу &amp;lt;code&amp;gt;curl -X GET &amp;quot;&amp;lt;nowiki&amp;gt;http://АДРЕС_СЕРВЕРА:6183/spr/&amp;lt;/nowiki&amp;gt;&amp;quot; -H  &amp;quot;accept: application/json&amp;quot;&amp;lt;/code&amp;gt;. В некоторых модулях конфигурация может быть вынесена в отдельный файл. Например, для модуля yandex это - /opt/spr/external/config.json.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Конфигурирование параметров сервиса SPR&#039;&#039;&#039;=====&lt;br /&gt;
Настройка параметров сервиса spr производится в файле /opt/spr/config.json.&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|device&lt;br /&gt;
|cuda:0&lt;br /&gt;
|Устройство, используемое для работы сервиса (cpu/cuda:N) N - GPU, в ОЗУ которого будут загружены модели сервиса&lt;br /&gt;
|-&lt;br /&gt;
|max_gpu_memory&lt;br /&gt;
|0.99&lt;br /&gt;
|Лимит использования ОЗУ видеокарты.&lt;br /&gt;
|-&lt;br /&gt;
|punctuation&lt;br /&gt;
|false&lt;br /&gt;
|Расстановка знаков препинания через [[SMC. Руководство пользователя|сервис SMC]].&lt;br /&gt;
|-&lt;br /&gt;
|normalization&lt;br /&gt;
|false&lt;br /&gt;
|Обратная нормализация текста через [[SMC. Руководство пользователя|сервис SMC]].&lt;br /&gt;
|-&lt;br /&gt;
|toxicity&lt;br /&gt;
|false&lt;br /&gt;
|Анализ текста на токсичность через [[SMC. Руководство пользователя|сервис SMC]].&lt;br /&gt;
|-&lt;br /&gt;
|emotions&lt;br /&gt;
|false&lt;br /&gt;
|Анализ текста на эмоции через [[SMC. Руководство пользователя|сервис SMC]].&lt;br /&gt;
|-&lt;br /&gt;
|voice_analyzer&lt;br /&gt;
|false&lt;br /&gt;
|Анализ голоса спикера на эмоции, возраст, пол через [[SBS. Руководство пользователя.|сервис SBS]].&lt;br /&gt;
|-&lt;br /&gt;
|save_audio_requests&lt;br /&gt;
|false&lt;br /&gt;
|Записывать аудио получаемые для распознавания в синхронном режиме. Будут сохраняться в /tmp/spr/. Только для диагностики. Не применять в нагруженных серверах.&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|logs/&lt;br /&gt;
|Путь к папке логов.&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Количество старых сохраняемых логов.&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер текущего лог-файла в байтах.&lt;br /&gt;
|-&lt;br /&gt;
|cache.lifetime&lt;br /&gt;
|604800&lt;br /&gt;
|Время жизни кэша результатов отложенного распознавания.&lt;br /&gt;
|-&lt;br /&gt;
| sbs.url&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;http://127.0.0.1:6185&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Путь к [[SBS. Руководство пользователя|сервису биометрии]] для получения метаданных голосового фрагмента.&lt;br /&gt;
|-&lt;br /&gt;
|sbs.conn_timeout&lt;br /&gt;
|2&lt;br /&gt;
|Таймаут на подключение к API SBS.&lt;br /&gt;
|-&lt;br /&gt;
|sbs.read_timeout&lt;br /&gt;
|30&lt;br /&gt;
|Таймаут на получение ответа от API SBS.&lt;br /&gt;
|-&lt;br /&gt;
|smc.url&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;http://127.0.0.1:6181&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Путь к [[SMC. Руководство пользователя|сервису классификации]] для дополнительной работы с распознанным текстом.&lt;br /&gt;
|-&lt;br /&gt;
|smc.conn_timeout&lt;br /&gt;
|2&lt;br /&gt;
|Таймаут на подключение к API SMC.&lt;br /&gt;
|-&lt;br /&gt;
|smc.read_timeout&lt;br /&gt;
|30&lt;br /&gt;
|Таймаут на получение ответа от API SMC.&lt;br /&gt;
|-&lt;br /&gt;
|see.url&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;http://127.0.0.1:6184&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Путь к [[SEE. Руководство пользователя|сервису поиска сущностей]] для дополнительной работы с распознанным текстом.&lt;br /&gt;
|-&lt;br /&gt;
|see.conn_timeout&lt;br /&gt;
|2&lt;br /&gt;
|Таймаут на подключение к API SEE.&lt;br /&gt;
|-&lt;br /&gt;
|see.read_timeout&lt;br /&gt;
|30&lt;br /&gt;
|Таймаут на получение ответа от API SEE.&lt;br /&gt;
|-&lt;br /&gt;
|vad.default&lt;br /&gt;
|webrtc&lt;br /&gt;
|Тип VAD по умолчанию для разбивки аудиофайлов. Возможные значения — пока только webrtc.&lt;br /&gt;
|-&lt;br /&gt;
|vad.maxSilence&lt;br /&gt;
|2000&lt;br /&gt;
|Длительность паузы в речи в миллисекундах для разбивки длинных аудиофайлов на фрагменты.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.similarityThreshold&lt;br /&gt;
|0.7&lt;br /&gt;
|Порог различия для разделения говорящих.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.maxSpeechLength&lt;br /&gt;
|10000&lt;br /&gt;
|Максимальная длительность фрагмента для сравнения говорящих в миллисекундах.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.wordMinLimit&lt;br /&gt;
|5&lt;br /&gt;
|Минимальный размер фразы при определении говорящих.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.timeMinLimit&lt;br /&gt;
|3000&lt;br /&gt;
|Минимальная длительность аудио, чтобы оно могло быть использовано для добавления нового говорящего.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.batch&lt;br /&gt;
|4&lt;br /&gt;
|Количество одновременного анализируемых аудиофрагментов при разделении говорящих.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.concatEqual&lt;br /&gt;
|true&lt;br /&gt;
|Позволяет склеивать последовательные фразы одного и того же говорящего.&lt;br /&gt;
|-&lt;br /&gt;
|speakers.defaultModel&lt;br /&gt;
|call&lt;br /&gt;
|Модель определения говорящего.&lt;br /&gt;
|-&lt;br /&gt;
|blacklist&lt;br /&gt;
|[]&lt;br /&gt;
|Список моделей распознавания в папках nnets и external, которые не должны быть загружены при старте сервиса SPR.&lt;br /&gt;
|-&lt;br /&gt;
|corrections&lt;br /&gt;
|{ &amp;quot;big&amp;quot;: &amp;quot;common&amp;quot;  }&lt;br /&gt;
|Добавление модели коррекции для стенографирования.&lt;br /&gt;
|-&lt;br /&gt;
|garbage&lt;br /&gt;
|[ &amp;quot;—&amp;quot;, &amp;quot;[*]&amp;quot; ]&lt;br /&gt;
|Массив фраз, которые считаются мусорными и откидываются из распознанного текста.&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.log&lt;br /&gt;
|путь к логу синхронизации ноды кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.statusFile&lt;br /&gt;
|logs/sync.status&lt;br /&gt;
|путь к файлу статуса ноды кластера&lt;br /&gt;
|-&lt;br /&gt;
|cluster.nodes&lt;br /&gt;
|[]&lt;br /&gt;
|список IP адресов нод кластера&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Сбор данных об ошибках&#039;&#039;&#039;=====&lt;br /&gt;
Логи сервиса по умолчанию находятся в файле /opt/spr/logs/log.txt&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Удаление&#039;&#039;&#039;=====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/spr/uninstall&amp;lt;/code&amp;gt;. Команда удалит сервис и  рабочий каталог, включая все установленные модели.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Практические рекомендации&#039;&#039;&#039;=====&lt;br /&gt;
Сервис spr на системах с видеокартой на большой нагрузке может не полностью использовать ресурсы GPU, при этом могут быть задержки в распознавании. Для более полного использования ресурсов рекомендуется в строке запуска gunicorn в файле сервиса добавить параметр «&#039;&#039;&#039;-w 2&#039;&#039;&#039;». Это приведет к загрузке в видеопамять 2-х экземпляров приложения и моделей. Таким образом приложение сможет более эффективно использовать ресурсы GPU, но при этом возрастет потребность в памяти GPU.&lt;br /&gt;
&lt;br /&gt;
В случае если в системе обработки речи используется несколько несимметричных по ресурсам серверов spr, регулировать нагрузку на них можно указывая адрес сервера, в котором больше ресурсов, большее количество раз в разделе «spr.cluster» конфигурационного файла ups.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=PVE._%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B0_%D0%BE%D0%BA%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=3452</id>
		<title>PVE. Установка сервисного пакета окружения</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=PVE._%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B0_%D0%BE%D0%BA%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=3452"/>
		<updated>2025-12-26T13:27:29Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Пакет Python Virtual Environment (PVE) предназначен для подготовки виртуального Python3 окружения для работы сервисов:&lt;br /&gt;
    • Simple Entity Extractor&lt;br /&gt;
    • Simple Message Classifier&lt;br /&gt;
    • Short Phrase Recognizer&lt;br /&gt;
    • Simple Biometry Server&lt;br /&gt;
    • Text To Speech Server&lt;br /&gt;
    • Question Answering System&lt;br /&gt;
    • Script Engine Service&lt;br /&gt;
    • Report Engine Service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Термины и определения&#039;&#039;&#039;=====&lt;br /&gt;
Python Virtual Environment (PVE) – пакет для установки Python3 окружения для сервисов. Самостоятельно PVE не используется.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Расчет нагрузки&#039;&#039;&#039;=====&lt;br /&gt;
Для установки пакета требуется свободное место в каталоге /opt не менее 4Gb без поддержки видеокарты и/или 12Gb с поддержкой.&lt;br /&gt;
&lt;br /&gt;
Также при установке используется временная папка /tmp/archive, куда распаковывается содержимое архива до 9Gb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Установка/обновление пакета окружения&#039;&#039;&#039;=====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/pve&amp;amp;fileid=612 Дистрибутив] распространяется в виде универсального установочного пакета. Для установки пакета запустить инсталлятор с требуемыми ключами. При запуске без ключей инсталлятор выдаст короткую справку. Пакет может быть установлен в &#039;&#039;онлайн&#039;&#039;-режиме при наличии прямого доступа в интернет или через прокси. Для установки в &#039;&#039;оффлайн&#039;&#039;-режиме сперва нужно запустить экземпляр скрипта на копии целевой системы (версии и ядра) с доступом в интернет.&lt;br /&gt;
* Загрузить последнюю версию окружения  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/pve/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/pve&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить PVE &amp;lt;code&amp;gt;/opt/pve/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/pve/inupdate -b&amp;lt;/code&amp;gt; – обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/pve/inupdate -r&amp;lt;/code&amp;gt; – обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/pve/inupdate -n&amp;lt;/code&amp;gt; – обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Проверить актуальную версию окружения &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/pve/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/pve/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; – это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с окружением можно добавить 2 файла конфигурации (данные файлы также будут использоваться продуктами при отсутствии у них своих):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/pve/.userapi (это файл авторизации в API, нужен для обновления)&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/pve/.proxy (это файл конфигурации proxy, необходим для обновления, при отсутствующем прямом подключении к интернету)&lt;br /&gt;
При установке рядом со скриптом окружения можно положить freeze.txt с альтернативным набором модулей. В потоке вывода в результате вы увидите сообщение «Существует внешний файл — список модулей pip3».&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Варианты использование инсталлятора&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
Описание ключей установки приведено в таблице&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр,&lt;br /&gt;
назначение&lt;br /&gt;
!Параметр,&lt;br /&gt;
назначение&lt;br /&gt;
!Параметр,&lt;br /&gt;
назначение&lt;br /&gt;
!Примечание&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;-i/--install - установить окружение&#039;&#039;&lt;br /&gt;
| -on/--online - онлайн&lt;br /&gt;
| -cpu/--cpu - полный набор pip3 модулей под CPU&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; |Данные наборы ключей используются совместно, в разных комбинациях. Чтобы установить в оффлайн-режиме, необходимо собрать скрипт с ключом -b/--build. Установка с ключом CPU актуальна при отсутствии видеокарты в системе, окружение занимает всего ~3Gb. &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| -off/--offline - оффлайн&lt;br /&gt;
| -cu11/--cu11- полный набор pip3 модулей под GPU CU11.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -cu12/--cu12 - полный набор pip3 модулей под GPU CU12.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -ups/--ups - отдельное окружение для ups&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -res/--res - отдельное окружение для res&lt;br /&gt;
|-&lt;br /&gt;
| -u/--update - обновить окружение&lt;br /&gt;
| -on/--online - онлайн&lt;br /&gt;
| -cpu/--cpu - полный набор pip3 модулей под CPU&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; |Данные наборы ключей используются совместно, в разных комбинациях. Чтобы обновить в оффлайн режиме, необходимо собрать скрипт с ключом -b/--build. Обновление с ключом CPU актуально при отсутствии видеокарты в системе, окружение занимает всего ~3Gb. Обновление отличается от установки тем, что пропускается этап установки системных пакетов. Ставится только окружение с модулями. Оффлайн инсталлятор с ключом обновления становится универсальным под любую ОС, так как не зависим от системных пакетов.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| -off/--offline - оффлайн&lt;br /&gt;
| -cu11/--cu11- полный набор pip3 модулей под GPU CU11.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -cu12/--cu12 - полный набор pip3 модулей под GPU CU12.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -ups/--ups - отдельное окружение для ups&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -res/--res - отдельное окружение для res&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -ses/--ses - отдельное окружение для ses&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -qas-cpu/--qas-cpu - отдельное окружение для QAS под CPU&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -qas-cu12/--qas-cu12 - отдельное окружение для QAS под CUDA12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| -b/--build - скачать все пакеты, и модули, и упаковать в скрипт &lt;br /&gt;
|&#039;&#039;-i/--install - для установки с системными пакетами&#039;&#039;&lt;br /&gt;
| -f/--full - полный набор pip3 модулей под все типы&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Данные наборы ключей используются совместно, в разных комбинациях. Сборка с ключом CPU актуальна при отсутствии видеокарты в системе, собранный инсталлятор весит ~1Gb. Ключ полного набора модулей делает инсталлятор универсальным, но такой инсталлятор весит ~12Gb. Если инсталлятор был собран с ключом установки под другую ОС, его также можно использовать с ключом обновления для текущей или любой другой. Если набор модулей, который включен в оффлайн инсталлятор, недостаточен, он попытается загрузить недостающие модули из интернета напрямую или предложит ввести настройки прокси.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| -u/--update - для обновления, только окружение&lt;br /&gt;
| -cpu/--cpu - полный набор pip3 модулей под CPU&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -cu11/--cu11- полный набор pip3 модулей под GPU CU11.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -cu12/--cu12 - полный набор pip3 модулей под GPU CU12.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -ups/--ups - отдельное окружение для ups&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -res/--res - отдельное окружение для res&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -ses/--ses - отдельное окружение для ses&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -qas-cpu/--qas-cpu - отдельное окружение для QAS под CPU&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -qas-cu12/--qas-cu12 - отдельное окружение для QAS под CUDA12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| -u/--uninstall - удалить окружение&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Одинарный ключ, удаляет окружение из папки /opt&lt;br /&gt;
|-&lt;br /&gt;
| -e/--extract - скопировать внутренний архив рядом со скриптом&lt;br /&gt;
| -d/--dir путь/имя_каталога&lt;br /&gt;
|&lt;br /&gt;
|Второй аргумент не обязательный. Без указания папки, распакуется архив. С указанием папки, распакуется содержимое архива в указанную папку.&lt;br /&gt;
|-&lt;br /&gt;
| -p/--pack имя_архива - запаковать архив в скрипт&lt;br /&gt;
| -d/--dir путь/имя_каталога&lt;br /&gt;
|&lt;br /&gt;
|Второй аргумент не обязательный. Без указания папки к установщику прикрепляем архив. С указанием папки к установщику прикрепляем содержимое каталога.&lt;br /&gt;
|-&lt;br /&gt;
| -n/--null - удалить внутренний архив из скрипта&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Удаляем внутренний архив из инсталлятора. Редактирование инсталлятора с архивом может привести к повреждению архива.&lt;br /&gt;
|}&lt;br /&gt;
Примеры использования ключей:&lt;br /&gt;
&lt;br /&gt;
-- Установить окружение с полным набором модулей под CPU.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i -cpu -on&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Установить окружение из заранее собранного инсталлятора с полным набором модулей под CPU.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i -cpu -off&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Собрать все пакеты для установки оффлайн окружения с полным набором модулей под CPU.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -b -i -cpu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Собрать все пакеты для обновления оффлайн окружения с полным набором модулей под CPU.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -b -u -cpu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Скопировать внутренний архив рядом со скриптом, не распаковывая в папку.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -e&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Запаковать архив в скрипт.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -p &amp;lt;service&amp;gt;-offline.tgz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Сжать каталог и запаковать архив в скрипт.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -p -d &amp;lt;имя каталога&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Распаковать внутренний архив рядом со скриптом в каталог.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -e -d archive&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Удалить внутренний архив из скрипта.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh --null&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Удалить окружение.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh --uninstall&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Удаление окружения&#039;&#039;&#039;=====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/pve/uninstall&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=QAS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3451</id>
		<title>QAS. Руководство администратора</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=QAS._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0&amp;diff=3451"/>
		<updated>2025-12-26T09:59:47Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=====&#039;&#039;&#039;Общее описание&#039;&#039;&#039;=====&lt;br /&gt;
Сервис предназначен для поиска ответа на заданный вопрос. Входным значением для сервиса являются данные в текстовом формате. В ответ на входящий запрос сервис возвращает данные в формате JSON.&lt;br /&gt;
=====&#039;&#039;&#039;Термины и определения&#039;&#039;&#039;=====&lt;br /&gt;
Question Answering System (QAS) – сервис ответов на вопросы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Системные требования&#039;&#039;&#039;=====&lt;br /&gt;
Для нормальной работы сервиса без GPU необходимо не менее 8 CPU (минимальные требования для использования метода ask) &amp;gt;= 2.20 GHz с поддержкой инструкций AVX2 или новее:&lt;br /&gt;
*Intel Haswell&lt;br /&gt;
*Intel Broadwell&lt;br /&gt;
*Intel Skylake&lt;br /&gt;
*Intel Kaby Lake&lt;br /&gt;
*Intel Coffee Lake&lt;br /&gt;
*Intel Comet Lake&lt;br /&gt;
*Intel Rocket Lake&lt;br /&gt;
*Intel Alder Lake&lt;br /&gt;
*AMD Excavator&lt;br /&gt;
*AMD Zen (AMD Ryzen)&lt;br /&gt;
*AMD Zen 2 (AMD Ryzen)&lt;br /&gt;
*AMD Zen 3 (AMD Ryzen)&lt;br /&gt;
Работа на CPU при использовании метода ask крайне не рекомендуется. Оперативной памяти необходимо не менее 16Gb для работы без GPU.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Установка/обновление сервиса&#039;&#039;&#039;=====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/qas&amp;amp;fileid=26891 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой непосредственно сервиса необходимо [[PVE. Установка сервисного пакета окружения|установить отдельный сервисный пакет окружения под QAS]].&lt;br /&gt;
&lt;br /&gt;
* Установка/обновление QAS осуществляется скриптом &amp;lt;code&amp;gt;chmod +x ./qas-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh &amp;amp;&amp;amp; ./qas-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i&amp;lt;/code&amp;gt; с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор &amp;lt;code&amp;gt;./qas-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh&amp;lt;/code&amp;gt; без ключей.&lt;br /&gt;
* Загрузить последнюю версию продукта  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/qas/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s https://repo.connect2ai.net/api/qas --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить QAS &amp;lt;code&amp;gt;/opt/qas/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/qas/inupdate -b&amp;lt;/code&amp;gt; – обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/qas/inupdate -r&amp;lt;/code&amp;gt; – обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/qas/inupdate -n&amp;lt;/code&amp;gt; – обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Установить модели  &amp;lt;code&amp;gt;/opt/qas/inmodel&amp;lt;/code&amp;gt; в интерактивном режиме.&lt;br /&gt;
* Проверить актуальную версию продукта &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/qas/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/qas/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; – это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/qas/.userapi (это файл авторизации в API, нужен для обновления и загрузки моделей)&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/qas/.proxy (это файл конфигурации proxy, необходим для обновления и загрузки моделей, при отсутствующем прямом подключении к интернету)&lt;br /&gt;
&lt;br /&gt;
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.&lt;br /&gt;
&lt;br /&gt;
Не забудьте запустить сервис и включить в автозапуск в системе:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo systemctl enable qas.service &amp;amp;&amp;amp; sudo systemctl start qas.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь, что сервис стартовал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl status qas.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешите доступ к порту 6187 на нужном интерфейсе по протоколу tcp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Лицензия&#039;&#039;&#039; =====&lt;br /&gt;
Сервис не функционирует без действующей лицензии. Информация о лицензии хранится в файле:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/opt/qas/license.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл лицензии должен соответствовать следующему формату:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;service&amp;quot;: &amp;quot;qas&amp;quot;, &amp;quot;expire&amp;quot;: &amp;quot;2045-01-01&amp;quot;, &amp;quot;licenses&amp;quot;: , &amp;quot;key&amp;quot;: &amp;quot;&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для получения лицензии необходимо:&lt;br /&gt;
&lt;br /&gt;
1. Запустить сервис &amp;lt;code&amp;gt;systemctl start qas&amp;lt;/code&amp;gt; и извлечь UUID, указанный в файле &amp;lt;code&amp;gt;/opt/qas/logs/log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Передать полученный UUID руководителю проекта для оформления лицензии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Установка моделей&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
В составе QAS используются модели векторизации, и генеративные модели LLM. &lt;br /&gt;
&lt;br /&gt;
Модели векторизации располагаются в папках: &lt;br /&gt;
&lt;br /&gt;
* /opt/qas/pretrained/embeddings/questions - для работы с кэшем вопросов&lt;br /&gt;
* /opt/qas/pretrained/embeddings/docs - для работы с документами&lt;br /&gt;
* /opt/qas/pretrained/embeddings/rerank - для реранжирования документов&lt;br /&gt;
&lt;br /&gt;
Расположение моделей LLM: /opt/qas/pretrained/gpt/&amp;lt;имя_модели&amp;gt;/. Например , встроенная модель LLM: /opt/qas/pretrained/gpt/default/. Модели после установки QAS должны быть добавлены системным администратором.&lt;br /&gt;
&lt;br /&gt;
QAS допускает использование дополнительных моделей LLM. Каждая из таких моделей должна быть в отдельной папке каталога /opt/qas/pretrained/gpt/&amp;lt;имя_модели&amp;gt;/. Если модель формата GGUF, то достаточно поместить ее в свою папку в  /opt/qas/pretrained/gpt/. В остальных случаях (в том числе и если необходимо обращаться к стороннему api) в папке модели должен быть файл handler.py с функцией handler(prompt=&#039;тут текст&#039;,params={параметры запроса, см. в руководстве пользователя в метода добавления шаблона запроса}), которая возвращает сгенерированный текст.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Работа в составе кластера&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
Для высоконагруженных систем сервис можно расположить на нескольких нодах (виртуальных машинах). В этом случае, чтобы не потерять документы и изменения, полученные на одной из нод, выделяется один основной сервис и вспомогательные сервисы:&lt;br /&gt;
&lt;br /&gt;
* База файловая, в папке data.&lt;br /&gt;
* lsync настроен через конфиг QAS для репликации базы на все указанные серверы в списке cluster.nodes: [], указываем все слейв-сервера.&lt;br /&gt;
* На всех слейвах прописан в конфиге master, чтобы все операции добавления и изменения данных при автокешировании они производили через мастер. Параметр в конфиге questions.master, на мастере значение «&amp;lt;nowiki&amp;gt;http://127.0.0.1:6187»&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
* Векторная база на каждом сервере своя, она следит за своей папкой data и обновляет в оперативке по этой папке данные у себя.&lt;br /&gt;
* UPS при изменении данных работает только с мастером QAS, а при запросе данных — со всеми серверами cluster, распределяя нагрузку.&lt;br /&gt;
* В конфигурации UPS: в servers.qas.trainer указываем мастер-сервер, в servers.qas.cluster перечисляем все сервера кластера QAS, в том числе и мастер.&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Конфигурирование параметров сервиса&#039;&#039;&#039; =====&lt;br /&gt;
Настройка параметров сервиса qas производится в файле /opt/qas/config.json.&lt;br /&gt;
&lt;br /&gt;
Описание параметров приведено в таблице.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|reloader.period&lt;br /&gt;
|60&lt;br /&gt;
|Период обновления векторов базы вопросов и документов.&lt;br /&gt;
|-&lt;br /&gt;
|gpt.instances&lt;br /&gt;
|1&lt;br /&gt;
|Количество экземпляров встроенной нейросети&lt;br /&gt;
|-&lt;br /&gt;
|gpt.gpu_layers&lt;br /&gt;
|12&lt;br /&gt;
|Количество слоёв gpt нейросети, загружаемых в память видеокарты. Остальные слои загрузятся в оперативную память. Чтобы загрузить &#039;&#039;&#039;всю&#039;&#039;&#039; модель в ГПУ использовать значение &amp;quot;&#039;&#039;&#039;-1&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|gpt.context&lt;br /&gt;
|32768&lt;br /&gt;
|Размер контекста встроенной нейросети.&lt;br /&gt;
|-&lt;br /&gt;
|logs.path&lt;br /&gt;
|logs/&lt;br /&gt;
|Папка для хранения логов. Примеры абсолютного пути: &amp;quot;/var/log/qas/&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|logs.backups&lt;br /&gt;
|10&lt;br /&gt;
|Количество файлов ротации.&lt;br /&gt;
|-&lt;br /&gt;
|logs.maxSize&lt;br /&gt;
|5242880&lt;br /&gt;
|Максимальный размер файла в байтах, триггер для ротации.&lt;br /&gt;
|-&lt;br /&gt;
|cache.size&lt;br /&gt;
|2560000&lt;br /&gt;
|Максимальный размер кэша векторов&lt;br /&gt;
|-&lt;br /&gt;
|cache.update&lt;br /&gt;
|3600&lt;br /&gt;
|Период сохранения кэша на диск (секунды)&lt;br /&gt;
|-&lt;br /&gt;
|fragments.context&lt;br /&gt;
|16384&lt;br /&gt;
|Максимальная длина текста, которая будет подана в генератор для поиска ответа на вопрос.&lt;br /&gt;
|-&lt;br /&gt;
|fragments.threshold&lt;br /&gt;
|0.5&lt;br /&gt;
|Уровень достоверности при векторном поиске фрагментов в загруженных документах.&lt;br /&gt;
|-&lt;br /&gt;
|fragments.limit&lt;br /&gt;
|1&lt;br /&gt;
|Максимальное количество фрагментов, которые должны быть найдены в документах в порядке убывания доверия.&lt;br /&gt;
|-&lt;br /&gt;
|fragments.alpha&lt;br /&gt;
|0.5&lt;br /&gt;
|Параметр alpha — весовой коэффициент в формуле итоговой релевантности фрагмента, которая объединяет результаты двух моделей: векторизации и реранжирования.&lt;br /&gt;
Настройка параметра:&lt;br /&gt;
&lt;br /&gt;
- Высокие значения (близкие к 1.0): Система в большей степени доверяет результатам модели векторизации. &lt;br /&gt;
&lt;br /&gt;
- Низкие значения (близкие к 0.0): Система больше полагается на более точную, но ресурсоемкую модель реранжирования.&lt;br /&gt;
|-&lt;br /&gt;
|fragments.filters&lt;br /&gt;
|[&lt;br /&gt;
&amp;quot;^\\d+\\.$&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;^[^\\S\n]*[(\\{\\[«\&amp;quot;]?\\d+\\.[^\\S\\\n]*$&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;^[{}\\[\\]]$&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;^[a-z]{2,3}\\.?$&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;^(?:https?|ftp|www|com|org|net|io|co|edu|gov|html)$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
|Список регулярных выражений, который используются как фильтр мусора для векторизации. Все что вызывает положительно срабатывание не будет векторизовано.&lt;br /&gt;
|-&lt;br /&gt;
|questions.master&lt;br /&gt;
|&amp;quot;&amp;lt;nowiki&amp;gt;http://127.0.0.1:6187&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
|Адрес мастер-сервера для работы в кластере. Необходим, чтобы добавленные вопросы распространились на серверы кластера.&lt;br /&gt;
|-&lt;br /&gt;
|questions.threshold&lt;br /&gt;
|0.9&lt;br /&gt;
|Минимальный уровень достоверности ответа для попадания в кеш.&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.log&lt;br /&gt;
|Расположение лог-файла синхронизации (актуально для мастер-сервера).&lt;br /&gt;
|-&lt;br /&gt;
|cluster.logfile&lt;br /&gt;
|logs/sync.status&lt;br /&gt;
|Расположение файла статуса lsyncd (актуально для мастер-сервера)&lt;br /&gt;
|-&lt;br /&gt;
|cluster.nodes&lt;br /&gt;
|[ ]&lt;br /&gt;
|Ноды кластера, на которые с мастер-сервера будут распространяться изменения.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Сбор данных об ошибках&#039;&#039;&#039; =====&lt;br /&gt;
Логи сервиса по умолчанию находятся в файле /opt/qas/logs/log.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Удаление&#039;&#039;&#039;=====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/qas/uninstall&amp;lt;/code&amp;gt;. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=PVE._%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B0_%D0%BE%D0%BA%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=3450</id>
		<title>PVE. Установка сервисного пакета окружения</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=PVE._%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B0_%D0%BE%D0%BA%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=3450"/>
		<updated>2025-12-26T09:55:47Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Пакет Python Virtual Environment (PVE) предназначен для подготовки виртуального Python3 окружения для работы сервисов:&lt;br /&gt;
    • Simple Entity Extractor&lt;br /&gt;
    • Simple Message Classifier&lt;br /&gt;
    • Short Phrase Recognizer&lt;br /&gt;
    • Simple Biometry Server&lt;br /&gt;
    • Text To Speech Server&lt;br /&gt;
    • Question Answering System&lt;br /&gt;
    • Script Engine Service&lt;br /&gt;
    • Report Engine Service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Термины и определения&#039;&#039;&#039;=====&lt;br /&gt;
Python Virtual Environment (PVE) – пакет для установки Python3 окружения для сервисов. Самостоятельно PVE не используется.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Расчет нагрузки&#039;&#039;&#039;=====&lt;br /&gt;
Для установки пакета требуется свободное место в каталоге /opt не менее 4Gb без поддержки видеокарты и/или 12Gb с поддержкой.&lt;br /&gt;
&lt;br /&gt;
Также при установке используется временная папка /tmp/archive, куда распаковывается содержимое архива до 9Gb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Установка/обновление пакета окружения&#039;&#039;&#039;=====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/pve&amp;amp;fileid=612 Дистрибутив] распространяется в виде универсального установочного пакета. Для установки пакета запустить инсталлятор с требуемыми ключами. При запуске без ключей инсталлятор выдаст короткую справку. Пакет может быть установлен в &#039;&#039;онлайн&#039;&#039;-режиме при наличии прямого доступа в интернет или через прокси. Для установки в &#039;&#039;оффлайн&#039;&#039;-режиме сперва нужно запустить экземпляр скрипта на копии целевой системы (версии и ядра) с доступом в интернет.&lt;br /&gt;
* Загрузить последнюю версию окружения  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/pve/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/pve&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить PVE &amp;lt;code&amp;gt;/opt/pve/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/pve/inupdate -b&amp;lt;/code&amp;gt; – обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/pve/inupdate -r&amp;lt;/code&amp;gt; – обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/pve/inupdate -n&amp;lt;/code&amp;gt; – обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Проверить актуальную версию окружения &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/pve/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/pve/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; – это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с окружением можно добавить 2 файла конфигурации (данные файлы также будут использоваться продуктами при отсутствии у них своих):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/pve/.userapi (это файл авторизации в API, нужен для обновления)&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/pve/.proxy (это файл конфигурации proxy, необходим для обновления, при отсутствующем прямом подключении к интернету)&lt;br /&gt;
При установке рядом со скриптом окружения можно положить freeze.txt с альтернативным набором модулей. В потоке вывода в результате вы увидите сообщение «Существует внешний файл — список модулей pip3».&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Варианты использование инсталлятора&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
Описание ключей установки приведено в таблице&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр,&lt;br /&gt;
назначение&lt;br /&gt;
!Параметр,&lt;br /&gt;
назначение&lt;br /&gt;
!Параметр,&lt;br /&gt;
назначение&lt;br /&gt;
!Примечание&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;-i/--install - установить окружение&#039;&#039;&lt;br /&gt;
| -on/--online - онлайн&lt;br /&gt;
| -cpu/--cpu - полный набор pip3 модулей под CPU&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; |Данные наборы ключей используются совместно, в разных комбинациях. Чтобы установить в оффлайн-режиме, необходимо собрать скрипт с ключом -b/--build. Установка с ключом CPU актуальна при отсутствии видеокарты в системе, окружение занимает всего ~3Gb. &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| -off/--offline - оффлайн&lt;br /&gt;
| -cu11/--cu11- полный набор pip3 модулей под GPU CU11.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -cu12/--cu12 - полный набор pip3 модулей под GPU CU12.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -ups/--ups - отдельное окружение для ups&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -res/--res - отдельное окружение для res&lt;br /&gt;
|-&lt;br /&gt;
| -u/--update - обновить окружение&lt;br /&gt;
| -on/--online - онлайн&lt;br /&gt;
| -cpu/--cpu - полный набор pip3 модулей под CPU&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; |Данные наборы ключей используются совместно, в разных комбинациях. Чтобы обновить в оффлайн режиме, необходимо собрать скрипт с ключом -b/--build. Обновление с ключом CPU актуально при отсутствии видеокарты в системе, окружение занимает всего ~3Gb. Обновление отличается от установки тем, что пропускается этап установки системных пакетов. Ставится только окружение с модулями. Оффлайн инсталлятор с ключом обновления становится универсальным под любую ОС, так как не зависим от системных пакетов.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| -off/--offline - оффлайн&lt;br /&gt;
| -cu11/--cu11- полный набор pip3 модулей под GPU CU11.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -cu12/--cu12 - полный набор pip3 модулей под GPU CU12.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -ups/--ups - отдельное окружение для ups&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -res/--res - отдельное окружение для res&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -ses/--ses - отдельное окружение для ses&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -qas-cpu/--qas-cpu - отдельное окружение для QAS под CPU&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -qas-cu12/--qas-cu12 - отдельное окружение для QAS под CUDA12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| -b/--build - скачать все пакеты, и модули, и упаковать в скрипт &lt;br /&gt;
|&#039;&#039;-i/--install - для установки с системными пакетами&#039;&#039;&lt;br /&gt;
| -f/--full - полный набор pip3 модулей под все типы&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Данные наборы ключей используются совместно, в разных комбинациях. Сборка с ключом CPU актуальна при отсутствии видеокарты в системе, собранный инсталлятор весит ~1Gb. Ключ полного набора модулей делает инсталлятор универсальным, но такой инсталлятор весит ~9Gb. Если инсталлятор был собран с ключом установки под другую ОС, его также можно использовать с ключом обновления для текущей или любой другой. Если набор модулей, который включен в оффлайн инсталлятор, недостаточен, он попытается загрузить недостающие модули из интернета напрямую или предложит ввести настройки прокси.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| -u/--update - для обновления, только окружение&lt;br /&gt;
| -cpu/--cpu - полный набор pip3 модулей под CPU&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -cu11/--cu11- полный набор pip3 модулей под GPU CU11.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -cu12/--cu12 - полный набор pip3 модулей под GPU CU12.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -ups/--ups - отдельное окружение для ups&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -res/--res - отдельное окружение для res&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -ses/--ses - отдельное окружение для ses&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -qas-cpu/--qas-cpu - отдельное окружение для QAS под CPU&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -qas-cu12/--qas-cu12 - отдельное окружение для QAS под CUDA12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| -u/--uninstall - удалить окружение&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Одинарный ключ, удаляет окружение из папки /opt&lt;br /&gt;
|-&lt;br /&gt;
| -e/--extract - скопировать внутренний архив рядом со скриптом&lt;br /&gt;
| -d/--dir путь/имя_каталога&lt;br /&gt;
|&lt;br /&gt;
|Второй аргумент не обязательный. Без указания папки, распакуется архив. С указанием папки, распакуется содержимое архива в указанную папку.&lt;br /&gt;
|-&lt;br /&gt;
| -p/--pack имя_архива - запаковать архив в скрипт&lt;br /&gt;
| -d/--dir путь/имя_каталога&lt;br /&gt;
|&lt;br /&gt;
|Второй аргумент не обязательный. Без указания папки к установщику прикрепляем архив. С указанием папки к установщику прикрепляем содержимое каталога.&lt;br /&gt;
|-&lt;br /&gt;
| -n/--null - удалить внутренний архив из скрипта&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Удаляем внутренний архив из инсталлятора. Редактирование инсталлятора с архивом может привести к повреждению архива.&lt;br /&gt;
|}&lt;br /&gt;
Примеры использования ключей:&lt;br /&gt;
&lt;br /&gt;
-- Установить окружение с полным набором модулей под CPU.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i -cpu -on&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Установить окружение из заранее собранного инсталлятора с полным набором модулей под CPU.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i -cpu -off&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Собрать все пакеты для установки оффлайн окружения с полным набором модулей под CPU.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -b -i -cpu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Собрать все пакеты для обновления оффлайн окружения с полным набором модулей под CPU.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -b -u -cpu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Скопировать внутренний архив рядом со скриптом, не распаковывая в папку.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -e&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Запаковать архив в скрипт.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -p &amp;lt;service&amp;gt;-offline.tgz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Сжать каталог и запаковать архив в скрипт.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -p -d &amp;lt;имя каталога&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Распаковать внутренний архив рядом со скриптом в каталог.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -e -d archive&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Удалить внутренний архив из скрипта.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh --null&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Удалить окружение.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh --uninstall&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Удаление окружения&#039;&#039;&#039;=====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/pve/uninstall&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
	<entry>
		<id>https://wiki.connect2ai.net/index.php?title=PVE._%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B0_%D0%BE%D0%BA%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=3371</id>
		<title>PVE. Установка сервисного пакета окружения</title>
		<link rel="alternate" type="text/html" href="https://wiki.connect2ai.net/index.php?title=PVE._%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B0_%D0%BE%D0%BA%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=3371"/>
		<updated>2025-11-25T10:40:23Z</updated>

		<summary type="html">&lt;p&gt;KorolkovS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== &#039;&#039;&#039;Общее описание&#039;&#039;&#039; =====&lt;br /&gt;
Пакет Python Virtual Environment (PVE) предназначен для подготовки виртуального Python3 окружения для работы сервисов:&lt;br /&gt;
    • Simple Entity Extractor&lt;br /&gt;
    • Simple Message Classifier&lt;br /&gt;
    • Short Phrase Recognizer&lt;br /&gt;
    • Simple Biometry Server&lt;br /&gt;
    • Text To Speech Server&lt;br /&gt;
    • Question Answering System&lt;br /&gt;
    • Script Engine Service&lt;br /&gt;
    • Report Engine Service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Термины и определения&#039;&#039;&#039;=====&lt;br /&gt;
Python Virtual Environment (PVE) – пакет для установки Python3 окружения для сервисов. Самостоятельно PVE не используется.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Расчет нагрузки&#039;&#039;&#039;=====&lt;br /&gt;
Для установки пакета требуется свободное место в каталоге /opt не менее 4Gb без поддержки видеокарты и/или 19Gb с поддержкой.&lt;br /&gt;
&lt;br /&gt;
Также при установке используется временная папка /tmp/archive, куда распаковывается содержимое архива до 17Gb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Установка/обновление пакета окружения&#039;&#039;&#039;=====&lt;br /&gt;
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/pve&amp;amp;fileid=612 Дистрибутив] распространяется в виде универсального установочного пакета. Для установки пакета запустить инсталлятор с требуемыми ключами. При запуске без ключей инсталлятор выдаст короткую справку. Пакет может быть установлен в &#039;&#039;онлайн&#039;&#039;-режиме при наличии прямого доступа в интернет или через прокси. Для установки в &#039;&#039;оффлайн&#039;&#039;-режиме сперва нужно запустить экземпляр скрипта на копии целевой системы (версии и ядра) с доступом в интернет.&lt;br /&gt;
* Загрузить последнюю версию окружения  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/pve/new&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1 | bash&amp;lt;/code&amp;gt; или в интерактивном режиме &amp;lt;code&amp;gt;bash -c &amp;quot;$(curl -s &amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/pve&amp;lt;/nowiki&amp;gt; --user &#039;[user]:[pass]&#039; 2&amp;gt;&amp;amp;1)&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Обновить PVE &amp;lt;code&amp;gt;/opt/pve/inupdate&amp;lt;/code&amp;gt; в интерактивном режиме. Или запустить с ключом:&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/pve/inupdate -b&amp;lt;/code&amp;gt; – обновить до последней beta версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/pve/inupdate -r&amp;lt;/code&amp;gt; – обновить до последней release версии;&lt;br /&gt;
** &amp;lt;code&amp;gt;/opt/pve/inupdate -n&amp;lt;/code&amp;gt; – обновить до последней версии (неважно beta или release).&lt;br /&gt;
* Проверить актуальную версию окружения &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/pve/version&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Посмотреть лог изменений  &amp;lt;code&amp;gt;curl -s &amp;quot;&amp;lt;nowiki&amp;gt;https://repo.connect2ai.net/api/pve/changelog&amp;lt;/nowiki&amp;gt;&amp;quot; --user &#039;[user]:[pass]&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Полное описание всех команд API репозитория можно найти по ссылке &#039;&#039;&#039;https://repo.connect2ai.net/api&#039;&#039;&#039;. &amp;lt;code&amp;gt;[user]:[pass]&amp;lt;/code&amp;gt; – это тот же логин и пароль, что и от [https://cloud.connect2ai.net &#039;&#039;&#039;Nextcloud&#039;&#039;&#039;.]&lt;br /&gt;
* В папке с окружением можно добавить 2 файла конфигурации (данные файлы также будут использоваться продуктами при отсутствии у них своих):&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;[user]:[pass]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/pve/.userapi (это файл авторизации в API, нужен для обновления)&lt;br /&gt;
** echo -n &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;http://example.com:3128&amp;lt;/nowiki&amp;gt; [user] [password]&amp;quot;&amp;lt;/code&amp;gt;  &amp;gt; /opt/pve/.proxy (это файл конфигурации proxy, необходим для обновления, при отсутствующем прямом подключении к интернету)&lt;br /&gt;
При установке рядом со скриптом окружения можно положить freeze.txt с альтернативным набором модулей. В потоке вывода в результате вы увидите сообщение «Существует внешний файл — список модулей pip3».&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;Варианты использование инсталлятора&#039;&#039;&#039;=====&lt;br /&gt;
&lt;br /&gt;
Описание ключей установки приведено в таблице&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Параметр,&lt;br /&gt;
назначение&lt;br /&gt;
!Параметр,&lt;br /&gt;
назначение&lt;br /&gt;
!Параметр,&lt;br /&gt;
назначение&lt;br /&gt;
!Примечание&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;-i/--install - установить окружение&#039;&#039;&lt;br /&gt;
| -on/--online - онлайн&lt;br /&gt;
| -cpu/--cpu - полный набор pip3 модулей под CPU&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; |Данные наборы ключей используются совместно, в разных комбинациях. Чтобы установить в оффлайн-режиме, необходимо собрать скрипт с ключом -b/--build. Установка с ключом CPU актуальна при отсутствии видеокарты в системе, окружение занимает всего ~3Gb. &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| -off/--offline - оффлайн&lt;br /&gt;
| -cu11/--cu11- полный набор pip3 модулей под GPU CU11.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -cu12/--cu12 - полный набор pip3 модулей под GPU CU12.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -ups/--ups - отдельное окружение для ups&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -res/--res - отдельное окружение для res&lt;br /&gt;
|-&lt;br /&gt;
| -u/--update - обновить окружение&lt;br /&gt;
| -on/--online - онлайн&lt;br /&gt;
| -cpu/--cpu - полный набор pip3 модулей под CPU&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; |Данные наборы ключей используются совместно, в разных комбинациях. Чтобы обновить в оффлайн режиме, необходимо собрать скрипт с ключом -b/--build. Обновление с ключом CPU актуально при отсутствии видеокарты в системе, окружение занимает всего ~3Gb. Обновление отличается от установки тем, что пропускается этап установки системных пакетов. Ставится только окружение с модулями. Оффлайн инсталлятор с ключом обновления становится универсальным под любую ОС, так как не зависим от системных пакетов.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| -off/--offline - оффлайн&lt;br /&gt;
| -cu11/--cu11- полный набор pip3 модулей под GPU CU11.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -cu12/--cu12 - полный набор pip3 модулей под GPU CU12.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -ups/--ups - отдельное окружение для ups&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -res/--res - отдельное окружение для res&lt;br /&gt;
|-&lt;br /&gt;
| -b/--build - скачать все пакеты, и модули, и упаковать в скрипт &lt;br /&gt;
|&#039;&#039;-i/--install - для установки с системными пакетами&#039;&#039;&lt;br /&gt;
| -f/--full - полный набор pip3 модулей под все типы&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Данные наборы ключей используются совместно, в разных комбинациях. Сборка с ключом CPU актуальна при отсутствии видеокарты в системе, собранный инсталлятор весит ~1Gb. Ключ полного набора модулей делает инсталлятор универсальным, но такой инсталлятор весит ~9Gb. Если инсталлятор был собран с ключом установки под другую ОС, его также можно использовать с ключом обновления для текущей или любой другой. Если набор модулей, который включен в оффлайн инсталлятор, недостаточен, он попытается загрузить недостающие модули из интернета напрямую или предложит ввести настройки прокси.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| -u/--update - для обновления, только окружение&lt;br /&gt;
| -cpu/--cpu - полный набор pip3 модулей под CPU&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -cu11/--cu11- полный набор pip3 модулей под GPU CU11.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -cu12/--cu12 - полный набор pip3 модулей под GPU CU12.8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -ups/--ups - отдельное окружение для ups&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| -res/--res - отдельное окружение для res&lt;br /&gt;
|-&lt;br /&gt;
| -u/--uninstall - удалить окружение&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Одинарный ключ, удаляет окружение из папки /opt&lt;br /&gt;
|-&lt;br /&gt;
| -e/--extract - скопировать внутренний архив рядом со скриптом&lt;br /&gt;
| -d/--dir путь/имя_каталога&lt;br /&gt;
|&lt;br /&gt;
|Второй аргумент не обязательный. Без указания папки, распакуется архив. С указанием папки, распакуется содержимое архива в указанную папку.&lt;br /&gt;
|-&lt;br /&gt;
| -p/--pack имя_архива - запаковать архив в скрипт&lt;br /&gt;
| -d/--dir путь/имя_каталога&lt;br /&gt;
|&lt;br /&gt;
|Второй аргумент не обязательный. Без указания папки к установщику прикрепляем архив. С указанием папки к установщику прикрепляем содержимое каталога.&lt;br /&gt;
|-&lt;br /&gt;
| -n/--null - удалить внутренний архив из скрипта&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Удаляем внутренний архив из инсталлятора. Редактирование инсталлятора с архивом может привести к повреждению архива.&lt;br /&gt;
|}&lt;br /&gt;
Примеры использования ключей:&lt;br /&gt;
&lt;br /&gt;
-- Установить окружение с полным набором модулей под CPU.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i -cpu -on&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Установить окружение из заранее собранного инсталлятора с полным набором модулей под CPU.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -i -cpu -off&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Собрать все пакеты для установки оффлайн окружения с полным набором модулей под CPU.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -b -i -cpu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Собрать все пакеты для обновления оффлайн окружения с полным набором модулей под CPU.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -b -u -cpu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Скопировать внутренний архив рядом со скриптом, не распаковывая в папку.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -e&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Запаковать архив в скрипт.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -p &amp;lt;service&amp;gt;-offline.tgz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Сжать каталог и запаковать архив в скрипт.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -p -d &amp;lt;имя каталога&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Распаковать внутренний архив рядом со скриптом в каталог.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh -e -d archive&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Удалить внутренний архив из скрипта.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh --null&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  -- Удалить окружение.&lt;br /&gt;
&lt;br /&gt;
  Пример использования: &amp;lt;code&amp;gt;./pve-&amp;lt;версия&amp;gt;-&amp;lt;релиз&amp;gt;.sh --uninstall&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;&#039;Удаление окружения&#039;&#039;&#039;=====&lt;br /&gt;
Для удаления выполните команду: &amp;lt;code&amp;gt;/opt/pve/uninstall&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>KorolkovS</name></author>
	</entry>
</feed>