Действия

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

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

Строка 8: Строка 8:
|'''<small>servicetype</small>'''
|'''<small>servicetype</small>'''
|<small>запрос</small>
|<small>запрос</small>
|<small>Тип сервиса. Возможные значения: spr, smc, see, sbs, tts</small>
|<small>Тип сервиса. Возможные значения: spr, smc, see, sbs, tts.</small>
|-
|-
|'''<small>servertype</small>'''
|'''<small>servertype</small>'''
|<small>запрос</small>
|<small>запрос</small>
|<small>Тип группы серверов. Возможные значения: trainer (серверы обучения), cluster (рабочие серверы)</small>
|<small>Тип группы серверов. Возможные значения: trainer (серверы обучения), cluster (рабочие серверы).</small>
|-
|-
|'''<small>model</small>'''
|'''<small>model</small>'''
|<small>запрос</small>
|<small>запрос</small>
|<small>Название модели</small>
|<small>Название модели.</small>
|-
|-
|'''<small>modeltype</small>'''
|'''<small>modeltype</small>'''
Строка 24: Строка 24:
|'''<small>error</small>'''
|'''<small>error</small>'''
|<small>ответ</small>
|<small>ответ</small>
|<small>Флаг ошибки</small>
|<small>Флаг ошибки.</small>
|-
|-
|'''<small>message</small>'''
|'''<small>message</small>'''
|<small>ответ</small>
|<small>ответ</small>
|<small>Информационное сообщение</small>
|<small>Информационное сообщение.</small>
|}
|}


Строка 55: Строка 55:
|-
|-
!style="color:green;width: 15%" |'''POST/auth/dataset/add'''
!style="color:green;width: 15%" |'''POST/auth/dataset/add'''
! colspan="3" style="width: 85%" |Добавление dataset (набора данных) <small>dataset (набор данных) используется для ограничения доступа к данным. В ответе метод вернет id созданного набора данных.</small>
! colspan="3" style="width: 85%" |Добавление dataset (набора данных). <small>Dataset (набор данных) используется для ограничения доступа к данным. В ответе метод вернет id созданного набора данных.</small>
|-
|-
|colspan="2" style="width: 50%" |
|colspan="2" style="width: 50%" |
* data - json строка вида: {    "name": "название нового набора"     }  
* <small>data json строка вида: {    "name": "название нового набора"     }</small>
|colspan="2" style="width: 50%" |<small>{</small>
|colspan="2" style="width: 50%" |<small>{</small>


Строка 83: Строка 83:
|-
|-
!style="color:green;width: 15%" |'''POST/auth/dataset/modify/{id}'''
!style="color:green;width: 15%" |'''POST/auth/dataset/modify/{id}'''
! colspan="3" style="width: 85%" |Переименование dataset (набора данных) <small>Метод меняет все параметры набора данных, но на данный момент времени у набора данных, кроме id, только один параметр — наименование.</small>
! colspan="3" style="width: 85%" |Переименование dataset (набора данных). <small>Метод меняет все параметры набора данных, но на данный момент времени у набора данных, кроме id, только один параметр — наименование.</small>
|-
|-
|colspan="2" style="width: 50%" |
|colspan="2" style="width: 50%" |
Строка 97: Строка 97:
|-
|-
!style="color:blue;width: 15%" |'''GET/auth/datasets'''
!style="color:blue;width: 15%" |'''GET/auth/datasets'''
! colspan="3" style="width: 85%" |Получение списка наборов данных
! colspan="3" style="width: 85%" |Получение списка наборов данных.
|-
|-
|colspan="2" style="width: 50%" |<small>Нет входных параметров</small>
|colspan="2" style="width: 50%" |<small>Нет входных параметров</small>
Строка 197: Строка 197:
|-
|-
|colspan="2" style="width: 50%" |
|colspan="2" style="width: 50%" |
* <small>'''data''' - json строка {</small>
* <small>'''data''' json строка {</small>


<small>"username": "login_name", "fullname": "Отображаемое Имя","password": "XXXXX","role": "role_id",</small>
<small>"username": "login_name", "fullname": "Отображаемое Имя","password": "XXXXX","role": "role_id",</small>
Строка 219: Строка 219:
|-
|-
|colspan="2" style="width: 50%" |
|colspan="2" style="width: 50%" |
* <small>'''user_id''' - идентификатор пользователя</small>
* <small>'''user_id''' идентификатор пользователя</small>
|colspan="2" style="width: 50%" |<small>{"id": "XXXXXXXXXX",</small>
|colspan="2" style="width: 50%" |<small>{"id": "XXXXXXXXXX",</small>


Строка 292: Строка 292:
|-
|-
|colspan="2" style="width: 50%" |
|colspan="2" style="width: 50%" |
* <small>'''from''' - начало периода в формате "%Y-%m-%d %H:%M"</small>
* <small>'''from''' начало периода в формате "%Y-%m-%d %H:%M"</small>


* <small>'''to''' - конец периода в формате "%Y-%m-%d %H:%M"</small>
* <small>'''to''' конец периода в формате "%Y-%m-%d %H:%M"</small>
|colspan="2" style="width: 50%" |<small>{</small>
|colspan="2" style="width: 50%" |<small>{</small>


Строка 466: Строка 466:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''type''' - тип ошибок в выводе</small>
* <small>'''type''' тип ошибок в выводе</small>
<small>'''- train''' ошибки обучения</small>
<small>'''- train''' ошибки обучения</small>


Строка 664: Строка 664:
}  
}  
|}
|}


===== '''/corpus: работа с данными для обучения моделей''' =====
===== '''/corpus: работа с данными для обучения моделей''' =====
Методы данного класса предназначены только для сервисов smc и see
Методы данного класса предназначены только для сервисов smc и see


{| class="wikitable" style="width: 110%"
{| class="wikitable" style="width: 110%"
Строка 697: Строка 697:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''id''' - идентификатор задания</small>
* <small>'''id''' идентификатор задания</small>
| colspan="2" style="width: 50%" |<small>{</small>
| colspan="2" style="width: 50%" |<small>{</small>
   <small>"error": 0,</small>
   <small>"error": 0,</small>
Строка 716: Строка 716:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''taskname''' - произвольное имя задания</small>
* <small>'''taskname''' произвольное имя задания</small>


* <small>'''corpus''' - json строка с размечаемым корпусом[[ [класс1,... классН], текст ],</small>
* <small>'''corpus''' json строка с размечаемым корпусом[[ [класс1,... классН], текст ],</small>


<small>[ [класс1,... классН], текст ]]</small>
<small>[ [класс1,... классН], текст ]]</small>


* <small>'''marks''' - json строка с набором меток [    [ метка, [синоним, синоним2 ... синоним Н], порог ],</small>
* <small>'''marks''' json строка с набором меток [    [ метка, [синоним, синоним2 ... синоним Н], порог ],</small>


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


* <small>'''appendMarks''' - "yes" - дополнить разметку, "no" -заменить разметку</small>
* <small>'''appendMarks''' "yes" - дополнить разметку, "no" -заменить разметку</small>
| colspan="2" style="width: 50%" |<small>{</small>
| colspan="2" style="width: 50%" |<small>{</small>


Строка 741: Строка 741:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''id''' - уникальный id задания</small>
* <small>'''id''' уникальный id задания</small>
| colspan="2" style="width: 50%" |<small>{</small>
| colspan="2" style="width: 50%" |<small>{</small>


Строка 760: Строка 760:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''id''' - идентификатор задания</small>
* <small>'''id''' идентификатор задания</small>
| colspan="2" style="width: 50%" |<small>{  "error": 0,</small>
| colspan="2" style="width: 50%" |<small>{  "error": 0,</small>


Строка 816: Строка 816:
|-
|-
!style="color: green;width: 15%" |'''POST/corpus/import/{servicetype}'''
!style="color: green;width: 15%" |'''POST/corpus/import/{servicetype}'''
! colspan="3" style="width: 85%" |Метод для импорта корпуса данных. <small>Возможен как из текстового файла со строками вида КЛАСС<TAB>ФРАЗА (доступно для smc и see), так и из логов работы системы (только для smc). Если на вход поступил файл csv, происходит импорт из файла, в противном случае из логов.</small>
! colspan="3" style="width: 85%" |Метод для импорта корпуса данных. <small>Возможен как из текстового файла со строками вида КЛАСС<TAB>ФРАЗА (доступно для smc и see), так и из логов работы системы (только для smc). Если на вход поступил файл csv, происходит импорт из файла, в противном случае из логов.</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
Строка 886: Строка 886:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''json''' - список меток в формате: [ [  "метка1",</small>
* <small>'''json''' —список меток в формате: [ [  "метка1",</small>


<small>      ["синоним1", "синоним2", "синоним3", "синонимN" ], 0.9 # достоверность для метки (0 - 1)</small>
<small>      ["синоним1", "синоним2", "синоним3", "синонимN" ], 0.9 # достоверность для метки (0 - 1)</small>
Строка 896: Строка 896:
<small>    ] ]</small>
<small>    ] ]</small>


* <small>'''name''' - имя создаваемого набора</small>
* <small>'''name''' имя создаваемого набора</small>
| colspan="2" style="width: 50%" |<small>{</small>
| colspan="2" style="width: 50%" |<small>{</small>


Строка 911: Строка 911:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''id''' - идентификатор набора меток</small>
* <small>'''id''' идентификатор набора меток</small>
| colspan="2" style="width: 50%" |<small>{</small><small>  "error": 0,</small>
| colspan="2" style="width: 50%" |<small>{</small><small>  "error": 0,</small>


Строка 921: Строка 921:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''id''' - идентификатор набора меток</small>
* <small>'''id''' идентификатор набора меток</small>
| colspan="2" style="width: 50%" |<small>Пример:</small>
| colspan="2" style="width: 50%" |<small>Пример:</small>


Строка 932: Строка 932:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''id''' - идентификатор набора меток</small>
* <small>'''id''' идентификатор набора меток</small>
| colspan="2" style="width: 50%" |<small>Пример:</small>
| colspan="2" style="width: 50%" |<small>Пример:</small>


Строка 957: Строка 957:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''csv''' - файл "метка"ТАБ"синонимы через запятую"ТАБ"достоверность(число от 0 до 1)"</small>
* <small>'''csv''' файл "метка"ТАБ"синонимы через запятую"ТАБ"достоверность(число от 0 до 1)"</small>


* <small>'''id''' - идентификатор набора</small>
* <small>'''id''' идентификатор набора</small>
| colspan="2" style="width: 50%" |<small>{</small><small>  "error": 0,</small>
| colspan="2" style="width: 50%" |<small>{</small><small>  "error": 0,</small>


Строка 986: Строка 986:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''json''' - список меток в формате: [ [  "метка1",</small>
* <small>'''json''' список меток в формате: [ [  "метка1",</small>


<small>      ["синоним1", "синоним2", "синоним3", "синонимN" ], 0.9 # достоверность для метки (0 - 1)</small>
<small>      ["синоним1", "синоним2", "синоним3", "синонимN" ], 0.9 # достоверность для метки (0 - 1)</small>
Строка 996: Строка 996:
<small>    ] ]</small>
<small>    ] ]</small>


* <small>'''id''' - идентификатор заменяемого набора меток</small>
* <small>'''id''' идентификатор заменяемого набора меток</small>
| colspan="2" style="width: 50%" |<small>{</small><small>  "error": 0,</small>
| colspan="2" style="width: 50%" |<small>{</small><small>  "error": 0,</small>


Строка 1005: Строка 1005:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''id''' - идентификатор набора меток</small>
* <small>'''id''' идентификатор набора меток</small>
* <small>'''name''' - новое имя набора</small>
* <small>'''name''' новое имя набора</small>
| colspan="2" style="width: 50%" |<small>{</small><small>  "error": 0,</small>
| colspan="2" style="width: 50%" |<small>{</small><small>  "error": 0,</small>


Строка 1013: Строка 1013:


===== '''/spr: работа с сервисом SPR''' =====
===== '''/spr: работа с сервисом SPR''' =====


{| class="wikitable"  style="width: 110%"
{| class="wikitable"  style="width: 110%"
Строка 1056: Строка 1055:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''model''' - идентификатор модели</small>
* <small>'''model''' идентификатор модели</small>
 
* <small>'''denoise''' наличие шумоподавления</small>
* <small>'''denoise''' - наличие шумоподавления</small>
* <small>'''wav''' файл для распознавания</small>
 
* <small>'''speakers''' опция разделения по говорящим</small>
* <small>'''wav''' - файл для распознавания</small>
* <small>'''punctuation''' опция для расставления знаков препинания</small>
 
* <small>'''normalization''' опция обратной нормализации текста</small>
* <small>'''speakers''' - опция разделения по говорящим</small>
* <small>'''vad''' — используемый VAD, по умолчанию webrtc</small>
 
* <small>'''preset''' — используемая модель для vad = neuro</small>
* <small>'''punctuation''' - опция для расставления знаков препинания</small>
* <small>'''toxicity''' — анализировать распознанный текст на токсичность</small>
 
* <small>'''emotion''' — выявить эмоции из распознанного текста</small>
* <small>'''normalization''' - опция обратной нормализации текста</small>
* <small>'''voice_analyzer''' — анализировать аудиофрагменты каждого из говорящих на эмоции, возраст и пол</small>
* <small>'''speaker_counter''' — количество докладчиков, по умолчанию 0, автоматическое определение количества</small>
* <small>'''async''' — отложенный запуск распознавания.</small>


* <small>'''vad''' - используемый VAD, по умолчанию webrtc</small>
<small>В случае отправки переменной speakers=1, дополнительно производится поиск говорящих и получение метаданных по каждому говорящему (используется сервис SBS с предварительно обученными слепками метаданных говорящих). В случае отправки переменной punctuation=1, дополнительно вызывает метод punctuate в SMC и расставляет знаки препинания в распознанном тексте (значение по умолчанию берётся из файла конфигурации). normalization=1 для обратной нормализации текста. В случае использования модели BIG параметры '''punctuation''' и '''normalization''' игнорируются модель всегда расставляет знаки препинания и нормализует текст.</small>
 
* <small>'''preset''' - используемая модель для vad = neuro</small>
 
* <small>'''toxicity''' - анализировать распознанный текст на токсичность</small>
 
* <small>'''emotion''' - выявить эмоции из распознанного текста</small>
 
* <small>'''voice_analyzer''' - анализировать аудиофрагменты каждого из говорящих на эмоции, возраст и пол</small>
 
* <small>'''speaker_counter''' - количество докладчиков, по умолчанию - 0, автоматическое определение количества</small>
 
* <small>'''async''' - отложенный запуск распознавания</small>
 
<small>В случае отправки переменной '''speakers=1''', дополнительно производится поиск говорящих и получение метаданных по каждому говорящему. (используется сервис sbs с предварительно обученными слепками метаданных говорящих) В случае отправки переменной '''punctuation'''=1, дополнительно вызывает метод punctuate в SMC, и расставляет знаки препинания в распознанном тексте (значение по умолчанию берётся из файлы конфигурации). '''normalization'''=1 для обратной нормализации текста.</small> <small>В случае использования модели big параметры '''punctuation''' и '''normalization''' игнорируются - модель всегда расставляет знаки препинания и нормализует текст.</small>


<small>При установке параметра '''toxicity''' запрашивается в smc метод GET/smc/toxicity</small>
<small>При установке параметра '''toxicity''' запрашивается в smc метод GET/smc/toxicity</small>
Строка 1102: Строка 1089:
<small>При установке параметра '''voice_analyzer''' запрашивается в sbs метод POST/sbs/analyze.</small>
<small>При установке параметра '''voice_analyzer''' запрашивается в sbs метод POST/sbs/analyze.</small>


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


<small>эмоции (ANGER BORE DISAPPOINTMENT DISGUST EXCITEMENT FEAR NEUTRAL PAIN PLEASURE SADNESS SUPRISE)</small>
<small>Эмоции (ANGER, BORE, DISAPPOINTMENT, DISGUST, EXCITEMENT, FEAR, NEUTRAL, PAIN, PLEASURE, SADNESS, SUPRISE).</small>  


<small>пол (male female)</small>
<small>Пол (male, female).</small>
| colspan="2" style="width: 50%" |<small>В случае async=1 возвращается только taskID, результат по taskID смотреть в методе /spr/result.</small>
| colspan="2" style="width: 50%" |<small>В случае async=1 возвращается только taskID, результат по taskID смотреть в методе /spr/result.</small>


Строка 1195: Строка 1182:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''taskID''' - идентификатор задания</small>
* <small>'''taskID''' идентификатор задания</small>
| colspan="2" style="width: 50%" |<small>{"error": 0,</small>
| colspan="2" style="width: 50%" |<small>{"error": 0,</small>


Строка 1211: Строка 1198:
|+
|+
!style="color:blue;width: 15%" |'''GETsmc/classify/{model}'''
!style="color:blue;width: 15%" |'''GETsmc/classify/{model}'''
! colspan="3" style="width: 85%" |Классификация текстовой фразы. <small>В случает если модель была создана из меток в ответе groups и nearest будут пустыми, а ответ будет построен без учета confidenceThreshold из запроса.</small>
! colspan="3" style="width: 85%" |Классификация текстовой фразы. <small>В случае если модель была создана из меток, в ответе groups и nearest будут пустыми, а ответ будет построен без учета confidenceThreshold из запроса.</small>
 
<small>В ответе:</small>
<small>В ответе:</small>


* <small>    '''classes''' - список , для каждого класса которого отображается название класса, к которому был отнесен текст, и вероятность его принадлежности к этому классу.</small>
* <small>    classes список, для каждого класса которого отображается название класса, к которому был отнесен текст, и вероятность его принадлежности к этому классу.</small>
 
* <small>    groups название группы и число совпавших классов. Если метки совпадают с несколькими группами, они отображаются в порядке убывания числа совпавших классов (т. е. чем полнее группа, тем выше ее позиция в списке).</small>
* <small>    '''groups''' - название группы и число совпавших классов. Если метки совпадают с несколькими группами, они отображаются в порядке убывания числа совпавших классов (т.е. чем полнее группа, тем выше ее позиция в списке).</small>
* <small>    nearest отображаются группы, до которых не хватает всего одной метки, с указанием процента заполненности и сортировкой по убыванию этого процента.</small>
 
* <small>    '''nearest''' - отображаются группы, до которых не хватает всего одной метки, с указанием процента заполненности и сортировкой по убыванию этого процента.</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''id''' - идентификатор модели</small>
* <small>'''id''' <span data-darkreader-inline-color="" data-darkreader-inline-bgcolor="">—</span> идентификатор модели</small>


* <small>'''text''' - текст, подлежащий классификации</small>
* <small>'''text''' <span data-darkreader-inline-color="" data-darkreader-inline-bgcolor="">—</span> текст, подлежащий классификации</small>


* <small>'''confidenceThreshold''', % - минимальный порог доверия.</small>
* <small>'''confidenceThreshold''', % <span data-darkreader-inline-color="" data-darkreader-inline-bgcolor="">—</span> минимальный порог доверия.</small>
| colspan="2" style="width: 50%" |<small>{  "classes": [</small>
| colspan="2" style="width: 50%" |<small>{  "classes": [</small>


Строка 1263: Строка 1247:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''text''' - текст для сжатия</small>
* <small>'''text''' <span data-darkreader-inline-color="" data-darkreader-inline-bgcolor="">—</span> текст для сжатия</small>


* <small>'''threshold''' - уровень компрессии от 1 до 100. Чем меньше число тем меньше слов будет в итоговой фразе</small>
* <small>'''threshold''' <span data-darkreader-inline-color="" data-darkreader-inline-bgcolor="">—</span> уровень компрессии от 1 до 100. Чем меньше число тем меньше слов будет в итоговой фразе</small>
| colspan="2" style="width: 50%" |<small>{  "text": "сжатый текст"}</small>  
| colspan="2" style="width: 50%" |<small>{  "text": "сжатый текст"}</small>  
|-
|-
!style="color:blue;width: 15%" |'''GET/smc/correct'''
!style="color:blue;width: 15%" |'''GET/smc/correct'''
! colspan="3" style="width: 85%" |Коррекция правописания. <small>Изменяет неправильно написанные слова меняя их на наиболее близкие правильные (из знакомых модели). Если модель коррекции не смогла предложить правильное написание текста, метод вернет текст неизменным.</small>
! colspan="3" style="width: 85%" |Коррекция правописания. <small>Изменяет неправильно написанные слова, меняя их на наиболее близкие правильные (из знакомых модели). Если модель коррекции не смогла предложить правильное написание текста, метод вернёт текст неизменным.</small>
|-
|-
| colspan="2" style="width: 50%" |<small>'''text''' - текст для коррекции</small>
| colspan="2" style="width: 50%" |<small>'''text''' <span data-darkreader-inline-color="" data-darkreader-inline-bgcolor="">—</span> текст для коррекции</small>
| colspan="2" style="width: 50%" |<small>{  "text": "корректный текст" }</small>  
| colspan="2" style="width: 50%" |<small>{  "text": "корректный текст" }</small>  
|-
|-
!style="color:blue;width: 15%" |'''GET/smc/emotion'''
!style="color:blue;width: 15%" |'''GET/smc/emotion'''
! colspan="3" style="width: 85%" |Анализ эмоций. <small>На выходе один из вариантов '''positive''' '''negative''' '''neutral'''.</small>
! colspan="3" style="width: 85%" |Анализ эмоций. <small>На выходе один из вариантов: positive, negative, neutral.</small>
|-
|-
| colspan="2" style="width: 50%" |<small>'''text''' - фраза для анализа эмоций</small>
| colspan="2" style="width: 50%" |<small>'''text''' <span data-darkreader-inline-color="" data-darkreader-inline-bgcolor="">—</span> фраза для анализа эмоций</small>
| colspan="2" style="width: 50%" |<small>{ "emotion": "positive", "score": 0.9601 }</small>
| colspan="2" style="width: 50%" |<small>{ "emotion": "positive", "score": 0.9601 }</small>
|-
|-
Строка 1292: Строка 1276:
|-
|-
!style="color:blue;width: 15%" |'''GET/smc/groups/{model}'''
!style="color:blue;width: 15%" |'''GET/smc/groups/{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%" |
Строка 1367: Строка 1351:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''text''' - текстовая строка с высказыванием</small>
* <small>'''text''' <span data-darkreader-inline-color="" data-darkreader-inline-bgcolor="">—</span> текстовая строка с высказыванием</small>
| colspan="2" style="width: 50%" |<small>{ "insult": 0.13, # оскорбление</small>
| colspan="2" style="width: 50%" |<small>{ "insult": 0.13, # оскорбление</small>


Строка 1380: Строка 1364:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>model - идентификатор модели</small>
* <small>'''model''' — идентификатор модели</small>
* <small>'''corpus''' - имя текстового корпуса для обучения модели или имя набора меток</small>
* <small>'''corpus''' имя текстового корпуса для обучения модели или имя набора меток</small>
* <small>'''isMarks''' - если "1" то вместо корпуса метод ожидает набор меток.</small> М<small>одель созданная из меток при этом не обучается, созданный файл модели используется для расчетов векторов "на лету" и выдачи результатов на основании сравнения векторов текста и синонимов из файла с метками</small>
* <small>'''isMarks''' если «1», то вместо корпуса метод ожидает набор меток. Модель, созданная из меток, при этом не обучается, созданный файл модели используется для расчетов векторов «на лету» и выдачи результатов на основании сравнения векторов текста и синонимов из файла с метками.</small>
| colspan="2" style="width: 50%" |<small>{ error: INT, message: DESCRIPTION }</small>
| colspan="2" style="width: 50%" |<small>{ error: INT, message: DESCRIPTION }</small>
|}
|}
Строка 1390: Строка 1374:
|+
|+
!style="color:blue;width: 15%" |'''GET/see/entities/{model}'''
!style="color:blue;width: 15%" |'''GET/see/entities/{model}'''
! colspan="3" style="width: 85%" |Поиск сущностей. <small>Вернется массив со всеми моделями, в которых были найдены сущности.(модели для поиска указываются в поле id) Каждая переменная с названием модели будет содержать список всех найденных сущностей.</small>
! colspan="3" style="width: 85%" |Поиск сущностей. <small>Вернется массив со всеми моделями, в которых были найдены сущности (модели для поиска указываются в поле id). Каждая переменная с названием модели будет содержать список всех найденных сущностей.</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''model''' - идентификатор[ы] модели. Может быть указано несколько через запятую, тогда запрос будет обработан всеми указанными моделями</small>
* <small>model идентификатор[ы] модели. Может быть указано несколько через запятую, тогда запрос будет обработан всеми указанными моделями.</small>
* <small>'''text''' - текст для анализа</small>
* <small>text текст для анализа.</small>
* <small>'''similarity''' - порог похожести найденной сущности на эталонные, %. По умолчанию 70.</small>
* <small>similarity порог похожести найденной сущности на эталонные, %. По умолчанию 70.</small>
| colspan="2" style="width: 50%" |<small>{ ID-модели: [</small>
| colspan="2" style="width: 50%" |<small>{ ID-модели: [</small>


Строка 1439: Строка 1423:
|-
|-
| colspan="2" style="width: 20%" |
| colspan="2" style="width: 20%" |
* <small>'''wav''' - файл для анализа</small>
* <small>'''wav''' <span data-darkreader-inline-color="" data-darkreader-inline-bgcolor="">—</span> файл для анализа</small>
| colspan="2" style="width: 80%" |<small>Пример:</small>
| colspan="2" style="width: 80%" |<small>Пример:</small>


Строка 1464: Строка 1448:
|-
|-
| 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>


Строка 1475: Строка 1459:
|-
|-
| 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>


Строка 1490: Строка 1474:
|-
|-
| colspan="2" style="width: 20%" |
| colspan="2" style="width: 20%" |
* <small>'''id''' - идентификатор говорящего</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>
|-
|-
Строка 1509: Строка 1493:
|-
|-
| 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>


Строка 1522: Строка 1504:
|-
|-
| 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>
|}
|}
Строка 1536: Строка 1518:
|-
|-
| 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'''
Строка 1552: Строка 1534:
|-
|-
| 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>


Строка 1561: Строка 1543:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''json''' -строка json следующего вида:</small>
* <small>'''json''' строка json следующего вида:</small>


<small><code>[</code></small>
<small><code>[</code></small>
Строка 1581: Строка 1563:
|-
|-
!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>


Строка 1595: Строка 1577:
|-
|-
| 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%" |wav файл с модифицированным (искаженным) голосом
| colspan="2" style="width: 50%" |<small>wav-файл с модифицированным (искаженным) голосом</small>
|-
|-
! style="color:blue;width: 15%" |'''GET/tts/revoicers'''
! style="color:blue;width: 15%" |'''GET/tts/revoicers'''
! colspan="3" style="width: 85%" |Перечень моделей модификации или искажения голоса. <small>Модели поставляются только в составе дистрибутива. Модель distortion - искажение голоса, делает голос неузнаваемым и речь неразборчивой.</small>
! colspan="3" style="width: 85%" |Перечень моделей модификации или искажения голоса. <small>Модели поставляются только в составе дистрибутива. Модель distortion искажение голоса, делает голос неузнаваемым и речь неразборчивой.</small>
|-
|-
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
Строка 1607: Строка 1589:
|-
|-
!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>
|}
|}


Строка 1659: Строка 1641:
<small>- "'''checked'''" использовать только проверенные</small>
<small>- "'''checked'''" использовать только проверенные</small>


* <small>'''useGPT''' - использовать генеративную сеть для поиска ответов в документах. возможные варианты "'''yes'''" "'''no'''"</small>
* <small>'''useGPT''' —  Использовать генеративную сеть для поиска ответов в документах. Возможные варианты: «yes», «no».</small>


* <small>'''addAlias''' - добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. возможные варианты "'''yes'''" "'''no'''"</small>
* <small>'''addAlias''' —  Добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. Возможные варианты: «yes», «no».</small>
| colspan="2" style="width: 50%" |<small>{</small>
| colspan="2" style="width: 50%" |<small>{</small>


Строка 1682: Строка 1664:
<small>'''- generate''' — генерирует кэш через разные ответы на каждый вопрос по документации</small>
<small>'''- generate''' — генерирует кэш через разные ответы на каждый вопрос по документации</small>


* <small>'''option''' - генерировать ответы на все вопросы категории (вариант '''all''') или только на неотвеченные (вариант '''empty''')</small>
* <small>'''option''' —  генерировать ответы на все вопросы категории (вариант '''all''') или только на неотвеченные (вариант '''empty''')</small>


* <small>'''variants''' — количество ответов, от 1 до 9</small>
* <small>'''variants''' — количество ответов, от 1 до 9</small>
Строка 1704: Строка 1686:
|-
|-
!style="color:green;width: 15%" |'''POST/qas/category/add'''
!style="color:green;width: 15%" |'''POST/qas/category/add'''
! colspan="3" style="width: 85%" |Добавить категорию с указанным именем. <small>В ответе - id созданной категории или сообщение об ошибке:</small>
! colspan="3" style="width: 85%" |Добавить категорию с указанным именем. <small>В ответе id созданной категории или сообщение об ошибке:</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
Строка 1718: Строка 1700:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''id''' - идентификатор категории</small>
* <small>'''id''' —  идентификатор категории</small>
| colspan="2" style="width: 50%" |<small>{   "error": 0,</small>
| colspan="2" style="width: 50%" |<small>{   "error": 0,</small>


Строка 1785: Строка 1767:
|-
|-
!style="color:green;width: 15%" |'''POST/qas/doc/add'''
!style="color:green;width: 15%" |'''POST/qas/doc/add'''
! colspan="3" style="width: 85%" |Загрузить текстовый документ. <small>Добавляет документ в базу. В ответе - id созданного документа или сообщение об ошибке</small>
! colspan="3" style="width: 85%" |Загрузить текстовый документ. <small>Добавляет документ в базу. В ответе id созданного документа или сообщение об ошибке.</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
Строка 1861: Строка 1843:
|-
|-
!style="color:green;width: 15%" |'''POST/qas/question/add'''
!style="color:green;width: 15%" |'''POST/qas/question/add'''
! colspan="3" style="width: 85%" |Добавление вопроса. <small>В случае успеха метод вернет id вопроса, в случае неудачи - код ошибки.</small>
! colspan="3" style="width: 85%" |Добавление вопроса. <small>В случае успеха метод вернет id вопроса, в случае неудачи код ошибки.</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''question''' - текст вопроса</small>
* <small>'''question''' —  текст вопроса</small>


* <small>'''category''' - id категории к которой относится вопрос</small>
* <small>'''category''' —  id категории к которой относится вопрос</small>


* <small>'''answers''' - ответы в виде Json:</small>
* <small>'''answers''' —  ответы в виде Json:</small>


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


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


<small><code>["вопрос","еще вопрос"]</code></small>
<small><code>["вопрос","еще вопрос"]</code></small>
Строка 1887: Строка 1869:
|-
|-
| 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>


* <small>'''id''' - идентификатор вопроса к которому добавить синонимы и(или) кандидаты</small>
* <small>'''id''' —  идентификатор вопроса к которому добавить синонимы и(или) кандидаты</small>
| colspan="2" style="width: 50%" |<small><nowiki>{error: 0 | 1, message: string}</nowiki></small>
| colspan="2" style="width: 50%" |<small><nowiki>{error: 0 | 1, message: string}</nowiki></small>
|-
|-
Строка 1898: Строка 1880:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''candidates''' - json массив c текстами кандидатов</small>
* <small>'''candidates''' —  json массив c текстами кандидатов</small>


* <small>'''destination_id''' - идентификатор вопроса</small>
* <small>'''destination_id''' —  идентификатор вопроса</small>
| colspan="2" style="width: 50%" |<small><nowiki>{error: 0 | 1, message: string}</nowiki></small>
| colspan="2" style="width: 50%" |<small><nowiki>{error: 0 | 1, message: string}</nowiki></small>
|-
|-
!style="color:green;width: 15%" |'''POST/qas/question/delete/list'''
!style="color:green;width: 15%" |'''POST/qas/question/delete/list'''
! colspan="3" style="width: 85%" |Удаление списка вопросов или ответов.
! colspan="3" style="width: 85%" |Удаление списка вопросов или ответов  
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''questions''' - json строка с перечнем id</small>
* <small>'''questions''' json строка с перечнем id</small>


* <small>'''type''' - выбор, удалять вопросы или ответы ('''questions''', '''answers''')</small>
* <small>'''type''' выбор, удалять вопросы или ответы ('''questions''', '''answers''')</small>
| colspan="2" style="width: 50%" |<small>{"error": INT, "message": DESCRIPTION}</small>
| colspan="2" style="width: 50%" |<small>{"error": INT, "message": DESCRIPTION}</small>
|-
|-
Строка 1946: Строка 1928:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''question''' - фильтр вопросов, ограничение списка по вопросам</small>
* <small>'''question''' —  фильтр вопросов, ограничение списка по вопросам</small>


* <small>'''answer''' - фильтр ответов, ограничение списка по ответам</small>
* <small>'''answer''' —  фильтр ответов, ограничение списка по ответам</small>
| colspan="2" style="width: 50%" |<small>{  "error": 0,</small>
| colspan="2" style="width: 50%" |<small>{  "error": 0,</small>


Строка 1971: Строка 1953:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''data''' - json c измененными параметрами, пример полного:</small>
* <small>'''data''' —  json c измененными параметрами, пример полного:</small>


<small><code>{   "answers": [</code></small>
<small><code>{   "answers": [</code></small>
Строка 2044: Строка 2026:
<small>- "'''checked'''" использовать только проверенные</small>
<small>- "'''checked'''" использовать только проверенные</small>


* <small>'''useGPT''' - использовать генеративную сеть для поиска ответов в документах. возможные варианты "'''yes'''" "'''no'''"</small>
* <small>'''useGPT''' —  использовать генеративную сеть для поиска ответов в документах. Возможные варианты "'''yes'''" "'''no'''"</small>


* <small>'''addAlias''' - добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. возможные варианты "'''yes'''" "'''no'''"</small>
* <small>'''addAlias''' —  добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. Возможные варианты "'''yes'''" "'''no'''"</small>


* '''threshold''' - порог похожести, %
* '''threshold''' <small>—</small>  порог похожести, %
| colspan="2" style="width: 50%" |<small><nowiki>{error: 0 | 1, message: string}</nowiki></small>
| colspan="2" style="width: 50%" |<small><nowiki>{error: 0 | 1, message: string}</nowiki></small>
|-
|-
Строка 2161: Строка 2143:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
*<small>'''text''' - текст запроса</small>
*<small>'''text''' —  текст запроса</small>


*<small>'''channel''' - id канала</small>
*<small>'''channel''' -id канала</small>


*<small>'''session''' - uuid сессии, если это не первый запрос в сессии</small>
*<small>'''session''' —  uuid сессии, если это не первый запрос в сессии</small>


*<small>'''tts''' - вернуть результат синтеза (1- вернуть, 0 - не выполнять синтез)</small>
*<small>'''tts''' —  вернуть результат синтеза (1- вернуть, 0 - не выполнять синтез)</small>


*<small>'''variables''' - словарик с переменными {"переменная1":"значение","переменнаяN":"значение"}</small>
*<small>'''variables''' —  словарик с переменными {"переменная1":"значение","переменнаяN":"значение"}</small>


*<small>'''audio''' - аудиофайл с запросом, текст запроса будет получен распознаванием audio</small>
*<small>'''audio''' —  аудиофайл с запросом, текст запроса будет получен распознаванием audio</small>


*<small>'''robot_id''' - id робота</small>
*<small>'''robot_id''' —  id робота</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "question": "Вопрос",</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "question": "Вопрос",</small>


Строка 2190: Строка 2172:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
*<small>'''name''' - имя нового робота</small>
*<small>'''name''' —  имя нового робота</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "id": "2fd2f909-2069-4b20-a725-3a598c83f886"}</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "id": "2fd2f909-2069-4b20-a725-3a598c83f886"}</small>
|-
|-
! style="color:blue;width: 15%" |'''GET/ses/robot/apply/{id}'''
! style="color:blue;width: 15%" |'''GET/ses/robot/apply/{id}'''
! colspan="2" style="width: 85%" |Применение робота. <small>Переводит черновик робота в статус prod. Если до этого был prod вариант - становится backup.</small>
! colspan="2" style="width: 85%" |Применение робота. <small>Переводит черновик робота в статус prod. Если до этого был prod вариант —  становится backup.</small>
|-
|-
| 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>
|-
|-
Строка 2204: Строка 2186:
|-
|-
| 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>
|-
|-
Строка 2211: Строка 2193:
|-
|-
| 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>
|-
|-
Строка 2218: Строка 2200:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''data''' - json строка с параметрами элемента данных</small>
* <small>'''data''' —  json строка с параметрами элемента данных</small>


* <small>'''robot''' - идентификатор робота</small>
* <small>'''robot''' —  идентификатор робота</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "message": "success"}</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "message": "success"}</small>
|-
|-
Строка 2227: Строка 2209:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
*<small>'''id''' - идентификатор элемента данных</small>
*<small>'''id''' —  идентификатор элемента данных</small>


* <small>'''robot''' - идентификатор робота</small>
* <small>'''robot''' —  идентификатор робота</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "message": "success"}</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "message": "success"}</small>
|-
|-
Строка 2236: Строка 2218:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''id''' - идентификатор элемента данных</small>
* <small>'''id''' —  идентификатор элемента данных</small>


*<small>'''robot''' - идентификатор робота</small>
*<small>'''robot''' —  идентификатор робота</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "data": {</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "data": {</small>


Строка 2263: Строка 2245:
|-
|-
| 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>


Строка 2272: Строка 2254:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
*<small>'''data''' - json строка с параметрами элемента данных</small>
*<small>'''data''' —  json строка с параметрами элемента данных</small>


*<small>'''robot''' - идентификатор робота</small>
*<small>'''robot''' —  идентификатор робота</small>
*<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>
|-
|-
Строка 2282: Строка 2264:
|-
|-
| 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>
|-
|-
Строка 2289: Строка 2271:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''data''' - json строка с параметрами  конечной точки</small>
* <small>'''data''' —  json строка с параметрами  конечной точки</small>


*<small>'''robot''' - идентификатор робота</small>
*<small>'''robot''' —  идентификатор робота</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "id": "8576593b-b0d8-4b03-a623-74f3132356ea"}</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "id": "8576593b-b0d8-4b03-a623-74f3132356ea"}</small>
|-
|-
Строка 2298: Строка 2280:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
*<small>'''robot''' - идентификатор робота</small>
*<small>'''robot''' —  идентификатор робота</small>
*<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>
|-
|-
Строка 2306: Строка 2288:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
*<small>'''robot''' - идентификатор робота</small>
*<small>'''robot''' —  идентификатор робота</small>
*<small>'''id''' - идентификатор  конечной точки</small>
*<small>'''id''' —  идентификатор  конечной точки</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "data": {</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "data": {</small>


Строка 2334: Строка 2316:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
*<small>'''robot''' - идентификатор робота</small>
*<small>'''robot''' —  идентификатор робота</small>
| style="width: 50%" |<small>[  {    "id": "8576593b-b0d8-4b03-a623-74f3132356ea",</small><small>    "name": "точка 1",</small>
| style="width: 50%" |<small>[  {    "id": "8576593b-b0d8-4b03-a623-74f3132356ea",</small><small>    "name": "точка 1",</small>


Строка 2349: Строка 2331:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
*<small>'''data''' - json строка с параметрами элемента данных</small>
*<small>'''data''' —  json строка с параметрами элемента данных</small>
*<small>'''id''' - идентификатор элемента данных</small>
*<small>'''id''' —  идентификатор элемента данных</small>
*<small>'''robot''' - идентификатор робота</small>
*<small>'''robot''' —  идентификатор робота</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "message": "success"}</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "message": "success"}</small>
|-
|-
! style="color:blue;width: 15%" |'''GET/ses/robot/export/{id}'''
! style="color:blue;width: 15%" |'''GET/ses/robot/export/{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>
| style="width: 50%" |<small>zip файл с именем = идентификатор робота</small>
| style="width: 50%" |<small>zip файл с именем = идентификатор робота</small>
|-
|-
Строка 2365: Строка 2347:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
*<small>'''id''' - идентификатор робота</small>
*<small>'''id''' —  идентификатор робота</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "data": {</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "data": {</small>


Строка 2392: Строка 2374:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
*<small>'''zip -''' файл с архивом робота</small>
*<small>'''zip ''' файл с архивом робота</small>
*<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>
|-
|-
Строка 2410: Строка 2392:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
*<small>'''data''' - json строка с новыми настройками робота</small>
*<small>'''data''' —  json строка с новыми настройками робота</small>
*<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>
|-
|-
Строка 2418: Строка 2400:
|-
|-
| 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>
|-
|-
Строка 2425: Строка 2407:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
*<small>'''data''' - json строка с параметрами скрипта</small>
*<small>'''data''' —  json строка с параметрами скрипта</small>
*<small>'''robot''' - идентификатор робота</small>
*<small>'''robot''' —  идентификатор робота</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "message": "success"}</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "message": "success"}</small>
|-
|-
Строка 2433: Строка 2415:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''robot''' - идентификатор робота</small>
* <small>'''robot''' —  идентификатор робота</small>
*<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>
|-
|-
Строка 2441: Строка 2423:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''robot''' - идентификатор робота</small>
* <small>'''robot''' —  идентификатор робота</small>
*<small>'''id''' - идентификатор  скрипта</small>
*<small>'''id''' —  идентификатор  скрипта</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "data": {</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "data": {</small>


Строка 2457: Строка 2439:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
*<small>'''id''' - идентификатор робота</small>
*<small>'''id''' —  идентификатор робота</small>
| style="width: 50%" |<small>[  {    "id": "9b9d83b7-d5c3-49e6-9bd4-a123a9047939",</small><small>    "name": "наименование1"</small> <small>},</small>
| style="width: 50%" |<small>[  {    "id": "9b9d83b7-d5c3-49e6-9bd4-a123a9047939",</small><small>    "name": "наименование1"</small> <small>},</small>


Строка 2468: Строка 2450:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
*<small>'''data''' - json строка с параметрами элемента данных</small>
*<small>'''data''' —  json строка с параметрами элемента данных</small>
*<small>'''id''' - идентификатор скрипта</small>
*<small>'''id''' —  идентификатор скрипта</small>
*<small>'''robot''' - идентификатор робота</small>
*<small>'''robot''' —  идентификатор робота</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "message": "success"}</small>
| style="width: 50%" |<small>{  "error": 0,</small><small>  "message": "success"}</small>
|-
|-
Строка 2477: Строка 2459:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
*<small>'''robot_id''' - id робота</small>
*<small>'''robot_id''' —  id робота</small>


*<small>'''session_id''' - id незакрытой сессии</small>
*<small>'''session_id''' —  id незакрытой сессии</small>
| style="width: 50%" |<small>{ "started": "2024-11-05 15:03:14",</small>
| style="width: 50%" |<small>{ "started": "2024-11-05 15:03:14",</small>
<small>"modified": "2024-11-05 15:03:14",</small>
<small>"modified": "2024-11-05 15:03:14",</small>
Строка 2509: Строка 2491:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''token''' - уникальный код виджета, создается при внедрении</small>
* <small>'''token''' —  уникальный код виджета, создается при внедрении</small>
| colspan="2" style="width: 50%" |<small>Состав конфига канала, для передачи виджету. Подробней в [https://wiki.connect2ai.net/index.php/SES._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0#%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%B2%D0%B8%D0%B4%D0%B6%D0%B5%D1%82%D0%B0_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B0%D0%B9%D1%82%D0%B0 Руководстве администратора]</small>
| colspan="2" style="width: 50%" |<small>Состав конфига канала, для передачи виджету. Подробней в [https://wiki.connect2ai.net/index.php/SES._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0#%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%B2%D0%B8%D0%B4%D0%B6%D0%B5%D1%82%D0%B0_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B0%D0%B9%D1%82%D0%B0 Руководстве администратора]</small>
|-
|-
! style="color:blue;width: 15%" |'''GET/ses/widget/js'''
! style="color:blue;width: 15%" |'''GET/ses/widget/js'''
! colspan="3" style="width: 85%" |Выдает код js скрипта виджета для web канала
! colspan="3" style="width: 85%" |Выдает код js скрипта виджета для web-канала
|-
|-
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
Строка 2525: Строка 2507:
|+''Описание методов API''
|+''Описание методов API''
! style="color:blue;width: 15%" |'''GET/res/dashboards'''
! style="color:blue;width: 15%" |'''GET/res/dashboards'''
! colspan="3" style="width: 85%" |Получить список рабочих столов kibana с наборами отчетов
! colspan="3" style="width: 85%" |Получить список рабочих столов kibana с наборами отчетов
|-
|-
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
Строка 2555: Строка 2537:
* <small>'''taskID''' — идентификатор задания из очереди</small>
* <small>'''taskID''' — идентификатор задания из очереди</small>


* <small>'''name''' - имя создаваемой стенограммы</small>
* <small>'''name''' —  имя создаваемой стенограммы</small>
| colspan="2" style="width: 50%" |<small>{"error": 0,</small>
| colspan="2" style="width: 50%" |<small>{"error": 0,</small>


Строка 2598: Строка 2580:
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''data''' - стенограмма в json формате</small>
* <small>'''data''' —  стенограмма в json формате</small>


* <small>'''id''' стенограммы</small>
* <small>'''id''' стенограммы</small>

Версия от 15:22, 20 февраля 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 — идентификатор модели
  • denoise — наличие шумоподавления
  • wav — файл для распознавания
  • speakers — опция разделения по говорящим
  • punctuation — опция для расставления знаков препинания
  • normalization — опция обратной нормализации текста
  • vad — используемый VAD, по умолчанию webrtc
  • preset — используемая модель для vad = neuro
  • toxicity — анализировать распознанный текст на токсичность
  • emotion — выявить эмоции из распознанного текста
  • voice_analyzer — анализировать аудиофрагменты каждого из говорящих на эмоции, возраст и пол
  • speaker_counter — количество докладчиков, по умолчанию 0, автоматическое определение количества
  • async — отложенный запуск распознавания.

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

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

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

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

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

"угроза": 0,

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

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

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

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

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

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

Пол (male, female).

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

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

{  "model": "call",

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

  "words": [

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

      "start": 520,

      "stop": 1240 },

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

      "start": 1240,

      "stop": 1920  }]}

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

{"speakers": [    {

"id": null,

      "duration": 18980,

      "fragments": 3,

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

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

"splitted": [

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

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

      "words": [

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

          "start": 1870,

          "stop": 2710,

          "confidence": 0.95263671875}],

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

      "channel": 0,

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

      "start_ms": 1870,

      "stop_ms": 5510,

      "duration_ms": 3640,

      "speaker": 4,

      "speakerConfidence": 0.87,

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

        "insult": 0,

        "obscenity": 0,

        "threat": 0,

        "politeness": 0.99},

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

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

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

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

"waveform": [

0.016,

    0.015,

    0.01 ] }

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

В ответе:

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

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

      "confidence": 1    },

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

      "confidence": 1    }  ],

  "groups": [

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

      "intersection": 2,

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

  "nearest": [

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

      "percent": 0.67,

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

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

      "percent": 0.67,

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

GET/smc/compress Убирает из фразы слова не влияющие на ее смысл.
  • text текст для сжатия
  • threshold уровень компрессии от 1 до 100. Чем меньше число тем меньше слов будет в итоговой фразе
{  "text": "сжатый текст"}
GET/smc/correct Коррекция правописания. Изменяет неправильно написанные слова, меняя их на наиболее близкие правильные (из знакомых модели). Если модель коррекции не смогла предложить правильное написание текста, метод вернёт текст неизменным.
text текст для коррекции {  "text": "корректный текст" }
GET/smc/emotion Анализ эмоций. На выходе один из вариантов: positive, negative, neutral.
text фраза для анализа эмоций { "emotion": "positive", "score": 0.9601 }
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/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».
  • addAlias — Добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. Возможные варианты: «yes», «no».
{

"error": 0,

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

}

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

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

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

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

  "status": "started",

  "progress": 33.33}

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

  "message": "success",

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

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

  "message": "success" }

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

  "message": "success" }

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

"message": "success",

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

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

  "channels": [

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

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

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

  ] }

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

  "message": "success" }

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

"message": "success",

"id": "ebe2bc57551c2d17f892987d1f62306d"}

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

  "error": 0,

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

}

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

{  "error": 0,

  "docs": [

    {id": "d4999cdee5ad1faf2cb3066ea1b5e96b",

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

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

    {"id": "759042575b965745b9d2af869bca1740",

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

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

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

{

  title: string,

  category: string,

  text: string

}

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

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

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

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

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

{

  "error": 0,

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

}

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

  "answers": [

    {   "checked": true,

      "channel": "0",

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

  "aliases": [

    "вопрос",

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

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

GET/qas/question/list Получение списка вопросов.
  • 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}

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

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

  error: number;

  question: string;

  answer: string;

  confidence: number | null;

}

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

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

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

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

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

  • useGPT — использовать генеративную сеть для поиска ответов в документах. Возможные варианты "yes" "no"
  • 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 — категория, для которой выполнится генерация вопросов.
{"error": 0, "message": "success" }
GET/qas/questionmaker/status Проверка состояния генерации. Статусы: started, stopped. Если были ошибки поле ответа error будет содержать код ошибки
Входные параметры отсутствуют {  "error": "",

  "status": "stopped",

  "progress": 0 }

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

  "text": "

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

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

  "fragments": [

    {      "id": "3a386b0a9e0e19efb0870685e1d0b484",

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

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

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

    {      "id": "44fd73ea1ac63f32cf18d79c854dbfe2",

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

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

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


/ses: методы работы с роботом
Описание методов 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 ] }