Действия

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

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

Строка 538: Строка 538:
|<small>DELETE</small>
|<small>DELETE</small>
<small>/model/handler/{servicetype}/{model}/{modeltype}</small>
<small>/model/handler/{servicetype}/{model}/{modeltype}</small>
|<small>Удаление постобработчика в указанной модель указанного типа.</small>  
|<small>Удаление постобработчика в указанной модели указанного типа.</small>
|
|
*<small>'''servicetype''' - тип сервиса</small>
*<small>'''servicetype''' - тип сервиса</small>

Версия от 10:55, 21 июня 2024

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


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

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

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

/auth/access

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

password - пароль

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


}

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

"name": "test2"   }

{

"error": 0, "message": "success", "dataset_id": "XXXXXXXXXXXXX" }

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


"error": 0,


"message": "success"


}

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

"error": 0, "message": "success" }

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

{"id": "XXXXXXXXXXXXXXXXXX",

"name": "XXX"},

{"id": "0",

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

]

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


}

Время в течение которого можно обновить доступ регулируется параметром auth.refreshLifeTime

конфигурационного файла. Служебный метод, используется в основном в вэбинтерфейсе чтобы не запрашивать лишний раз пароль

GET/auth/rights Предназначен для получения списка прав доступа -
<<{
  "РОЛЬ": [
    "GET:/......"
  ],
  "nopassword": [
    "GET:/.......",
...............
<<...............
    "POST:/......."
  ]
}
Служебный метод - по токену получает название роли и все права доступа этой роли а также общедоступные методы
POST/auth/role/add Предназначен для создания роли data - JSON с параметрами роли: {

"name": "проверка создания",  "rights": [    "набор прав через запятую" }

{

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

Служебный метод - используется вебинтерфейсом при создании роли
DELETE/auth/role/delete/{id} Предназначен для удаления роли id роли {"error": 0,"message": "success"} -
POST/auth/role/modify/{id} Предназначен для изменения роли id ролиdata - JSON с параметрами роли {"error": 0,"message": "success"} параметры как при создании роли. роль будет переписана
GET/auth/roles Предназначен для получения списка ролей - [

{

"id": "XXXXXXXXXXX",

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

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

},

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

]

-
POST

/auth/user/add

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

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

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

{

"error": 0,

"message": "success",

"user_id": "XXXXXXXXXXXXXXXX"

}

-
DELETE

/auth/user/delete/{id}

Предназначен для удаления пользователя user_id
GET

/auth/user/get/{id}

Предназначен для получения параметров пользователя user_id {

"id": "XXXXXXXXXX",

"username": "loginname",

"fullname": "Full Name",

"role": "0",

"dataset": "0",

"datasets": [

"0",

"2dc34d3454243522e5407d3a170815a2"]

}

-
GET

/auth/user/info

Предназначен для получения параметров пользователя по его токену доступа x-access-token {"id": "XXXXXXXXXX",

"username": "loginname",

"fullname": "Full Name",

"role": "0",

"dataset": "0",

"datasets": [

"0",

"2dc34d3454243522e5407d3a170815a2"]

},

"rights": [

..........

]

-
GET

/auth/user/list

Предназначен для получения списка пользователей с их параметрами - тоже самое что и в методе GET /auth/user/info, только для всех пользователей -
POST

/auth/user/modify/{id}

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

"message": "success"

}

-
POST

/auth/user/password

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

}

-
GET

/auth/version

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

"version": "4.049 beta"

}

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

/

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

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

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

...

}

-
/server: получение информации о серверах
Метод Описание Входные параметры Ответ Пояснения
GET

/get/addresses/{servicetype}

Предназначен для вывода информации о сервера, обслуживающих данный сервис, а также настроеных параметров обращения к данным серверам
  • servicetype - тип сервиса
{

  "trainer": "http://127.0.0.1:6181",

  "cluster": [

    "http://127.0.0.1:6181"

  ],

  "timers": {

    "connect": 0.5,

    "read": 1,

    "failed": 600,

    "install": 60,

    "info": 3

  },

  "counter": 0,

  "current": 0,

  "fail": {

"http://127.0.0.1:6181":1686295678

}

}

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

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

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

  "http://127.0.0.1:6181": [

    "model1",

    ...

    "modelN"

  ],

  ...

}

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


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

/model/add/{servicetype}/{model}

Предназначен для создания пустой модели в указанном сервисе.

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

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

"error":0,

"message":"success"

}

-
POST

/model/apply/{servicetype}/{model}

Предназначен для применения установленной на рабочих серверах модели. После применения модель становится доступна для штатного режима работы.

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

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

"error":0,

"message":"success"

}

-
DELETE

/model/delete/{servicetype}/{model}

Полностью удаляет модель из системы и со всех управляемых серверов.

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

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

"error":0,

"message":"success"

}

-
GET

/model/errors/{servicetype}/{model}/{modeltype}

Запрос на получение списка ошибок модели после тестирования. Если тестирования не было, то содержит ошибки проверки на обучающем корпусе. Доступен для сервисов see и smc
  • servicetype - тип сервиса
  • model - название модели
  • modeltype - тип модели
[ [true, predicted, phrase],

... ]

содержит список вложенных списков. В каждом три значения: правильное значение, предсказанное моделью значение и начальные данные (фраза)
GET

/model/export/{servicetype}/{model}/{modeltype}

метод экспортирует модель,  модель скачивается в виде zip-архива
  • servicetype - тип сервиса
  • model - название модели
  • modeltype - тип модели
файл model.zip, где model - название модели -
POST

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

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

"message":"success"

}

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

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

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

"message":"success"

}

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

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

Получение файла-постобработчика из модели типа future.
  • servicetype - тип сервиса
  • model - название модели
Файл handler.py более подробно об обработчике см. руководства пользователя smc и see.
POST

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

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

"error":0,

"message":"success"

}

-
DELETE

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

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

"error":0,

"message":"success"

}

GET

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

Получение файла-постобработчика из указанной модели указанного типа.
  • servicetype - тип сервиса
  • model - название модели
  • modeltype - тип модели
Файл handler.py
POST

/model/import/{servicetype}/{model}

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

"error":0,

"message":"success"

}

-
GET

/model/info/{servicetype}

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

  "model1": {

    "previous": null,

    "current": null,

    "future": {

      "status": "empty",

      ...

    }

  },

  ...

}

-
GET

/model/info/{servicetype}/{model}

Получение информации о каждом типе (modeltype) указанной модели.
  • servicetype - тип сервиса
  • model - название модели
{

  "previous": null,

  "current":  {

    "status": "trained",

    ...

  },

  "future": {

    "status": "trained",

    ...

  }

}

Итоговый массив содержит переменные типа modeltype, в каждой из который содержится информация о модели, более подробно о которой можно прочитать в руководствах пользователя smc и see.
POST

/model/install/{servicetype}/{model}

Предназначен для установки импортированной или обученной модели на рабочих серверах.

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

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

"error":0,

"message":"success"

}

GET

/model/log/{servicetype}/{model}/{modeltype}

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

  "training",

  "preparing data",

  "tokenizing",

  ...

]

-
POST

/model/restore/{servicetype}/{model}

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

"message":"success"

}

-


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

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

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

/corpus/copy/{servicetype}

метод api для копирования корпуса данных
  • servicetype - тип сервиса
  • srcname - текущее имя
  • dstname - новое имя
{

  "error": 0,

  "message": "success"

}

-
DELETE

/corpus/delete/{servicetype}

Удаляет корпус с данными
  • servicetype - тип сервиса
  • name - название корпуса
{

  "error": 0,

  "message": "success"

}

-
GET

/corpus/export/{servicetype}

Возвращает текстовый файл с данными, содержащий строки вида КЛАСС<TAB>ФРАЗА
  • servicetype - тип сервиса
  • name - название корпуса
Файл name.txt -
GET

/corpus/get/{servicetype}

Возвращает JSON с данными корпуса
  • servicetype - тип сервиса
  • name - название корпуса
[

  [

  "generalPayments",

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

  ],

  ...

]

Список вложенных списков со значениями "Класс" и "Фраза"
POST

/corpus/import/{servicetype}

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

  "error": 0,

  "message": "success"

}

-
GET

/corpus/list/{servicetype}

Возвращает список всех корпусов данных для указанного типа сервиса
  • servicetype - тип сервиса
[

 "корпус1",

 "корпус2",

  ...

]

Список с названиями всех имеющихся корпусов
POST

/corpus/put/{servicetype}

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

  "error": 0,

  "message": "success"

}

-
POST

/corpus/rename/{servicetype}

Переименование корпуса
  • servicetype - тип сервиса
  • srcname - текущее имя
  • dstname - новое имя
{

  "error": 0,

  "message": "success"

}

-


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

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

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

   "status": "waiting",

   "filename": "wav"

}

Статусы

ready - готово

waiting - ожидание

failed - сбой

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

"error": 0,

"message": "success"

}

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

ready - готово waiting - ожидание not found - не найдена failed - сбой

POST

/stt/{model}

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

"model":"name",

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

"speakers":[

{

  "gender":"MALE",

  "age":"20-29",

  "emotion":"BORE",

  "id":"Ivan"

}, ...

]

"splitted":[

{

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

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

  "channel":0,

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

  "start_ms":2255,

  "stop_ms":10995,

  "duration_ms":8740,

  "speaker":0,

  "confidence":0.95,

  "text":"текст"

}, ...

]

}

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

}


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

/smc/classify/{model}

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

  "classes": [

    {

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

      "confidence": 1

    },

    {

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

      "confidence": 1

    }

  ],

  "groups": [

    {

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

      "intersection": 2,

      "classes": [

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

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

      ]

    }

  ],

  "nearest": [

    {

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

      "percent": 0.6666666666666666,

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

    },

    {

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

      "percent": 0.6666666666666666,

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

    }

  ]

}

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

/smc/compress

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

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

}

GET

/smc/correct

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

/smc/emotion

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

/smc/groups/{model}

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

  "error": 0,

  "message": "string"

}

GET

/smc/groups/{model}

Поиск групп по ранее полученным меткам.
  • classes - набор меток через запятую
  • model - имя модели
{

"groups": [

   {

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

     "intersection": 3,

     "classes": [

       "метка1_о",

       "метка2_о",

       "метка3_о"

     ]

   },

   {

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

     "intersection": 2,

     "classes": [

       "метка1_о",

       "метка5_о"

     ]

   }

],

"nearest": [

   {

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

     "percent": 0.75,

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

   }

]

}

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

Позволяет сохранять контекст в виде меток и дозапрашивать группы с учетом контекста.

GET

/smc/normalize

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

/smc/punctuate

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

  "text": "string"

}

POST

/smc/stop/{model}

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

  "error": 0,

  "message": "string"

}

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

/smc/test/{model}

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

  "message": "success"

}

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

/info/{servicetype}/{model}

POST

/smc/train/{model}

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

  "message": "success"

}

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

/info/{servicetype}/{model}

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

/entities/{model}

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

position: 0,

confidence: 1,

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

calculated: vaktsinatsiya

}, {...}

]

}

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

/train/{model}

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

  "message": "success"

}

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

/info/{servicetype}/{model}

POST

/stop/{model}

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

  "message": "success"

}

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

/analyze/{model}

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

/search/{model}

Поиск говорящего по базе слепков
  • model - идентификатор модели.
  • wav - файл для анализа
{ error: 0, speaker: Ivan, confidence: 0.79 } -
DELETE

/speaker/{model}/{speaker_id}

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

  "message": "success"

}

-
GET

/speakers/{model}

Получение списка всех слепков в модели
  • model - идентификатор модели.
[ "Kiryl","Artem", "vladimir", "Sergey", "vladimir2", "Alla" ] -
POST

/verify/{model}/{speaker_id}

Сравнение оцифрованного представления wav-файла cо слепком в базе
  • model - идентификатор модели.
  • speaker_id - идентификатор говорящего
{"error": 0,

"confidence": 0.78

}

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

/tts/dictionary/export

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

/tts/dictionary/get

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

/tts/dictionary/import

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

 "error": 0,

 "message": "success",

 "answers": {

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

 }

}

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

/tts/dictionary/put

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

"error": 0,

"message": "success",

"answers": {

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

}

}

Пользовательский словарь будет переписан, не дополнен!
/qas: методы работы с сервисом qas
Метод Описание Входные параметры Ответ Пояснения
GET

/qas/ask

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

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

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

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

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

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

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

{

"error": 0,

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

}

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

/qas/cachemaker/start

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

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

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

  • variants - количество ответов, от 1 до 9
{"error": 0, "message": "success"} -
GET

/qas/cachemaker/status

Состояние генерации ответов на вопросы в кэше.

статусы: started, stopped, если были ошибки поле ответа

error будет содержать код ошибки

- {

  "error": "",

  "status": "started",

  "progress": 33.33

}

-
GET

/qas/cachemaker/stop

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

{

  "error": 0,

  "message": "success",

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

}

DELETE

/qas/category/delete/{id}

Удалить категорию
  • id - идентификатор категории
{

  "error": 0,

  "message": "success"

}

В ответе или сообщение об успехе или ошибке если категория используется или не существует
GET

/qas/category/list

Получить список категорий - В ответе json с именами и id категорий -
POST

/qas/category/modify/{id}

Изменить категорию. У категории пока есть только наименование, поэтому метод только переименовывает категорию
  • id - идентификатор категории
  • name - наименование категории
{

  "error": 0,

  "message": "success"

}

-
POST

/qas/channel/add

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

"error": 0,

"message": "success",

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

}

В ответе id созданного канала или сообщение об ошибке
DELETE

/qas/channel/delete/{id}

Удаление канала
  • id - идентификатор канала
{

"error": 0, "message": "success"

}

-
GET

/qas/channel/list

Получить список всех каналов - {

  "error": 0,

  "channels": [

    {

      "id": "1",

      "name": "voice"

    },

    {

      "id": "56442779-e871-43fd-ae4d-caf4ab6d09b9",

      "name": "канал++"

    },

    {

      "id": "0",

      "name": "default"

    }

  ]

}

-
POST

/qas/channel/modify/{id}

Изменить канал. У канала пока есть только наименование, поэтому метод только переименовывает канал
  • name - новое наименование канала
  • id - идентификатор канала
{

  "error": 0,

  "message": "success"

}

POST

/qas/doc/add

Предназначен для загрузки текстового документа
  • text title - заголовок документа
  • text category - категория документа
  • text - файл документа

{

"error": 0,

"message": "success",

"id": "ebe2bc57551c2d17f892987d1f62306d"

}

Добавляет документ в базу.
DELETE

/qas/doc/delete/{id}

Предназначен для удаления документа id - идентификатор документа {"error": 0,"message": "success"} -
GET

/qas/doc/get/{id}

Предназначен для выгрузки текста документа id - идентификатор документа {

  "error": 0,

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

}

GET

/qas/doc/list

Предназначен для получение списка имеющихся документов - {

  "error": 0,

  "docs": [

    {

      "id": "d4999cdee5ad1faf2cb3066ea1b5e96b",

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

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

    },

    {

      "id": "759042575b965745b9d2af869bca1740",

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

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

    }

  ]

}

POST

/qas/doc/modify/{id}

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

  title: string,

  category: string,

  text: string

}

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

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

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

POST

/qas/question/add

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

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

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

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

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

{

  "error": 0,

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

}

DELETE

/qas/question/delete/{id}

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

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

GET

/qas/question/get/{id}

Метод для получения вопроса вместе с ответами и синонимами вопроса id - идентификатор вопроса {

  "error": 0,

  "answers": [

    {

      "checked": true,

      "channel": "0",

      "answer": "ответ"

    }

  ],

  "aliases": [

    "вопрос",

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

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

  ]

}

GET

/qas/question/list

Метод для получения списка вопросов. - {

  "error": 0,

  "questions": [

    {

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

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

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

    },

    {

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

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

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

    }

  ]

}

POST

/qas/question/modify/{id}

Метод для модификации вопроса. Позволяет заменить как все параметры так и отдельные
  • data - json c измененными параметрами, пример полного:

{   "answers": [

    {

      "checked": true,

      "channel": "0",

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

    }

  ],

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

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

  "aliases": [

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

    "синоним",

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

  ]

}

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

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

GET

/qas/questionmaker/start

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

/qas/questionmaker/status

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

  "error": "",

  "status": "stopped",

  "progress": 0

}

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

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

GET

/qas/questionmaker/stop

Прервать генерацию. - {"error": 0, "message": "success"}
GET/qas/search Предназначен для поиска фрагментов содержащих ответ
  • text - текст запроса


  • category - категория (раздел) знаний
{

  "error": 0,

  "text": "

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

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

  "fragments": [

    {

      "id": "3a386b0a9e0e19efb0870685e1d0b484",

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

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

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

    },

    {

      "id": "44fd73ea1ac63f32cf18d79c854dbfe2",

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

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

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

    }

  ]

}

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

/transcription/audio/{id}

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

"GET /transcription/list"

POST

/transcription/create

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

}

В ответ придет id созданной стенограммы
DELETE

/transcription/delete/{id}

Предназначен для удаления стенограммы id - идентификатор стенограммы {"error": 0,"message": "success"}
GET

/transcription/get/{id}

Предназначен для получения стенограммы id - идентификатор стенограммы стенограмма в json формате Используется для отображения стенограммы в веб интерфейсе
GET

/transcription/list

Предназначен для получения списка сохраненных стенограмм - [

{

"id": "926e8d25-4275-4a78-906b-a1109cdacbea",

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

"model": "big",

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

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

"user": "0",

"dataset": "0"

}

]

-
POST

/transcription/save/{id}

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

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

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

/transcription/waveform/{id}

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

}

-