Действия

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

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

Строка 912: Строка 912:
|<code><small>-</small></code>
|<code><small>-</small></code>
| Добавляет документ в базу. После добавления необходимо выполнить инициализацию (/qas/reinit)
| Добавляет документ в базу. После добавления необходимо выполнить инициализацию (/qas/reinit)
|-
|GET
/qas/doc/ask
|<small>Предназначен для получения ответа из найденных фрагментов</small>
|
|
|
|-
|GET
/qas/doc/search
|<small>Предназначен для поиска фрагментов содержащих ответ</small>
|
|
|
|}
|}

Версия от 17:05, 24 апреля 2024

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


/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

/add/{servicetype}/{model}

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

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

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

"error":0,

"message":"success"

}

-
POST

/install/{servicetype}/{model}

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

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

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

"error":0,

"message":"success"

}

-
POST

/apply/{servicetype}/{model}

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

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

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

"error":0,

"message":"success"

}

-
POST

/restore/{servicetype}/{model}

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

"message":"success"

}

-
DELETE

/delete/{servicetype}/{model}

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

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

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

"error":0,

"message":"success"

}

-
GET

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

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

... ]

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

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

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

/import/{servicetype}/{model}

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

"error":0,

"message":"success"

}

-
GET

/info/{servicetype}/{model}

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

  "previous": null,

  "current":  {

    "status": "trained",

    ...

  },

  "future": {

    "status": "trained",

    ...

  }

}

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

/info/{servicetype}

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

  "model1": {

    "previous": null,

    "current": null,

    "future": {

      "status": "empty",

      ...

    }

  },

  ...

}

-
GET

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

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

  "training",

  "preparing data",

  "tokenizing",

  ...

]

-
GET

/handler/{servicetype}/{model}

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

/handler/{servicetype}/{model}

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

"message":"success"

}

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

/handler/{servicetype}/{model}

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

"message":"success"

}

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


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

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

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

/list/{servicetype}

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

 "корпус1",

 "корпус2",

  ...

]

Список с названиями всех имеющихся корпусов
GET/get/{servicetype} Возвращает JSON с данными корпуса
  • servicetype - тип сервиса
  • name - название корпуса
[

  [

  "generalPayments",

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

  ],

  ...

]

Список вложенных списков со значениями "Класс" и "Фраза"
GET/export/{servicetype} Возвращает текстовый файл с данными, содержащий строки вида КЛАСС<TAB>ФРАЗА
  • servicetype - тип сервиса
  • name - название корпуса
Файл name.txt -
DELETE/delete/{servicetype} Удаляет корпус с данными
  • servicetype - тип сервиса
  • name - название корпуса
{

  "error": 0,

  "message": "success"

}

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

  "error": 0,

  "message": "success"

}

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

  "error": 0,

  "message": "success"

}

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

  "error": 0,

  "message": "success"

}

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

  "error": 0,

  "message": "success"

}

-


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

/stt/{model}

Метод для отправки файла на распознавание речи. Моно-файлы до 30 секунд распознаются без разбивки на фрагменты. Многоканальные файлы и файлы длиннее 30 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в руководстве администратора SPR. В случае отправки переменной speakers=1, дополнительно производится поиск говорящих и получение метаданных по каждому говорящему.
  • model - идентификатор модели
  • 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.


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

/classify/{model}

метод для классификации текстовой фразы
  • model - идентификатор модели
  • text - текст, подлежащий классификации
  • multiclass - опция запроса нескольких классов при их наличии, если multiclass=1
[

{ class:Appointment,

calculated:Appointment,

confidence:0.99,

start:0,

length:2

}, ...

]

Если multiclass=0 ответ будет в виде массива с одним классом, иначе - список массивов.
  • start - позиция слова начала фрагмента, определяющего класс
  • length - количество слов во фрагменте, определяющим класс
  • confidence - вероятность правильного определения класса
  • calculated - поле, содержащее измененное постобработчиком (при его наличии) значение класса.
POST

/train/{model}

Запуск обучения модели future
  • model - идентификатор модели
  • corpus - название корпуса с данными
  • tokenizer - способ оцифровки фразы. entities или fragments. В первом случае упор делается на взаимосвязи сущностей, во втором на N-граммы
  • normalization - уровень нормализации для устранения количественного перекоса в данных каждого класса, 0 - автоматическое определение, 1-9 - ручной режим. При увеличении значения происходит синтез данных для каждого класса. По умолчанию 1
  • model-size - размер структуры модели. Чем больше данных, теб больше нужна модель. 0 - автоматический режим определения структуры модели. 1-5 - ручной режим. По умолчанию 3.
  • entity-cross-limit - от 0 до 1. Предельный коэффициент возможного наличия сущности в многих классах, выше которого сущность считается мусорной. По умолчанию 1, т.е. допуск всех найденных сущностей.
  • entity-rare-limit - от 0 до 1. Минимальный порог повторяемости сущности в классе, ниже которого сущность считается мусорной. По умолчанию 0, т.е. допуск всех найденных сущностей.
{  "error": 0,

  "message": "success"

}

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

/info/{servicetype}/{model}

POST

/stop/{model}

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

  "message": "success"

}

-
POST

/test/{model}

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

  "message": "success"

}

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

/info/{servicetype}/{model}

GET

/smc/groups/{model}

Получение группы по набору меток
  • classes - набор меток, разделитель - запятая
  • model - идентификатор модели
Результат в виде json.

{

 "groups": [
   {
     "group": "Группа 1",
     "intersection": 3,
     "classes": [
       "метка1_о",
       "метка2_о",
       "метка3_о"
     ]
   },
   {
     "group": "Группа 2",
     "intersection": 2,
     "classes": [
       "метка1_о",
       "метка5_о"
     ]
   }
 ],
 "nearest": [
   {
     "group": "Группа до которой не хватило 1 метки",
     "percent": 0.75,
     "need": "недостающая метка_о"
   }
 ]

}

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

Позволяет сохранять контекст в виде меток и дозапрашивать группы с учетом контекста. /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

/embedding/{model}

Получение оцифрованного представления говорящего
  • model - идентификатор модели.
  • wav - файл для анализа
{ error: 0, embedding: [ 0.019493144005537033, -0.08348844200372696, ... ] } -
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
Метод Описание Входные параметры Ответ Пояснения
POST

/qas/doc

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

text category - категория документа

файл документа

- Добавляет документ в базу. После добавления необходимо выполнить инициализацию (/qas/reinit)
GET

/qas/doc/ask

Предназначен для получения ответа из найденных фрагментов
GET

/qas/doc/search

Предназначен для поиска фрагментов содержащих ответ