Действия

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

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

Строка 20: Строка 20:
|'''<small>modeltype</small>'''
|'''<small>modeltype</small>'''
|<small>запрос</small>
|<small>запрос</small>
|<small>Тип модели. Возможные значения: '''future''' - планируемая/черновик, '''current''' - текущая/рабочая, '''previous''' - архивная.</small>
|<small>Тип модели. Возможные значения: '''future''' планируемая/черновик, '''current''' текущая/рабочая, '''previous''' архивная.</small>
|-
|-
|'''<small>error</small>'''
|'''<small>error</small>'''
Строка 47: Строка 47:
<small>/auth/access</small>
<small>/auth/access</small>
|<small>Предназначен для получения токенов доступа</small>
|<small>Предназначен для получения токенов доступа</small>
| <small>username - логин
| <small>username логин
password - пароль
password пароль</small>
</small>
|<small><code>{
|<small>{
   "x-access-token": "XXXXXXXXXXXXXXXXXXXX",
   "x-access-token": "XXXXXXXXXXXXXXXXXXXX",
   "x-refresh-token": "XXXXXXXXXXXXXXXXXXXX"
   "x-refresh-token": "XXXXXXXXXXXXXXXXXXXX"
 
</code><code>}</code></small>
 
| <small>Токен доступа определяет, какие из методов будут доступны конкретному пользователю. Формируется на основании роли. Дополнительный входной параметр во всех методах, кроме перечисленных в разделе «nopassword» конфигурационного файла. Время действия токена определяется параметром auth.accessLifeTime конфигурационного файла.</small>
 
}</small>
| <small>Токен доступа определяет какие из методов будут доступны конкретному пользователю. Формируется на основании роли. Дополнительный входной параметр во всех методах, кроме перечисленных в разделе "nopassword" конфигурационного файла. Время действия токена определяется параметром auth.accessLifeTime конфигурационного файла.</small>
|-
|-
|<small>POST</small><small>/auth/dataset/add</small>
|<small>POST</small><small>/auth/dataset/add</small>
|<small>Предназначен для добавления dataset (набора данных)</small>
|<small>Предназначен для добавления dataset (набора данных)</small>
|  <small>{   </small>
|<small><code>{   </code></small>
<small>"name": "test2"   }</small>
<small><code>"name": "test2"   </code></small>
|{
"error": 0,
"message": "success",
"dataset_id": "XXXXXXXXXXXXX"
}
|<small>dataset (набор данных) используется для ограничения доступа к данным. В ответе метод вернет id созданного набора данных</small>
|-
|<small>DELETE</small><small>/auth/dataset/delete/{id}</small>
|<small>Предназначен для удаления dataset (набора данных)</small>
|'''id''' - идентификатор набора данных
|{


<small><code>}</code></small>
|<code>{</code>
<code>"error": 0</code>


"error": 0,
<code>"message": "success",</code>


<code>"dataset_id": "XXXXXXXXXXXXX"</code>


"message": "success"
<code>}</code>
|<small>dataset (набор данных) используется для ограничения доступа к данным. В ответе метод вернет id созданного набора данных.</small>
|-
|<small>DELETE</small><small>/auth/dataset/delete/{id}</small>
|<small>Предназначен для удаления dataset (набора данных)</small>
|'''id''' — идентификатор набора данных
|<code>{<br />"error": 0,<br />"message": "success"</code>


 
<code>}</code>
}
| <small>—</small>
| -
|-
|-
|<small>POST</small><small>/auth/dataset/modify/{id}</small>
|<small>POST</small><small>/auth/dataset/modify/{id}</small>
|<small>Предназначен для переименования dataset (набора данных)</small>
|<small>Предназначен для переименования dataset (набора данных)</small>
|<small>'''id''' - идентификатор набора данных</small><small>'''data''' - JSON c новыми параметрами</small>
|<small>'''id''' идентификатор набора данных</small><small>'''data''' JSON c новыми параметрами</small>
|{
|<code>{</code>
"error": 0,
<code>"error": 0,</code>
"message": "success"
 
}
<code>"message": "success"</code>
|<small>Метод меняет все параметры набора данных, но на данный момент времени у набора данных кроме id только один параметр - наименование</small>
 
<code>}</code>
|<small>Метод меняет все параметры набора данных, но на данный момент времени у набора данных, кроме id, только один параметр наименование.</small>
|-
|-
|<small>GET</small><small>/auth/datasets</small>
|<small>GET</small><small>/auth/datasets</small>
|<small>Предназначен для получения списка наборов данных</small>
|<small>Предназначен для получения списка наборов данных</small>
| -
| <small>—</small>
|[
|<code>[</code>
{"id": "XXXXXXXXXXXXXXXXXX",
<code>{"id": "XXXXXXXXXXXXXXXXXX",</code>


"name": "XXX"},
<code>"name": "XXX"},</code>


{"id": "0",
<code>{"id": "0",</code>


"name": "По умолчанию"}
<code>"name": "По умолчанию"}</code>


]
<code>]</code>
| -
| <small>—</small>
|-
|-
|<small>GET</small><small>/auth/refresh</small>
|<small>GET</small><small>/auth/refresh</small>
|<small>Предназначен для обновления токенов доступа</small>
|<small>Предназначен для обновления токенов доступа</small>
|<small>'''x-refresh-token''' - токен обновления доступа</small>
|<small>'''x-refresh-token''' токен обновления доступа</small>
|<small>{
|<small><code>{
   "x-access-token": "XXXXXXXXXXXXXXXXXXXX",
   "x-access-token": "XXXXXXXXXXXXXXXXXXXX",
   "x-refresh-token": "XXXXXXXXXXXXXXXXXXXX"
   "x-refresh-token": "XXXXXXXXXXXXXXXXXXXX"
 
</code><code>}</code></small>
 
|<small>Время, в течение которого можно обновить доступ, регулируется параметром auth.refreshLifeTime</small><small>конфигурационного файла. Служебный метод, используется в основном в веб-интерфейсе, чтобы не запрашивать лишний раз пароль.</small>
 
}</small>
|<small>Время в течение которого можно обновить доступ регулируется параметром auth.refreshLifeTime</small>
<small>конфигурационного файла. Служебный метод, используется в основном в вэбинтерфейсе чтобы не запрашивать лишний раз пароль</small>
|-
|-
|<small>GET</small><small>/auth/rights</small>
|<small>GET</small><small>/auth/rights</small>
|<small>Предназначен для получения списка прав доступа</small>
|<small>Предназначен для получения списка прав доступа</small>
| -
| <small>—</small>
|
|
  <<{
  <code><<{
   "РОЛЬ": [
   "РОЛЬ": [
     "GET:/......"
     "GET:/......"
Строка 132: Строка 124:
   "nopassword": [
   "nopassword": [
     "GET:/.......",
     "GET:/.......",
  ...............
  ...............</code>


  <<...............
  <code><<...............
     "POST:/......."
     "POST:/......."
   ]
   ]
  }
  }</code>
|<small>Служебный метод - по токену получает название роли и все права доступа этой роли а также общедоступные методы</small>
|<small>Служебный метод по токену получает название роли и все права доступа этой роли, а также общедоступные методы.</small>
|-
|-
|<small>POST</small><small>/auth/role/add</small>
|<small>POST</small><small>/auth/role/add</small>
|<small>Предназначен для создания роли</small>
|<small>Предназначен для создания роли</small>
|<small>'''data''' - JSON с параметрами роли:</small> <small>{</small>
|<small>'''data''' JSON с параметрами роли:</small><small><code>{</code></small>
<small>"name": "проверка создания", </small>
<small><code>"name": "проверка создания", </code></small>
<small>"rights": [   </small><small> "набор прав через запятую" </small><small>] </small><small>}</small>
 
|<small>{
<code><small>"rights": [   </small><small> "набор прав через запятую" </small><small>] </small></code>
"error": 0,
 
<code><small>}</small></code>
|<small><code>{</code>
<code>"error": 0,
"message": "success",
"message": "success",
"role_id": "a7e68bb83169f864c2fc868401b5250c"
"role_id": "a7e68bb83169f864c2fc868401b5250c"
}</small>
}</code></small>
|<small>Служебный метод - используется вебинтерфейсом при создании роли</small>
|<small>Служебный метод — используется веб-интерфейсом при создании роли.</small>
|-
|-
|<small>DELETE</small><small>/auth/role/delete/{id}</small>
|<small>DELETE</small><small>/auth/role/delete/{id}</small>
|<small>Предназначен для удаления роли</small>
|<small>Предназначен для удаления роли</small>
|<small>'''id''' роли</small>
|<small>'''id''' роли</small>
|<small>{</small><small>"error": 0,</small><small>"message": "success"</small><small>}</small>
|<code><small>{</small><small>"error": 0,</small><small>"message": "success"</small><small>}</small></code>
| -
| <small>—</small>
|-
|-
|<small>POST</small><small>/auth/role/modify/{id}</small>
|<small>POST</small><small>/auth/role/modify/{id}</small>
|<small>Предназначен для изменения роли</small>
|<small>Предназначен для изменения роли</small>
|<small>'''id роли'''</small><small>'''data''' - JSON с параметрами роли</small>
|<small>'''id роли'''</small><small>'''data''' JSON с параметрами роли</small>
|<small>{</small><small>"error": 0,</small><small>"message": "success"</small><small>}</small>
|<code><small>{</small><small>"error": 0,</small><small>"message": "success"</small><small>}</small></code>
|<small>параметры как при создании роли. роль будет переписана</small>
|<small>Параметры как при создании роли. Роль будет переписана.</small>
|-
|-
|<small>GET</small><small>/auth/roles</small>
|<small>GET</small><small>/auth/roles</small>
|<small>Предназначен для получения списка ролей</small>
|<small>Предназначен для получения списка ролей</small>
| -
| <small>—</small>
|<small>[</small>
|<small><code>[</code></small>
<small>{</small>
<small><code>{</code></small>


<small>"id": "XXXXXXXXXXX",</small>
<small><code>"id": "XXXXXXXXXXX",</code></small>


<small>"name": "имя роли",</small>  
<small><code>"name": "имя роли",</code></small>  


<small>"rights": [ "набор прав через запятую" ]</small>  
<small><code>"rights": [ "набор прав через запятую" ]</code></small>  


<small>},</small>  
<small><code>},</code></small>  


<small>............</small>  
<small><code>............</code></small>  


<small>]</small>
<small><code>]</code></small>
| -
| <small>—</small>
|-
|-
|<small>POST</small>  
|<small>POST</small>  
<small>/auth/user/add</small>
<small>/auth/user/add</small>
|<small>Предназначен для создания нового пользователя</small>
|<small>Предназначен для создания нового пользователя</small>
|<small>{</small>  
|<small><code>{</code></small>  
<small>"username": "login_name",</small>  
<code><small>"username": "login_name",</small>  
<small>"fullname": "Отображаемое Имя",</small><small>"password": "XXXXX",</small><small>"role": "role_id",</small>  
<small>"fullname": "Отображаемое Имя",</small><small>"password": "XXXXX",</small><small>"role": "role_id",</small></code>  


<small>"dataset": "default dataset id",</small>  
<code><small>"dataset": "default dataset id",</small>  
<small>"datasets": [  "dataset id",</small>  
<small>"datasets": [  "dataset id",</small>  
<small>................. ]</small>
<small>................. ]</small>
<small>}</small>
<small>}</small></code>
|<small>{</small>  
|<small><code>{</code></small>  
<small>"error": 0,</small>  
<small><code>"error": 0,</code></small>  


<small>"message": "success",</small>   
<small><code>"message": "success",</code></small>   


<small>"user_id": "XXXXXXXXXXXXXXXX"</small>   
<small><code>"user_id": "XXXXXXXXXXXXXXXX"</code></small>   


<small>}</small>
<small><code>}</code></small>
| -
| <small>—</small>
|-
|-
|<small>DELETE</small>  
|<small>DELETE</small>  
Строка 215: Строка 210:
|<small>Предназначен для получения параметров пользователя</small>
|<small>Предназначен для получения параметров пользователя</small>
|<small>'''user_id'''</small>
|<small>'''user_id'''</small>
|<small>{</small>  
|<small><code>{</code></small>  
<small>"id": "XXXXXXXXXX",</small>  
<small><code>"id": "XXXXXXXXXX",</code></small>  


<small>"username": "loginname",</small>  
<small><code>"username": "loginname",</code></small>  


<small>"fullname": "Full Name",</small>  
<small><code>"fullname": "Full Name",</code></small>  


<small>"role": "0",</small>  
<small><code>"role": "0",</code></small>  


<small>"dataset": "0",</small>  
<small><code>"dataset": "0",</code></small>  


<small>"datasets": [</small>  
<small><code>"datasets": [</code></small>  


<small>"0",</small>  
<small><code>"0",</code></small>  


<small>"2dc34d3454243522e5407d3a170815a2"]</small>  
<small><code>"2dc34d3454243522e5407d3a170815a2"]</code></small>  


<small>}</small>
<small><code>}</code></small>
| -
| <small>—</small>
|-
|-
|<small>GET</small>
|<small>GET</small>
Строка 239: Строка 234:
|<small>Предназначен для получения параметров пользователя по его токену доступа</small>
|<small>Предназначен для получения параметров пользователя по его токену доступа</small>
|<small>'''x-access-token'''</small>
|<small>'''x-access-token'''</small>
|<small>{</small><small>"id": "XXXXXXXXXX",</small>  
|<code><small>{</small><small>"id": "XXXXXXXXXX",</small></code>  


<small>"username": "loginname",</small>  
<small><code>"username": "loginname",</code></small>  


<small>"fullname": "Full Name",</small>  
<small><code>"fullname": "Full Name",</code></small>  


<small>"role": "0",</small>  
<small><code>"role": "0",</code></small>  


<small>"dataset": "0",</small>  
<small><code>"dataset": "0",</code></small>  


<small>"datasets": [</small>  
<small><code>"datasets": [</code></small>  


<small>"0",</small>  
<small><code>"0",</code></small>  


<small>"2dc34d3454243522e5407d3a170815a2"]</small>  
<small><code>"2dc34d3454243522e5407d3a170815a2"]</code></small>  


<small>},</small>
<small><code>},</code></small>


<small>"rights": [</small>
<small><code>"rights": [</code></small>


<small>..........</small>
<small><code>..........</code></small>


<small>]</small>
<small><code>]</code></small>
| -
| <small>—</small>
|-
|-
|<small>GET</small>
|<small>GET</small>
<small>/auth/user/list</small>
<small>/auth/user/list</small>
|<small>Предназначен для получения списка пользователей с их параметрами</small>
|<small>Предназначен для получения списка пользователей с их параметрами</small>
| -
| <small>—</small>
|<small>тоже самое что и в методе GET</small> <small>/auth/user/info</small><small>, только для всех пользователей</small>
|<small>тоже самое что и в методе GET</small> <small>/auth/user/info</small><small>, только для всех пользователей</small>
| -
| <small>—</small>
|-
|-
|<small>POST</small>
|<small>POST</small>
<small>/auth/user/modify/{id}</small>
<small>/auth/user/modify/{id}</small>
|<small>Предназначен для изменения параметров пользователя</small>
|<small>Предназначен для изменения параметров пользователя</small>
|<small>'''data -''' параметры пользователя как при создании</small> <small>'''id -''' идентификатор пользователя</small>
|<small>'''data ''' параметры пользователя как при создании</small> <small>'''id ''' идентификатор пользователя</small>
|<small>{</small>  <small>"error": 0,</small>  
|<code><small>{</small>  <small>"error": 0,</small></code>  


<small>"message": "success"</small>   
<small><code>"message": "success"</code></small>   


<small>}</small>
<small><code>}</code></small>
| -
| <small>—</small>
|-
|-
|<small>POST</small>
|<small>POST</small>
Строка 286: Строка 281:
|<small>Предназначен для смены пароля пользователя по его токену доступа</small>
|<small>Предназначен для смены пароля пользователя по его токену доступа</small>
|<small>'''password'''</small>
|<small>'''password'''</small>
|<small>{</small>  <small>"error": 0,</small><small>"message": "success"</small>   
|<code><small>{</small>  <small>"error": 0,</small><small>"message": "success"</small></code>   


<small>}</small>
<small><code>}</code></small>
| -
| <small>—</small>
|-
|-
|<small>GET</small>
|<small>GET</small>
<small>/auth/version</small>
<small>/auth/version</small>
|<small>Предназначен для получения верчии UPS</small>
|<small>Предназначен для получения верcии UPS</small>
| -
| <small>—</small>
|<small>{</small>  
|<small><code>{</code></small>  
<small>"version": "4.049 beta"</small>   
<small><code>"version": "4.049 beta"</code></small>   


<small>}</small>
<small><code>}</code></small>
| -
| <small>—</small>
|}
|}


Строка 314: Строка 309:
<small>/lang/</small>
<small>/lang/</small>
|<small>Предназначен для вывода информации о переводе элементов интерфейса на текущий язык</small>
|<small>Предназначен для вывода информации о переводе элементов интерфейса на текущий язык</small>
| <small>-</small>
| <small></small>
|<code><small>{</small></code>
|<code><small>{</small></code>
<code><small>"see":"Сущности",</small></code>
<code><small>"see":"Сущности",</small></code>
Строка 323: Строка 318:


<code><small>}</small></code>
<code><small>}</small></code>
| <small>-</small>
| <small></small>
|-
|-
|<small>GET</small>
|<small>GET</small>


<small>/lang/config</small>
<small>/lang/config</small>
|<small>Отдает раздел "interface" конфигурационного файла</small>
|<small>Отдает раздел «interface» конфигурационного файла</small>
| -
| <small>—</small>
|<small>{</small>
|<small><code>{</code></small>


<small>  "wallpaper": {</small>
<small><code>  "wallpaper": {</code></small>


<small>    "login": true,</small>
<small><code>    "login": true,</code></small>


<small>    "desktop": true,</small>
<small><code>    "desktop": true,</code></small>


<small>    "workarea": true</small>
<small><code>    "workarea": true</code></small>


<small>  }</small>
<small><code>  }</code></small>


<small>}</small>
<small><code>}</code></small>
|
|
|-
|-
Строка 348: Строка 343:


<small>/lang/wallpaper</small>
<small>/lang/wallpaper</small>
|<small>Отдает случайный фон рабочего стола в виде jpeg из каталога "wallpapers</small><small>" на сервере ups</small>
|<small>Отдает случайный фон рабочего стола в виде jpeg из каталога «wallpapers» на сервере ups</small>
| -
| <small></small>
|<small>image/jpeg</small>  
|<small>image/jpeg</small>  
|
|
Строка 365: Строка 360:


<small>/server/get/addresses/{servicetype}</small>
<small>/server/get/addresses/{servicetype}</small>
|<small>Предназначен для вывода информации о сервера, обслуживающих данный сервис, а также настроеных параметров обращения к данным серверам</small>
|<small>Предназначен для вывода информации о серверах, обслуживающих данный сервис, а также настроенных параметров обращения к данным серверам.</small>
|
|
* <small>'''servicetype''' - тип сервиса</small>
* <small>'''servicetype''' тип сервиса</small>
|<code><small>{</small></code>  
|<code><small>{</small></code>  
<code><small>  "trainer": "<nowiki>http://127.0.0.1:6181</nowiki>",</small></code>
<code><small>  "trainer": "<nowiki>http://127.0.0.1:6181</nowiki>",</small></code>
Строка 403: Строка 398:
<code><small>}</small></code>
<code><small>}</small></code>
|
|
* <small>'''trainer''' - сервер обучения</small>
* <small>'''trainer''' сервер обучения</small>
* <small>'''cluster''' - рабочие серверы</small>
* <small>'''cluster''' рабочие серверы</small>
* <small>'''connect''' - время на подключение</small>
* <small>'''connect''' время на подключение</small>
* <small>'''read''' - время на ответ</small>
* <small>'''read''' время на ответ</small>
* <small>'''failed''' - время пребывание в сбойных</small>
* <small>'''failed''' время пребывания в сбойных</small>
* <small>'''install''' - время на установку модели</small>
* <small>'''install''' время на установку модели</small>
* <small>'''info''' - время на получение информации о модели</small>
* <small>'''info''' время на получение информации о модели</small>
* <small>'''counter''' - счетчик запросов</small>
* <small>'''counter''' счетчик запросов</small>
* <small>'''current''' - индекс последнего опрошенного cluster-сервера</small>
* <small>'''current''' индекс последнего опрошенного cluster-сервера</small>
* <small>'''fail''' - массив сбойных серверов со временем постановки в сбой</small>
* <small>'''fail''' массив сбойных серверов со временем постановки в сбой.</small>
|-
|-
|<small>GET</small>
|<small>GET</small>
Строка 419: Строка 414:
|<small>Предназначен для вывода информации о моделях указанного сервиса на каждом сервере указанного типа</small>
|<small>Предназначен для вывода информации о моделях указанного сервиса на каждом сервере указанного типа</small>
|
|
* <small>'''servicetype''' - тип сервиса</small>
* <small>'''servicetype''' сервиса</small>
* <small>'''servertype''' - тип серверов</small>
* <small>'''servertype''' тип серверов</small>
|<code><small>{</small></code>
|<code><small>{</small></code>
<code><small>  "<nowiki>http://127.0.0.1:6181</nowiki>": [</small></code>
<code><small>  "<nowiki>http://127.0.0.1:6181</nowiki>": [</small></code>
Строка 435: Строка 430:


<code><small>}</small></code>
<code><small>}</small></code>
|<small>Вывод представляет собой массив url серверов, для каждого из которых указан список моделей</small>
|<small>Вывод представляет собой массив URL-серверов, для каждого из которых указан список моделей.</small>
|}
|}


Строка 453: Строка 448:
<small>Доступно для следующих сервисов: smc, see, spr.</small>
<small>Доступно для следующих сервисов: smc, see, spr.</small>
|
|
* <small>'''servicetype''' - тип сервиса</small>
* <small>'''servicetype''' тип сервиса</small>
* <small>'''model''' - название модели</small>
* <small>'''model''' название модели</small>
|<code><small>{</small></code>
|<code><small>{</small></code>
<code><small>"error":0,</small></code>
<code><small>"error":0,</small></code>
Строка 461: Строка 456:


<code><small>}</small></code>
<code><small>}</small></code>
| <small>-</small>
| <small></small>
|-
|-
|<small>POST</small>
|<small>POST</small>
Строка 468: Строка 463:
<small>Доступно для следующих сервисов: smc, see, spr.</small>
<small>Доступно для следующих сервисов: smc, see, spr.</small>
|
|
* <small>'''servicetype''' - тип сервиса</small>
* <small>'''servicetype''' тип сервиса</small>
* <small>'''model''' - название модели</small>
* <small>'''model''' название модели</small>
|<code><small>{</small></code>
|<code><small>{</small></code>
<code><small>"error":0,</small></code>
<code><small>"error":0,</small></code>
Строка 476: Строка 471:


<code><small>}</small></code>
<code><small>}</small></code>
| <small>-</small>
| <small></small>
|-
|-
|<small>DELETE</small>
|<small>DELETE</small>
Строка 483: Строка 478:
<small>Доступно для следующих сервисов: smc, see, spr.</small>
<small>Доступно для следующих сервисов: smc, see, spr.</small>
|
|
* <small>'''servicetype''' - тип сервиса</small>
* <small>'''servicetype''' тип сервиса</small>
* <small>'''model''' - название модели</small>
* <small>'''model''' название модели</small>
|<code><small>{</small></code>
|<code><small>{</small></code>
<code><small>"error":0,</small></code>
<code><small>"error":0,</small></code>
Строка 491: Строка 486:


<code><small>}</small></code>
<code><small>}</small></code>
| <small>-</small>
| <small></small>
|-
|-
|<small>GET</small>
|<small>GET</small>
Строка 497: Строка 492:
|<small>Запрос на получение списка ошибок модели после тестирования. Если тестирования не было, то содержит ошибки проверки на обучающем корпусе. Доступен для сервисов see и smc</small>
|<small>Запрос на получение списка ошибок модели после тестирования. Если тестирования не было, то содержит ошибки проверки на обучающем корпусе. Доступен для сервисов see и smc</small>
|
|
*<small>'''servicetype''' - тип сервиса</small>
*<small>'''servicetype''' тип сервиса</small>
* <small>'''model''' - название модели</small>
* <small>'''model''' название модели</small>
* <small>'''modeltype''' - тип модели</small>
* <small>'''modeltype''' тип модели</small>
|<small><code>[</code>  <code>[true, predicted, phrase],</code></small>
|<small><code>[</code>  <code>[true, predicted, phrase],</code></small>
<small><code>...</code>
<small><code>...</code>
<code>]</code></small>
<code>]</code></small>
|<small>содержит список вложенных списков. В каждом три значения: правильное значение, предсказанное моделью значение и начальные данные (фраза)</small>
|<small>Содержит список вложенных списков. В каждом три значения: правильное значение, предсказанное моделью значение и начальные данные (фраза).</small>
|-
|-
|<small>GET</small>
|<small>GET</small>
<small>/model/export/{servicetype}/{model}/{modeltype}</small>
<small>/model/export/{servicetype}/{model}/{modeltype}</small>
|<small>метод экспортирует модель,  модель скачивается в виде zip-архива</small>
|<small>Метод экспортирует модель, модель скачивается в виде zip-архива.</small>
|
|
*<small>'''servicetype''' - тип сервиса</small>
*<small>'''servicetype''' тип сервиса</small>
* <small>'''model''' - название модели</small>
* <small>'''model''' название модели</small>
* <small>'''modeltype''' - тип модели</small>
* <small>'''modeltype''' тип модели</small>
|<small>файл model.zip, где model - название модели</small>
|<small>файл model.zip, где model название модели</small>
| <small>-</small>
| <small></small>
|-
|-
|<small>POST</small>
|<small>POST</small>
Строка 519: Строка 514:
|<small>Отправка файла-постобработчика в указанную модель типа future. Становится активным сразу после успешной отправки.</small>
|<small>Отправка файла-постобработчика в указанную модель типа future. Становится активным сразу после успешной отправки.</small>
|
|
*<small>'''servicetype''' - тип сервиса</small>
*<small>'''servicetype''' тип сервиса</small>
* <small>'''model''' - название модели</small>
* <small>'''model''' название модели</small>
* <small>'''handler''' - файл, содержащий программный код python постобработчика</small>
* <small>'''handler''' файл, содержащий программный код python постобработчика</small>
|<small><code>{</code><code>"error":0,</code></small>
|<small><code>{</code><code>"error":0,</code></small>


Строка 547: Строка 542:
|
|
*<small>'''servicetype''' - тип сервиса</small>
*<small>'''servicetype''' - тип сервиса</small>
* <small>'''model''' - название модели</small>
* <small>'''model''' название модели</small>
|<small>Файл handler.py</small>
|<small>Файл handler.py</small>
|<small>более подробно об обработчике см. руководства пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].</small>
|<small>более подробно об обработчике см. руководства пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].</small>
Строка 555: Строка 550:
|<small>Отправка файла-постобработчика в указанную модель указанного типа. Становится активным сразу после успешной отправки.</small>
|<small>Отправка файла-постобработчика в указанную модель указанного типа. Становится активным сразу после успешной отправки.</small>
|
|
*<small>'''modeltype''' - тип модели</small>
*<small>'''modeltype''' тип модели</small>
*<small>'''servicetype''' - тип сервиса</small>
*<small>'''servicetype''' тип сервиса</small>
* <small>'''model''' - название модели</small>
* <small>'''model''' название модели</small>
* <small>'''handler''' - файл, содержащий программный код python постобработчика</small>
* <small>'''handler''' файл, содержащий программный код python постобработчика</small>
|<code><small>{</small></code>
|<code><small>{</small></code>
<code><small>"error":0,</small></code>
<code><small>"error":0,</small></code>
Строка 565: Строка 560:


<code><small>}</small></code>
<code><small>}</small></code>
| <small>-</small>
| <small></small>
|-
|-
|<small>DELETE</small>
|<small>DELETE</small>
Строка 571: Строка 566:
|<small>Удаление постобработчика в указанной модели указанного типа.</small>
|<small>Удаление постобработчика в указанной модели указанного типа.</small>
|
|
*<small>'''servicetype''' - тип сервиса</small>
*<small>'''servicetype''' тип сервиса</small>
* <small>'''model''' - название модели</small>
* <small>'''model''' название модели</small>
* <small>'''modeltype''' - тип модели</small>
* <small>'''modeltype''' тип модели</small>
|<code><small>{</small></code>
|<code><small>{</small></code>
<code><small>"error":0,</small></code>
<code><small>"error":0,</small></code>
Строка 587: Строка 582:
|<small>Получение файла-постобработчика из указанной модели указанного типа.</small>  
|<small>Получение файла-постобработчика из указанной модели указанного типа.</small>  
|
|
*<small>'''servicetype''' - тип сервиса</small>
*<small>'''servicetype''' тип сервиса</small>
* <small>'''model''' - название модели</small>
* <small>'''model''' название модели</small>
* <small>'''modeltype''' - тип модели</small>
* <small>'''modeltype''' тип модели</small>
|<small>Файл handler.py</small>
|<small>Файл handler.py</small>
|
|
Строка 597: Строка 592:
|<small>Импортирует модель в черновик (modeltype=future)</small>
|<small>Импортирует модель в черновик (modeltype=future)</small>
|
|
*<small>'''servicetype''' - тип сервиса</small>
*<small>'''servicetype''' тип сервиса</small>
* <small>'''model''' - название модели</small>
* <small>'''model''' название модели</small>
* <small>'''zip-model''' - zip с файлами модели</small>
* <small>'''zip-model''' zip с файлами модели</small>
|<code><small>{</small></code>
|<code><small>{</small></code>
<code><small>"error":0,</small></code>
<code><small>"error":0,</small></code>
Строка 612: Строка 607:
|<small>Получение информации о всех моделях указанного сервиса. Аналогичен методу GET /info/{servicetype}/{model}, но выводит информацию обо всех моделях.</small>
|<small>Получение информации о всех моделях указанного сервиса. Аналогичен методу GET /info/{servicetype}/{model}, но выводит информацию обо всех моделях.</small>
|
|
*<small>'''servicetype''' - тип сервиса</small>
*<small>'''servicetype''' тип сервиса</small>
|<code><small>{</small></code>
|<code><small>{</small></code>
<code><small>  "model1": {</small></code>
<code><small>  "model1": {</small></code>
Строка 633: Строка 628:


<code><small>}</small></code>
<code><small>}</small></code>
| <small>-</small>
| <small></small>
|-
|-
|<small>GET</small>
|<small>GET</small>
Строка 639: Строка 634:
|<small>Получение информации о каждом типе (modeltype) указанной модели.</small>
|<small>Получение информации о каждом типе (modeltype) указанной модели.</small>
|
|
*<small>'''servicetype''' - тип сервиса</small>
*<small>'''servicetype''' тип сервиса</small>
* <small>'''model''' - название модели</small>
* <small>'''model''' название модели</small>
|<code><small>{</small></code>
|<code><small>{</small></code>
<code><small>  "previous": null,</small></code>
<code><small>  "previous": null,</small></code>
Строка 669: Строка 664:
<small>Доступно для следующих сервисов: smc, see, spr.</small>
<small>Доступно для следующих сервисов: smc, see, spr.</small>
|
|
* <small>'''servicetype''' - тип сервиса</small>
* <small>'''servicetype''' тип сервиса</small>
* <small>'''model''' - название модели</small>
* <small>'''model''' название модели</small>
|<code><small>{</small></code>
|<code><small>{</small></code>
<code><small>"error":0,</small></code>
<code><small>"error":0,</small></code>
Строка 683: Строка 678:
|<small>Выводит лог обучения и тестирования модели. Доступно для следующих сервисов: smc, see.</small>
|<small>Выводит лог обучения и тестирования модели. Доступно для следующих сервисов: smc, see.</small>
|
|
*<small>'''servicetype''' - тип сервиса</small>
*<small>'''servicetype''' тип сервиса</small>
* <small>'''model''' - название модели</small>
* <small>'''model''' название модели</small>
* <small>'''modeltype''' - тип модели</small>
* <small>'''modeltype''' тип модели</small>
|<code><small>[</small></code>
|<code><small>[</small></code>
<code><small>  "training",</small></code>
<code><small>  "training",</small></code>
Строка 696: Строка 691:


<code><small>]</small></code>
<code><small>]</small></code>
| <small>-</small>
| <small></small>
|-
|-
|<small>POST</small>
|<small>POST</small>
Строка 705: Строка 700:
* '''<small>null -> previous</small>'''
* '''<small>null -> previous</small>'''
|
|
*<small>'''servicetype''' - тип сервиса</small>
*<small>'''servicetype''' тип сервиса</small>
* <small>'''model''' - название модели</small>
* <small>'''model''' название модели</small>
|<small><code>{</code><code>"error":0,</code></small>
|<small><code>{</code><code>"error":0,</code></small>


Строка 712: Строка 707:


<code><small>}</small></code>
<code><small>}</small></code>
| <small>-</small>
| <small></small>
|}
|}


Строка 730: Строка 725:
| <small>метод api для копирования корпуса данных</small>
| <small>метод api для копирования корпуса данных</small>
|
|
* <small>'''servicetype''' - тип сервиса</small>
* <small>'''servicetype''' тип сервиса</small>
* <small>'''srcname''' - текущее имя</small>
* <small>'''srcname''' текущее имя</small>
* <small>'''dstname''' - новое имя</small>
* <small>'''dstname''' новое имя</small>
|<code><small>{</small></code>
|<code><small>{</small></code>
<code><small>  "error": 0,</small></code>
<code><small>  "error": 0,</small></code>
Строка 739: Строка 734:


<code><small>}</small></code>
<code><small>}</small></code>
|<small>-</small>
|<small></small>
|-
|-
|<small>DELETE</small>
|<small>DELETE</small>
Строка 746: Строка 741:
|<small>Удаляет корпус с данными</small>
|<small>Удаляет корпус с данными</small>
|
|
* <small>'''servicetype''' - тип сервиса</small>
* <small>'''servicetype''' тип сервиса</small>
* <small>'''name''' - название корпуса</small>
* <small>'''name''' название корпуса</small>
|<code><small>{</small></code>
|<code><small>{</small></code>
<code><small>  "error": 0,</small></code>
<code><small>  "error": 0,</small></code>
Строка 754: Строка 749:


<code><small>}</small></code>
<code><small>}</small></code>
|<small>-</small>
|<small></small>
|-
|-
|<small>GET</small>
|<small>GET</small>
Строка 761: Строка 756:
|<small>Возвращает текстовый файл с данными, содержащий строки вида КЛАСС<TAB>ФРАЗА</small>
|<small>Возвращает текстовый файл с данными, содержащий строки вида КЛАСС<TAB>ФРАЗА</small>
|
|
* <small>'''servicetype''' - тип сервиса</small>
* <small>'''servicetype''' тип сервиса</small>
* <small>'''name''' - название корпуса</small>
* <small>'''name''' название корпуса</small>
|<small>Файл name.txt</small>
|<small>Файл name.txt</small>
|<small>-</small>
|<small></small>
|-
|-
|<small>GET</small>
|<small>GET</small>
Строка 771: Строка 766:
|<small>Возвращает JSON с данными корпуса</small>
|<small>Возвращает JSON с данными корпуса</small>
|
|
* <small>'''servicetype''' - тип сервиса</small>
* <small>'''servicetype''' тип сервиса</small>
* <small>'''name''' - название корпуса</small>
* <small>'''name''' название корпуса</small>
|<code><small>[</small></code>
|<code><small>[</small></code>
<code><small>  [</small></code>
<code><small>  [</small></code><code><small> "generalPayments",</small></code>
 
<code><small>  "generalPayments",</small></code>


<code><small>    "соцвыплата"</small></code>
<code><small>    "соцвыплата"</small></code>
Строка 785: Строка 778:


<code><small>]</small></code>
<code><small>]</small></code>
|<small>Список вложенных списков со значениями "Класс" и "Фраза"</small>
|<small>Список вложенных списков со значениями «Класс» и «Фраза».</small>
|-
|-
|<small>POST</small>
|<small>POST</small>
Строка 792: Строка 785:
| <small>Метод для импорта корпуса данных. Возможен как из текстового файла со строками вида КЛАСС<TAB>ФРАЗА (доступно для smc и see), так и из логов работы системы (только для smc). Если на вход поступил файл '''csv''', происходит импорт из файла, в противном случае из логов.</small>
| <small>Метод для импорта корпуса данных. Возможен как из текстового файла со строками вида КЛАСС<TAB>ФРАЗА (доступно для smc и see), так и из логов работы системы (только для smc). Если на вход поступил файл '''csv''', происходит импорт из файла, в противном случае из логов.</small>
|
|
* <small>'''servicetype''' - тип сервиса</small>
* <small>'''servicetype''' тип сервиса</small>
* <small>'''name''' - название корпуса</small>
* <small>'''name''' название корпуса</small>
* <small>'''csv''' - файл данных</small>
* <small>'''csv''' файл данных</small>
* <small>'''startDate''' - дата начала выборки, YYYY-MM-DD</small>
* <small>'''startDate''' дата начала выборки, YYYY-MM-DD</small>
* <small>'''stopDate''' - дата окончания выборки, YYYY-MM-DD</small>
* <small>'''stopDate''' дата окончания выборки, YYYY-MM-DD</small>
* <small>'''model''' - имя модели, из логов которой будет произведен импорт</small>
* <small>'''model''' имя модели, из логов которой будет произведен импорт</small>
* <small>'''limit''' - числовое ограничение строк импорта</small>
* <small>'''limit''' числовое ограничение строк импорта</small>
|<code><small>{</small></code>
|<code><small>{</small></code>
<code><small>  "error": 0,</small></code>
<code><small>  "error": 0,</small></code>
Строка 805: Строка 798:


<code><small>}</small></code>
<code><small>}</small></code>
|<small>-</small>
|<small></small>
|-
|-
|<small>GET</small>
|<small>GET</small>
Строка 812: Строка 805:
|<small>Возвращает список всех корпусов данных для указанного типа сервиса</small>
|<small>Возвращает список всех корпусов данных для указанного типа сервиса</small>
|
|
* <small>'''servicetype''' - тип сервиса</small>
* <small>'''servicetype''' тип сервиса</small>
|<code><small>[</small></code>
|<code><small>[</small></code>
<code><small> "корпус1",</small></code>
<code><small> "корпус1",</small></code>
Строка 828: Строка 821:
|<small>Перезаписывает корпус отправленным массивом данных</small>
|<small>Перезаписывает корпус отправленным массивом данных</small>
|
|
* <small>'''servicetype''' - тип сервиса</small>
* <small>'''servicetype''' тип сервиса</small>
* <small>'''name''' - название корпуса</small>
* <small>'''name''' название корпуса</small>
* <small>'''json''' - строка формата json с данными. Аналогична выводу метода GET /get/{servicetype}</small>
* <small>'''json''' строка формата json с данными. Аналогична выводу метода GET /get/{servicetype}</small>
|<code><small>{</small></code>
|<code><small>{</small></code>
<code><small>  "error": 0,</small></code>
<code><small>  "error": 0,</small></code>
Строка 837: Строка 830:


<code><small>}</small></code>
<code><small>}</small></code>
|<small>-</small>
|<small></small>
|-
|-
|<small>POST</small>
|<small>POST</small>
Строка 844: Строка 837:
|<small>Переименование корпуса</small>
|<small>Переименование корпуса</small>
|
|
* <small>'''servicetype''' - тип сервиса</small>
* <small>'''servicetype''' тип сервиса</small>
* <small>'''srcname''' - текущее имя</small>
* <small>'''srcname''' текущее имя</small>
* <small>'''dstname''' - новое имя</small>
* <small>'''dstname''' новое имя</small>
|<code><small>{</small></code>
|<code><small>{</small></code>
<code><small>  "error": 0,</small></code>
<code><small>  "error": 0,</small></code>
Строка 853: Строка 846:


<code><small>}</small></code>
<code><small>}</small></code>
|<small>-</small>
|<small></small>
|}
|}


Строка 867: Строка 860:
|<small>GET</small><small>/spr/audio/{taskID}</small>
|<small>GET</small><small>/spr/audio/{taskID}</small>
|<small>Метод для получения аудиофайла отложенного задания</small>
|<small>Метод для получения аудиофайла отложенного задания</small>
|<small>'''taskID''' - идентификатор задания в очереди</small>
|<small>'''taskID''' идентификатор задания в очереди</small>
|<small>'''Wav''' файл</small>
|<small>'''Wav''' файл</small>
|
|
Строка 874: Строка 867:
|<small>Метод для получения очереди отложенных заданий</small>
|<small>Метод для получения очереди отложенных заданий</small>
|
|
|<small>{</small>
|<small><code>{</code></small>
<small>  "id задания": {</small>
<small><code>  "id задания": {</code></small>


<small>   "created": "ХХХХ-ХХ-ХХ ХХ:ХХ:ХХ",</small>
<small><code>   "created": "ХХХХ-ХХ-ХХ ХХ:ХХ:ХХ",</code></small>


<small>   "status": "waiting",</small>
<small><code>   "status": "waiting",</code></small>


<small>   "filename": "wav"</small>
<small><code>   "filename": "wav"</code></small>


<small>}</small>
<small><code>}</code></small>


<small>Статусы</small>
<small>Статусы</small>


<small>'''ready''' - готово</small>
<small>'''ready''' готово</small>


<small>'''waiting''' - ожидание</small>
<small>'''waiting''' ожидание</small>


<small>'''failed''' - сбой</small>
<small>'''failed''' сбой</small>
|
|
|-
|-
|<small>DELETE</small><small>/spr/queue/{taskID}</small>
|<small>DELETE</small><small>/spr/queue/{taskID}</small>
|<small>Метод для удаления задания из очереди</small>
|<small>Метод для удаления задания из очереди</small>
|<small>'''taskID''' - идентификатор задания в очереди</small>
|<small>'''taskID''' идентификатор задания в очереди</small>
|<small>{</small>
|<small><code>{</code></small>
"error": 0,
<code>"error": 0,</code>


"message": "success"
<code>"message": "success"</code>


<small>}</small>
<small><code>}</code></small>
|
|
|-
|-
|<small>GET</small><small>/spr/result/{taskID}</small>
|<small>GET</small><small>/spr/result/{taskID}</small>
|<small>Метод для получения результатов распознавания отложенного задания</small>
|<small>Метод для получения результатов распознавания отложенного задания</small>
|<small>'''taskID''' - идентификатор задания в очереди</small>
|<small>'''taskID''' идентификатор задания в очереди</small>
|<small>Вывод аналогичен выводу метода stt + добавлено поле status, которое содержит информацию о статусе отложенной задачи:</small>
|<small>Вывод аналогичен выводу метода stt + добавлено поле status, которое содержит информацию о статусе отложенной задачи:</small>
<small>'''ready''' - готово '''waiting''' - ожидание '''not found''' - не найдена '''failed''' - сбой</small>
<small>'''ready''' готово</small>
 
<small>'''waiting''' ожидание</small>
 
<small>'''not found''' не найдена</small>
 
<small>'''failed''' сбой</small>
|
|
|-
|-
Строка 916: Строка 915:
| <small>Метод для отправки файла на распознавание речи. Моно-файлы до 30 секунд распознаются без разбивки на фрагменты. Многоканальные файлы и файлы длиннее 30 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в [[SPR. Руководство администратора.|руководстве администратора]] SPR. В случае отправки переменной speakers=1, дополнительно производится поиск говорящих и получение метаданных по каждому говорящему.</small>
| <small>Метод для отправки файла на распознавание речи. Моно-файлы до 30 секунд распознаются без разбивки на фрагменты. Многоканальные файлы и файлы длиннее 30 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в [[SPR. Руководство администратора.|руководстве администратора]] SPR. В случае отправки переменной speakers=1, дополнительно производится поиск говорящих и получение метаданных по каждому говорящему.</small>
|
|
*<small>'''model''' - идентификатор модели</small>
*<small>'''model''' идентификатор модели</small>
*<small>'''denoise''' - уровень шумоподавления</small>
*<small>'''denoise''' уровень шумоподавления</small>
*<small>'''wav''' - файл для распознавания</small>
*<small>'''wav''' файл для распознавания</small>
*<small>'''speakers''' - опция разделения по говорящим</small>
*<small>'''speakers''' опция разделения по говорящим</small>
|<small><code>{</code></small>
|<small><code>{</code></small>
<small><code>"model":"name",</code></small>  
<small><code>"model":"name",</code></small>  
Строка 974: Строка 973:
|<small>GET</small><small>/spr/waveform/{taskID}</small>
|<small>GET</small><small>/spr/waveform/{taskID}</small>
|<small>Служебный метод для отображения аудио в графическом виде, содержит пики сигнала</small>
|<small>Служебный метод для отображения аудио в графическом виде, содержит пики сигнала</small>
|<small>'''taskID''' - идентификатор задания</small>
|<small>'''taskID''' идентификатор задания</small>
|<small>{</small>
|<small><code>{</code></small>
   <"error": 0,
   <code><"error": 0,
   "waveform": [
   "waveform": [
     0.016,
     0.016,
Строка 983: Строка 982:
     0.015,
     0.015,
     0.01
     0.01
   ]
   ]</code>
<small>}</small>
<small><code>}</code></small>
|
|
|}
|}
Строка 1001: Строка 1000:
|<small>метод для классификации текстовой фразы</small>
|<small>метод для классификации текстовой фразы</small>
|
|
* '''model''' - идентификатор модели
* '''model''' идентификатор модели


* '''text''' - текст, подлежащий классификации
* '''text''' текст, подлежащий классификации


* '''confidenceThreshold''', % - минимальный порог доверия.
* '''confidenceThreshold''', % минимальный порог доверия.
|{
|<code>{</code>


  "classes": [
<code>  "classes": [</code>


    {
<code>    {</code>


      "class": "название класса",
<code>      "class": "название класса",</code>


      "confidence": 1
<code>      "confidence": 1</code>


    },
<code>    },</code>


    {
<code>    {</code>


      "class": "название класса 2",
<code>      "class": "название класса 2",</code>


      "confidence": 1
<code>      "confidence": 1</code>


    }
<code>    }</code>


  ],
<code>  ],</code>


  "groups": [
<code>  "groups": [</code>


    {
<code>    {</code>


      "group": "название группы 1",
<code>      "group": "название группы 1",</code>


      "intersection": 2,
<code>      "intersection": 2,</code>


      "classes": [
<code>      "classes": [</code>


        "название класса",
<code>        "название класса",</code>


        "название класса 2"
<code>        "название класса 2"</code>


      ]
<code>      ]</code>


    }
<code>    }</code>


  ],
<code>  ],</code>


  "nearest": [
<code>  "nearest": [</code>


    {
<code>    {</code>


      "group": "название группы 2",
<code>      "group": "название группы 2",</code>


      "percent": 0.6666666666666666,
<code>      "percent": 0.6666666666666666,</code>


      "need": "название класса которого не хватило 1"
<code>      "need": "название класса которого не хватило 1"</code>


    },
<code>    },</code>


    {
<code>    {</code>


      "group": ""название группы 3",
<code>      "group": ""название группы 3",</code>


      "percent": 0.6666666666666666,
<code>      "percent": 0.6666666666666666,</code>


      "need": "название класса которого не хватило 2"
<code>      "need": "название класса которого не хватило 2"</code>


    }
<code>    }</code>


  ]
<code>  ]</code>


}
<code>}</code>
|
|
* '''classes''' - отображается название класса, к которому был отнесен текст, и вероятность его принадлежности к этому классу.
* '''classes''' отображается название класса, к которому был отнесен текст, и вероятность его принадлежности к этому классу.
 
* '''groups''' название группы и число совпавших классов. Если метки совпадают с несколькими группами, они отображаются в порядке убывания числа совпавших классов (т. е. чем полнее группа, тем выше ее позиция в списке).
* '''groups''' - название группы и число совпавших классов. Если метки совпадают с несколькими группами, они отображаются в порядке убывания числа совпавших классов (т.е. чем полнее группа, тем выше ее позиция в списке).
* '''nearest''' отображаются группы, до которых не хватает всего одной метки, с указанием процента заполненности и сортировкой по убыванию этого процента.
 
* '''nearest''' - отображаются группы, до которых не хватает всего одной метки, с указанием процента заполненности и сортировкой по убыванию этого процента.
|-
|-
|<small>GET</small>
|<small>GET</small>
Строка 1085: Строка 1082:
|<small>Убирает из фразы слова не влияющие на ее смысл.</small>
|<small>Убирает из фразы слова не влияющие на ее смысл.</small>
|
|
* <small>'''text''' - текст для сжатия</small>
* <small>'''text''' текст для сжатия</small>


* <small>'''threshold''' - уровень компрессии от 1 до 100. Чем меньше число тем меньше слов будет в итоговой фразе</small>
* <small>'''threshold''' уровень компрессии от 1 до 100. Чем меньше число тем меньше слов будет в итоговой фразе</small>
|{
|<code>{</code>


  "text": "сжатый текст"
<code>  "text": "сжатый текст"</code>


}
<code>}</code>
|
|
|-
|-
Строка 1098: Строка 1095:


<small>/smc/correct</small>
<small>/smc/correct</small>
|<small>Коррекция правописания. Изменяет неправильно написанные слова меняя их на наиболее близкие правильные (из знакомых модели).</small>
|<small>Коррекция правописания. Изменяет неправильно написанные слова, меняя их на наиболее близкие правильные (из знакомых модели).</small>
|'''text''' - текст для коррекции
|'''text''' текст для коррекции
|
|
|
|
Строка 1107: Строка 1104:
<small>/smc/emotion</small>
<small>/smc/emotion</small>
|<small>Анализ эмоций.</small>
|<small>Анализ эмоций.</small>
|<small>'''text''' - фраза для анализа эмоций</small>
|<small>'''text''' фраза для анализа эмоций</small>
|<small>{ "emotion": "positive", "score": 0.9601 }</small>
|<small><code>{ "emotion": "positive", "score": 0.9601 }</code></small>
|
|
|-
|-
Строка 1116: Строка 1113:
|<small>Добавляет к модели группы из корпуса</small>
|<small>Добавляет к модели группы из корпуса</small>
|
|
* <small>'''id''' - наименование модели</small>
* <small>'''id''' наименование модели</small>


* <small>'''corpus''' - наименование корпуса- источника групп</small>
* <small>'''corpus''' наименование корпуса- источника групп</small>
|<small>{</small>
|<small><code>{</code></small>


<small>  "error": 0,</small>
<small><code>  "error": 0,</code></small>


<small>  "message": "string"</small>
<small><code>  "message": "string"</code></small>


<small>}</small>
<small><code>}</code></small>
|<small>Группы в модели будут перезаписаны</small>
|<small>Группы в модели будут перезаписаны</small>
|-
|-
Строка 1133: Строка 1130:
|<small>Поиск групп по ранее полученным меткам.</small>  
|<small>Поиск групп по ранее полученным меткам.</small>  
|
|
* <small>'''classes''' - набор меток через запятую</small>
* <small>'''classes''' набор меток через запятую</small>


* <small>'''model''' - имя модели</small>
* <small>'''model''' имя модели</small>
|<small>{</small>
|<small><code>{</code></small>


<small>"groups": [</small>
<small><code>"groups": [</code></small>


<small>   {</small>
<small><code>   {</code></small>


<small>     "group": "Группа 1",</small>
<small><code>     "group": "Группа 1",</code></small>


<small>     "intersection": 3,</small>
<small><code>     "intersection": 3,</code></small>


<small>     "classes": [</small>
<small><code>     "classes": [</code></small>


<small>       "метка1_о",</small>
<small><code>       "метка1_о",</code></small>


<small>       "метка2_о",</small>
<small><code>       "метка2_о",</code></small>


<small>       "метка3_о"</small>
<small><code>       "метка3_о"</code></small>


<small>     ]</small>
<small><code>     ]</code></small>


<small>   },</small>
<small><code>   },</code></small>


<small>   {</small>
<small><code>   {</code></small>


<small>     "group": "Группа 2",</small>
<small><code>     "group": "Группа 2",</code></small>


<small>     "intersection": 2,</small>
<small><code>     "intersection": 2,</code></small>


<small>     "classes": [</small>
<small><code>     "classes": [</code></small>


<small>       "метка1_о",</small>
<small><code>       "метка1_о",</code></small>


<small>       "метка5_о"</small>
<small><code>       "метка5_о"</code></small>


<small>     ]</small>
<small><code>     ]</code></small>


<small>   }</small>
<small><code>   }</code></small>


<small>],</small>
<small><code>],</code></small>


<small>"nearest": [</small>
<small><code>"nearest": [</code></small>


<small>   {</small>
<small><code>   {</code></small>


<small>     "group": "Группа до которой не хватило 1 метки",</small>
<small><code>     "group": "Группа до которой не хватило 1 метки",</code></small>


<small>     "percent": 0.75,</small>
<small><code>     "percent": 0.75,</code></small>


<small>     "need": "недостающая метка_о"</small>
<small><code>     "need": "недостающая метка_о"</code></small>


<small>   }</small>
<small><code>   }</code></small>


<small>]</small>
<small><code>]</code></small>


<small>}</small>
<small><code>}</code></small>
|<small>Ищет группы по набору меток. Результат - группы (если найдены) и ближайшие группы с указанием недостающих меток.</small>
|<small>Ищет группы по набору меток. Результат группы (если найдены) и ближайшие группы с указанием недостающих меток.</small><small>Позволяет сохранять контекст в виде меток и дозапрашивать группы с учетом контекста.</small>
 
<small>Позволяет сохранять контекст в виде меток и дозапрашивать группы с учетом контекста.</small>
|-
|-
|<small>GET</small>
|<small>GET</small>
Строка 1199: Строка 1194:
<small>/smc/normalize</small>
<small>/smc/normalize</small>
|<small>Обратная нормализация текста</small>  
|<small>Обратная нормализация текста</small>  
|<small>text - текст для обработки</small>
|<small>text текст для обработки.</small>
|<small>{"text": "<строка после обратной нормализации>"}</small>
|<small><code>{"text": "<строка после обратной нормализации>"}</code></small>
|Пример: двадцать пятого апреля в пятом часу - 25 апреля в 5-м часу
|Пример: двадцать пятого апреля в пятом часу 25 апреля в 5-м часу.
|-
|-
|<small>GET</small>
|<small>GET</small>
Строка 1207: Строка 1202:
<small>/smc/punctuate</small>
<small>/smc/punctuate</small>
|<small>Расстановка знаков препинания</small>
|<small>Расстановка знаков препинания</small>
|<small>text - текст для преобразования</small>
|<small>text текст для преобразования.</small>
|<small>{</small>
|<small><code>{</code></small>


<small>  "text": "string"</small>
<small><code>  "text": "string"</code></small>


<small>}</small>
<small><code>}</code></small>
|
|
|-
|-
Строка 1219: Строка 1214:
<small>/smc/stop/{model}</small>
<small>/smc/stop/{model}</small>
|<small>Остановка обучения модели.</small>
|<small>Остановка обучения модели.</small>
|<small>model - имя модели</small>
|<small>model имя модели/</small>
|<small>{</small>
|<small><code>{</code></small>


<small>  "error": 0,</small>
<small><code>  "error": 0,</code></small>


<small>  "message": "string"</small>
<small><code>  "message": "string"</code></small>


<small>}</small>
<small><code>}</code></small>
|<small>Удаляет тестовую версию модели с сервера обучения, тем самым прерывает обучение</small>
|<small>Удаляет тестовую версию модели с сервера обучения, тем самым прерывает обучение.</small>
|-
|-
|<small>POST</small>
|<small>POST</small>
Строка 1234: Строка 1229:
|<small>Запуск тестирования модели smc</small>
|<small>Запуск тестирования модели smc</small>
|
|
* <small>'''model''' - идентификатор модели</small>
* <small>'''model''' идентификатор модели</small>
* <small>'''corpus''' - название корпуса с тестовыми данными</small>
* <small>'''corpus''' название корпуса с тестовыми данными</small>
|<small><code>{  "error": 0,</code></small>
|<small><code>{  "error": 0,</code></small>


Строка 1249: Строка 1244:
|<small>Запуск обучения модели future</small>
|<small>Запуск обучения модели future</small>
|
|
* <small>'''model''' - идентификатор модели</small>
* <small>'''model''' идентификатор модели</small>
* <small>'''corpus''' - название корпуса с данными</small>
* <small>'''corpus''' название корпуса с данными</small>
|<small><code>{  "error": 0,</code></small>
|<small><code>{  "error": 0,</code></small>


Строка 1272: Строка 1267:
|<small>метод для поиска сущностей</small>
|<small>метод для поиска сущностей</small>
|
|
* <small>'''model''' - идентификатор[ы] модели. Может быть указано несколько через запятую, тогда запрос будет обработан всеми указанными моделями</small>
* <small>'''model''' идентификатор[ы] модели. Может быть указано несколько через запятую, тогда запрос будет обработан всеми указанными моделями</small>
* <small>'''text''' - текст</small>
* <small>'''text''' текст</small>
* <small>'''similarity''' - порог похожести найденной сущности на эталонные, %. По умолчанию 70.</small>
* <small>'''similarity''' порог похожести найденной сущности на эталонные, %. По умолчанию 70.</small>
|<code><small>{ID-модели: [</small></code><code><small>{</small></code>
|<code><small>{ID-модели: [</small></code><code><small>{</small></code>


Строка 1291: Строка 1286:
<code><small>}</small></code>
<code><small>}</small></code>
|<small>Вернется массив со всеми моделями, в которых были найдены сущности. Каждая переменная с названием модели будет содержать список всех найденных сущностей.</small>  
|<small>Вернется массив со всеми моделями, в которых были найдены сущности. Каждая переменная с названием модели будет содержать список всех найденных сущностей.</small>  
* <small>'''position''' - позиция слова начала фрагмента, определяющего сущность</small>
* <small>'''position''' позиция слова начала фрагмента, определяющего сущность</small>
* <small>'''confidence''' - вероятность правильного определения сущности</small>
* <small>'''confidence''' вероятность правильного определения сущности</small>
* <small>'''calculated''' - поле, содержащее измененное постобработчиком (при его наличии) значение сущности либо код сущности, использованный при обучении модели</small>
* <small>'''calculated''' поле, содержащее измененное постобработчиком (при его наличии) значение сущности либо код сущности, использованный при обучении модели.</small>
|-
|-
|<small>POST</small>
|<small>POST</small>
Строка 1299: Строка 1294:
|<small>Остановка обучения модели</small>
|<small>Остановка обучения модели</small>
|
|
* <small>'''model''' - идентификатор модели</small>
* <small>'''model''' идентификатор модели</small>
|<small><code>{</code><code>  "error": 0,</code></small>
|<small><code>{</code><code>  "error": 0,</code></small>


Строка 1305: Строка 1300:


<code><small>}</small></code>
<code><small>}</small></code>
|<small>-</small>
|<small></small>
|-
|-
|<small>POST</small>
|<small>POST</small>
Строка 1311: Строка 1306:
|<small>Запуск обучения модели future</small>
|<small>Запуск обучения модели future</small>
|
|
* <small>'''model''' - идентификатор модели</small>
* <small>'''model''' идентификатор модели</small>
* <small>'''corpus''' - название корпуса с данными</small>
* <small>'''corpus''' название корпуса с данными</small>
* <small>'''noise''' - уровень шума для генерации синтезированных данных для обучения модели, от 1 до 5, по умолчанию 0</small>
* <small>'''noise''' уровень шума для генерации синтезированных данных для обучения модели, от 1 до 5, по умолчанию 0</small>
|<small><code>{</code><code>  "error": 0,</code></small>
|<small><code>{</code><code>  "error": 0,</code></small>


Строка 1336: Строка 1331:
|<small>Получение аналитических метаданных из голосового фрагмента</small>
|<small>Получение аналитических метаданных из голосового фрагмента</small>
|
|
* <small>'''wav''' - файл для анализа</small>
* <small>'''wav''' файл для анализа</small>
|<code><small>{ age: { class: 20-29, confidence: 0.99 }, emotion: { class: SADNESS, confidence: 0.99 }, gender: { class: FEMALE, confidence: 0.99 } }</small></code>
|<code><small>{ age: { class: 20-29, confidence: 0.99 }, emotion: { class: SADNESS, confidence: 0.99 }, gender: { class: FEMALE, confidence: 0.99 } }</small></code>
|Более подробные сведения находятся в [[SBS. Руководство пользователя|руководстве пользователя SBS]].
|Более подробные сведения находятся в [[SBS. Руководство пользователя|руководстве пользователя SBS]].
Строка 1343: Строка 1338:
|<small>Поиск говорящего по базе слепков</small>
|<small>Поиск говорящего по базе слепков</small>
|
|
* '''<small>wav</small>''' <small>- файл для анализа</small>
* '''<small>wav</small>''' <small>—</small> <small>для анализа</small>
|<small><code>{ error: 0, speaker: Ivan, confidence: 0.79 }</code></small>
|<small><code>{ error: 0, speaker: Ivan, confidence: 0.79 }</code></small>
|<small>-</small>
|<small></small>
|-
|-
|<small>POST</small>
|<small>POST</small>
Строка 1352: Строка 1347:
|<small>Добавление нового говорящего</small>
|<small>Добавление нового говорящего</small>
|
|
* <small>'''name''' - наименование говорящего</small>
* <small>'''name''' наименование говорящего</small>


* <small>'''wav'''- файл для обучения</small>
* <small>'''wav''' файл для обучения</small>
|<small>{</small>
|<small><code>{</code></small>


<small>  "error": 0,</small>
<small><code>  "error": 0,</code></small>


<small>  "id": "bd345767-ec94-4a8d-bcef-3ecbdfdd7a8f",</small>
<small><code>  "id": "bd345767-ec94-4a8d-bcef-3ecbdfdd7a8f",</code></small>


<small>  "message": "success"</small>
<small><code>  "message": "success"</code></small>


<small>}</small>
<small><code>}</code></small>
|
|
|-
|-
Строка 1370: Строка 1365:
|<small>Удаление слепка из базы</small>
|<small>Удаление слепка из базы</small>
|
|
* <small>'''speaker_id''' - идентификатор говорящего</small>
* <small>'''speaker_id''' идентификатор говорящего</small>
|<small><code>{  "error": 0,</code></small>
|<small><code>{  "error": 0,</code></small>


Строка 1376: Строка 1371:


<small><code>}</code></small>
<small><code>}</code></small>
|<small>-</small>
|<small></small>
|-
|-
|<small>GET</small>
|<small>GET</small>
Строка 1382: Строка 1377:
<small>/sbs/speakers/list</small>
<small>/sbs/speakers/list</small>
|<small>Выводит список имен и идентификаторов говорящих</small>
|<small>Выводит список имен и идентификаторов говорящих</small>
| -
| <small>—</small>
|<small>[</small>
|<small><code>[</code></small>


<small>  {</small>
<small><code>  {</code></small>


<small>    "id": "4830209e-0be4-495c-a633-4e2159b5368e",</small>
<small><code>    "id": "4830209e-0be4-495c-a633-4e2159b5368e",</code></small>


<small>    "name": "наименование1"</small>
<small><code>    "name": "наименование1"</code></small>


<small>  },</small>
<small><code>  },</code></small>


<small>  {</small>
<small><code>  {</code></small>


<small>    "id": "67acb90c-6217-4878-95d4-691008a00f07",</small>
<small><code>    "id": "67acb90c-6217-4878-95d4-691008a00f07",</code></small>


<small>    "name": "наименование2"</small>
<small><code>    "name": "наименование2"</code></small>


<small>  }</small>
<small><code>  }</code></small>


<small>]</small>
<small><code>]</code></small>
|
|
|-
|-
Строка 1409: Строка 1404:
|<small>Дообучение имеющегося слепка говорящего</small>
|<small>Дообучение имеющегося слепка говорящего</small>
|
|
* <small>'''wav''' - голосовой отрезок для обучения</small>
* <small>'''wav''' голосовой отрезок для обучения</small>


* <small>'''id''' - идентификатор говорящего</small>
* <small>'''id''' идентификатор говорящего</small>
|<small>{</small>
|<small><code>{</code></small>


<small>  "error": 0,</small>
<small><code>  "error": 0,</code></small>


<small>  "message": "Success"</small>
<small><code>  "message": "Success"</code></small>


<small>}</small>
<small><code>}</code></small>
|
|
|-
|-
Строка 1424: Строка 1419:
|<small>Сравнение оцифрованного представления wav-файла cо слепком в базе</small>
|<small>Сравнение оцифрованного представления wav-файла cо слепком в базе</small>
|
|
* <small>'''speaker_id''' - идентификатор говорящего</small>
* <small>'''speaker_id''' идентификатор говорящего</small>
|<small><code>{</code></small><small><code>"error": 0,</code></small>
|<small><code>{</code></small><small><code>"error": 0,</code></small>


Строка 1430: Строка 1425:


<small><code>}</code></small>
<small><code>}</code></small>
|<small>-</small>
|<small></small>
|}
|}


Строка 1444: Строка 1439:
<small>/tts/dictionary/export</small>
<small>/tts/dictionary/export</small>
|<small>Предназначен для экспорта пользовательского словаря в виде строк</small>
|<small>Предназначен для экспорта пользовательского словаря в виде строк</small>
| <small>-</small>
| <small></small>
|<code><small>привет прив+ет</small></code>
|<code><small>привет прив+ет</small></code>
| <small>-</small>
| <small></small>
|-
|-
|GET
|GET
<small>/</small><small>tts/dictionary/get</small>
<small>/</small><small>tts/dictionary/get</small>
|<small>Предназначен для экспорта пользовательского словаря в виде json</small>
|<small>Предназначен для экспорта пользовательского словаря в виде json</small>
|<small>-</small>
|<small></small>
|
|
{| class="wikitable"
{| class="wikitable"
|
|
  [
  <code>[
   [
   [
     "привет",
     "привет",
     "прив+ет"
     "прив+ет"
   ]
   ]
  ]
  ]</code>
|}
|}
|<small>-</small>
|<small></small>
|-
|-
|POST
|POST
<small>/</small><small>tts/dictionary/</small><small>import</small>
<small>/</small><small>tts/dictionary/</small><small>import</small>
|<small>Предназначен для загрузки пользовательского словаря в виде строк из файла .csv</small>
|<small>Предназначен для загрузки пользовательского словаря в виде строк из файла .csv</small>
|csv файл с разделителем - "табуляция"
|CSV-файл с разделителем — «табуляция».
|{  
|<code>{</code>
 "error": 0,  
<code> "error": 0,</code>


 "message": "success",  
<code> "message": "success",</code>


 "answers": {  
<code> "answers": {</code>


   "http://127.0.0.1<nowiki/>:6186": "{\"error\": 0, \"message\": \"success\"}\n"
<code>   "http://127.0.0.1<nowiki/>:6186": "{\"error\": 0, \"message\": \"success\"}\n"</code>


 }  
<code> }</code>


}  
<code>}</code>
|Пользовательский словарь будет переписан, не дополнен!
|Пользовательский словарь будет переписан, не дополнен!
|-
|-
Строка 1485: Строка 1480:
<small>/</small><small>tts/dictionary/</small><small>put</small>
<small>/</small><small>tts/dictionary/</small><small>put</small>
|<small>Предназначен для загрузки пользовательского словаря в виде json списка</small>
|<small>Предназначен для загрузки пользовательского словаря в виде json списка</small>
|[ [ "привет", "прив+ет" ] ]
|<code>[ [ "привет", "прив+ет" ] ]</code>
|{
|<code>{</code>
"error": 0,
<code>"error": 0,</code>


"message": "success",
<code>"message": "success",</code>


"answers": {
<code>"answers": {</code>


"http://127<nowiki/>.0.0.1:6186": "{\"error\": 0, \"message\": \"success\"}\n"
<code>"http://127<nowiki/>.0.0.1:6186": "{\"error\": 0, \"message\": \"success\"}\n"</code>


}
<code>}</code>


}
<code>}</code>
|Пользовательский словарь будет переписан, не дополнен!
|Пользовательский словарь будет переписан, не дополнен!
|-
|-
Строка 1505: Строка 1500:
|<small>Синтезировать текст</small>
|<small>Синтезировать текст</small>
|
|
* <small>'''text''' - текст для синтеза</small>
* <small>'''text''' текст для синтеза</small>


* <small>'''rate''' - скорость речи</small>
* <small>'''rate''' скорость речи</small>


* <small>'''pitch''' - высота тона</small>
* <small>'''pitch''' высота тона</small>


* <small>'''volume''' - громкость речи</small>
* <small>'''volume''' громкость речи</small>


* <small>'''model''' - голос для синтеза</small>
* <small>'''model''' голос для синтеза</small>
|<small>wav файл с синтезированным текстом</small>
|<small>wav-файл с синтезированным текстом</small>
|
|
|}
|}
Строка 1529: Строка 1524:
|<small>Метод генерирует ответ на поставленный вопрос на основе информации из документов в базе</small>
|<small>Метод генерирует ответ на поставленный вопрос на основе информации из документов в базе</small>
|
|
* <small>'''text''' - текст вопроса, на основе которого будут искаться фрагменты.</small>
* <small>'''text''' текст вопроса, на основе которого будут искаться фрагменты.</small>
* <small>'''category''' - id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных.</small>
* <small>'''category''' id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных.</small>
* <small>'''channel -''' id канала</small>
* <small>'''channel''' id канала</small>
* '''creative''' - <small>флаг креативности возможные варианты "yes" "no"</small>
* '''creative''' <small>—</small> <small>флаг креативности возможные варианты "yes" "no"</small>
* <small>'''useCache''' - использовать кешированные ответы</small>
* <small>'''useCache''' использовать кешированные ответы</small>


<small>возможные варианты:</small>
<small>возможные варианты:</small>
Строка 1546: Строка 1541:


<small>возможные варианты "'''yes'''" "'''no'''"</small>
<small>возможные варианты "'''yes'''" "'''no'''"</small>
|<small>{</small>
|<small><code>{</code></small>
<small>"error": 0,</small>
<small><code>"error": 0,</code></small>


<small>"text": "Здесь будет текст ответа"</small>
<small><code>"text": "Здесь будет текст ответа"</code></small>


<small>}</small>
<small><code>}</code></small>
| <small>Ответ на вопрос генерируется на основе информации, содержащейся в одном или нескольких документах. Документы должны быть в текстовом формате. Ответ возвращается в формате JSON, его можно скачать. Если метод не смог найти ответ, возвращается код ошибки и сообщение.</small>
| <small>Ответ на вопрос генерируется на основе информации, содержащейся в одном или нескольких документах. Документы должны быть в текстовом формате. Ответ возвращается в формате JSON, его можно скачать. Если метод не смог найти ответ, возвращается код ошибки и сообщение.</small>
|-
|-
Строка 1558: Строка 1553:
<small>/qas/cachemaker/start</small>
<small>/qas/cachemaker/start</small>
|<small>Генерация ответов на вопросы в кэше.</small>
|<small>Генерация ответов на вопросы в кэше.</small>
|
|<small>'''category''' категория для которой генерируются ответы</small>
* <small>'''category''' категория для которой генерируются ответы</small>
 
* <small>'''mode''' - режтм генерайии ответов, возможные значения:</small>


<small>'''paraphrase''' - генерирует вариации ответов перефразированием уже проверенных ответов, если таковые имеются на вопросе</small>
<small>'''mode''' — режим генерации ответов, возможные значения:</small>


<small>'''generate''' - генерирует кэш через разные ответы на каждый вопрос по документации</small>
* <small>'''paraphrase''' — генерирует вариации ответов перефразированием уже проверенных ответов, если таковые имеются на вопросе</small>
* <small>'''generate''' генерирует кэш через разные ответы на каждый вопрос по документации</small>


* <small>'''variants''' - количество ответов, от 1 до 9</small>
<small>'''variants''' количество ответов, от 1 до 9</small>
|<small>{"error": 0, "message": "success"}</small>
|<small><code>{"error": 0, "message": "success"}</code></small>
| -
| <small>—</small>
|-
|-
|<small>GET</small>
|<small>GET</small>


<small>/qas/cachemaker/status</small>
<small>/qas/cachemaker/status</small>
|<small>Состояние генерации ответов на вопросы в кэше.</small>
|<small>Состояние генерации ответов на вопросы в кэше.</small><small>Статусы: started, stopped, если были ошибки, поле ответа error будет содержать код ошибки.</small>
<small>'''статусы:''' '''started''', '''stopped''', если были ошибки поле ответа</small>
| <small>—</small>
|<small><code>{</code></small>


<small>'''error''' будет содержать код ошибки</small>
<small><code>  "error": "",</code></small>
| -
|<small>{</small>


<small>  "error": "",</small>
<small><code>  "status": "started",</code></small>


<small>  "status": "started",</small>
<small><code>  "progress": 33.33</code></small>


<small>  "progress": 33.33</small>
<small><code>}</code></small>
 
| <small></small>
<small>}</small>
| -
|-
|-
|<small>GET</small>
|<small>GET</small>
Строка 1594: Строка 1584:
<small>/qas/cachemaker/stop</small>
<small>/qas/cachemaker/stop</small>
|<small>Остановить генерацию ответов на вопросы в кэше.</small>
|<small>Остановить генерацию ответов на вопросы в кэше.</small>
| -
| <small>—</small>
|{"error": 0, "message": "success"}
|<code>{"error": 0, "message": "success"}</code>
| -
| <small>—</small>
|-
|-
|<small>POST</small><small>/qas/category/add</small>
|<small>POST</small><small>/qas/category/add</small>
|<small>Добавить категорию с указанным именем</small>
|<small>Добавить категорию с указанным именем</small>
|
|
* <small>'''name''' - наименование категории</small>
* <small>'''name''' наименование категории</small>
|<small>В ответе - id созданной категории или сообщение об ошибке:</small>
|<small>В ответе - id созданной категории или сообщение об ошибке:</small>
<small>{</small>
<small><code>{</code></small>


<small>  "error": 0,</small>
<small><code>  "error": 0,</code></small>


<small>  "message": "success",</small>
<small><code>  "message": "success",</code></small>


<small>  "id": "ad895085-2e48-439a-831e-b5f699b6a54a"</small>
<small><code>  "id": "ad895085-2e48-439a-831e-b5f699b6a54a"</code></small>


<small>}</small>
<small><code>}</code></small>
|
|
|-
|-
Строка 1619: Строка 1609:
|
|
* <small>'''id''' - идентификатор категории</small>
* <small>'''id''' - идентификатор категории</small>
|<small>{</small>
|<small><code>{</code></small>
<small>  "error": 0,</small>
<small><code>  "error": 0,</code></small>


<small>  "message": "success"</small>
<small><code>  "message": "success"</code></small>


<small>}</small>
<small><code>}</code></small>
|<small>В ответе или сообщение об успехе или ошибке если категория используется или не существует</small>
|<small>В ответе или сообщении об успехе, или ошибке, если категория используется или не существует.</small>
|-
|-
|<small>GET</small>
|<small>GET</small>
<small>/qas/category/list</small>
<small>/qas/category/list</small>
|<small>Получить список категорий</small>
|<small>Получить список категорий</small>
| -
| <small>—</small>
|<small>В ответе json с именами и id категорий</small>
|<small>В ответе json с именами и id категорий</small>
| -
| <small>—</small>
|-
|-
|<small>POST</small>
|<small>POST</small>
Строка 1639: Строка 1629:
|<small>Изменить категорию. У категории пока есть только наименование, поэтому метод только переименовывает категорию</small>
|<small>Изменить категорию. У категории пока есть только наименование, поэтому метод только переименовывает категорию</small>
|
|
*<small>'''id''' - идентификатор категории</small>
*<small>'''id''' идентификатор категории</small>
*<small>'''name''' - наименование категории</small>
*<small>'''name''' наименование категории</small>
|{
|<code>{</code>
  "error": 0,
<code>  "error": 0,</code>


  "message": "success"
<code>  "message": "success"</code>


}
<code>}</code>
| -
| <small>—</small>
|-
|-
|<small>POST</small>
|<small>POST</small>
Строка 1653: Строка 1643:
|<small>Добавление канала</small>
|<small>Добавление канала</small>
|
|
* <small>'''name''' - наименование канала</small>
* <small>'''name''' наименование канала</small>
|{
|<code>{</code>
"error": 0,
<code>"error": 0,</code>


"message": "success",
<code>"message": "success",</code>


"id": "a46fb887-5d98-41e0-8299-bcc94f615e91"
<code>"id": "a46fb887-5d98-41e0-8299-bcc94f615e91"</code>


}
<code>}</code>
|<small>В ответе id созданного канала или сообщение об ошибке</small>
|<small>В ответе id созданного канала или сообщение об ошибке</small>
|-
|-
Строка 1668: Строка 1658:
|<small>Удаление канала</small>
|<small>Удаление канала</small>
|
|
* '''id''' - идентификатор канала
* '''id''' идентификатор канала
|{
|<code>{</code>
"error": 0, "message": "success"  
<code>"error": 0, "message": "success"</code>


}
<code>}</code>
| -
| <small>—</small>
|-
|-
|<small>GET</small>
|<small>GET</small>
<small>/qas/channel/list</small>
<small>/qas/channel/list</small>
|<small>Получить список всех каналов</small>
|<small>Получить список всех каналов</small>
| -
| <small>—</small>
|<small>{</small>
|<small><code>{</code></small>
<small>  "error": 0,</small>
<small><code>  "error": 0,</code></small>


<small>  "channels": [</small>
<small><code>  "channels": [</code></small>


<small>    {</small>
<small><code>    {</code></small>


<small>      "id": "1",</small>
<small><code>      "id": "1",</code></small>


<small>      "name": "voice"</small>
<small><code>      "name": "voice"</code></small>


<small>    },</small>
<small><code>    },</code></small>


<small>    {</small>
<small><code>    {</code></small>


<small>      "id": "56442779-e871-43fd-ae4d-caf4ab6d09b9",</small>
<small><code>      "id": "56442779-e871-43fd-ae4d-caf4ab6d09b9",</code></small>


<small>      "name": "канал++"</small>
<small><code>      "name": "канал++"</code></small>


<small>    },</small>
<small><code>    },</code></small>


<small>    {</small>
<small><code>    {</code></small>


<small>      "id": "0",</small>
<small><code>      "id": "0",</code></small>


<small>      "name": "default"</small>
<small><code>      "name": "default"</code></small>


<small>    }</small>
<small><code>    }</code></small>


<small>  ]</small>
<small><code>  ]</code></small>


<small>}</small>
<small><code>}</code></small>
| -
| <small>—</small>
|-
|-
|<small>POST</small>
|<small>POST</small>
Строка 1717: Строка 1707:
|<small>Изменить канал. У канала пока есть только наименование, поэтому метод только переименовывает канал</small>
|<small>Изменить канал. У канала пока есть только наименование, поэтому метод только переименовывает канал</small>
|
|
* <small>'''name''' - новое наименование канала</small>
* <small>'''name''' новое наименование канала</small>


* <small>'''id''' - идентификатор канала</small>
* <small>'''id''' идентификатор канала</small>
|<small>{</small>
|<small><code>{</code></small>
<small>  "error": 0,</small>
<small><code>  "error": 0,</code></small>


<small>  "message": "success"</small>
<small><code>  "message": "success"</code></small>


<small>}</small>
<small><code>}</code></small>
|
|
|-
|-
Строка 1733: Строка 1723:
|<small>Предназначен для загрузки текстового документа</small>
|<small>Предназначен для загрузки текстового документа</small>
|
|
* <small>'''text title''' - заголовок документа</small>
* <small>'''text title''' заголовок документа</small>
* <small>'''text category''' - категория документа</small>
* <small>'''text category''' категория документа</small>
* <small>'''text'''</small> - <small>файл документа</small>
* <small>'''text'''</small> <small>файл документа</small>
|
|
<small>{</small>
<small><code>{</code></small>


<small>"error": 0,</small>
<small><code>"error": 0,</code></small>


<small>"message": "success",</small>
<small><code>"message": "success",</code></small>


<small>"id": "ebe2bc57551c2d17f892987d1f62306d"</small>
<small><code>"id": "ebe2bc57551c2d17f892987d1f62306d"</code></small>


<small>}</small>
<small><code>}</code></small>
| <small>Добавляет документ в базу.</small>
| <small>Добавляет документ в базу.</small>
|-
|-
Строка 1752: Строка 1742:
<small>/qas/doc/delete/{id}</small>
<small>/qas/doc/delete/{id}</small>
|<small>Предназначен для удаления документа</small>
|<small>Предназначен для удаления документа</small>
|<small>id  - идентификатор документа</small>
|<small>id  идентификатор документа</small>
|<small>{</small><small>"error": 0,</small><small>"message": "success"</small><small>}</small>
|<code><small>{</small><small>"error": 0,</small><small>"message": "success"</small><small>}</small></code>
| -
| <small>—</small>
|-
|-
|<small>GET</small>
|<small>GET</small>
Строка 1760: Строка 1750:
<small>/qas/doc/get/{id}</small>
<small>/qas/doc/get/{id}</small>
|<small>Предназначен для выгрузки текста документа</small>
|<small>Предназначен для выгрузки текста документа</small>
|<small>id  - идентификатор документа</small>
|<small>id  идентификатор документа</small>
|<small>{</small>
|<small><code>{</code></small>
<small>  "error": 0,</small>
<small><code>  "error": 0,</code></small>


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


<small>}</small>
<small><code>}</code></small>
|
|
|-
|-
Строка 1772: Строка 1762:


<small>/qas/doc/list</small>
<small>/qas/doc/list</small>
|<small>Предназначен для получение списка имеющихся</small> <small>документов</small>
|<small>Предназначен для получения списка имеющихся</small> <small>документов</small>
|<small>-</small>
|<small></small>
|<small>{</small>
|<small><code>{</code></small>
<small>  "error": 0,</small>
<small><code>  "error": 0,</code></small>


<small>  "docs": [</small>
<small><code>  "docs": [</code></small>


<small>    {</small>
<small><code>    {</code></small>


<small>      "id": "d4999cdee5ad1faf2cb3066ea1b5e96b",</small>
<small><code>      "id": "d4999cdee5ad1faf2cb3066ea1b5e96b",</code></small>


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


<small>      "category": "Техническая поддержка"</small>
<small><code>      "category": "Техническая поддержка"</code></small>


<small>    },</small>
<small><code>    },</code></small>


<small>    {</small>
<small><code>    {</code></small>


<small>      "id": "759042575b965745b9d2af869bca1740",</small>
<small><code>      "id": "759042575b965745b9d2af869bca1740",</code></small>


<small>      "title": "UPS. Руководство администратора",</small>
<small><code>      "title": "UPS. Руководство администратора",</code></small>


<small>      "category": "Техническая поддержка"</small>
<small><code>      "category": "Техническая поддержка"</code></small>


<small>    }</small>
<small><code>    }</code></small>


<small>  ]</small>
<small><code>  ]</code></small>


<small>}</small>
<small><code>}</code></small>
|
|
|-
|-
Строка 1808: Строка 1798:
|<small>Метод для обновления документа</small>
|<small>Метод для обновления документа</small>
|
|
* <small>'''data''' - json c изменяемыми параметрами документа  {</small>
* <small>'''data''' json c изменяемыми параметрами документа</small>    
<small><code>{</code></small>


<small>  title: string,</small>
<small><code>  title: string,</code></small>


<small>  category: string,</small>
<small><code>  category: string,</code></small>


<small>  text: string</small>
<small><code>  text: string</code></small>


<small>}</small>
<small><code>}</code></small>


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


* <small>'''id''' - идентификатор документа.</small>
* <small>'''id''' идентификатор документа.</small>
|<small>В случае успеха метод вернет статус выполнения операции (например, “success”), в случае неудачи - код ошибки.</small>
|<small>В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи код ошибки.</small>
<small>{"error": INT, "message": DESCRIPTION}</small>
<small><code>{"error": INT, "message": DESCRIPTION}</code></small>
|
|
|-
|-
Строка 1835: Строка 1826:
* <small>'''answers''' - ответы в виде Json:</small>
* <small>'''answers''' - ответы в виде Json:</small>


<small>[ { "checked": true, "channel": "0", "answer": "ответ" } ]</small>
<small><code>[ { "checked": true, "channel": "0", "answer": "ответ" } ]</code></small>


* <small>'''aliases''' - вопросы к которым подходят ответы из блока answers в виде json:</small>
* <small>'''aliases''' - вопросы к которым подходят ответы из блока answers в виде json:</small>


<small>["вопрос","еще вопрос"]</small>
<small><code>["вопрос","еще вопрос"]</code></small>
|<small>В случае успеха метод вернет id вопроса, в случае неудачи - код ошибки.</small>
|<small>В случае успеха метод вернет id вопроса, в случае неудачи - код ошибки.</small>
<small>{</small>
<small><code>{</code></small>


<small>  "error": 0,</small>
<small><code>  "error": 0,</code></small>


<small>  "id": "527be9f0-f773-4a3e-bd0b-81b40a061d0d"</small>
<small><code>  "id": "527be9f0-f773-4a3e-bd0b-81b40a061d0d"</code></small>


<small>}</small>
<small><code>}</code></small>
|
|
|-
|-
Строка 1853: Строка 1844:
<small>/qas/question/delete/{id}</small>
<small>/qas/question/delete/{id}</small>
|<small>Метод для удаления вопроса</small>
|<small>Метод для удаления вопроса</small>
|<small>'''id''' - идентификатор вопроса</small>
|<small>'''id''' идентификатор вопроса</small>
|<small>В случае успеха метод вернет статус выполнения операции (например, “success”), в случае неудачи - код ошибки.</small>
|<small>В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи код ошибки.</small>
<code><small>{"error": INT, "message": DESCRIPTION}</small></code>
<code><small>{"error": INT, "message": DESCRIPTION}</small></code>
|
|
Строка 1861: Строка 1852:
<small>/qas/question/get/{id}</small>
<small>/qas/question/get/{id}</small>
|<small>Метод для получения вопроса вместе с ответами и синонимами вопроса</small>
|<small>Метод для получения вопроса вместе с ответами и синонимами вопроса</small>
|<small>'''id''' - идентификатор вопроса</small>
|<small>'''id''' идентификатор вопроса</small>
|<small>{</small>
|<small><code>{</code></small>
<small>  "error": 0,</small>
<small><code>  "error": 0,</code></small>


<small>  "answers": [</small>
<small><code>  "answers": [</code></small>


<small>    {</small>
<small><code>    {</code></small>


<small>      "checked": true,</small>
<small><code>      "checked": true,</code></small>


<small>      "channel": "0",</small>
<small><code>      "channel": "0",</code></small>


<small>      "answer": "ответ"</small>
<small><code>      "answer": "ответ"</code></small>


<small>    }</small>
<small><code>    }</code></small>


<small>  ],</small>
<small><code>  ],</code></small>


<small>  "aliases": [</small>
<small><code>  "aliases": [</code></small>


<small>    "вопрос",</small>
<small><code>    "вопрос",</code></small>


<small>    "синоним вопроса",</small>
<small><code>    "синоним вопроса",</code></small>


<small>    "еще синоним вопроса"</small>
<small><code>    "еще синоним вопроса"</code></small>


<small>  ]</small>
<small><code>  ]</code></small>


<small>}</small>
<small><code>}</code></small>
|
|
|-
|-
Строка 1895: Строка 1886:
<small>/qas/question/list</small>
<small>/qas/question/list</small>
|<small>Метод для получения списка вопросов.</small>
|<small>Метод для получения списка вопросов.</small>
| -
| <small>—</small>
|<small>{</small>
|<small><code>{</code></small>


<small>  "error": 0,</small>
<small><code>  "error": 0,</code></small>


<small>  "questions": [</small>
<small><code>  "questions": [</code></small>


<small>    {</small>
<small><code>    {</code></small>


<small>      "id": "77b42c9b-2075-4a5f-b6d9-a284bba7cf43",</small>
<small><code>      "id": "77b42c9b-2075-4a5f-b6d9-a284bba7cf43",</code></small>


<small>      "question": "вопрос",</small>
<small><code>      "question": "вопрос",</code></small>


<small>      "category": "9580b3b7-34cb-4d0e-ba75-d17313ead16d"</small>
<small><code>      "category": "9580b3b7-34cb-4d0e-ba75-d17313ead16d"</code></small>


<small>    },</small>
<small><code>    },</code></small>


<small>    {</small>
<small><code>    {</code></small>


<small>      "id": "d1836e5e-010e-4f3a-b306-813c3acb7efb",</small>
<small><code>      "id": "d1836e5e-010e-4f3a-b306-813c3acb7efb",</code></small>


<small>      "question": "n-й второй вопрос",</small>
<small><code>      "question": "n-й второй вопрос",</code></small>


<small>      "category": "7d8a3415-cb09-4dad-a169-478ba15ade47"</small>
<small><code>      "category": "7d8a3415-cb09-4dad-a169-478ba15ade47"</code></small>


<small>    }</small>
<small><code>    }</code></small>


<small>  ]</small>
<small><code>  ]</code></small>


<small>}</small>
<small><code>}</code></small>
|
|
|-
|-
Строка 1933: Строка 1924:
* <small>'''data''' - json c измененными параметрами, пример полного:</small>
* <small>'''data''' - json c измененными параметрами, пример полного:</small>


<small>{   "answers": [</small>
<small><code>{   "answers": [</code></small>


<small>    {</small>
<small><code>    {</code></small>


<small>      "checked": true,</small>
<small><code>      "checked": true,</code></small>


<small>      "channel": "0",</small>
<small><code>      "channel": "0",</code></small>


<small>      "answer": "новый ответ"</small>
<small><code>      "answer": "новый ответ"</code></small>


<small>    }</small>
<small><code>    }</code></small>


<small>  ],</small>
<small><code>  ],</code></small>


<small>"question":"новый вопрос",</small>
<small><code>"question":"новый вопрос",</code></small>


<small>"category": "a3801cc0-f8e5-4f3b-bb10-e42148cd772b",</small>
<small><code>"category": "a3801cc0-f8e5-4f3b-bb10-e42148cd772b",</code></small>


<small>  "aliases": [</small>
<small><code>  "aliases": [</code></small>


<small>    "новый вопрос",</small>
<small><code>    "новый вопрос",</code></small>


<small>    "синоним",</small>
<small><code>    "синоним",</code></small>


<small>    "еще синоним"</small>
<small><code>    "еще синоним"</code></small>


<small>  ]</small>
<small><code>  ]</code></small>


<small>}</small>
<small><code>}</code></small>


* <small>'''id''' - идентификатор вопроса</small>
* <small>'''id''' идентификатор вопроса</small>
|<small>В случае успеха метод вернет статус выполнения операции (например, “success”), в случае неудачи - код ошибки.</small>
|<small>В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи код ошибки.</small>
<small>{"error": INT, "message": DESCRIPTION}</small>
<small><code>{"error": INT, "message": DESCRIPTION}</code></small>
|
|
|-
|-
Строка 1973: Строка 1964:
|<small>Запуск генерации вопросов для кэша.</small>
|<small>Запуск генерации вопросов для кэша.</small>
|
|
* '''category''' - категория для которой выполнится генерация вопросов
* '''category''' категория, для которой выполнится генерация вопросов.
|<small>{"error": 0, "message": "success" }</small>
|<small><code>{"error": 0, "message": "success" }</code></small>
|<small>По каждому документу генерируются по 5 вопросов на фрагмент. Количество фрагментов зависят от размера документа и настройки размера контекста из конфигурационного файла. Если вопрос сильно похож на существующий - новый не создается, а добавляется к существующему в aliases</small>
|<small>По каждому документу генерируются по 5 вопросов на фрагмент. Количество фрагментов зависят от размера документа и настройки размера контекста из конфигурационного файла. Если вопрос сильно похож на существующий, новый не создается, а добавляется к существующему в aliases.</small>
|-
|-
|<small>GET</small>
|<small>GET</small>
Строка 1981: Строка 1972:
<small>/qas/questionmaker/status</small>
<small>/qas/questionmaker/status</small>
|<small>Проверка состояния генерации</small>
|<small>Проверка состояния генерации</small>
| -
| <small>—</small>
|{
|<code>{</code>
  "error": "",
<code>  "error": "",</code>


  "status": "stopped",
<code>  "status": "stopped",</code>


  "progress": 0
<code>  "progress": 0</code>


}
<code>}</code>
|<small>Статусы''': started''', '''stopped.'''</small>  
|<small>Статусы''': started''', '''stopped.'''</small>  
<small>Если были ошибки поле ответа '''error''' будет содержать код ошибки</small>
<small>Если были ошибки поле ответа '''error''' будет содержать код ошибки</small>
Строка 1997: Строка 1988:
<small>/qas/questionmaker/stop</small>
<small>/qas/questionmaker/stop</small>
|<small>Прервать генерацию.</small>
|<small>Прервать генерацию.</small>
| -
| <small>—</small>
|<small>{"error": 0, "message": "success"}</small>
|<small><code>{"error": 0, "message": "success"}</code></small>
|
|
|-
|-
Строка 2004: Строка 1995:
|<small>Предназначен для поиска фрагментов содержащих ответ</small>
|<small>Предназначен для поиска фрагментов содержащих ответ</small>
|
|
* <small>'''text'''  - текст запроса</small>
* <small>'''text'''  текст запроса</small>






* <small>'''category''' - категория (раздел) знаний</small>
* <small>'''category''' категория (раздел) знаний</small>
|<small>{</small>
|<small><code>{</code></small>
<small>  "error": 0,</small>
<small><code>  "error": 0,</code></small>


<small>  "text": "</small>
<small><code>  "text": "</code></small>


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


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


<small>  "fragments": [</small>
<small><code>  "fragments": [</code></small>


<small>    {</small>
<small><code>    {</code></small>


<small>      "id": "3a386b0a9e0e19efb0870685e1d0b484",</small>
<small><code>      "id": "3a386b0a9e0e19efb0870685e1d0b484",</code></small>


<small>      "title": "Заголовок документа",</small>
<small><code>      "title": "Заголовок документа",</code></small>


<small>      "category": "Категория документа",</small>
<small><code>      "category": "Категория документа",</code></small>


<small>      "text": "Здесь будет текст найденного фрагмента"</small>
<small><code>      "text": "Здесь будет текст найденного фрагмента"</code></small>


<small>    },</small>
<small><code>    },</code></small>


<small>    {</small>
<small><code>    {</code></small>


<small>      "id": "44fd73ea1ac63f32cf18d79c854dbfe2",</small>
<small><code>      "id": "44fd73ea1ac63f32cf18d79c854dbfe2",</code></small>


<small>      "title": "Заголовок документа",</small>
<small><code>      "title": "Заголовок документа",</code></small>


<small>      "category": "Категория документа",</small>
<small><code>      "category": "Категория документа",</code></small>


<small>      "text": "Здесь будет текст найденного фрагмента"</small>
<small><code>      "text": "Здесь будет текст найденного фрагмента"</code></small>


<small>    }</small>
<small><code>    }</code></small>


<small>  ]</small>
<small><code>  ]</code></small>


<small>}</small>
<small><code>}</code></small>
| -
| <small>—</small>
|}
|}



Версия от 12:30, 21 октября 2024

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


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

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

/auth: методы авторизации
Метод Описание Входные параметры Ответ Пояснения
POST

/auth/access

Предназначен для получения токенов доступа username — логин

password — пароль

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

}

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

"name": "test2"   

}

{

"error": 0

"message": "success",

"dataset_id": "XXXXXXXXXXXXX"

}

dataset (набор данных) используется для ограничения доступа к данным. В ответе метод вернет id созданного набора данных.
DELETE/auth/dataset/delete/{id} Предназначен для удаления dataset (набора данных) id — идентификатор набора данных {
"error": 0,
"message": "success"

}

POST/auth/dataset/modify/{id} Предназначен для переименования dataset (набора данных) id — идентификатор набора данныхdata — JSON c новыми параметрами {

"error": 0,

"message": "success"

}

Метод меняет все параметры набора данных, но на данный момент времени у набора данных, кроме id, только один параметр — наименование.
GET/auth/datasets Предназначен для получения списка наборов данных [

{"id": "XXXXXXXXXXXXXXXXXX",

"name": "XXX"},

{"id": "0",

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

]

GET/auth/refresh Предназначен для обновления токенов доступа x-refresh-token — токен обновления доступа {
 "x-access-token": "XXXXXXXXXXXXXXXXXXXX",
 "x-refresh-token": "XXXXXXXXXXXXXXXXXXXX"

}

Время, в течение которого можно обновить доступ, регулируется параметром auth.refreshLifeTimeконфигурационного файла. Служебный метод, используется в основном в веб-интерфейсе, чтобы не запрашивать лишний раз пароль.
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 с параметрами роли {"error": 0,"message": "success"} Параметры как при создании роли. Роль будет переписана.
GET/auth/roles Предназначен для получения списка ролей [

{

"id": "XXXXXXXXXXX",

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

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

},

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

]

POST

/auth/user/add

Предназначен для создания нового пользователя {

"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
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, только для всех пользователей
POST

/auth/user/modify/{id}

Предназначен для изменения параметров пользователя data — параметры пользователя как при создании id — идентификатор пользователя { "error": 0,

"message": "success"

}

POST

/auth/user/password

Предназначен для смены пароля пользователя по его токену доступа password { "error": 0,"message": "success"

}

GET

/auth/version

Предназначен для получения верcии UPS {

"version": "4.049 beta"

}

/lang: методы мультиязычности
Метод Описание Входные параметры Ответ Пояснения
GET

/lang/

Предназначен для вывода информации о переводе элементов интерфейса на текущий язык {

"see":"Сущности",

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

...

}

GET

/lang/config

Отдает раздел «interface» конфигурационного файла {

  "wallpaper": {

    "login": true,

    "desktop": true,

    "workarea": true

  }

}

GET

/lang/wallpaper

Отдает случайный фон рабочего стола в виде jpeg из каталога «wallpapers» на сервере ups image/jpeg
/server: получение информации о серверах
Метод Описание Входные параметры Ответ Пояснения
GET

/server/get/addresses/{servicetype}

Предназначен для вывода информации о серверах, обслуживающих данный сервис, а также настроенных параметров обращения к данным серверам.
  • 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

}

}

  • trainer — сервер обучения
  • cluster — рабочие серверы
  • connect — время на подключение
  • read — время на ответ
  • failed — время пребывания в сбойных
  • install — время на установку модели
  • info — время на получение информации о модели
  • counter — счетчик запросов
  • current — индекс последнего опрошенного cluster-сервера
  • fail — массив сбойных серверов со временем постановки в сбой.
GET

/server/get/models/{servicetype}/{servertype}

Предназначен для вывода информации о моделях указанного сервиса на каждом сервере указанного типа
  • servicetype — сервиса
  • servertype — тип серверов
{

  "http://127.0.0.1:6181": [

    "model1",

    ...

    "modelN"

  ],

  ...

}

Вывод представляет собой массив URL-серверов, для каждого из которых указан список моделей.


/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 — название модели
POST

/model/handler/{servicetype}/{model}

Отправка файла-постобработчика в указанную модель типа future. Становится активным сразу после успешной отправки.
  • servicetype — тип сервиса
  • model — название модели
  • handler — файл, содержащий программный код python постобработчика
{"error":0,

"message":"success"

}

более подробно об обработчике см. руководства пользователя smc и see.
DELETE

/model/handler/{servicetype}/{model}

Удаление постобработчика из модели типа future.
  • servicetype - тип сервиса
  • model - название модели
{"error":0,

"message":"success"

}

более подробно об обработчике см. руководства пользователя smc и see.
GET

/model/handler/{servicetype}/{model}

Получение файла-постобработчика из модели типа future.
  • servicetype - тип сервиса
  • model — название модели
Файл handler.py более подробно об обработчике см. руководства пользователя smc и see.
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"

}

GET

/model/handler/{servicetype}/{model}/{modeltype}

Получение файла-постобработчика из указанной модели указанного типа.
  • servicetype — тип сервиса
  • model — название модели
  • modeltype — тип модели
Файл handler.py
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) указанной модели.
  • servicetype — тип сервиса
  • model — название модели
{

  "previous": null,

  "current":  {

    "status": "trained",

    ...

  },

  "future": {

    "status": "trained",

    ...

  }

}

Итоговый массив содержит переменные типа modeltype, в каждой из который содержится информация о модели, более подробно о которой можно прочитать в руководствах пользователя smc и see.
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

Метод Описание Входные параметры Ответ Пояснения
POST

/corpus/copy/{servicetype}

метод api для копирования корпуса данных
  • 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 — название корпуса
[

  [ "generalPayments",

    "соцвыплата"

  ],

  ...

]

Список вложенных списков со значениями «Класс» и «Фраза».
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"

}


/spr: работа с сервисом SPR
Метод Описание Входные параметры Ответ Пояснения
GET/spr/audio/{taskID} Метод для получения аудиофайла отложенного задания taskID — идентификатор задания в очереди Wav файл
GET/spr/queue Метод для получения очереди отложенных заданий {

  "id задания": {

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

   "status": "waiting",

   "filename": "wav"

}

Статусы

ready — готово

waiting — ожидание

failed — сбой

DELETE/spr/queue/{taskID} Метод для удаления задания из очереди taskID — идентификатор задания в очереди {

"error": 0,

"message": "success"

}

GET/spr/result/{taskID} Метод для получения результатов распознавания отложенного задания taskID — идентификатор задания в очереди Вывод аналогичен выводу метода stt + добавлено поле status, которое содержит информацию о статусе отложенной задачи:

ready — готово

waiting — ожидание

not found — не найдена

failed — сбой

POST

/stt/{model}

Метод для отправки файла на распознавание речи. Моно-файлы до 30 секунд распознаются без разбивки на фрагменты. Многоканальные файлы и файлы длиннее 30 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в руководстве администратора SPR. В случае отправки переменной speakers=1, дополнительно производится поиск говорящих и получение метаданных по каждому говорящему.
  • model — идентификатор модели
  • denoise — уровень шумоподавления
  • wav — файл для распознавания
  • speakers — опция разделения по говорящим
{

"model":"name",

"text":"текст без разбивки",

"speakers":[

{

  "gender":"MALE",

  "age":"20-29",

  "emotion":"BORE",

  "id":"Ivan"

}, ...

]

"splitted":[

{

  "start":"00:00:02",

  "stop":"00:00:10",

  "channel":0,

  "duration":"00:00:08",

  "start_ms":2255,

  "stop_ms":10995,

  "duration_ms":8740,

  "speaker":0,

  "confidence":0.95,

  "text":"текст"

}, ...

]

}

Более подробное описание доступно в пользователя SPR.
GET/spr/waveform/{taskID} Служебный метод для отображения аудио в графическом виде, содержит пики сигнала taskID — идентификатор задания {
 <"error": 0,
 "waveform": [
   0.016,
  ..........
  ..........
   0.015,
   0.01
 ]

}


/smc: работа с сервисом SMC
Метод Описание Входные параметры Ответ Пояснения
GET

/smc/classify/{model}

метод для классификации текстовой фразы
  • model — идентификатор модели
  • text — текст, подлежащий классификации
  • confidenceThreshold, % — минимальный порог доверия.
{

  "classes": [

    {

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

      "confidence": 1

    },

    {

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

      "confidence": 1

    }

  ],

  "groups": [

    {

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

      "intersection": 2,

      "classes": [

        "название класса",

        "название класса 2"

      ]

    }

  ],

  "nearest": [

    {

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

      "percent": 0.6666666666666666,

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

    },

    {

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

      "percent": 0.6666666666666666,

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

    }

  ]

}

  • classes — отображается название класса, к которому был отнесен текст, и вероятность его принадлежности к этому классу.
  • groups — название группы и число совпавших классов. Если метки совпадают с несколькими группами, они отображаются в порядке убывания числа совпавших классов (т. е. чем полнее группа, тем выше ее позиция в списке).
  • nearest — отображаются группы, до которых не хватает всего одной метки, с указанием процента заполненности и сортировкой по убыванию этого процента.
GET

/smc/compress

Убирает из фразы слова не влияющие на ее смысл.
  • text — текст для сжатия
  • threshold — уровень компрессии от 1 до 100. Чем меньше число тем меньше слов будет в итоговой фразе
{

  "text": "сжатый текст"

}

GET

/smc/correct

Коррекция правописания. Изменяет неправильно написанные слова, меняя их на наиболее близкие правильные (из знакомых модели). text — текст для коррекции
GET

/smc/emotion

Анализ эмоций. text — фраза для анализа эмоций { "emotion": "positive", "score": 0.9601 }
POST

/smc/groups/{model}

Добавляет к модели группы из корпуса
  • id — наименование модели
  • corpus — наименование корпуса- источника групп
{

  "error": 0,

  "message": "string"

}

Группы в модели будут перезаписаны
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": "недостающая метка_о"

   }

]

}

Ищет группы по набору меток. Результат — группы (если найдены) и ближайшие группы с указанием недостающих меток.Позволяет сохранять контекст в виде меток и дозапрашивать группы с учетом контекста.
GET

/smc/normalize

Обратная нормализация текста text — текст для обработки. {"text": "<строка после обратной нормализации>"} Пример: двадцать пятого апреля в пятом часу — 25 апреля в 5-м часу.
GET

/smc/punctuate

Расстановка знаков препинания text — текст для преобразования. {

  "text": "string"

}

POST

/smc/stop/{model}

Остановка обучения модели. model — имя модели/ {

  "error": 0,

  "message": "string"

}

Удаляет тестовую версию модели с сервера обучения, тем самым прерывает обучение.
POST

/smc/test/{model}

Запуск тестирования модели smc
  • model — идентификатор модели
  • corpus — название корпуса с тестовыми данными
{  "error": 0,

  "message": "success"

}

Метод асинхронный, статус тестирования можно запросить методом GET

/info/{servicetype}/{model}

POST

/smc/train/{model}

Запуск обучения модели future
  • model — идентификатор модели
  • corpus — название корпуса с данными
{  "error": 0,

  "message": "success"

}

Метод асинхронный, статус обучения можно запросить методом GET

/info/{servicetype}/{model}

/see: работа с сервисом SEE
Метод Описание Входные параметры Ответ Пояснения
GET

/entities/{model}

метод для поиска сущностей
  • model — идентификатор[ы] модели. Может быть указано несколько через запятую, тогда запрос будет обработан всеми указанными моделями
  • text — текст
  • similarity — порог похожести найденной сущности на эталонные, %. По умолчанию 70.
{ID-модели: [{

position: 0,

confidence: 1,

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

calculated: vaktsinatsiya

}, {...}

]

}

Вернется массив со всеми моделями, в которых были найдены сущности. Каждая переменная с названием модели будет содержать список всех найденных сущностей.
  • position — позиция слова начала фрагмента, определяющего сущность
  • confidence — вероятность правильного определения сущности
  • calculated — поле, содержащее измененное постобработчиком (при его наличии) значение сущности либо код сущности, использованный при обучении модели.
POST

/stop/{model}

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

  "message": "success"

}

POST

/train/{model}

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

  "message": "success"

}

Метод асинхронный, статус обучения можно запросить методом GET

/info/{servicetype}/{model}

/sbs: работа с сервисом SBS
Метод Описание Входные параметры Ответ Пояснения
POST

/sbs/analyze

Получение аналитических метаданных из голосового фрагмента
  • wav — файл для анализа
{ age: { class: 20-29, confidence: 0.99 }, emotion: { class: SADNESS, confidence: 0.99 }, gender: { class: FEMALE, confidence: 0.99 } } Более подробные сведения находятся в руководстве пользователя SBS.
POST/sbs/search Поиск говорящего по базе слепков
  • wav для анализа
{ error: 0, speaker: Ivan, confidence: 0.79 }
POST

/sbs/speakers/add

Добавление нового говорящего
  • name — наименование говорящего
  • wav — файл для обучения
{

  "error": 0,

  "id": "bd345767-ec94-4a8d-bcef-3ecbdfdd7a8f",

  "message": "success"

}

DELETE

/speaker/{model}/{speaker_id}

Удаление слепка из базы
  • speaker_id — идентификатор говорящего
{  "error": 0,

  "message": "success"

}

GET

/sbs/speakers/list

Выводит список имен и идентификаторов говорящих [

  {

    "id": "4830209e-0be4-495c-a633-4e2159b5368e",

    "name": "наименование1"

  },

  {

    "id": "67acb90c-6217-4878-95d4-691008a00f07",

    "name": "наименование2"

  }

]

POST

/sbs/speakers/modify/{id}

Дообучение имеющегося слепка говорящего
  • wav — голосовой отрезок для обучения
  • id — идентификатор говорящего
{

  "error": 0,

  "message": "Success"

}

POST/sbs/verify/{id} Сравнение оцифрованного представления wav-файла cо слепком в базе
  • speaker_id — идентификатор говорящего
{"error": 0,

"confidence": 0.78

}

/tts: методы работы с сервисом tts
Метод Описание Входные параметры Ответ Пояснения
GET

/tts/dictionary/export

Предназначен для экспорта пользовательского словаря в виде строк привет прив+ет
GET

/tts/dictionary/get

Предназначен для экспорта пользовательского словаря в виде json
[
  [
    "привет",
    "прив+ет"
  ]
]
POST

/tts/dictionary/import

Предназначен для загрузки пользовательского словаря в виде строк из файла .csv CSV-файл с разделителем — «табуляция». {

 "error": 0,

 "message": "success",

 "answers": {

   "http://127.0.0.1:6186": "{\"error\": 0, \"message\": \"success\"}\n"

 }

}

Пользовательский словарь будет переписан, не дополнен!
POST

/tts/dictionary/put

Предназначен для загрузки пользовательского словаря в виде json списка [ [ "привет", "прив+ет" ] ] {

"error": 0,

"message": "success",

"answers": {

"http://127.0.0.1:6186": "{\"error\": 0, \"message\": \"success\"}\n"

}

}

Пользовательский словарь будет переписан, не дополнен!
GET

/tts/synthesize/{model}

Синтезировать текст
  • text — текст для синтеза
  • rate — скорость речи
  • pitch — высота тона
  • volume — громкость речи
  • model — голос для синтеза
wav-файл с синтезированным текстом
/qas: методы работы с сервисом qas
Метод Описание Входные параметры Ответ Пояснения
GET

/qas/ask

Метод генерирует ответ на поставленный вопрос на основе информации из документов в базе
  • text — текст вопроса, на основе которого будут искаться фрагменты.
  • category — id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных.
  • channel — id канала
  • creative флаг креативности возможные варианты "yes" "no"
  • useCache — использовать кешированные ответы

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

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

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

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

  • useGPT - использовать генеративную сеть для поиска ответов в документах

возможные варианты "yes" "no"

{

"error": 0,

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

}

Ответ на вопрос генерируется на основе информации, содержащейся в одном или нескольких документах. Документы должны быть в текстовом формате. Ответ возвращается в формате JSON, его можно скачать. Если метод не смог найти ответ, возвращается код ошибки и сообщение.
GET

/qas/cachemaker/start

Генерация ответов на вопросы в кэше. category — категория для которой генерируются ответы

mode — режим генерации ответов, возможные значения:

  • paraphrase — генерирует вариации ответов перефразированием уже проверенных ответов, если таковые имеются на вопросе
  • generate — генерирует кэш через разные ответы на каждый вопрос по документации

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 Добавить категорию с указанным именем
  • name — наименование категории
В ответе - id созданной категории или сообщение об ошибке:

{

  "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

Добавление канала
  • name — наименование канала
{

"error": 0,

"message": "success",

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

}

В ответе id созданного канала или сообщение об ошибке
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

Предназначен для загрузки текстового документа
  • text title — заголовок документа
  • text 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}

Метод для обновления документа
  • data — json c изменяемыми параметрами документа

{

  title: string,

  category: string,

  text: string

}

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

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

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

POST

/qas/question/add

Метод для добавления вопроса
  • question - текст вопроса
  • category - id категории к которой относится вопрос
  • answers - ответы в виде Json:

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

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

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

В случае успеха метод вернет id вопроса, в случае неудачи - код ошибки.

{

  "error": 0,

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

}

DELETE

/qas/question/delete/{id}

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

{"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/questionmaker/start

Запуск генерации вопросов для кэша.
  • category — категория, для которой выполнится генерация вопросов.
{"error": 0, "message": "success" } По каждому документу генерируются по 5 вопросов на фрагмент. Количество фрагментов зависят от размера документа и настройки размера контекста из конфигурационного файла. Если вопрос сильно похож на существующий, новый не создается, а добавляется к существующему в aliases.
GET

/qas/questionmaker/status

Проверка состояния генерации {

  "error": "",

  "status": "stopped",

  "progress": 0

}

Статусы: started, stopped.

Если были ошибки поле ответа error будет содержать код ошибки

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": "Здесь будет текст найденного фрагмента"

    }

  ]

}

/transcription: методы работы со стенографией
Метод Описание Входные параметры Ответ Пояснения
GET

/transcription/audio/{id}

Предназначен для получения аудиофайла по id стенограммы
  • id - идентификатор стенограммы
wav файл сохраненной стенограммы Идентификатор нужной стенограммы можно получить методом

"GET /transcription/list"

POST

/transcription/create

Предназначен для создания стенограммы из завершенного задания в очереди распознавания
  • taskID - идентификатор задания из очереди
{
"error": 0,
"message": "success",
"id": "74721a3b-9055-4650-9afb-de4d103cafc7"

}

В ответ придет id созданной стенограммы
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}

Предназначен для сохранения стенограмы стенограмма в json формате

id стенограммы

- Используется для сохранения изменений по нажатию кнопки "сохранить"
GET

/transcription/waveform/{id}

Служебный метод для отображения аудио в графическом виде, содержит пики сигнала id - идентификатор стенограммы {
 <<"error": 0,
 "waveform": [
   0.016,
  ..........
  ..........
   0.015,
   0.01
 ]

}

-