Действия

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

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

Нет описания правки
Нет описания правки
Строка 1431: Строка 1431:
===== '''/sbs: работа с сервисом SBS''' =====
===== '''/sbs: работа с сервисом SBS''' =====


{| class="wikitable" style="width: 110%"
{| class="wikitable" style="width: 110%"
|+
|+
!style="color:green;width: 15%" |'''POST/sbs/analyze'''
!style="color:green;width: 15%" |'''POST/sbs/analyze'''
Строка 1458: Строка 1458:
<small>   confidence: 0.99 }  }</small>  
<small>   confidence: 0.99 }  }</small>  
|-
|-
!style="color:green;width: 15%" |'''POST/sbs/search'''
! style="color:green;width: 15%" |'''POST/sbs/noiselevel'''
! colspan="3" style="width: 85%" |Поиск говорящего по базе слепков.
! colspan="3" |<small>Возвращает процент зашумленности аудио</small>
|-
| colspan="2" |
*<small>'''wav''' — файл для анализа</small>
| colspan="2" |<small>Пример ответа:</small>
<small><code>{ error: 0, message: 'success', 'noise': 0.79 }</code></small>
|-
! style="color:green;width: 15%" |'''POST/sbs/search'''
! colspan="3" style="width: 85%" |<small>Поиск говорящего по базе слепков.</small>
|-
|-
| colspan="2" style="width: 20%" |
| colspan="2" style="width: 20%" |
* <small>'''wav''' — файл для анализа</small>
*<small>'''wav''' — файл для анализа</small>
* <small>'''threshold''' — процент совпадения</small>
*<small>'''threshold''' — процент совпадения</small>
* <small>'''text''' — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то поиск не будет осуществлен, если распознанный текст будет сильно отличаться от text.</small>
*<small>'''text''' — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то поиск не будет осуществлен, если распознанный текст будет сильно отличаться от text.</small>
| colspan="2" style="width: 80%" |<small>Пример ответа:</small>
| colspan="2" style="width: 80%" |<small>Пример ответа:</small>


<small>{ error: 0, speaker: Ivan, confidence: 0.79 }</small>  
<small>{ error: 0, speaker: Ivan, confidence: 0.79 }</small>
|-
|-
! style="color:green;width: 15%" |'''POST/sbs/speakers/add'''
! style="color:green;width: 15%" |'''POST/sbs/speakers/add'''
Строка 1473: Строка 1481:
|-
|-
| colspan="2" style="width: 20%" |
| colspan="2" style="width: 20%" |
* <small>'''name''' — имя говорящего</small>
*<small>'''name''' — имя говорящего</small>
* <small>'''wav''' — файл для создания оцифрованного представления говорящего</small>
*<small>'''wav''' — файл для создания оцифрованного представления говорящего</small>
* <small>'''text''' — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то поиск не будет осуществлен, если распознанный текст будет сильно отличаться от text. Для использования необходим сервис spr.</small>
*<small>'''text''' — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то поиск не будет осуществлен, если распознанный текст будет сильно отличаться от text. Для использования необходим сервис spr.</small>
| colspan="2" style="width: 80%" |<small>{</small>
| colspan="2" style="width: 80%" |<small>{</small>


Строка 1482: Строка 1490:
<small>  "id": "251f78d7-ee50-4ba1-a669-ee89fdaf5433"</small>
<small>  "id": "251f78d7-ee50-4ba1-a669-ee89fdaf5433"</small>


<small>}</small>  
<small>}</small>
|-
|-
! style="color:red;width: 15%" |'''DELETE/sbs/speakers/delete/{id}'''
! style="color:red;width: 15%" |'''DELETE/sbs/speakers/delete/{id}'''
Строка 1488: Строка 1496:
|-
|-
| colspan="2" style="width: 20%" |
| colspan="2" style="width: 20%" |
* <small>'''id''' <span data-darkreader-inline-color="" data-darkreader-inline-bgcolor="">—</span> идентификатор говорящего</small>
*<small>'''id''' <span data-darkreader-inline-color="" data-darkreader-inline-bgcolor="">—</span> идентификатор говорящего</small>
| colspan="2" style="width: 80%" |<small>{ error: INT, message: DESCRIPTION }</small>
| colspan="2" style="width: 80%" |<small>{ error: INT, message: DESCRIPTION }</small>
|-
|-
Строка 1501: Строка 1509:
<small>    "name": "наименование слепка"</small>
<small>    "name": "наименование слепка"</small>


<small>  }]</small>  
<small>  }]</small>
|-
|-
! style="color:green;width: 15%" |'''POST/sbs/speakers/modify/{id}'''
! style="color:green;width: 15%" |'''POST/sbs/speakers/modify/{id}'''
Строка 1507: Строка 1515:
|-
|-
| colspan="2" style="width: 20%" |
| colspan="2" style="width: 20%" |
* <small>'''wav''' — файл для обучения</small>
*<small>'''wav''' — файл для обучения</small>
* <small>'''id''' — идентификатор слепка</small>
*<small>'''id''' — идентификатор слепка</small>
* <small>'''text''' — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то слепок не будет дообучен, если распознанный текст будет сильно отличаться от text. Для использования необходим сервис spr.</small>
*<small>'''text''' — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то слепок не будет дообучен, если распознанный текст будет сильно отличаться от text. Для использования необходим сервис spr.</small>
| colspan="2" style="width: 80%" |<small>{  "error": 0,</small>
| colspan="2" style="width: 80%" |<small>{  "error": 0,</small>


<small>  "message": "Success"}</small>  
<small>  "message": "Success"}</small>
|-
|-
! style="color:green;width: 15%" |'''POST/sbs/verify/{id}'''
! style="color:green;width: 15%" |'''POST/sbs/verify/{id}'''
! colspan="3" style="width: 85%" |Сравнение wav-файла cо слепком в базе. <small>В ответе - вероятность совпадения от 0 до 1.</small>
! colspan="3" style="width: 85%" |Сравнение wav-файла cо слепком в базе. <small>В ответе - вероятность совпадения от 0 до 1.</small>
|-
|-
| colspan="2" style="width: 20%" |
| colspan="2" style="width: 20%" |  
* <small>'''name''' —  имя говорящего</small>
*<small>'''name''' —  имя говорящего</small>
* <small>'''wav''' —  файл для создания оцифрованного представления говорящего</small>
*<small>'''wav''' —  файл для создания оцифрованного представления говорящего</small>
* <small>'''text''' —  текст для сравнения с распознанным текстом из '''wav''', необязательный параметр. Если указан, но слепок не будет создан, если распознанный текст будет сильно отличаться от '''text.'''</small>
*<small>'''text''' —  текст для сравнения с распознанным текстом из '''wav''', необязательный параметр. Если указан, но слепок не будет создан, если распознанный текст будет сильно отличаться от '''text.'''</small>
| colspan="2" style="width: 80%" |<small>{ "error": 0, "confidence": 0.78 }</small>
| colspan="2" style="width: 80%" |<small>{ "error": 0, "confidence": 0.78 }</small>
|}
|}


===== '''/tts: методы работы с сервисом tts''' =====
====='''/tts: методы работы с сервисом tts'''=====


{| class="wikitable" style="width: 110%"
{| class="wikitable" style="width: 110%"
|+
|+
!style="color:blue;width: 15%" |'''GET/tts/dictionary/export'''
! style="color:blue;width: 15%" |'''GET/tts/dictionary/export'''
! colspan="3" style="width: 85%" |Выгрузка пользовательского словаря ударений.
! colspan="3" style="width: 85%" |Выгрузка пользовательского словаря ударений.
|-
|-
| colspan="2" style="width: 20%" |<small>Входные параметры отсутствуют</small>
| colspan="2" style="width: 20%" |<small>Входные параметры отсутствуют</small>
| colspan="2" style="width: 80%" | <small>Простой текст — строки со словом и его интерпретацией с ударением.</small>
| colspan="2" style="width: 80%" |<small>Простой текст — строки со словом и его интерпретацией с ударением.</small>
|-
|-
!style="color:blue;width: 15%" |'''GET/tts/dictionary/get'''
! style="color:blue;width: 15%" |'''GET/tts/dictionary/get'''
! colspan="3" style="width: 85%" |Выгрузка пользовательского словаря ударений в виде json.
! colspan="3" style="width: 85%" |Выгрузка пользовательского словаря ударений в виде json.
|-
|-
Строка 1542: Строка 1550:
<small>[   "слово2",   "замена слова2 с удар+ением"],</small>
<small>[   "слово2",   "замена слова2 с удар+ением"],</small>


<small>...]</small>  
<small>...]</small>
|-
|-
!style="color:green;width: 15%" |'''POST/tts/dictionary/import'''
! style="color:green;width: 15%" |'''POST/tts/dictionary/import'''
! colspan="3" style="width: 85%" |Загрузка пользовательского словаря ударений. <small>Текущий словарь будет переписан.</small>
! colspan="3" style="width: 85%" |Загрузка пользовательского словаря ударений. <small>Текущий словарь будет переписан.</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''csv file''' — файл строк со словом и его интерпретацией с ударением.</small>
*<small>'''csv file''' — файл строк со словом и его интерпретацией с ударением.</small>
| colspan="2" style="width: 50%" |<small>{  "error": 0,</small>
| colspan="2" style="width: 50%" |<small>{  "error": 0,</small>


<small>  "message": "сообщение о статусе результата"}</small>  
<small>  "message": "сообщение о статусе результата"}</small>
|-
|-
!style="color:green;width: 15%" |'''POST/tts/dictionary/put'''
! style="color:green;width: 15%" |'''POST/tts/dictionary/put'''
! colspan="3" style="width: 85%" |Загрузка пользовательского словаря ударений в виде json. <small>Текущий словарь будет переписан.</small>
! colspan="3" style="width: 85%" |Загрузка пользовательского словаря ударений в виде json. <small>Текущий словарь будет переписан.</small>
|-
|-
Строка 1574: Строка 1582:
<small>  "message": "сообщение о статусе результата"</small>
<small>  "message": "сообщение о статусе результата"</small>


<small>}</small>  
<small>}</small>
|-
|-
!style="color:green;width: 15%" |'''POST/tts/normalize'''
! style="color:green;width: 15%" |'''POST/tts/normalize'''
! colspan="3" style="width: 85%" |Нормализация текста <small>— перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы), например «в понедельник 10.10.2025» -> «в понедельник дес+ятого октябр+я две т+ысячи дв+адцать п+ятого г+ода».</small>
! colspan="3" style="width: 85%" |Нормализация текста <small>— перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы), например «в понедельник 10.10.2025» -> «в понедельник дес+ятого октябр+я две т+ысячи дв+адцать п+ятого г+ода».</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''text''' —  фраза для нормализации</small>
*<small>'''text''' —  фраза для нормализации</small>
| colspan="2" style="width: 50%" |<small>{  "error": 0,</small>
| colspan="2" style="width: 50%" |<small>{  "error": 0,</small>


Строка 1591: Строка 1599:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''wav''' —  аудиофайл для обработки</small>
*<small>'''wav''' —  аудиофайл для обработки</small>  


* <small>'''revoicer''' —  модель модификации голоса</small>
*<small>'''revoicer''' —  модель модификации голоса</small>
| colspan="2" style="width: 50%" |<small>wav-файл с модифицированным (искаженным) голосом</small>
| colspan="2" style="width: 50%" |<small>wav-файл с модифицированным (искаженным) голосом</small>
|-
|-
Строка 1602: Строка 1610:
| colspan="2" style="width: 50%" |<small>[  "distortion" ]</small>
| colspan="2" style="width: 50%" |<small>[  "distortion" ]</small>
|-
|-
!style="color:blue;width: 15%" |'''GET/tts/synthesize/{model}'''
! style="color:blue;width: 15%" |'''GET/tts/synthesize/{model}'''
! colspan="3" style="width: 85%" |Синтез звукового файла из текста небольшого размера <small>— для совместимости с предыдущими версиями.</small>
! colspan="3" style="width: 85%" |Синтез звукового файла из текста небольшого размера <small>— для совместимости с предыдущими версиями.</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''model''' —  имя модели</small>
*<small>'''model''' —  имя модели</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>
| colspan="2" style="width: 50%" |<small>wav-файл с синтезированой фразой</small>
| colspan="2" style="width: 50%" |<small>wav-файл с синтезированой фразой</small>
|-
|-
!style="color:green;width: 15%" |'''POST/tts/synthesize/{model}'''
! style="color:green;width: 15%" |'''POST/tts/synthesize/{model}'''
! colspan="3" style="width: 85%" |Синтез звукового файла из текста для фраз большого размера <small>— тип запроса «POST» позволяет отправку больших текстов.</small>
! colspan="3" style="width: 85%" |Синтез звукового файла из текста для фраз большого размера <small>— тип запроса «POST» позволяет отправку больших текстов.</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''model''' —  имя модели</small>
*<small>'''model''' —  имя модели</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>
| colspan="2" style="width: 50%" |<small>wav-файл с синтезированой фразой</small>
| colspan="2" style="width: 50%" |<small>wav-файл с синтезированой фразой</small>
|}
|}


===== '''/qas: методы работы с сервисом qas''' =====
====='''/qas: методы работы с сервисом qas'''=====


{| class="wikitable" style="width: 110%"
{| class="wikitable" style="width: 110%"
|+
|+
!style="color:blue;width: 15%" |'''GET/qas/ask'''
! style="color:blue;width: 15%" |'''GET/qas/ask'''
! colspan="2" style="width: 85%" |Метод генерирует ответ на поставленный вопрос на основе информации из документов в базе. <small>Ответ на вопрос генерируется на основе информации, содержащейся в одном или нескольких документах. Документы должны быть в текстовом формате. Ответ возвращается в формате JSON, его можно скачать. Если метод не смог найти ответ, возвращается код ошибки и сообщение.</small>
! colspan="2" style="width: 85%" |Метод генерирует ответ на поставленный вопрос на основе информации из документов в базе. <small>Ответ на вопрос генерируется на основе информации, содержащейся в одном или нескольких документах. Документы должны быть в текстовом формате. Ответ возвращается в формате JSON, его можно скачать. Если метод не смог найти ответ, возвращается код ошибки и сообщение.</small>
|-
|-
Строка 1655: Строка 1663:
*<small>'''useGPT''' — использовать генеративную сеть для поиска ответов в документах. возможные варианты "'''yes'''" "'''no'''"</small>
*<small>'''useGPT''' — использовать генеративную сеть для поиска ответов в документах. возможные варианты "'''yes'''" "'''no'''"</small>
*<small>'''model''' - имя модели GPT, если кроме default используются другие модели</small>
*<small>'''model''' - имя модели GPT, если кроме default используются другие модели</small>
*<small>'''template''' - ID шаблона запроса к LLM, необязательный параметр</small>  
*<small>'''template''' - ID шаблона запроса к LLM, необязательный параметр</small>


*<small>'''addAlias''' — добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. возможные варианты "'''yes'''" "'''no'''"</small>
*<small>'''addAlias''' — добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. возможные варианты "'''yes'''" "'''no'''"</small>
Строка 1712: Строка 1720:
! colspan="2" style="width: 85%" |Удалить категорию. <small>В ответе или сообщении об успехе, или ошибке, если категория используется или не существует.</small>
! colspan="2" style="width: 85%" |Удалить категорию. <small>В ответе или сообщении об успехе, или ошибке, если категория используется или не существует.</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |  
*<small>'''id''' —  идентификатор категории</small>
*<small>'''id''' —  идентификатор категории</small>
| style="width: 50%" |<small>{   "error": 0,</small>
| style="width: 50%" |<small>{   "error": 0,</small>
Строка 1753: Строка 1761:
|-
|-
! style="color:blue;width: 15%" |'''GET/qas/channel/list'''
! style="color:blue;width: 15%" |'''GET/qas/channel/list'''
! colspan="2" style="width: 85%" |Получить список всех каналов  
! colspan="2" style="width: 85%" |Получить список всех каналов
|-
|-
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
Строка 1780: Строка 1788:
|-
|-
! style="color:green;width: 15%" |'''POST/qas/chat'''
! style="color:green;width: 15%" |'''POST/qas/chat'''
! colspan="2" |Поиск ответа за пределами документов. <small>На стадии разработки, не используется.</small>
! colspan="2" | Поиск ответа за пределами документов. <small>На стадии разработки, не используется.</small>
|-
|-
| colspan="2" |
| colspan="2" |
Строка 1793: Строка 1801:
|-
|-
! style="color:blue;width: 15%" |'''GET/qas/chat'''
! style="color:blue;width: 15%" |'''GET/qas/chat'''
! colspan="2" |Поиск ответа за пределами документов. <small>Аналогичен методу  "POST/qas/chat". Не поддерживает большие тексты.На стадии разработки, не используется.</small>
! colspan="2" | Поиск ответа за пределами документов. <small>Аналогичен методу  "POST/qas/chat". Не поддерживает большие тексты.На стадии разработки, не используется.</small>
|-
|-
| colspan="2" |
| colspan="2" |
Строка 1804: Строка 1812:
|-
|-
! style="color:green;width: 15%" |'''POST/qas/cleandoc'''
! style="color:green;width: 15%" |'''POST/qas/cleandoc'''
! colspan="2" |Очистка документа от лишней информации
! colspan="2" |Очистка документа от лишней информации  
|-
|-
| colspan="2" |
| colspan="2" |
Строка 1815: Строка 1823:
! colspan="2" style="width: 85%" |Загрузить текстовый документ. <small>Добавляет документ в базу. В ответе — id созданного документа или сообщение об ошибке.</small>
! colspan="2" style="width: 85%" |Загрузить текстовый документ. <small>Добавляет документ в базу. В ответе — id созданного документа или сообщение об ошибке.</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |  
*<small>'''title''' — заголовок документа</small>
*<small>'''title''' — заголовок документа</small>
*<small>'''category''' — категория документа</small>
*<small>'''category''' — категория документа</small>
Строка 1826: Строка 1834:
|-
|-
! style="color:red;width: 15%" |'''DELETE/qas/doc/delete/{id}'''
! style="color:red;width: 15%" |'''DELETE/qas/doc/delete/{id}'''
! colspan="2" style="width: 85%" |Удаление документа
! colspan="2" style="width: 85%" | Удаление документа
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
Строка 1889: Строка 1897:
|-
|-
! style="color:green;width: 15%" |'''POST/qas/doc/replace'''
! style="color:green;width: 15%" |'''POST/qas/doc/replace'''
! colspan="2" style="width: 85%" | Замена подстроки в текстах категории <small>Будут заменены все найденные вхождения</small>
! colspan="2" style="width: 85%" |Замена подстроки в текстах категории <small>Будут заменены все найденные вхождения</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
Строка 1902: Строка 1910:
! colspan="2" |Массовая замена текста в указанных фразах.
! colspan="2" |Массовая замена текста в указанных фразах.
|-
|-
| colspan="2" |  
| colspan="2" |
*<small>'''phrases''' - JSON массив с изменяемым фразами следующего вида:</small>
*<small>'''phrases''' - JSON массив с изменяемым фразами следующего вида:</small>
<small>[</small>
<small>[</small>
Строка 1928: Строка 1936:
! colspan="2" style="width: 85%" |Добавление вопроса. <small>В случае успеха метод вернет id вопроса, в случае неудачи — код ошибки.</small>
! colspan="2" style="width: 85%" |Добавление вопроса. <small>В случае успеха метод вернет id вопроса, в случае неудачи — код ошибки.</small>
|-
|-
| colspan="2" style="width: 50%" |  
| colspan="2" style="width: 50%" |
*<small>'''question''' —  текст вопроса</small>
*<small>'''question''' —  текст вопроса</small>


Строка 1952: Строка 1960:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
*<small>'''aliases''' —  JSON list с синонимами</small>  
*<small>'''aliases''' —  JSON list с синонимами</small>


*<small>'''candidates''' JSON list с кандидатами</small>
*<small>'''candidates''' JSON list с кандидатами</small>
Строка 1985: Строка 1993:
|-
|-
! style="color:blue;width: 15%" |'''GET/qas/question/get/{id}'''
! style="color:blue;width: 15%" |'''GET/qas/question/get/{id}'''
! colspan="2" style="width: 85%" |Получение вопроса вместе с ответами и синонимами вопроса
! colspan="2" style="width: 85%" | Получение вопроса вместе с ответами и синонимами вопроса
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
Строка 2008: Строка 2016:
|-
|-
! style="color:blue;width: 15%" |'''GET/qas/question/list'''
! style="color:blue;width: 15%" |'''GET/qas/question/list'''
! colspan="2" style="width: 85%" |Получение списка вопросов.
! colspan="2" style="width: 85%" | Получение списка вопросов.
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
Строка 2033: Строка 2041:
|-
|-
! style="color:green;width: 15%" |'''POST/qas/question/modify/{id}'''
! style="color:green;width: 15%" |'''POST/qas/question/modify/{id}'''
! colspan="2" style="width: 85%" | Модификация вопроса. <small>Позволяет заменить как все параметры так и отдельные</small>
! colspan="2" style="width: 85%" |Модификация вопроса. <small>Позволяет заменить как все параметры так и отдельные</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
Строка 2131: Строка 2139:
|-
|-
! style="color:green;width: 15%" |'''POST/qas/questionlist/start'''
! style="color:green;width: 15%" |'''POST/qas/questionlist/start'''
! colspan="2" style="width: 85%" |Старт массовой обработки вопросов из файла
! colspan="2" style="width: 85%" | Старт массовой обработки вопросов из файла
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
Строка 2157: Строка 2165:
|-
|-
! style="color:blue;width: 15%" |'''GET/qas/questionlist/status'''
! style="color:blue;width: 15%" |'''GET/qas/questionlist/status'''
! colspan="2" style="width: 85%" |Статус массовой обработки вопросов  
! colspan="2" style="width: 85%" |Статус массовой обработки вопросов
|-
|-
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
Строка 2173: Строка 2181:
|-
|-
! style="color:blue;width: 15%" |'''GET/qas/questionmaker/start'''
! style="color:blue;width: 15%" |'''GET/qas/questionmaker/start'''
! colspan="2" style="width: 85%" |Запуск генерации вопросов для кэша. <small>По каждому документу генерируются по 5 вопросов на фрагмент. Количество фрагментов зависят от размера документа и настройки размера контекста из конфигурационного файла. Если вопрос сильно похож на существующий, новый не создается, а добавляется к существующему в aliases.</small>
! colspan="2" style="width: 85%" | Запуск генерации вопросов для кэша. <small>По каждому документу генерируются по 5 вопросов на фрагмент. Количество фрагментов зависят от размера документа и настройки размера контекста из конфигурационного файла. Если вопрос сильно похож на существующий, новый не создается, а добавляется к существующему в aliases.</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
*<small>'''category''' — категория, для которой выполнится генерация вопросов.</small>
*<small>'''category''' — категория, для которой выполнится генерация вопросов.</small>
*<small>'''doc''' - для какого документа генерировать</small>  
*<small>'''doc''' - для какого документа генерировать</small>
* <small>'''model''' - какую модель использовать для генерации, если кроме default используются другие модели</small>
*<small>'''model''' - какую модель использовать для генерации, если кроме default используются другие модели</small>
*<small>'''template''' - ID шаблона запроса к LLM, используемого для генерации вопросов, необязательный параметр</small>
*<small>'''template''' - ID шаблона запроса к LLM, используемого для генерации вопросов, необязательный параметр</small>
*<small>'''generateAnswers''' - автоматическая генерация ответа для каждого сгенерированного вопроса, yes или no, по умолчанию no.</small>
*<small>'''generateAnswers''' - автоматическая генерация ответа для каждого сгенерированного вопроса, yes или no, по умолчанию no.</small>
Строка 2194: Строка 2202:
|-
|-
! style="color:blue;width: 15%" |'''GET/qas/questionmaker/stop'''
! style="color:blue;width: 15%" |'''GET/qas/questionmaker/stop'''
! colspan="2" style="width: 85%" |Прервать генерацию.
! colspan="2" style="width: 85%" |Прервать генерацию.  
|-
|-
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
Строка 2200: Строка 2208:
|-
|-
! style="color:blue;width: 15%" |'''GET/qas/search'''
! style="color:blue;width: 15%" |'''GET/qas/search'''
! colspan="2" style="width: 85%" |Поиск фрагментов содержащих ответ  
! colspan="2" style="width: 85%" |Поиск фрагментов содержащих ответ
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
Строка 2238: Строка 2246:
*<small>'''name''' — название шаблона</small>
*<small>'''name''' — название шаблона</small>


*<small>'''options''' — json словарь с именами разделов и их описанием</small>  
*<small>'''options''' — json словарь с именами разделов и их описанием</small>
| style="width: 50%" |<small>{  "error": 0,  "id": "527be9f0-f773-4a3e-bd0b-81b40a061d0d"}</small>
| style="width: 50%" |<small>{  "error": 0,  "id": "527be9f0-f773-4a3e-bd0b-81b40a061d0d"}</small>
|-
|-
Строка 2288: Строка 2296:
<small>}</small>
<small>}</small>
|-
|-
! style="color:green;width: 15%" | '''POST/qas/replace'''
! style="color:green;width: 15%" |'''POST/qas/replace'''
! colspan="2" |корректировка информации в тексте при помощи LLM
! colspan="2" |корректировка информации в тексте при помощи LLM  
|-
|-
| colspan="2" |
| colspan="2" |
Строка 2296: Строка 2304:
*<small>'''newinfo''' — новая информация</small>
*<small>'''newinfo''' — новая информация</small>
*'''<small>model</small>''' <small>- какую модель использовать для генерации, если кроме default используются другие модели</small>
*'''<small>model</small>''' <small>- какую модель использовать для генерации, если кроме default используются другие модели</small>
* <small>'''template''' - ID шаблона запроса к LLM, необязательный параметр</small>
*<small>'''template''' - ID шаблона запроса к LLM, необязательный параметр</small>
|<small>{</small><small>  "error": 0,</small><small>  "message": "success",</small>
|<small>{</small><small>  "error": 0,</small><small>  "message": "success",</small>


Строка 2309: Строка 2317:
*<small>'''text''' - текст</small>
*<small>'''text''' - текст</small>
*<small>'''category''' — категория, в которой производится векторный поиск</small>
*<small>'''category''' — категория, в которой производится векторный поиск</small>
*<small>'''threshold''' — порог похожести, необязательный параметр, если не указан, берется из конфигурационного файла (fragments -> threshold)</small>  
*<small>'''threshold''' — порог похожести, необязательный параметр, если не указан, берется из конфигурационного файла (fragments -> threshold)</small>
|<small>[</small>  <small>"error": 0,</small>
|<small>[</small>  <small>"error": 0,</small>
<small>"message": "success",</small>
<small>"message": "success",</small>
Строка 2334: Строка 2342:
|-
|-
! style="color:red;width: 15%" |'''DELETE/qas/prompt/delete/{id}'''
! style="color:red;width: 15%" |'''DELETE/qas/prompt/delete/{id}'''
! colspan="2" |Удаление шаблона.  
! colspan="2" |Удаление шаблона.
|-
|-
| colspan="2" |
| colspan="2" |
Строка 2406: Строка 2414:
|-
|-
! style="color:green;width: 15%" |'''POST/qas/prompt/modify/{id}'''
! style="color:green;width: 15%" |'''POST/qas/prompt/modify/{id}'''
! colspan="2" | Модификация шаблона. Позволяет заменить как все параметры, так и отдельные.
! colspan="2" |Модификация шаблона. Позволяет заменить как все параметры, так и отдельные.
|-
|-
| colspan="2" |  
| colspan="2" |  
Строка 2449: Строка 2457:
! colspan="2" style="width: 85%" |Получение ответа на запрос пользователя. <small>Метод для отладки робота</small>
! colspan="2" style="width: 85%" |Получение ответа на запрос пользователя. <small>Метод для отладки робота</small>
|-
|-
| colspan="2" style="width: 50%" |  
| colspan="2" style="width: 50%" |
*<small>'''text''' —  текст запроса</small>
*<small>'''text''' —  текст запроса</small>


Строка 2493: Строка 2501:


|-
|-
| colspan="2" style="width: 50%" |  
| colspan="2" style="width: 50%" |
*<small>'''id''' —  идентификатор робота</small>
*<small>'''id''' —  идентификатор робота</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "message": "success"}</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "message": "success"}</small>
Строка 2505: Строка 2513:
|-
|-
! style="color:green;width: 15%" |'''POST/ses/robot/data/add/{robot}'''
! style="color:green;width: 15%" |'''POST/ses/robot/data/add/{robot}'''
! colspan="2" style="width: 85%" |Добавление элемента данных
! colspan="2" style="width: 85%" |Добавление элемента данных  
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
Строка 2523: Строка 2531:
|-
|-
! style="color:blue;width: 15%" |'''GET/ses/robot/data/get/{robot}/{id}'''
! style="color:blue;width: 15%" |'''GET/ses/robot/data/get/{robot}/{id}'''
! colspan="2" style="width: 85%" |Получение настроек элемента данных
! colspan="2" style="width: 85%" |Получение настроек элемента данных  
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |  
*<small>'''id''' —  идентификатор элемента данных</small>
*<small>'''id''' —  идентификатор элемента данных</small>


Строка 2552: Строка 2560:
! colspan="2" style="width: 85%" |Получение списка элементов данных
! colspan="2" style="width: 85%" |Получение списка элементов данных
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |  
*<small>'''robot''' —  идентификатор робота</small>
*<small>'''robot''' —  идентификатор робота</small>
| style="width: 50%" |<small>[  {    "id": "bc1cb1a1-c64e-46a1-b422-1a48de9ddacb",</small><small>    "name": "pve",</small>
| style="width: 50%" |<small>[  {    "id": "bc1cb1a1-c64e-46a1-b422-1a48de9ddacb",</small><small>    "name": "pve",</small>
Строка 2561: Строка 2569:
! colspan="2" style="width: 85%" |Изменение элемента данных. <small>Формат '''data''' как на выходе метода  '''GET/ses/robot/data/get/{robot}/{id}'''</small>
! colspan="2" style="width: 85%" |Изменение элемента данных. <small>Формат '''data''' как на выходе метода  '''GET/ses/robot/data/get/{robot}/{id}'''</small>
|-
|-
| colspan="2" style="width: 50%" |  
| colspan="2" style="width: 50%" |
*<small>'''data''' —  json строка с параметрами элемента данных</small>  
*<small>'''data''' —  json строка с параметрами элемента данных</small>


*<small>'''robot''' —  идентификатор робота</small>
*<small>'''robot''' —  идентификатор робота</small>
Строка 2647: Строка 2655:
! colspan="2" style="width: 85%" |Выгрузка робота в архив
! colspan="2" style="width: 85%" |Выгрузка робота в архив
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |  
*<small>'''id''' —  идентификатор робота</small>
*<small>'''id''' —  идентификатор робота</small>
| style="width: 50%" |<small>zip файл с именем = идентификатор робота</small>
| style="width: 50%" |<small>zip файл с именем = идентификатор робота</small>
|-
|-
! style="color:blue;width: 15%" |'''GET/ses/robot/get/{id}'''
! style="color:blue;width: 15%" |'''GET/ses/robot/get/{id}'''
! colspan="2" style="width: 85%" | Выгрузка основных настроек робота
! colspan="2" style="width: 85%" |Выгрузка основных настроек робота
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
Строка 2697: Строка 2705:
|-
|-
! style="color:green;width: 15%" |'''POST/ses/robot/modify/{id}'''
! style="color:green;width: 15%" |'''POST/ses/robot/modify/{id}'''
! colspan="2" style="width: 85%" |Изменение основных настроек робота. <small>Формат '''data''' как в ответе метода '''GET/ses/robot/get/{id}'''</small>
! colspan="2" style="width: 85%" | Изменение основных настроек робота. <small>Формат '''data''' как в ответе метода '''GET/ses/robot/get/{id}'''</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
Строка 2712: Строка 2720:
|-
|-
! style="color:green;width: 15%" |'''POST/ses/robot/script/add/{robot}'''
! style="color:green;width: 15%" |'''POST/ses/robot/script/add/{robot}'''
! colspan="2" style="width: 85%" | Добавление нового скрипта. <small>Формат '''data''' как в ответе метода '''GET/ses/robot/script/get/{robot}/{id}'''</small>
! colspan="2" style="width: 85%" |Добавление нового скрипта. <small>Формат '''data''' как в ответе метода '''GET/ses/robot/script/get/{robot}/{id}'''</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
Строка 2843: Строка 2851:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
*<small>'''taskID''' — идентификатор задания из очереди</small>  
*<small>'''taskID''' — идентификатор задания из очереди</small>


*<small>'''name''' —  имя создаваемой стенограммы</small>
*<small>'''name''' —  имя создаваемой стенограммы</small>
Строка 2870: Строка 2878:
|-
|-
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
| colspan="2" style="width: 50%" |[ {  "id": "926e8d25-4275-4a78-906b-a1109cdacbea",
| colspan="2" style="width: 50%" | [ {  "id": "926e8d25-4275-4a78-906b-a1109cdacbea",


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

Версия от 15:25, 3 июля 2025

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


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

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

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

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

"x-refresh-token": "XXXXXXXXXXXXXXXXXXXX"

}

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

"error": 0

"message": "success",

"dataset_id": "XXXXXXXXXXXXX"

}

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

"error": 0,

"message": "success"

}

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

"error": 0,

"message": "success"

}

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

{"id": "XXXXXXXXXXXXXXXXXX",

"name": "XXX"},

{"id": "0",

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

]

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

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

"x-refresh-token": "XXXXXXXXXXXXXXXXXXXX"

}

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

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

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

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

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

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

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

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

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

}

{

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

}

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

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

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

}

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

"id": "XXXXXXXXXXX",

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

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

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

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

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

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

{"error": 0,

"message": "success",

"user_id": "XXXXXXXXXXXXXXXX"}

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

"username": "loginname",

"fullname": "Full Name",

"role": "0",

"dataset": "0",

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

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

"username": "loginname",

"fullname": "Full Name",

"role": "0",

"dataset": "0",

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

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

{"id": "XXXXXXXXXX",

"username": "loginname",

"fullname": "Full Name",

"role": "0",

"dataset": "0",

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

......

]

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

"message": "success"}

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

  "error": 0,

  "message": "success",

  "data": [

    [

      "время",

      "id",

      "метод",

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

    ],

    [

      "время",

      "id",

      "метод",

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

    ],

    .........

}

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

  "version": "4.082 release"

}

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

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

... }

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


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

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

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

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

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

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

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

  "timers": {  "connect": 0.5,

    "read": 1,

    "failed": 600,

    "install": 60,

    "info": 3 },

  "counter": 0,

  "current": 0,

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

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

    "model1",

    ...

    "modelN"

  ],  ... }

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

"error":0,

"message":"success"

}

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

"error":0,

"message":"success"

}

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

"error":0,

"message":"success"

}

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

- train ошибки обучения

- test ошибки тестирования

- mark ошибки авторазметки

  • servicetype — тип сервиса
  • model — название модели
  • modeltype — тип модели
[ [true, predicted, phrase],

... ]

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

"message":"success"

}

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

"message":"success"

}

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

"error":0,

"message":"success"

}

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

"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) указанной модели. Итоговый массив содержит переменные типа modeltype, в каждой из который содержится информация о модели.
  • servicetype — тип сервиса
  • model — название модели
{   "previous": null,

  "current":  {

    "status": "trained",

    ... },

  "future": {

    "status": "trained",

    ...  } }

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

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

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

"error":0,

"message":"success"

}

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

  "training",

  "preparing data",

  "tokenizing",

  ...

]

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

"message":"success"

}


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

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

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

  "message": "success",

  "tasks": [ {

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

      "taskname": "test_doc",

      "status": "finished"    },

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

      "taskname": "sssss",

      "status": "finished"    }  ] }

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

}

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

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

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

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

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

  "error": 0,

  "message": "success",

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

}

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

  "error": "",

  "status": "finished",

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

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

  "progress": 0

}

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

  "message": "success"}

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

  "error": 0,

  "message": "success"

}

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

  "message": "success"}

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

  [ "тэг",

    "фраза"

  ],

  ...

]

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

  "error": 0,

  "message": "success"

}

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

"корпус2",

  ...]

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

  "error": 0,

  "message": "success"

}

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

  "error": 0,

  "message": "success"

}


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

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

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

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

    ] ]

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

  "error": 0,

  "message": "success",

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

}

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

  "message": "success" }

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

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

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

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

{  "error": 0,

  "message": "success",

  "data": [

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

      0.9

    ],

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

      0.9

    ]  ] }

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

  "message": "success" }

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

{  "error": 0,

  "message": "success",

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

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

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

  ]}

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

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

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

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

    ] ]

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

  "message": "success" }

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

  "message": "success" }

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

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

   "status": "waiting",

   "filename": "wav"}

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

"message": "success"}

GET/spr/result/{taskID} получениеПезультатов распознавания отложенного задания. Статусы: ready — готово, waiting — ожидание, failed — сбой, not found — не найдена
  • taskID — идентификатор задания в очереди/small>
Вывод аналогичен выводу метода stt + добавлено поле status, которое содержит информацию о статусе отложенной задачи
POST/spr/stt/{model} Отправка файла на распознавание речи. Моно-файлы до 30 секунд распознаются без разбивки на фрагменты. Многоканальные файлы и файлы длиннее 30 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в руководстве администратора spr.
  • model — идентификатор модели
  • wav — файл для распознавания
  • speakers — опция поиска говорящих по базе SBS. Если 1, то дополнительно производится поиск говорящих и получение метаданных по каждому говорящему (используется сервис SBS с предварительно обученными слепками метаданных говорящих)
  • punctuation — опция для расстановки знаков препинания. Если 1, то дополнительно вызывает метод punctuate в SMC и расставляет знаки препинания в распознанном тексте, значение по умолчанию берётся из файла конфигурации (для модели big пунктуация выполняется в любом случае).
  • normalization — опция обратной нормализации текста, если 1, то выполняется обратная нормализация текста текста (для модели big выполняется в любом случае).
  • vad — используемый VAD, по умолчанию webrtc
  • toxicity — анализировать распознанный текст на токсичность через smc (GET/smc/toxicity).Высказывание анализируется по 4 параметрам, по каждому выдается вероятность от 0 до 1:"оскорбление": 0.13, "непристойность": 0, "угроза": 0, "вежливость": 0.53
  • emotion — выявить эмоции из распознанного текста через smc (GET/smc/emotion). Возможные ответы: negative, neutral, positive.
  • voice_analyzer — анализировать аудиофрагменты каждого из говорящих на эмоции, возраст и пол, запрашивается в sbs метод POST/sbs/analyze.Аудио говорящего анализируется на возраст (child, adult, old).Эмоции (ANGER, BORE, DISAPPOINTMENT, DISGUST, EXCITEMENT, FEAR, NEUTRAL, PAIN, PLEASURE, SADNESS, SUPRISE). Пол (male, female).
  • speaker_counter — количество докладчиков, по умолчанию 0, автоматическое определение количества
  • async — отложенный запуск распознавания
  • classifiers - дополнительно проанализировать все распознанные фразы через модели smc и/или see. отправляется в виде {"smс":"название модели":{ параметры запроса }}. Подробнее о параметрах запроса см. в документации по сервисам smc и see.
В случае async=1 возвращается только taskID, результат по taskID смотреть в методе /spr/result.

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

{

  "model": "call",

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

"classifiers": тут ответы от моделей smc и see,

  "words": [

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

      "start": 520,

      "stop": 1240 },

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

      "start": 1240,

      "stop": 1920  }

]

}

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

{

"speakers": [

    {

"id": null,

      "duration": 18980,

      "fragments": 3,

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

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

}

],

"splitted": [

    {

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

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

      "words": [

      {

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

          "start": 1870,

          "stop": 2710,

          "confidence": 0.95263671875

}

],

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

      "channel": 0,

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

      "start_ms": 1870,

      "stop_ms": 5510,

      "duration_ms": 3640,

      "speaker": 4,

      "speakerConfidence": 0.87,

"classifiers": тут ответы от моделей smc и see,

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

        "insult": 0,

        "obscenity": 0,

        "threat": 0,

        "politeness": 0.99

},

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

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

        "emotion": {

          "class": "NEUTRAL",

          "confidence": 0.7554781436920166  }

}

}

]

}

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

"waveform": [

0.016,

    0.015,

    0.01 ] }

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

В ответе:

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

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

      "confidence": 1    },

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

      "confidence": 1    }  ],

  "groups": [

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

      "intersection": 2,

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

  "nearest": [

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

      "percent": 0.67,

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

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

      "percent": 0.67,

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

GET/smc/compress Убирает из фразы слова не влияющие на ее смысл.
  • text текст для сжатия
  • threshold уровень компрессии от 1 до 100. Чем меньше число тем меньше слов будет в итоговой фразе
{  "text": "сжатый текст"}
GET/smc/correct Коррекция правописания. Изменяет неправильно написанные слова, меняя их на наиболее близкие правильные (из знакомых модели). Если модель коррекции не смогла предложить правильное написание текста, метод вернёт текст неизменным.
  • text - текст для коррекции
  • correction - уровень коррекции, от 1 до 3. По умолчанию 1.
  • model - если указано, то при коррекции дополнительно используется словарь модели
{  "text": "корректный текст" }
GET/smc/emotion Анализ эмоций. На выходе один из вариантов: positive, negative, neutral.
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 Обратная нормализация текста. Пример: двадцать пятого апреля в пятом часу — 25 апреля в 5-м часу.
  • text — текст для обработки.
{"text": "<строка после обратной нормализации>"}
GET/smc/punctuate Расстановка знаков препинания
  • text — текст для обработки.
{  "text": "string" }
POST/smc/stop/{model} Остановка обучения модели. Удаляет тестовую версию модели с сервера обучения, тем самым прерывает обучение.
  • model — идентификатор модели
{  "error": 0,

  "message": "string"}

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

  "message": "success" }

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

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

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

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

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

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

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

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

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

] }

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

  "message": "success"}

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

  "message": "success"}

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

{ age: {

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

   confidence: 0.99 },

emotion: {

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

   confidence: 0.99 },

gender: {

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

   confidence: 0.99 } }

POST/sbs/noiselevel Возвращает процент зашумленности аудио
  • wav — файл для анализа
Пример ответа:

{ error: 0, message: 'success', 'noise': 0.79 }

POST/sbs/search Поиск говорящего по базе слепков.
  • wav — файл для анализа
  • threshold — процент совпадения
  • text — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то поиск не будет осуществлен, если распознанный текст будет сильно отличаться от text.
Пример ответа:

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

POST/sbs/speakers/add Добавление слепка в базу.
  • name — имя говорящего
  • wav — файл для создания оцифрованного представления говорящего
  • text — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то поиск не будет осуществлен, если распознанный текст будет сильно отличаться от text. Для использования необходим сервис spr.
{

  "error": 0,

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

}

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

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

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

  }]

POST/sbs/speakers/modify/{id} Дообучение слепка.
  • wav — файл для обучения
  • id — идентификатор слепка
  • text — текст для сравнения с распознанным текстом из wav, необязательный параметр. Если указан, то слепок не будет дообучен, если распознанный текст будет сильно отличаться от text. Для использования необходим сервис spr.
{  "error": 0,

  "message": "Success"}

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

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

...]

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

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

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

[

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

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

...

]

{

  "error": 0,

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

}

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

  "message": "success",

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

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

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

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

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

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

  • useGPT — использовать генеративную сеть для поиска ответов в документах. возможные варианты "yes" "no"
  • model - имя модели GPT, если кроме default используются другие модели
  • template - ID шаблона запроса к LLM, необязательный параметр
  • addAlias — добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. возможные варианты "yes" "no"
{

"error": 0,

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

}

GET/qas/cachemaker/start Генерация ответов на вопросы в кэше.
  • category - категория для которой генерируются ответы*mode - режим генерации ответов, возможные значения:- paraphrase - генерирует вариации ответов перефразированием уже проверенных ответов, если таковые имеются на вопросе- generate - генерирует кэш через разные ответы на каждый вопрос по документации
  • option - {all | empty} обработать все вопросы или только не содержащие ответов
  • category - если указан код категории, то генерация только для этой категории
  • variants - количество ответов, от 1 до 9
  • replace - заменить ответы на сгенерированные
  • maxDocs - максимальное количество документов одной категории для формирования контекста при генерации ответа на вопрос, по умолчанию 1
  • model - какую модель использовать для генерации, если кроме default используются другие модели
  • template - ID шаблона запроса к LLM, необязательный параметр
{"error": 0, "message": "success"}
GET/qas/cachemaker/status Состояние генерации ответов на вопросы в кэше. Статусы: started, stopped, если были ошибки, поле ответа error будет содержать код ошибки.
Входные параметры отсутствуют {  "error": "",

  "status": "started",

  "progress": 33.33}

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

  "message": "success",

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

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

  "message": "success" }

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

  "message": "success" }

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

"message": "success",

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

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

  "channels": [

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

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

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

  ] }

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

  "message": "success" }

POST/qas/chat Поиск ответа за пределами документов. На стадии разработки, не используется.
  • text - текст вопроса
  • history - история вопросов, будет склеена с text при запросе
  • model - какую модель использовать для ответа, если кроме default используются другие модели
  • useInternalTemplate - использовать ли шаблон запроса. no - не использовать, либо код шаблона запроса к LLM. Необязательный параметр. Если не указан, используется шаблон по умолчанию.
  • params - необязательный параметр. JSON с произвольными параметрами запроса к LLM. Описание параметров см. в руководстве администратора.
Пример ответа на вопрос "как пройти в библиотеку"{"error": 0,

"text": "1. Проверить время работы библиотеки (обычно от 9 до 20)\n2. Проверить местоположение библиотеки на карте или с помощью сервиса Google Maps\n3. Убедиться, что у вас есть необходимые документы для входа (паспорт, карта члена библиотеки и т.д.)\n4. Посетить библиотеку по адресу: [адрес библиотеки]\n5. Проверить правила поведения в библиотеке перед входом" }

GET/qas/chat Поиск ответа за пределами документов. Аналогичен методу "POST/qas/chat". Не поддерживает большие тексты.На стадии разработки, не используется.
  • text - текст вопроса
  • history - история вопросов, будет склеена с text при запросе
  • model - какую модель использовать для ответа, если кроме default используются другие модели
  • useInternalTemplate - использовать ли шаблон запроса. no - не использовать, либо код шаблона запроса к LLM. Необязательный параметр. Если не указан, используется шаблон по умолчанию.
  • params - необязательный параметр. JSON с произвольными параметрами запроса к LLM. Описание параметров см. в руководстве администратора.
Аналогично методу "POST/qas/chat".
POST/qas/cleandoc Очистка документа от лишней информации
  • text - текст документа
  • model - какую модель использовать для ответа, если кроме default используются другие модели
  • template - ID шаблона запроса к LLM, необязательный параметр
{"error": 0, "message": "success", "text": "измененный текст"}
POST/qas/doc/add Загрузить текстовый документ. Добавляет документ в базу. В ответе — id созданного документа или сообщение об ошибке.
  • title — заголовок документа
  • category — категория документа
  • textфайл документа
{"error": 0,

"message": "success",

"id": "ebe2bc57551c2d17f892987d1f62306d"}

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

  "error": 0,

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

}

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

{  "error": 0,

  "docs": [

    {id": "d4999cdee5ad1faf2cb3066ea1b5e96b",

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

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

    {"id": "759042575b965745b9d2af869bca1740",

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

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

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

{

  title: string,

  category: string,

  text: string

}

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

  • id — идентификатор документа.
{"error": INT, "message": DESCRIPTION}
POST/qas/doc/replace Замена подстроки в текстах категории Будут заменены все найденные вхождения
  • search - искомая подстрока, будет заменена
  • replace - текст замены
  • category - в какой категории искать
{"error": INT, "message": DESCRIPTION,"replacements":INT}
POST/qas/doc/modifyphrases Массовая замена текста в указанных фразах.
  • phrases - JSON массив с изменяемым фразами следующего вида:

[

{

'doc_id': 'ad895085-2e48-439a-831e-b5f699b6a54a',

'phrase_id': 5,

'text': 'новый текст'

}

]

{"error": 0,"message": "success"}
GET/qas/gpt/list Получение списка доступных(установленных) GPT моделей
Входные параметры отсутствуют {  "error": 0,  "message": "success",  "models": ["default" ]}
POST/qas/question/add Добавление вопроса. В случае успеха метод вернет id вопроса, в случае неудачи — код ошибки.
  • question — текст вопроса
  • category — id категории к которой относится вопрос
  • answers — ответы в виде Json:

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

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

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

{

  "error": 0,

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

}

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

  "answers": [

    {   "checked": true,

      "channel": "0",

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

  "aliases": [

    "вопрос",

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

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

GET/qas/question/list Получение списка вопросов.
  • question — фильтр вопросов, ограничение списка по вопросам
  • answer — фильтр ответов, ограничение списка по ответам
{  "error": 0,

  "questions": [

{"id": "","question": "","incomplete": "",

  "aliases": [],"candidates": [],"category": "",

  "checked": 0,"unchecked": 0},

{"id": "","question": "","incomplete": "",

  "aliases": [],"candidates": [],"category": "",

  "checked": 0,"unchecked": 0}

  ] }

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}

POST/qas/question/replace Поиск и замена подстроки. Будут заменены все найденные вхождения
  • search - искомая подстрока, будет заменена
  • replace - текст замены
  • category - в какой категории искать
{"error": INT, "message": DESCRIPTION,"replacements":INT}
POST/qas/question/modifyanswers Массовая замена текста в указанных ответах.
  • phrases - JSON массив с изменяемым ответами следующего вида:

[

{

'question_id': 'ad895085-2e48-439a-831e-b5f699b6a54a',

'answer_id': 5,

'text': 'новый текст'

}

]

{"error": 0,"message": "success"}
POST/qas/paraphrase Генерация фраз-синонимов для предложения.
  • text - предложение
  • model - какую модель использовать для ответа, если кроме default используются другие модели
  • template - ID шаблона запроса к LLM, необязательный параметр
{"error": 0, "message": "success", "texts": [ "перефразированный текст 1", ... ]}
GET/qas/questionlist/answers Отображает лог массовой обработки вопросов
Входные параметры отсутствуют на выходе :

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

  error: number;

  question: string;

  answer: string;

  confidence: number | null;

}

POST/qas/questionlist/start Старт массовой обработки вопросов из файла
  • questions - файл с вопросами
  • format - в json или в text файл с вопросами
  • category — id категории документа. Если не указать категорию, метод вернет ответ на основе всех документов в базе данных. Допускается указание нескольких категорий через разделитель "|".
  • channel — id канала
  • creative — флаг креативности возможные варианты "yes" "no"
  • useCache — использовать кешированные ответы

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

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

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

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

  • useGPT — использовать генеративную сеть для поиска ответов в документах. возможные варианты "yes" "no"
  • model - имя модели GPT, если кроме default используются другие модели
  • template - ID шаблона запроса к LLM, необязательный параметр
  • maxDocs - максимальное количество документов одной категории для формирования контекста при генерации ответа на вопрос, по умолчанию 1
  • addAlias — добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. возможные варианты "yes" "no"
  • threshold - порог достоверности при обработке
{error: 0 | 1, message: string}
GET/qas/questionlist/status Статус массовой обработки вопросов
Входные параметры отсутствуют {     error: string;

     status: 'started' | 'stopped';

     progress: number; }

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

  "status": "stopped",

  "progress": 0 }

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

  "text": "

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

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

  "fragments": [

    {      "id": "3a386b0a9e0e19efb0870685e1d0b484",

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

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

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

    {      "id": "44fd73ea1ac63f32cf18d79c854dbfe2",

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

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

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

POST/qas/summarization_template/add Добавление шаблона протокола. В случае успеха метод вернет id шаблона, в случае неудачи — код ошибки.
  • name — название шаблона
  • options — json словарь с именами разделов и их описанием
{  "error": 0,  "id": "527be9f0-f773-4a3e-bd0b-81b40a061d0d"}
DELETEqas/summarization_template/delete/{id} Удаление шаблона.
  • id — идентификатор шаблона
{"error": INT, "message": DESCRIPTION}
GET/qas/summarization_template/get/{id} Получение json с шаблоном.
  • id — идентификатор шаблона
На выходе словарь, основные элементы: data — словарь с шаблоном, остальные элементы этого уровня служебные. В data: id, name (идентификатор и наименование).И options — словарь с разделами шаблона.
GET/qas/summarization_template/list Получение всех шаблонов.
Входные параметры отсутствуют На выходе словарь, основной элемент — templates, содержит список шаблонов (каждый шаблон как в выдаче метода GET /qas/summarization_template/get/{id}).
POST/qas/summarization_template/modify/{id} Изменение шаблона.
  • data — словарь как в выдаче метода GET/qas/summarization_template/get/{id}
  • id — идентификатор шаблона
{"error": INT, "message": DESCRIPTION}
POST/qas/summarize Построение протокола или краткого содержания совещания
  • text - текст совещания
  • options — словарь с разделами протокола, где ключ — название раздела, значение - краткая инструкция к формированию раздела.
  • model - какую GPT модель использовать для построения протокола, если кроме default используются другие модели
  • file — файл с текстом (текст, csv, pdf или текстовые офисные документы)
  • template - ID шаблона запроса к LLM, необязательный параметр
{  "error": 0,

  "message": "success",

  "summary": "здесь текст протокола"

}

POST/qas/replace корректировка информации в тексте при помощи LLM
  • text - текст
  • oldinfo — старая информация
  • newinfo — новая информация
  • model - какую модель использовать для генерации, если кроме default используются другие модели
  • template - ID шаблона запроса к LLM, необязательный параметр
{  "error": 0,  "message": "success",

  "text": "итоговый текст"

}

POST/qas/replacementlist список всех фраз в документах и ответов в вопросах, подлежащих правке. Векторно ищет все фрагменты по указанному тексту.
  • text - текст
  • category — категория, в которой производится векторный поиск
  • threshold — порог похожести, необязательный параметр, если не указан, берется из конфигурационного файла (fragments -> threshold)
[ "error": 0,

"message": "success", "docs": [], "answers": [] ]

POST/qas/prompt/add Добавление шаблона запроса к LLM. В случае успеха метод вернет id вопроса, в случае неудачи — код ошибки.
  • type — тип шаблона - chat - произвольный чат, - ask - запрос к документам, - cleandoc - очистка документа, форматирование либо другое преобразование, - similars_generator - генерация синонимичных которотких фраз, - paraphrase - перефразировка текста, - summarize - суммаризация текста (формирование краткой выдержки из текста), - question_generator - генерация вопросов по тексту, - replace - замена информации в тексте
  • name — название шаблона
  • prompt — текст шаблона
  • postprompt - текст шаблона постобработки результатов (нужен только для summarize)
{  "error": 0,

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

}

DELETE/qas/prompt/delete/{id} Удаление шаблона.
  • id — идентификатор вопроса
{"error": INT, "message": DESCRIPTION}
GET/qas/prompt/get/{id} Получение шаблона.
  • id — идентификатор вопроса
{  "error": 0,  "prompt": {

    "id": "cleandoc",

    "type": "cleandoc",

    "isDefault": false,

    "name": "Чистка документа",

    "prompt": "Удали сноски, колонтитуры и мусорную информацию из текста ниже. Не удаляй ничего лишнего. Не добавляй ничего, только информация из текста. Выведи только конечный результат без отчета о результате.\n###Текст:\n{context}\n\n###Конечный результат:",

    "postprompt": "",

    "_modified": 1751475766.7460272,

    "_created": 1751475766.7460272,

    "_modified_date": "2025-07-02",

    "_created_date": "2025-07-02"

  }

}

GET/qas/prompt/list Получение списка шаблонов.
{  "error": 0,  "prompts": [

    {

      "id": "chat",

      "type": "chat",

      "isDefault": false,

      "name": "Чат",

      "prompt": "Ты спокойный вежливый консультант.[\n\n###История переписки:\n{history}]\n\n###Вопрос: {question}\n###Ответ:",

      "postprompt": "",

      "_modified": 1751475766.7460272,

      "_created": 1751475766.7460272,

      "_modified_date": "2025-07-02",

      "_created_date": "2025-07-02"

    }

  ]

}

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

{ "name": "новое имя" }

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


/ses: методы работы с роботом
Описание методов API
для некоторых путей, где используется {robot_id} - это обращение к версии черновика, чтобы обращаться к продовой версии - нужен постфикс "_prod", для бэкапа "_backup"

актуально для методов

- получения данных робота  GET/ses/robot/get/{id}

- применение настроек робота GET/ses/robot/commit/{id}

- экспорт робота GET/ses/robot/export/{id}

- список скриптов GET/ses/robot/script/list/{robot}

- получение скрипта GET/ses/robot/script/get/{robot}/{id}

- список ЭД GET/ses/robot/data/list/{robot}

- получение ЭД GET/ses/robot/data/get/{robot}/{id}

- список КТ GET/ses/robot/endpoint/list/{robot}

- получение КТ GET/ses/robot/endpoint/get/{robot}/{id}

- метода ask (отладчика) POST/ses/ask/{robot_id}

- данные сессии (отладчика) GET/ses/session/{robot_id}/{session_id}

POST/ses/ask/{robot_id} Получение ответа на запрос пользователя. Метод для отладки робота
  • text — текст запроса
  • channel -— id канала
  • session — uuid сессии, если это не первый запрос в сессии
  • tts — вернуть результат синтеза (1- вернуть, 0 - не выполнять синтез)
  • variables — словарик с переменными {"переменная1":"значение","переменнаяN":"значение"}
  • audio — аудиофайл с запросом, текст запроса будет получен распознаванием audio
  • robot_id — id робота
{  "error": 0,  "question": "Вопрос",

  "answer": [

    {      "messages": [

        "ответ"      ],

      "voice": ""    }  ],

  "session": null}

POST/ses/robot/add Создание нового робота. На выходе id созданного робота или сообщение об ошибке
  • name — имя нового робота
{  "error": 0,  "id": "2fd2f909-2069-4b20-a725-3a598c83f886"}
GET/ses/robot/apply/{id} Применение робота. Переводит черновик робота в статус prod. Если до этого был prod вариант — становится backup.
  • id — идентификатор робота
{  "error": 0,  "message": "success"}
GET/ses/robot/cleardraft/{id} Обнуление черновика рабочей версией робота
  • id — идентификатор робота
{  "error": 0,  "message": "success"}
GET/ses/robot/commit/{id} Применение текущих изменений настроек робота. Применимо ко всем версиям (черновик, рабочая, резервная копия)
  • id — идентификатор робота
{  "error": 0,  "message": "success"}
POST/ses/robot/data/add/{robot} Добавление элемента данных
  • data — json строка с параметрами элемента данных
  • robot — идентификатор робота
{  "error": 0,  "message": "success"}
DELETE/ses/robot/data/delete/{robot}/{id} Удаление элемента данных
  • id — идентификатор элемента данных
  • robot — идентификатор робота
{  "error": 0,  "message": "success"}
GET/ses/robot/data/get/{robot}/{id} Получение настроек элемента данных
  • id — идентификатор элемента данных
  • robot — идентификатор робота
{  "error": 0,  "data": {

    "id": "bc1cb1a1-c64e-46a1-b422-1a48de9ddacb",

    "name": "pve",

    "type": "smc",

    "model": "Рыжик",

    "param": "PVE",

    "weight": 0,

    "slaveData": [],

    "forEndpointRunOnly": true,

    "actions": {}  } }

GET/ses/robot/data/list/{robot} Получение списка элементов данных
  • robot — идентификатор робота
[  {    "id": "bc1cb1a1-c64e-46a1-b422-1a48de9ddacb",    "name": "pve",

    "type": "smc"  } ]

POST/ses/robot/data/modify/{robot}/{id} Изменение элемента данных. Формат data как на выходе метода GET/ses/robot/data/get/{robot}/{id}
  • data — json строка с параметрами элемента данных
  • robot — идентификатор робота
  • id — идентификатор элемента данных
{  "error": 0,  "message": "success"}
DELETE/ses/robot/delete/{id} Удаление всех версий робота
  • id — идентификатор робота
{  "error": 0,  "message": "success"}
POST/ses/robot/endpoint/add/{robot} Создание конечной точки. Формат data как на выходе метода GET/ses/robot/endpoint/get/{robot}/{id}
  • data — json строка с параметрами конечной точки
  • robot — идентификатор робота
{  "error": 0,  "id": "8576593b-b0d8-4b03-a623-74f3132356ea"}
DELETE/ses/robot/endpoint/delete/{robot}/{id} Удаление конечной точки.
  • robot — идентификатор робота
  • id — идентификатор конечной точки
{  "error": 0,  "message": "success"}
GET/ses/robot/endpoint/get/{robot}/{id} Получение настроек конечной точки
  • robot — идентификатор робота
  • id — идентификатор конечной точки
{  "error": 0,  "data": {

    "id": "6500dd0f-4bd1-43b3-9fd4-145eb7210c45",

    "name": "pve",

    "entry": [ [ "bc1cb1a1-c64e-46a1-b422-1a48de9ddacb"]],

    "run": [],

    "actions": {

      "default": [

        {"action": "say",

          "type": "linear",

          "text": [ "текст сообщения"]        },

        { "action": "следующее действие"}      ]    }  } }

GET/ses/robot/endpoint/list/{robot} Получение списка конечных точек робота
  • robot — идентификатор робота
[  {    "id": "8576593b-b0d8-4b03-a623-74f3132356ea",    "name": "точка 1",

    "entry": []  },

  {    "id": "6500dd0f-4bd1-43b3-9fd4-145eb7210c45",

    "name": "точка 2",

    "entry": [      [        "bc1cb1a1-c64e-46a1-b422-1a48de9ddacb"      ]    ]  }]

POST/ses/robot/endpoint/modify/{robot}/{id} Изменение конечной точки. Формат data как на выходе метода GET/ses/robot/endpoint/get/{robot}/{id}
  • data — json строка с параметрами элемента данных
  • id — идентификатор элемента данных
  • robot — идентификатор робота
{  "error": 0,  "message": "success"}
GET/ses/robot/export/{id} Выгрузка робота в архив
  • id — идентификатор робота
zip файл с именем = идентификатор робота
GET/ses/robot/get/{id} Выгрузка основных настроек робота
  • id — идентификатор робота
{  "error": 0,  "data": {

    "id": "9fd7f6f1-2cac-4f0f-a121-75c40f2b5e78",

    "name": "test",    "description": "",    "voice": "",

    "session": {      "lifetime": 600    },

    "models": {},    "servicedata": {},

    "exceptions": {},    "actions": {},

    "holidays": [],    "timeintervals": {

      "name": {        "weekdays": [ 1, 2, 3, 4, 5, 6,  7  ],

        "dates": [  0,  1,  2,   3, 4,  5, 6,  7,  8,  9, 10,  11, 12,13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],

"months": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ],

"days": "all", "intervals": [ [ 0,  1440 ] ] }}}}

POST/ses/robot/import/{id} Загрузка архива робота в черновик существующего робота
  • zip — файл с архивом робота
  • id — идентификатор робота
{  "error": 0,  "message": "success"}
GET/ses/robot/list Получение списка роботов
Входные параметры отсутствуют [  {  "id": "9fd7f6f1-2cac-4f0f-a121-75c40f2b5e78",    "name": "test",

    "hasProd": true,

    "hasBackup": true  } ]

POST/ses/robot/modify/{id} Изменение основных настроек робота. Формат data как в ответе метода GET/ses/robot/get/{id}
  • data — json строка с новыми настройками робота
  • id — идентификатор робота
{  "error": 0,  "message": "success"}
GET/ses/robot/restore/{id} Откат рабочей версии из бэкапа. Резервная копия становится рабочей, и удаляется, а черновик остается без изменений
  • id — идентификатор робота
{  "error": 0,  "message": "success"}
POST/ses/robot/script/add/{robot} Добавление нового скрипта. Формат data как в ответе метода GET/ses/robot/script/get/{robot}/{id}
  • data — json строка с параметрами скрипта
  • robot — идентификатор робота
{  "error": 0,  "message": "success"}
DELETE/ses/robot/script/delete/{robot}/{id} Удаление скрипта
  • robot — идентификатор робота
  • id — идентификатор скрипта
{  "error": 0,  "message": "success"}
GET/ses/robot/script/get/{robot}/{id} Получение текста скрипита
  • robot — идентификатор робота
  • id — идентификатор скрипта
{  "error": 0,  "data": {

    "id": "6a9f91b6-9634-4079-ac2b-60a944922c61",

    "name": "Наименование скрипта",

    "code": "Текст скрипта"  }

}

GET/ses/robot/script/list/{robot} Получение списка скриптов
  • id — идентификатор робота
[  {    "id": "9b9d83b7-d5c3-49e6-9bd4-a123a9047939",    "name": "наименование1" },

  {    "id": "48b508ba-a32b-4ada-bcc3-66ce26d81c6a",

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

POST/ses/robot/script/modify/{robot}/{id} Изменение скрипта.Формат data как в ответе метода GET/ses/robot/script/get/{robot}/{id}
  • data — json строка с параметрами элемента данных
  • id — идентификатор скрипта
  • robot — идентификатор робота
{  "error": 0,  "message": "success"}
GET/ses/session/{robot_id}/{session_id} Выдает параметры сессии. Для отображения на боковой панели тестирования в UPS. Основные блоки результата:
  • robot_id — id робота
  • session_id — id незакрытой сессии
{ "started": "2024-11-05 15:03:14",

"modified": "2024-11-05 15:03:14",

"current": {.....},

"data": [

  {   "request": { },

   "reply": {  }  } ],

"variables": {},

"history": [

  {   "id": ".....", "session": ".....", "robot": ".....",

   "channel": ".....", "closed": false, "endpoint": ".....",

   "variables": {},

   "request": {.....},

   "reply": {.....}  } ]}

GET/ses/widget/config Выдает параметры виджета для web канала по запросу js скрипта
  • token — уникальный код виджета, создается при внедрении
Состав конфига канала, для передачи виджету. Подробней в Руководстве администратора
GET/ses/widget/js Выдает код js скрипта виджета для web-канала
Входные параметры отсутствуют Код скрипта
/res: методы работы с сервисом отчетов
Описание методов API
GET/res/dashboards Получить список рабочих столов kibana с наборами отчетов
Входные параметры отсутствуют {  "error": 0,  "message": "success",

  "dashboards": {

"Наименование1": "https://........",

"Наименование2": "https://........."  }}

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

"GET /transcription/list"

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

"message": "success",

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

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

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

"model": "big",

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

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

"user": "0",

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

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

"waveform": [

   0.016,

  ..........

  ..........

   0.015,

   0.01 ] }