Действия

UPS. Описание API: различия между версиями

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

Строка 875: Строка 875:
{| class="wikitable"  style="width: 110%"
{| class="wikitable"  style="width: 110%"
|+
|+
!style="color:green;width: 15%" |'''POST'''
!style="color:green;width: 15%" |'''POST/marks/add'''
! colspan="3" style="width: 85%" |Получение
! colspan="3" style="width: 85%" |Добавление набора менток
|-
|-
| colspan="2" style="width: 50%" |<small>вход</small>
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |<small>выход</small>
* <small>'''json''' - список меток в формате: [ [  "метка1",</small>
 
<small>      ["синоним1", "синоним2", "синоним3", "синонимN" ], 0.9 # достоверность для метки (0 - 1)</small>
 
<small>    ],  [ "меткаN",</small>
 
<small>      ["синоним11", "синоним21","синоним31", "синонимN1"], 0.9 # достоверность для метки (0 - 1)</small>
 
<small>    ] ]</small>
 
* <small>'''name''' - имя создаваемого набора</small>
| colspan="2" style="width: 50%" |<small>{</small>
 
<small>  "error": 0,</small>
 
<small>  "message": "success",</small>
 
<small>  "id": "132310fa-98c7-4b12-896f-ff113827d077"</small>
 
<small>}</small>
|-
|-
!style="color:red;width: 15%" |'''DELETE'''
!style="color:red;width: 15%" |'''DELETE/marks/delete/{id}'''
! colspan="3" style="width: 85%" |Получение
! colspan="3" style="width: 85%" |Удаление набора меток
|-
|-
| colspan="2" style="width: 50%" |<small>вход</small>
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |<small>выход</small>
* <small>'''id''' - идентификатор набора меток</small>
| colspan="2" style="width: 50%" |<small>{</small><small>  "error": 0,</small>
 
<small>  "message": "success"</small> <small>}</small>


|-
|-
!style="color:blue;width: 15%" |'''GET'''
!style="color:blue;width: 15%" |'''GET/marks/export/{id}'''
! colspan="3" style="width: 85%" |Получение
! colspan="3" style="width: 85%" |Получение набора меток в виде строк
|-
|-
| colspan="2" style="width: 50%" |<small>вход</small>
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |<small>выход</small>
* <small>'''id''' - идентификатор набора меток</small>
| colspan="2" style="width: 50%" |<small>Пример:</small>
 
<small>метка1    синоним1,синоним2,синоним3,синонимN    0.9</small>
 
<small>меткаN    синоним11,синоним21,синоним31,синонимN1    0.9</small>
|-
|-
!style="color:blue;width: 15%" |'''GET'''
!style="color:blue;width: 15%" |'''GET/marks/get/{id}'''
! colspan="3" style="width: 85%" |Получение
! colspan="3" style="width: 85%" |Получение набора меток в виде json
|-
|-
| colspan="2" style="width: 50%" |<small>вход</small>
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |<small>выход</small>
* <small>'''id''' - идентификатор набора меток</small>
| colspan="2" style="width: 50%" |<small>Пример:</small>
 
<small>{  "error": 0,</small>
 
<small>  "message": "success",</small>
 
<small>  "data": [</small>
 
<small>    ["метка1", [ "синоним1", "синоним2", "синоним3", "синонимN"  ],</small>
 
<small>      0.9</small>
 
<small>    ],</small>
 
<small>    ["меткаN", ["синоним11","синоним21", "синоним31","синонимN1"],</small>
 
<small>      0.9</small>
 
<small>    ]  ] }</small>
|-
|-
!style="color:green;width: 15%" |'''POST'''
!style="color:green;width: 15%" |'''POST/marks/import/{id}'''
! colspan="3" style="width: 85%" |Получение
! colspan="3" style="width: 85%" |Импорт в существующий набор меток из файла. <small>Набор будет переписан из файла</small>
|-
|-
| colspan="2" style="width: 50%" |<small>вход</small>
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |<small>выход</small>
* <small>'''csv''' - файл "метка"ТАБ"синонимы через запятую"ТАБ"достоверность(число от 0 до 1)"</small>
 
* <small>'''id''' - идентификатор набора</small>
| colspan="2" style="width: 50%" |<small>{</small><small>  "error": 0,</small>
 
<small>  "message": "success"</small> <small>}</small>
|-
|-
!style="color:blue;width: 15%" |'''GET'''
!style="color:blue;width: 15%" |'''GET/marks/list'''
! colspan="3" style="width: 85%" |Получение
! colspan="3" style="width: 85%" |Получение списка наборов меток
|-
|-
| colspan="2" style="width: 50%" |<small>вход</small>
| colspan="2" style="width: 50%" |<small>Нет входных параметров</small>
| colspan="2" style="width: 50%" |<small>выход</small>
| colspan="2" style="width: 50%" |<small>Пример:</small>
 
<small>{  "error": 0,</small>
 
<small>  "message": "success",</small>
 
<small>  "result": [    { "id": "416fbe08-19e9-453c-b140-37008a08a76c","name": "test" },</small>
 
<small>    {"id": "16e77fa2-7c4d-47f9-8644-6385876525d6","name": "Рыжик" },</small>
 
<small>    {"id": "132310fa-98c7-4b12-896f-ff113827d077", "name": "test" }</small>
 
<small>  ]}</small>
|-
|-
!style="color:green;width: 15%" |'''POST'''
!style="color:green;width: 15%" |'''POST/marks/put/{id}'''
! colspan="3" style="width: 85%" |Получение
! colspan="3" style="width: 85%" |Импорт в существующий набор меток из json строки. <small>Набор будет переписан</small>
|-
|-
| colspan="2" style="width: 50%" |<small>вход</small>
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |<small>выход</small>
* <small>'''json''' - список меток в формате: [ [  "метка1",</small>
 
<small>      ["синоним1", "синоним2", "синоним3", "синонимN" ], 0.9 # достоверность для метки (0 - 1)</small>
 
<small>    ],  [ "меткаN",</small>
 
<small>      ["синоним11", "синоним21","синоним31", "синонимN1"], 0.9 # достоверность для метки (0 - 1)</small>
 
<small>    ] ]</small>
 
* <small>id - идентификатор заменяемого набора меток</small>
| colspan="2" style="width: 50%" |<small>{</small><small>  "error": 0,</small>
 
<small>  "message": "success"</small> <small>}</small>
|-
|-
!style="color:green;width: 15%" |'''POST'''
!style="color:green;width: 15%" |'''POST/marks/rename/{id}'''
! colspan="3" style="width: 85%" |Получение
! colspan="3" style="width: 85%" |Присваивает новое наименование существующему набору меток
|-
|-
| colspan="2" style="width: 50%" |<small>вход</small>
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |<small>выход</small>
* <small>'''id''' - идентификатор набора меток</small>
* <small>'''name''' - новое имя набора</small>
| colspan="2" style="width: 50%" |<small>{</small><small>  "error": 0,</small>
 
<small>  "message": "success"</small> <small>}</small>
|}
|}



Версия от 19:22, 23 октября 2024

Описание часто используемых параметров
Параметр Тип Описание
servicetype запрос Тип сервиса. Возможные значения: spr, smc, see, sbs, tts
servertype запрос Тип группы серверов. Возможные значения: trainer (серверы обучения), cluster (рабочие серверы)
model запрос Название модели
modeltype запрос Тип модели. Возможные значения: future — планируемая/черновик, current — текущая/рабочая, previous — архивная.
error ответ Флаг ошибки
message ответ Информационное сообщение


"/external modules" методы внешних модулей

В этом разделе будут методы соответствующим образом оформленных внешних модулей

/auth: методы авторизации
POST/auth/access Получение токенов доступа. Токен доступа определяет, какие из методов будут доступны конкретному пользователю. Формируется на основании роли. Дополнительный входной параметр во всех методах, кроме перечисленных в разделе «nopassword» конфигурационного файла. Время действия токена определяется параметром auth.accessLifeTime конфигурационного файла.
  • username — логин
  • password — пароль
{

"x-access-token": "XXXXXXXXXXXXXXXXXXXX",

"x-refresh-token": "XXXXXXXXXXXXXXXXXXXX"

}

POST/auth/dataset/add Добавление dataset (набора данных) dataset (набор данных) используется для ограничения доступа к данным. В ответе метод вернет id созданного набора данных.
  • data - json строка вида: {    "name": "название нового набора"    }
{

"error": 0

"message": "success",

"dataset_id": "XXXXXXXXXXXXX"

}

DELETE/auth/dataset/delete/{id} Удаление dataset (набора данных).
  • id — идентификатор набора данных
{

"error": 0,

"message": "success"

}

POST/auth/dataset/modify/{id} Переименование dataset (набора данных) Метод меняет все параметры набора данных, но на данный момент времени у набора данных, кроме id, только один параметр — наименование.
  • id — идентификатор набора данных
  • data — JSON c новыми параметрами
{

"error": 0,

"message": "success"

}

GET/auth/datasets Получение списка наборов данных
Нет входных параметров [

{"id": "XXXXXXXXXXXXXXXXXX",

"name": "XXX"},

{"id": "0",

"name": "По умолчанию"}

]

GET/auth/refresh Обновление токенов доступа. Время, в течение которого можно обновить доступ, регулируется параметром auth.refreshLifeTime конфигурационного файла. Служебный метод, используется в основном в веб-интерфейсе, чтобы не запрашивать лишний раз пароль.
  • x-refresh-token — токен обновления доступа
{

"x-access-token": "XXXXXXXXXXXXXXXXXXXX",

"x-refresh-token": "XXXXXXXXXXXXXXXXXXXX"

}

GET/auth/rights Получение списка прав доступа. Служебный метод — по токену получает название роли и все права доступа этой роли, а также общедоступные методы.
Нет входных параметров <<<{  "РОЛЬ": [

    "GET:/......"  ],

  "nopassword": [    "GET:/.......",

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

<<<...............

    "POST:/......." ] }

POST/auth/role/add Создание роли. Служебный метод — используется веб-интерфейсом при создании роли.
  • data — JSON с параметрами роли:{

"name": "проверка создания",

"rights": [    "набор прав через запятую" ]

}

{

"error": 0, "message": "success", "role_id": "a7e68bb83169f864c2fc868401b5250c"

}

DELETE/auth/role/delete/{id} Удаление роли.
  • id роли
{"error": 0,"message": "success"}
POST/auth/role/modify/{id} Изменение роли. Параметры как при создании роли. Роль будет переписана.
  • id роли
  • data — JSON с параметрами роли:{

"name": "проверка создания",

"rights": [    "набор прав через запятую" ]

}

{"error": 0,"message": "success"}
GET/auth/roles Получение списка ролей.
Нет входных параметров [{

"id": "XXXXXXXXXXX",

"name": "имя роли",

"rights": [ "набор прав через запятую" ]

},............]

POST/auth/user/add Создание нового пользователя. Метод вернет или id нового пользователя или описание ошибки
  • data - json строка {

"username": "login_name", "fullname": "Отображаемое Имя","password": "XXXXX","role": "role_id",

"dataset": "default dataset id", "datasets": [ "dataset id", ................. ] }

{"error": 0,

"message": "success",

"user_id": "XXXXXXXXXXXXXXXX"}

DELETE/auth/user/delete/{id} Удаление пользователя
  • user_id - идентификатор пользователя
{"error": 0,"message": "success"}
GET/auth/user/get/{id} Получение параметров пользователя
  • user_id - идентификатор пользователя
{"id": "XXXXXXXXXX",

"username": "loginname",

"fullname": "Full Name",

"role": "0",

"dataset": "0",

"datasets": [ "0", "2dc34d3454243522e5407d3a170815a2" ] }

GET/auth/user/info Получение параметров пользователя по его токену доступа. Служебный метод - для предоставления прав текущему пользователю по его токену
  • x-access-token
{"id": "XXXXXXXXXX",

"username": "loginname",

"fullname": "Full Name",

"role": "0",

"dataset": "0",

"datasets": [ "0", "2dc34d3454243522e5407d3a170815a2"] }, "rights": [..........] }

GET/auth/user/list Получение списка пользователей с их параметрами. Тоже самое что и в методе GET /auth/user/info, только для всех пользователей
Нет входных параметров [

{"id": "XXXXXXXXXX",

"username": "loginname",

"fullname": "Full Name",

"role": "0",

"dataset": "0",

"datasets": [ "0", "2dc34d3454243522e5407d3a170815a2"] }, "rights": [..........] },

......

]

POST/auth/user/modify/{id} Изменение параметров пользователя
  • data — параметры пользователя как при создании
  • id — идентификатор пользователя
{ "error": 0,

"message": "success"}

POST/auth/user/password Смена пароля пользователя по его токену доступа.
  • password
{ "error": 0,"message": "success"}
POST/auth/userlog Получение действий пользователя за период времени по его токену
  • from - начало периода в формате "%Y-%m-%d %H:%M"
  • to - конец периода в формате "%Y-%m-%d %H:%M"
{

  "error": 0,

  "message": "success",

  "data": [

    [

      "время",

      "id",

      "метод",

      {измененные данные в формате метода}

    ],

    [

      "время",

      "id",

      "метод",

      {измененные данные в формате метода}

    ],

    .........

}

GET/auth/version Получение версии сервиса ups
Нет входных параметров {

  "version": "4.082 release"

}

/lang: методы мультиязычности
GET/lang/ Выводит информацию о переводе элементов интерфейса на текущий язык
Нет входных параметров { "see":"Сущности",

"smc":"Классификатор",

... }

GET/lang/wallpaper Отдает случайный фон рабочего стола в виде jpeg из каталога «wallpapers» на сервере ups
Нет входных параметров image/jpeg


/server: получение информации о серверах
GET/server/get/addresses/{servicetype} Вывод информации о серверах, обслуживающих данный сервис, а также настроенных параметров обращения к данным серверам.

trainer — сервер обучения, cluster — рабочие серверы, connect — время на подключение, read — время на ответ,

failed — время пребывания в сбойных, install — время на установку модели, info — время на получение информации о модели,

counter — счетчик запросов, current — индекс последнего опрошенного cluster-сервера

fail — массив сбойных серверов со временем постановки в сбой.

  • servicetype — тип сервиса
{  "trainer": "http://127.0.0.1:6181",

  "cluster": [ "http://127.0.0.1:6181"  ],

  "timers": {  "connect": 0.5,

    "read": 1,

    "failed": 600,

    "install": 60,

    "info": 3 },

  "counter": 0,

  "current": 0,

  "fail": {"http://127.0.0.1:6181":1686295678} }

GET/server/get/models/{servicetype}/{servertype} Вывод информации о моделях указанного сервиса на каждом сервере указанного типа. Вывод представляет собой массив URL-серверов, для каждого из которых указан список моделей.
  • servicetype — тип сервиса
  • servertype — тип серверов
{  "http://127.0.0.1:6181": [

    "model1",

    ...

    "modelN"

  ],  ... }

/model: методы работы с моделями
POST/model/add/{servicetype}/{model} Создание пустой модели в указанном сервисе. Доступно для следующих сервисов: smc, see, spr.
  • servicetype — тип сервиса
  • model — название модели
{

"error":0,

"message":"success"

}

POST/model/apply/{servicetype}/{model} Применение установленной на рабочих серверах модели. После применения модель становится доступна для штатного режима работы. Доступно для следующих сервисов: smc, see, spr.
  • servicetype — тип сервиса
  • model — название модели
{

"error":0,

"message":"success"

}

DELETE/model/delete/{servicetype}/{model} Полностью удаляет модель из системы и со всех управляемых серверов. Доступно для следующих сервисов: smc, see, spr.
  • servicetype — тип сервиса
  • model — название модели
{

"error":0,

"message":"success"

}

GET/model/errors/{servicetype}/{model}/{modeltype} Запрос на получение списка ошибок модели после тестирования. Если тестирования не было, то содержит ошибки проверки на обучающем корпусе. Доступен для сервисов see и smc. Ответ содержит список вложенных списков. В каждом три значения: правильное значение, предсказанное моделью значение и начальные данные (фраза).
  • servicetype — тип сервиса
  • model — название модели
  • modeltype — тип модели
[ [true, predicted, phrase],

... ]

GET/model/export/{servicetype}/{model}/{modeltype} Экспорт модели, модель скачивается в виде zip-архива.
  • servicetype — тип сервиса
  • model — название модели
  • modeltype — тип модели
Файл model.zip, где model — название модели
GET/model/handler/{servicetype}/{model} Получение файла-постобработчика из модели типа future.
  • servicetype — тип сервиса
  • model — название модели
Файл handler.py
POST/model/handler/{servicetype}/{model} Отправка файла-постобработчика в указанную модель типа future. Обработчик становится активным сразу после успешной отправки. Более подробно об обработчике см. руководства пользователя smc и see.
  • servicetype — тип сервиса
  • model — название модели
  • handler — файл, содержащий программный код python постобработчика
{"error":0,

"message":"success"

}

DELETE/model/handler/{servicetype}/{model} Удаление постобработчика из модели типа future. Более подробно об обработчике см. руководства пользователя smc и see.
  • servicetype — тип сервиса
  • model — название модели
{"error":0,

"message":"success"

}

GET/model/handler/{servicetype}/{model}/{modeltype} Получение файла-постобработчика из указанной модели указанного типа.
  • servicetype — тип сервиса
  • model — название модели
  • modeltype — тип модели
Файл handler.py
POST/model/handler/{servicetype}/{model}/{modeltype} Отправка файла-постобработчика в указанную модель указанного типа. Становится активным сразу после успешной отправки.
  • modeltype — тип модели
  • servicetype — тип сервиса
  • model — название модели
  • handler — файл, содержащий программный код python постобработчика
{

"error":0,

"message":"success"

}

DELETE/model/handler/{servicetype}/{model}/{modeltype} Удаление постобработчика в указанной модели указанного типа.
  • servicetype — тип сервиса
  • model — название модели
  • modeltype — тип модели
{

"error":0,

"message":"success"

}

POST/model/import/{servicetype}/{model} Импортирует модель в черновик (modeltype=future)
  • servicetype — тип сервиса
  • model — название модели
  • zip-model — zip с файлами модели
{

"error":0,

"message":"success"

}

GET/model/info/{servicetype} Получение информации о всех моделях указанного сервиса. Аналогичен методу GET /info/{servicetype}/{model}, но выводит информацию обо всех моделях.
servicetype — тип сервиса {   "model1": {

    "previous": null,

    "current": null,

    "future": {

      "status": "empty",

      ...

    }   },  ... }

GET/model/info/{servicetype}/{model} Получение информации о каждом типе (modeltype) указанной модели. Итоговый массив содержит переменные типа modeltype, в каждой из который содержится информация о модели.
  • servicetype — тип сервиса
  • model — название модели
{   "previous": null,

  "current":  {

    "status": "trained",

    ... },

  "future": {

    "status": "trained",

    ...  } }

POST/model/install/{servicetype}/{model} Установка импортированной или обученной модели на рабочих серверах.

Доступно для следующих сервисов: smc, see, spr.

  • servicetype — тип сервиса
  • model — название модели
{

"error":0,

"message":"success"

}

GET/model/log/{servicetype}/{model}/{modeltype} Выводит лог обучения и тестирования модели. Доступно для следующих сервисов: smc, see.
  • servicetype — тип сервиса
  • model — название модели
  • modeltype — тип модели
[

  "training",

  "preparing data",

  "tokenizing",

  ...

]

POST/model/restore/{servicetype}/{model} Откат модели. Делает текущую рабочую модель черновиком (future), рабочие серверы после выполнения данного метода продолжают уже с возвращенной моделью. Схематично действия над modeltype в результате выполнения данного метода можно представить так:
  • current -> future
  • previous -> current
  • null -> previous
  • servicetype — тип сервиса
  • model — название модели
{"error":0,

"message":"success"

}

/corpus: работа с данными для обучения моделей

Методы данного класса предназначены только для сервисов smc и see


GET/corpus/automark/list Перечень заданий автоматической маркировки корпусов.
Нет входных параметров {  "error": 0,

  "message": "success",

  "tasks": [ {

      "id": "29d9da98-d6c1-4dc1-bbc9-111309816002",

      "taskname": "test_doc",

      "status": "finished"    },

    {  "id": "1a5e9bdc-9f98-49d2-84de-1a9bde8fc37c",

      "taskname": "sssss",

      "status": "finished"    }  ] }

GET/corpus/automark/result/{id} Результат выполнения задания на автомаркировку корпуса. Если задание завершено в ответе придет маркированый корпус и время старта и финиша задания
  • id - идентификатор задания
{
 "error": 0,
 "message": "success",
 "started": "2024-10-09 18:05:51",
 "finished": "2024-10-09 18:05:51",
 "corpus": [[ [], [ ["тэг"],"фраза 1"]],
   [ [], [["тэг"],"фраза 2"]] ]

}

GET/corpus/automark/start Начать автоматическую разметку корпуса.
  • taskname - произвольное имя задания
  • corpus - json строка с размечаемым корпусом[[ [класс1,... классН], текст ],

[ [класс1,... классН], текст ]]

  • marks - json строка с набором меток [    [ метка, [синоним, синоним2 ... синоним Н], порог ],

[ метка, [синоним, синоним2 ... синоним Н], порог ]]

  • appendMarks - "yes" - дополнить разметку, "no" -заменить разметку
{

  "error": 0,

  "message": "success",

  "id": "уникальный id задания"

}

GET/corpus/automark/status/{id} Получить статус задания на автоматическую разметку корпуса.
  • id - идентификатор задания
{

  "error": "",

  "status": "finished",

  "started": "2024-10-09 13:49:46",

  "finished": "2024-10-09 13:49:46",

  "progress": 0

}

GET/corpus/automark/stop/{id} Прервать задание на автоматическую разметку корпуса.
  • id - идентификатор задания
{  "error": 0,

  "message": "success"}

POST/corpus/copy/{servicetype} Копирования корпуса данных
  • servicetype — тип сервиса
  • srcname — текущее имя
  • dstname — новое имя
{

  "error": 0,

  "message": "success"

}

DELETE/corpus/delete/{servicetype} Удаляет корпус с данными
  • servicetype — тип сервиса
  • name — название корпуса
{  "error": 0,

  "message": "success"}

GET/corpus/export/{servicetype} Возвращает текстовый файл с корпусом, содержащий строки вида КЛАСС<TAB>ФРАЗА
  • servicetype — тип сервиса
  • name — название корпуса
Файл name.txt
GET/corpus/get/{servicetype} Возвращает JSON с данными корпуса
  • servicetype — тип сервиса
  • name — название корпуса
[

  [ "тэг",

    "фраза"

  ],

  ...

]

POST/corpus/import/{servicetype} Метод для импорта корпуса данных. Возможен как из текстового файла со строками вида КЛАСС<TAB>ФРАЗА (доступно для smc и see), так и из логов работы системы (только для smc). Если на вход поступил файл csv, происходит импорт из файла, в противном случае из логов.
  • servicetype — тип сервиса
  • name — название корпуса
  • csv — файл данных
  • startDate — дата начала выборки, YYYY-MM-DD
  • stopDate — дата окончания выборки, YYYY-MM-DD
  • model — имя модели, из логов которой будет произведен импорт
  • limit — числовое ограничение строк импорта
{

  "error": 0,

  "message": "success"

}

GET/corpus/list/{servicetype} Возвращает список всех корпусов данных для указанного типа сервиса
  • servicetype — тип сервиса
[ "корпус1",

"корпус2",

  ...]

POST/corpus/put/{servicetype} Перезаписывает корпус отправленным массивом данных
  • servicetype — тип сервиса
  • name — название корпуса
  • json — строка формата json с данными. Аналогична выводу метода GET /get/{servicetype}
{

  "error": 0,

  "message": "success"

}

POST/corpus/rename/{servicetype} Переименование корпуса
  • servicetype — тип сервиса
  • srcname — текущее имя
  • dstname — новое имя
{

  "error": 0,

  "message": "success"

}


/marks: работа с наборами меток в smc
POST/marks/add Добавление набора менток
  • json - список меток в формате: [ [  "метка1",

      ["синоним1", "синоним2", "синоним3", "синонимN" ], 0.9 # достоверность для метки (0 - 1)

    ],  [ "меткаN",

      ["синоним11", "синоним21","синоним31", "синонимN1"], 0.9 # достоверность для метки (0 - 1)

    ] ]

  • name - имя создаваемого набора
{

  "error": 0,

  "message": "success",

  "id": "132310fa-98c7-4b12-896f-ff113827d077"

}

DELETE/marks/delete/{id} Удаление набора меток
  • id - идентификатор набора меток
{  "error": 0,

  "message": "success" }

GET/marks/export/{id} Получение набора меток в виде строк
  • id - идентификатор набора меток
Пример:

метка1 синоним1,синоним2,синоним3,синонимN 0.9

меткаN синоним11,синоним21,синоним31,синонимN1 0.9

GET/marks/get/{id} Получение набора меток в виде json
  • id - идентификатор набора меток
Пример:

{  "error": 0,

  "message": "success",

  "data": [

    ["метка1", [ "синоним1", "синоним2", "синоним3", "синонимN"  ],

      0.9

    ],

    ["меткаN", ["синоним11","синоним21", "синоним31","синонимN1"],

      0.9

    ]  ] }

POST/marks/import/{id} Импорт в существующий набор меток из файла. Набор будет переписан из файла
  • csv - файл "метка"ТАБ"синонимы через запятую"ТАБ"достоверность(число от 0 до 1)"
  • id - идентификатор набора
{  "error": 0,

  "message": "success" }

GET/marks/list Получение списка наборов меток
Нет входных параметров Пример:

{  "error": 0,

  "message": "success",

  "result": [    { "id": "416fbe08-19e9-453c-b140-37008a08a76c","name": "test" },

    {"id": "16e77fa2-7c4d-47f9-8644-6385876525d6","name": "Рыжик" },

    {"id": "132310fa-98c7-4b12-896f-ff113827d077", "name": "test" }

  ]}

POST/marks/put/{id} Импорт в существующий набор меток из json строки. Набор будет переписан
  • json - список меток в формате: [ [  "метка1",

      ["синоним1", "синоним2", "синоним3", "синонимN" ], 0.9 # достоверность для метки (0 - 1)

    ],  [ "меткаN",

      ["синоним11", "синоним21","синоним31", "синонимN1"], 0.9 # достоверность для метки (0 - 1)

    ] ]

  • id - идентификатор заменяемого набора меток
{  "error": 0,

  "message": "success" }

POST/marks/rename/{id} Присваивает новое наименование существующему набору меток
  • id - идентификатор набора меток
  • name - новое имя набора
{  "error": 0,

  "message": "success" }

/spr: работа с сервисом SPR
GET/spr/audio/{taskID} Получение аудиофайла отложенного задания
  • taskID — идентификатор задания в очереди/small>
Wav файл
GET/spr/queue Получение очереди отложенных заданий. Выводит очередь со статусами выполнения заданий. Статусы: ready — готово, waiting — ожидание, failed — сбой
Нет входных параметров {  "id задания": {

   "created": "ХХХХ-ХХ-ХХ ХХ:ХХ:ХХ",

   "status": "waiting",

   "filename": "wav"}

DELETE/spr/queue/{taskID} Удаление задания из очереди
  • taskID — идентификатор задания в очереди/small>
{"error": 0,

"message": "success"}

GET/spr/result/{taskID} получениеПезультатов распознавания отложенного задания. Статусы: ready — готово, waiting — ожидание, failed — сбой, not found — не найдена
  • taskID — идентификатор задания в очереди/small>
Вывод аналогичен выводу метода stt + добавлено поле status, которое содержит информацию о статусе отложенной задачи
POST/spr/stt/{model} Отправка файла на распознавание речи. Моно-файлы до 30 секунд распознаются без разбивки на фрагменты. Многоканальные файлы и файлы длиннее 30 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в руководстве администратора spr.
  • id - идентификатор модели
  • denoise - наличие шумоподавления
  • wav - файл для распознавания
  • speakers - опция разделения по говорящим
  • punctuation - опция для расставления знаков препинания
  • normalization - опция обратной нормализации текста
  • vad - используемый VAD, по умолчанию webrtc
  • preset - используемая модель для vad = neuro
  • toxicity - анализировать распознанный текст на токсичность
  • emotion - выявить эмоции из распознанного текста
  • voice_analyzer - анализировать аудиофрагменты каждого из говорящих на эмоции, возраст и пол
  • speaker_counter - количество докладчиков, по умолчанию - 0, автоматическое определение количества
  • async - отложенный запуск распознавания

В случае отправки переменной speakers=1, дополнительно производится поиск говорящих и получение метаданных по каждому говорящему. (используется сервис sbs с предварительно обученными слепками метаданных говорящих) В случае отправки переменной punctuation=1, дополнительно вызывает метод punctuate в SMC, и расставляет знаки препинания в распознанном тексте (значение по умолчанию берётся из файлы конфигурации). normalization=1 для обратной нормализации текста. В случае использования модели big параметры punctuation и normalization игнорируются - модель всегда расставляет знаки препинания и нормализует текст.

При установке параметра toxicity запрашивается в smc метод GET/smc/toxicity

Высказывание анализируется по 4 параметрам, по каждому выдается вероятность от 0 до 1:

"оскорбление": 0.13,

"непристойность": 0,

"угроза": 0,

"вежливость": 0.53

При установке параметра emotion запрашивается в smc метод GET/smc/emotion

Высказывание анализируется на эмоциональность (negative, neutral, positive)

При установке параметра voice_analyzer запрашивается в sbs метод POST/sbs/analyze.

Аудио говорящего анализируется на возраст (child adult old)

эмоции (ANGER BORE DISAPPOINTMENT DISGUST EXCITEMENT FEAR NEUTRAL PAIN PLEASURE SADNESS SUPRISE)

пол (male female)

В случае async=1 возвращается только taskID, результат по taskID смотреть в методе /spr/result.

Для коротких файлов:

{  "model": "call",

  "text": "текст фрагментв",

  "words": [

{ "word": "текст",

      "start": 520,

      "stop": 1240 },

    { "word": "фрагмента",

      "start": 1240,

      "stop": 1920  }]}

Для транскрибации больших файлов:

{"speakers": [    {

"id": null,

      "duration": 18980,

      "fragments": 3,

      "age": "old", # только для voice_analyzer=1

      "gender": "female" # только для voice_analyzer=1}],

"splitted": [

    {"start": "00:00:01.870",

      "text": "текст.",

      "words": [

      { "word": "текст.",

          "start": 1870,

          "stop": 2710,

          "confidence": 0.95263671875}],

      "stop": "00:00:05.510",

      "channel": 0,

      "duration": "00:00:03.640",

      "start_ms": 1870,

      "stop_ms": 5510,

      "duration_ms": 3640,

      "speaker": 4,

      "speakerConfidence": 0.87,

      "toxicity": { # только для toxicity=1

        "insult": 0,

        "obscenity": 0,

        "threat": 0,

        "politeness": 0.99},

      "emotion": { "neutral": -0.3315 }, # только для emotion=1

      "voice_analysis": { # только для voice_analyzer=1

        "emotion": {   "class": "NEUTRAL",   "confidence": 0.7554781436920166  } } } ] }

GET/spr/waveform/{taskID} Служебный метод для отображения аудио в графическом виде, содержит пики сигнала.
  • taskID - идентификатор задания
{"error": 0,

"waveform": [

0.016,

    0.015,

    0.01 ] }

/smc: работа с сервисом SMC
GETsmc/classify/{model} Классификация текстовой фразы. В случает если модель была создана из меток в ответе groups и nearest будут пустыми, а ответ будет построен без учета confidenceThreshold из запроса.

В ответе:

  •     classes - список , для каждого класса которого отображается название класса, к которому был отнесен текст, и вероятность его принадлежности к этому классу.
  •     groups - название группы и число совпавших классов. Если метки совпадают с несколькими группами, они отображаются в порядке убывания числа совпавших классов (т.е. чем полнее группа, тем выше ее позиция в списке).
  •     nearest - отображаются группы, до которых не хватает всего одной метки, с указанием процента заполненности и сортировкой по убыванию этого процента.
  • id - идентификатор модели
  • text - текст, подлежащий классификации
  • confidenceThreshold, % - минимальный порог доверия.
{  "classes": [

    {      "class": "название класса",

      "confidence": 1    },

    {      "class": "название класса 2",

      "confidence": 1    }  ],

  "groups": [

    {      "group": "название группы 1",

      "intersection": 2,

      "classes": [ "название класса", "название класса 2" ]    }  ],

  "nearest": [

    {     "group": "название группы 2",

      "percent": 0.67,

      "need": "название класса которого не хватило 1"    },

    {      "group": ""название группы 3",

      "percent": 0.67,

      "need": "название класса которого не хватило 2"    }  ] }

GET/smc/compress Убирает из фразы слова не влияющие на ее смысл.
  • text - текст для сжатия
  • threshold - уровень компрессии от 1 до 100. Чем меньше число тем меньше слов будет в итоговой фразе
{  "text": "сжатый текст"}
GET/smc/correct Коррекция правописания. Изменяет неправильно написанные слова меняя их на наиболее близкие правильные (из знакомых модели). Если модель коррекции не смогла предложить правильное написание текста, метод вернет текст неизменным.
text - текст для коррекции {  "text": "корректный текст" }
GET/smc/emotion Анализ эмоций. На выходе один из вариантов positive negative neutral.
text - фраза для анализа эмоций { "emotion": "positive", "score": 0.9601 }
GET/smc/groups/{model} Поиск групп по ранее полученным меткам. Ищет группы по набору меток. Результат - группы (если найдены) и ближайшие группы с указанием недостающих меток. Позволяет сохранять контекст в виде меток и дозапрашивать группы с учетом контекста.
  • classes — набор меток через запятую
  • model — имя модели
{"groups": [

   {     "group": "Группа 1",

     "intersection": 3,

     "classes": [

       "метка1_о",

       "метка2_о",

       "метка3_о"     ]   },

   {     "group": "Группа 2",

     "intersection": 2,

     "classes": [

       "метка1_о",

       "метка5_о"     ]   }],

"nearest": [

   {     "group": "Группа до которой не хватило 1 метки",

     "percent": 0.75,

     "need": "недостающая метка_о"   } ] }

POST/smc/groups/{model} Добавляет к модели группы из корпуса. Группы в модели будут перезаписаны
  • id — наименование модели
  • corpus — наименование корпуса- источника групп
{  "error": 0,

  "message": "string"}

GET/smc/normalize Обратная нормализация текста. Пример: двадцать пятого апреля в пятом часу — 25 апреля в 5-м часу.
  • text — текст для обработки.
{"text": "<строка после обратной нормализации>"}
GET/smc/punctuate Расстановка знаков препинания
  • text — текст для обработки.
{  "text": "string" }
POST/smc/stop/{model} Остановка обучения модели. Удаляет тестовую версию модели с сервера обучения, тем самым прерывает обучение.
  • model — идентификатор модели
{  "error": 0,

  "message": "string"}

POST/smc/test/{model} Запуск тестирования модели smc. Метод асинхронный, статус тестирования можно запросить методом GET/info/{servicetype}/{model}
  • model — идентификатор модели
  • corpus — название корпуса с тестовыми данными
{  "error": 0,

  "message": "success" }

GET/smc/toxicity Определение токсичности высказывания. Высказывание анализируется по 4 параметрам, по каждому выдается вероятность от 0 до 1:
  • text - текстовая строка с высказыванием
{ "insult": 0.13, # оскорбление

  "obscenity": 0, # брань

  "threat": 0, # угрозы

  "politeness": 0.53 вежливость}

POST/smc/train/{model} Добавление модели.
  • model - идентификатор модели
  • corpus - имя текстового корпуса для обучения модели или имя набора меток
  • isMarks - если "1" то вместо корпуса метод ожидает набор меток. Модель созданная из меток при этом не обучается, созданный файл модели используется для расчетов векторов "на лету" и выдачи результатов на основании сравнения векторов текста и синонимов из файла с метками
{ error: INT, message: DESCRIPTION }
/see: работа с сервисом SEE
GET/see/entities/{model} Поиск сущностей. Вернется массив со всеми моделями, в которых были найдены сущности.(модели для поиска указываются в поле id) Каждая переменная с названием модели будет содержать список всех найденных сущностей.
  • model - идентификатор[ы] модели. Может быть указано несколько через запятую, тогда запрос будет обработан всеми указанными моделями
  • text - текст для анализа
  • similarity - порог похожести найденной сущности на эталонные, %. По умолчанию 70.
{ ID-модели: [

{ position: 0, # позиция слова начала фрагмента, определяющего сущность

confidence: 1, #вероятность правильного определения сущности

text: текст сущности,

calculated: vaktsinatsiya # поле, содержащее значение сущности, использованный при обучении модели }, {...}

] }

POST/see/stop/{model} Остановка обучения модели
  • model — идентификатор модели
{  "error": 0,

  "message": "success"}

POST/see/train/{model} Запуск обучения модели future
  • model — идентификатор модели
  • corpus — название корпуса с данными
  • noise — уровень шума для генерации синтезированных данных для обучения модели, от 1 до 5, по умолчанию 0
{  "error": 0,

  "message": "success"}

/sbs: работа с сервисом SBS
POST/sbs/analyze Получение аналитических метаданных из голосового фрагмента. Вернется массив с метаданными голосового фрагмента.
  • wav - файл для анализа
Пример:

{ age: {

   class: 20-29, # {"00-05", "06-12", "13-19", "20-29", "30-39", "40-49",   "50-59", "60+"}

   confidence: 0.99 },

emotion: {

   class: SADNESS, # { "ANGER", "BORE", "DISAPPOINTMENT", "DISGUST", "EXCITEMENT", "FEAR", "NEUTRAL", "PAIN", "PLEASURE", "SADNESS", "SUPRISE"}

   confidence: 0.99 },

gender: {

   class: FEMALE, # { "MALE", "FEMALE" }

   confidence: 0.99 } }

POST/sbs/search Поиск говорящего по базе слепков.
  • wav - файл для анализа
  • threshold - процент совпадения
Пример ответа:

{ error: 0, speaker: Ivan, confidence: 0.79 }

POST/sbs/speakers/add Добавление слепка в базу.
  • name - имя говорящего
  • wav - файл для создания оцифрованного представления говорящего
{

  "error": 0,

  "id": "251f78d7-ee50-4ba1-a669-ee89fdaf5433"

}

DELETE/sbs/speakers/delete/{id} Удаление слепка из базы.
  • id - идентификатор говорящего
{ error: INT, message: DESCRIPTION }
GET/sbs/speakers/list Получение списка всех слепков.
Входные параметры отсутствуют [ {

    "id": "251f78d7-ee50-4ba1-a669-ee89fdaf5433",

    "name": "наименование слепка"

  }]

POST/sbs/speakers/modify/{id} Дообучение слепка.
  • wav - файл для обучения
  • id - идентификатор слепка
{  "error": 0,

  "message": "Success"}

POST/sbs/verify/{id} Сравнение wav-файла cо слепком в базе. В ответе - вероятность совпадения от 0 до 1.
  • wav - файл для поиска
  • threshold - процент совпадения
{ "error": 0, "confidence": 0.78 }
/tts: методы работы с сервисом tts
GET/tts/dictionary/export Выгрузка пользовательского словаря ударений.
Входные параметры отсутствуют простой текст - строки с словом и его интерперетацией с ударением
GET/tts/dictionary/get Выгрузка пользовательского словаря ударений в виде json.
Входные параметры отсутствуют [ [   "слово",   "замена слова с удар+ением"],

[   "слово2",   "замена слова2 с удар+ением"],

...]

POST/tts/dictionary/import Загрузка пользовательского словаря ударений. Текущий словарь будет переписан.
  • csv file - файл строк со словом и его интерперетацией с ударением
{  "error": 0,

  "message": "сообщение о статусе результата"}

POST/tts/dictionary/put Загрузка пользовательского словаря ударений в виде json. Текущий словарь будет переписан.
  • json -строка json следующего вида:

[

[   "слово",   "замена слова с удар+ением" ],

[ "слово2",   "замена слова2 с удар+ением" ],

...

]

{

  "error": 0,

  "message": "сообщение о статусе результата"

}

POST/tts/normalize Нормализация текста - перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы), например "в понедельник 10.10.2025" -> "в понедельник дес+ятого октябр+я дв+е т+ысячи дв+адцать п+ятого г+ода".
  • text - фраза для нормалимзации
{  "error": 0,

  "message": "success",

  "text": "нормализованный текст" }

GET/tts/synthesize/{model} Синтез звукового файла из текста небольшого размера - для совместимости с предыдущими версиями.
  • model - имя модели
  • text - текст синтезируемой фразы
  • rate - скорость речи
  • pitch - высота (тон)
  • volume - громкость
wav файл с синтезированой фразой
POST/tts/synthesize/{model} Синтез звукового файла из текста для фраз большого размера - тип запроса "POST" позволяет отправку больших текстов.
  • model - имя модели
  • text - текст синтезируемой фразы
  • rate - скорость речи
  • pitch - высота (тон)
  • volume - громкость
wav файл с синтезированой фразой
/qas: методы работы с сервисом qas
GET/qas/ask Метод генерирует ответ на поставленный вопрос на основе информации из документов в базе. Ответ на вопрос генерируется на основе информации, содержащейся в одном или нескольких документах. Документы должны быть в текстовом формате. Ответ возвращается в формате JSON, его можно скачать. Если метод не смог найти ответ, возвращается код ошибки и сообщение.
  • text — текст вопроса, на основе которого будут искаться фрагменты.
  • category — id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных.
  • channel — id канала
  • creative — флаг креативности возможные варианты "yes" "no"
  • useCache — использовать кешированные ответы

возможные варианты:

- "no" не использовать

- "all" использовать все

- "checked" использовать только проверенные

  • useGPT - использовать генеративную сеть для поиска ответов в документах. возможные варианты "yes" "no"
  • addAlias - добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. возможные варианты "yes" "no"
{

"error": 0,

"text": "Здесь будет текст ответа"

}

GET/qas/cachemaker/start Генерация ответов на вопросы в кэше.
  • category — категория для которой генерируются ответы
  • mode — режим генерации ответов, возможные значения:

- paraphrase — генерирует вариации ответов перефразированием уже проверенных ответов, если таковые имеются на вопросе

- generate — генерирует кэш через разные ответы на каждый вопрос по документации

  • option - генерировать ответы на все вопросы категории (вариант all) или только на неотвеченные (вариант empty)
  • variants — количество ответов, от 1 до 9
{"error": 0, "message": "success"}
GET/qas/cachemaker/status Состояние генерации ответов на вопросы в кэше. Статусы: started, stopped, если были ошибки, поле ответа error будет содержать код ошибки.
Входные параметры отсутствуют {  "error": "",

  "status": "started",

  "progress": 33.33}

GET/qas/cachemaker/stop Остановить генерацию ответов на вопросы в кэше.
Входные параметры отсутствуют {"error": 0, "message": "success"}
POST/qas/category/add Добавить категорию с указанным именем. В ответе - id созданной категории или сообщение об ошибке:
  • name — наименование категории
{  "error": 0,

  "message": "success",

  "id": "ad895085-2e48-439a-831e-b5f699b6a54a" }

DELETE/qas/category/delete/{id} Удалить категорию. В ответе или сообщении об успехе, или ошибке, если категория используется или не существует.
  • id - идентификатор категории
{   "error": 0,

  "message": "success" }

GET/qas/category/list Получить список категорий
Входные параметры отсутствуют В ответе json с именами и id категорий
POST/qas/category/modify/{id} Изменить категорию. У категории пока есть только наименование, поэтому метод только переименовывает категорию
  • id — идентификатор категории
  • name — наименование категории
{  "error": 0,

  "message": "success" }

POST/qas/channel/add Добавление канала. В ответе id созданного канала или сообщение об ошибке
  • name — наименование канала
{"error": 0,

"message": "success",

"id": "a46fb887-5d98-41e0-8299-bcc94f615e91"}

DELETE/qas/channel/delete/{id} Удаление канала
  • id — идентификатор канала
{ "error": 0, "message": "success" }
GET/qas/channel/list Получить список всех каналов
Входные параметры отсутствуют {  "error": 0,

  "channels": [

    {      "id": "1",      "name": "voice"    },

    {      "id": "56442779-e871-43fd-ae4d-caf4ab6d09b9",      "name": "канал++"    },

    {      "id": "0",      "name": "default"    }

  ] }

POST/qas/channel/modify/{id} Изменить канал. У канала пока есть только наименование, поэтому метод только переименовывает канал
  • name — новое наименование канала
  • id — идентификатор канала
{  "error": 0,

  "message": "success" }

POST/qas/doc/add Загрузить текстовый документ. Добавляет документ в базу. В ответе - id созданного документа или сообщение об ошибке
  • title — заголовок документа
  • category — категория документа
  • textфайл документа
{"error": 0,

"message": "success",

"id": "ebe2bc57551c2d17f892987d1f62306d"}

DELETE/qas/doc/delete/{id} Удаление документа
  • id — идентификатор документа
{"error": 0,"message": "success"}
GET/qas/doc/get/{id} Выгрузка текста документа
  • id — идентификатор документа
{

  "error": 0,

  "text": "Здесь будет полный текст документа"

}

GET/qas/doc/list Получение списка имеющихся документов
Входные параметры отсутствуют Пример:

{  "error": 0,

  "docs": [

    {id": "d4999cdee5ad1faf2cb3066ea1b5e96b",

      "title": "PVE. Установка сервисного пакета окружения",

      "category": "Техническая поддержка" },

    {"id": "759042575b965745b9d2af869bca1740",

      "title": "UPS. Руководство администратора",

      "category": "Техническая поддержка"}   ]}

POST/qas/doc/modify/{id} Обновление документа. В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.
  • data — json c изменяемыми параметрами документа

{

  title: string,

  category: string,

  text: string

}

параметр который не меняется может отсутствовать в json

  • id — идентификатор документа.
{"error": INT, "message": DESCRIPTION}
POST/qas/question/add Добавление вопроса. В случае успеха метод вернет id вопроса, в случае неудачи - код ошибки.
  • question - текст вопроса
  • category - id категории к которой относится вопрос
  • answers - ответы в виде Json:

[ { "checked": true, "channel": "0", "answer": "ответ" } ]

  • aliases - вопросы к которым подходят ответы из блока answers в виде json:

["вопрос","еще вопрос"]

{

  "error": 0,

  "id": "527be9f0-f773-4a3e-bd0b-81b40a061d0d"

}

POST/qas/question/append/{id} Добавляет алиасы/кандидаты к другому вопросу
  • aliases - JSON list с синонимами
  • candidates JSON list с кандидатами
  • id - идентификатор вопроса к которому добавить синонимы и(или) кандидаты
{error: 0 | 1, message: string}
POST/qas/question/approve/{destination_id} Перемещает кандидаты в формулировки другого вопроса
  • candidates - json массив c текстами кандидатов
  • destination_id - идентификатор вопроса
{error: 0 | 1, message: string}
POST/qas/question/delete/list Удаление списка вопросов или ответов.
  • questions - json строка с перечнем id
  • type - выбор, удалять вопросы или ответы (questions, answers)
{"error": INT, "message": DESCRIPTION}
DELETE/qas/question/delete/{id} Удаление вопроса
  • id — идентификатор вопроса
{"error": INT, "message": DESCRIPTION}
GET/qas/question/get/{id} Получение вопроса вместе с ответами и синонимами вопроса
  • id — идентификатор вопроса
{  "error": 0,

  "answers": [

    {   "checked": true,

      "channel": "0",

      "answer": "ответ"    }  ],

  "aliases": [

    "вопрос",

    "синоним вопроса",

    "еще синоним вопроса"  ] }

GET/qas/question/list Получение списка вопросов.
Входные параметры отсутствуют {  "error": 0,

  "questions": [

    {      "id": "77b42c9b-2075-4a5f-b6d9-a284bba7cf43",

      "question": "вопрос",

      "category": "9580b3b7-34cb-4d0e-ba75-d17313ead16d"    },

    {      "id": "d1836e5e-010e-4f3a-b306-813c3acb7efb",

      "question": "n-й второй вопрос",

      "category": "7d8a3415-cb09-4dad-a169-478ba15ade47"    }

  ] }

POST/qas/question/modify/{id} Модификация вопроса. Позволяет заменить как все параметры так и отдельные
  • data - json c измененными параметрами, пример полного:

{   "answers": [

    {

      "checked": true,

      "channel": "0",

      "answer": "новый ответ"

    }

  ],

"question":"новый вопрос",

"category": "a3801cc0-f8e5-4f3b-bb10-e42148cd772b",

  "aliases": [

    "новый вопрос",

    "синоним",

    "еще синоним"

  ]

}

  • id — идентификатор вопроса
В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.

{"error": INT, "message": DESCRIPTION}

GET/qas/questionlist/answers Отображает лог массовой обработки вопросов
Входные параметры отсутствуют на выходе :

массив из объектов {

  error: number;

  question: string;

  answer: string;

  confidence: number | null;

}

POST/qas/questionlist/start Старт массовой обработки вопросов
Входные параметры отсутствуют {error: 0 | 1, message: string}
GET/qas/questionlist/status Статус массовой обработки вопросов
Входные параметры отсутствуют {     error: string;

     status: 'started' | 'stopped';

     progress: number; }

GET/qas/questionlist/stop Остановка массовой обработки вопросов
Входные параметры отсутствуют {error: 0 | 1, message: string}
GET/qas/questionmaker/start Запуск генерации вопросов для кэша. По каждому документу генерируются по 5 вопросов на фрагмент. Количество фрагментов зависят от размера документа и настройки размера контекста из конфигурационного файла. Если вопрос сильно похож на существующий, новый не создается, а добавляется к существующему в aliases.
  • category — категория, для которой выполнится генерация вопросов.
{"error": 0, "message": "success" }
GET/qas/questionmaker/status Проверка состояния генерации. Статусы: started, stopped. Если были ошибки поле ответа error будет содержать код ошибки
Входные параметры отсутствуют {  "error": "",

  "status": "stopped",

  "progress": 0 }

GET/qas/questionmaker/stop Прервать генерацию.
Входные параметры отсутствуют {"error": 0, "message": "success"}
GET/qas/search Поиск фрагментов содержащих ответ
  • text — текст запроса
  • category — категория (раздел) знаний
{  "error": 0,

  "text": "

  Фрагмент 1:Здесь будет текст найденного фрагмента

  Фрагмент 2:Здесь будет текст найденного фрагмента",

  "fragments": [

    {      "id": "3a386b0a9e0e19efb0870685e1d0b484",

      "title": "Заголовок документа",

      "category": "Категория документа",

      "text": "Здесь будет текст найденного фрагмента"    },

    {      "id": "44fd73ea1ac63f32cf18d79c854dbfe2",

      "title": "Заголовок документа",

      "category": "Категория документа",

      "text": "Здесь будет текст найденного фрагмента"    }  ] }


/ses: методы работы с роботом
/transcription: методы работы со стенографией
GET/transcription/audio/{id} Получить аудиофайл по id стенограммы. Идентификатор нужной стенограммы можно получить методом

"GET /transcription/list"

  • id — идентификатор стенограммы
wav файл сохраненной стенограммы
POST/transcription/create Создание стенограммы из завершенного задания в очереди распознавания. В ответ придет id созданной стенограммы
  • taskID — идентификатор задания из очереди
  • name - имя создаваемой стенограммы
{"error": 0,

"message": "success",

"id": "74721a3b-9055-4650-9afb-de4d103cafc7"}

DELETE/transcription/delete/{id} Удаление стенограммы
  • id — идентификатор стенограммы
{"error": 0,"message": "success"}
GET/transcription/get/{id} Получение стенограммы. Используется для отображения стенограммы в веб интерфейсе
  • id — идентификатор стенограммы
стенограмма в json формате
GET/transcription/list Получение списка сохраненных стенограмм
Входные параметры отсутствуют [ { "id": "926e8d25-4275-4a78-906b-a1109cdacbea",

"name": "название",

"model": "big",

"created": "2024-03-29 12:37:42",

"modified": "2024-04-24 16:09:09",

"user": "0",

"dataset": "0" }, .... ]

POST/transcription/save/{id} Сохранение стенограмы. Используется для сохранения изменений по нажатию кнопки «Сохранить».
  • data - стенограмма в json формате
  • id стенограммы
{"error": 0,"message": "success"}
GET/transcription/waveform/{id} Служебный метод для отображения аудио в графическом виде, ответ содержит пики сигнала
  • id стенограммы
{ "error": 0,

"waveform": [

   0.016,

  ..........

  ..........

   0.015,

   0.01 ] }