UPS. Описание API
Материал из Флора AI
Описание часто используемых параметров
| Параметр | Тип | Описание |
|---|---|---|
| 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 конфигурационного файла. | ||
|---|---|---|---|
|
{
"x-access-token": "XXXXXXXXXXXXXXXXXXXX", "x-refresh-token": "XXXXXXXXXXXXXXXXXXXX" } | ||
| POST/auth/dataset/add | Добавление dataset (набора данных) dataset (набор данных) используется для ограничения доступа к данным. В ответе метод вернет id созданного набора данных. | ||
|
{
"error": 0 "message": "success", "dataset_id": "XXXXXXXXXXXXX" } | ||
| DELETE/auth/dataset/delete/{id} | Удаление dataset (набора данных). | ||
|
{
"error": 0, "message": "success" } | ||
| POST/auth/dataset/modify/{id} | Переименование dataset (набора данных) Метод меняет все параметры набора данных, но на данный момент времени у набора данных, кроме id, только один параметр — наименование. | ||
|
{
"error": 0, "message": "success" } | ||
| GET/auth/datasets | Получение списка наборов данных | ||
| Нет входных параметров | [
{"id": "XXXXXXXXXXXXXXXXXX", "name": "XXX"}, {"id": "0", "name": "По умолчанию"} ] | ||
| GET/auth/refresh | Обновление токенов доступа. Время, в течение которого можно обновить доступ, регулируется параметром auth.refreshLifeTime конфигурационного файла. Служебный метод, используется в основном в веб-интерфейсе, чтобы не запрашивать лишний раз пароль. | ||
|
{
"x-access-token": "XXXXXXXXXXXXXXXXXXXX", "x-refresh-token": "XXXXXXXXXXXXXXXXXXXX" } | ||
| GET/auth/rights | Получение списка прав доступа. Служебный метод — по токену получает название роли и все права доступа этой роли, а также общедоступные методы. | ||
| Нет входных параметров | <<<{ "РОЛЬ": [
"GET:/......" ], "nopassword": [ "GET:/.......", ............... <<<............... "POST:/......." ] } | ||
| POST/auth/role/add | Создание роли. Служебный метод — используется веб-интерфейсом при создании роли. | ||
"name": "проверка создания", "rights": [ "набор прав через запятую" ] } |
{
"error": 0, "message": "success", "role_id": "a7e68bb83169f864c2fc868401b5250c" } | ||
| DELETE/auth/role/delete/{id} | Удаление роли. | ||
|
{"error": 0,"message": "success"} | ||
| POST/auth/role/modify/{id} | Изменение роли. Параметры как при создании роли. Роль будет переписана. | ||
"name": "проверка создания", "rights": [ "набор прав через запятую" ] } |
{"error": 0,"message": "success"} | ||
| GET/auth/roles | Получение списка ролей. | ||
| Нет входных параметров | [{
"id": "XXXXXXXXXXX", "name": "имя роли", "rights": [ "набор прав через запятую" ] },............] | ||
| POST/auth/user/add | Создание нового пользователя. Метод вернет или id нового пользователя или описание ошибки | ||
"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} | Удаление пользователя | ||
|
{"error": 0,"message": "success"} | ||
| GET/auth/user/get/{id} | Получение параметров пользователя | ||
|
{"id": "XXXXXXXXXX",
"username": "loginname", "fullname": "Full Name", "role": "0", "dataset": "0", "datasets": [ "0", "2dc34d3454243522e5407d3a170815a2" ] } | ||
| GET/auth/user/info | Получение параметров пользователя по его токену доступа. Служебный метод - для предоставления прав текущему пользователю по его токену | ||
|
{"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} | Изменение параметров пользователя | ||
|
{ "error": 0,
"message": "success"} | ||
| POST/auth/user/password | Смена пароля пользователя по его токену доступа. | ||
|
{ "error": 0,"message": "success"} | ||
| POST/auth/userlog | Получение действий пользователя за период времени по его токену | ||
|
{
"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 — массив сбойных серверов со временем постановки в сбой. | ||
|---|---|---|---|
|
{ "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-серверов, для каждого из которых указан список моделей. | ||
|
{ "http://127.0.0.1:6181": [
"model1", ... "modelN" ], ... } | ||
/model: методы работы с моделями
| POST/model/add/{servicetype}/{model} | Создание пустой модели в указанном сервисе. Доступно для следующих сервисов: smc, see, spr. | ||
|---|---|---|---|
|
{
"error":0, "message":"success" } | ||
| POST/model/apply/{servicetype}/{model} | Применение установленной на рабочих серверах модели. После применения модель становится доступна для штатного режима работы. Доступно для следующих сервисов: smc, see, spr. | ||
|
{
"error":0, "message":"success" } | ||
| DELETE/model/delete/{servicetype}/{model} | Полностью удаляет модель из системы и со всех управляемых серверов. Доступно для следующих сервисов: smc, see, spr. | ||
|
{
"error":0, "message":"success" } | ||
| GET/model/errors/{servicetype}/{model}/{modeltype} | Запрос на получение списка ошибок модели после тестирования. Если тестирования не было, то содержит ошибки проверки на обучающем корпусе. Доступен для сервисов see и smc. Ответ содержит список вложенных списков. В каждом три значения: правильное значение, предсказанное моделью значение и начальные данные (фраза). | ||
|
[ [true, predicted, phrase],
... ] | ||
| GET/model/export/{servicetype}/{model}/{modeltype} | Экспорт модели, модель скачивается в виде zip-архива. | ||
|
Файл model.zip, где model — название модели | ||
| GET/model/handler/{servicetype}/{model} | Получение файла-постобработчика из модели типа future. | ||
|
Файл handler.py | ||
| POST/model/handler/{servicetype}/{model} | Отправка файла-постобработчика в указанную модель типа future. Обработчик становится активным сразу после успешной отправки. Более подробно об обработчике см. руководства пользователя smc и see. | ||
|
{"error":0,
"message":"success" } | ||
| DELETE/model/handler/{servicetype}/{model} | Удаление постобработчика из модели типа future. Более подробно об обработчике см. руководства пользователя smc и see. | ||
|
{"error":0,
"message":"success" } | ||
| GET/model/handler/{servicetype}/{model}/{modeltype} | Получение файла-постобработчика из указанной модели указанного типа. | ||
|
Файл handler.py | ||
| POST/model/handler/{servicetype}/{model}/{modeltype} | Отправка файла-постобработчика в указанную модель указанного типа. Становится активным сразу после успешной отправки. | ||
|
{
"error":0, "message":"success" } | ||
| DELETE/model/handler/{servicetype}/{model}/{modeltype} | Удаление постобработчика в указанной модели указанного типа. | ||
|
{
"error":0, "message":"success" } | ||
| POST/model/import/{servicetype}/{model} | Импортирует модель в черновик (modeltype=future) | ||
|
{
"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, в каждой из который содержится информация о модели. | ||
|
{ "previous": null,
"current": { "status": "trained", ... }, "future": { "status": "trained", ... } } | ||
| POST/model/install/{servicetype}/{model} | Установка импортированной или обученной модели на рабочих серверах.
Доступно для следующих сервисов: smc, see, spr. | ||
|
{
"error":0, "message":"success" } | ||
| GET/model/log/{servicetype}/{model}/{modeltype} | Выводит лог обучения и тестирования модели. Доступно для следующих сервисов: smc, see. | ||
|
[
"training", "preparing data", "tokenizing", ... ] | ||
| POST/model/restore/{servicetype}/{model} | Откат модели. Делает текущую рабочую модель черновиком (future), рабочие серверы после выполнения данного метода продолжают уже с возвращенной моделью. Схематично действия над modeltype в результате выполнения данного метода можно представить так:
| ||
|
{"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} | Результат выполнения задания на автомаркировку корпуса. Если задание завершено в ответе придет маркированый корпус и время старта и финиша задания | ||
|
{
"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 | Начать автоматическую разметку корпуса. | ||
[ [класс1,... классН], текст ]]
[ метка, [синоним, синоним2 ... синоним Н], порог ]]
|
{
"error": 0, "message": "success", "id": "уникальный id задания" } | ||
| GET/corpus/automark/status/{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} | Прервать задание на автоматическую разметку корпуса. | ||
|
{ "error": 0,
"message": "success"} | ||
| POST/corpus/copy/{servicetype} | Копирования корпуса данных | ||
|
{
"error": 0, "message": "success" } | ||
| DELETE/corpus/delete/{servicetype} | Удаляет корпус с данными | ||
|
{ "error": 0,
"message": "success"} | ||
| GET/corpus/export/{servicetype} | Возвращает текстовый файл с корпусом, содержащий строки вида КЛАСС<TAB>ФРАЗА | ||
|
Файл name.txt | ||
| GET/corpus/get/{servicetype} | Возвращает JSON с данными корпуса | ||
|
[
| ||
| POST/corpus/import/{servicetype} | Метод для импорта корпуса данных. Возможен как из текстового файла со строками вида КЛАСС<TAB>ФРАЗА (доступно для smc и see), так и из логов работы системы (только для smc). Если на вход поступил файл csv, происходит импорт из файла, в противном случае из логов. | ||
|
{
"error": 0, "message": "success" } | ||
| GET/corpus/list/{servicetype} | Возвращает список всех корпусов данных для указанного типа сервиса | ||
|
[ "корпус1",
"корпус2", ...] | ||
| POST/corpus/put/{servicetype} | Перезаписывает корпус отправленным массивом данных | ||
|
{
"error": 0, "message": "success" } | ||
| POST/corpus/rename/{servicetype} | Переименование корпуса | ||
|
{
"error": 0, "message": "success" } | ||
/spr: работа с сервисом SPR
| GET/spr/audio/{taskID} | Получение аудиофайла отложенного задания | ||
|---|---|---|---|
|
Wav файл | ||
| GET/spr/queue | Получение очереди отложенных заданий. Выводит очередь со статусами выполнения заданий. Статусы: ready — готово, waiting — ожидание, failed — сбой | ||
| Нет входных параметров | { "id задания": {
"created": "ХХХХ-ХХ-ХХ ХХ:ХХ:ХХ", "status": "waiting", "filename": "wav"} | ||
| DELETE/spr/queue/{taskID} | Удаление задания из очереди | ||
|
{"error": 0,
"message": "success"} | ||
| GET/spr/result/{taskID} | получениеПезультатов распознавания отложенного задания. Статусы: ready — готово, waiting — ожидание, failed — сбой, not found — не найдена | ||
|
Вывод аналогичен выводу метода stt + добавлено поле status, которое содержит информацию о статусе отложенной задачи | ||
| POST/spr/stt/{model} | Отправка файла на распознавание речи. Моно-файлы до 30 секунд распознаются без разбивки на фрагменты. Многоканальные файлы и файлы длиннее 30 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в руководстве администратора spr. | ||
В случае отправки переменной 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} | Служебный метод для отображения аудио в графическом виде, содержит пики сигнала. | ||
|
{"error": 0,
"waveform": [ 0.016, 0.015, 0.01 ] } | ||
/smc: работа с сервисом SMC
| GETsmc/classify/{model} | Классификация текстовой фразы. В случает если модель была создана из меток в ответе groups и nearest будут пустыми, а ответ будет построен без учета 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": "сжатый текст"} | ||
| GET/smc/correct | Коррекция правописания. Изменяет неправильно написанные слова меняя их на наиболее близкие правильные (из знакомых модели). Если модель коррекции не смогла предложить правильное написание текста, метод вернет текст неизменным. | ||
| text - текст для коррекции | { "text": "корректный текст" } | ||
| GET/smc/emotion | Анализ эмоций. На выходе один из вариантов positive negative neutral. | ||
| text - фраза для анализа эмоций | { "emotion": "positive", "score": 0.9601 } | ||
| GET/smc/groups/{model} | Поиск групп по ранее полученным меткам. Ищет группы по набору меток. Результат - группы (если найдены) и ближайшие группы с указанием недостающих меток. Позволяет сохранять контекст в виде меток и дозапрашивать группы с учетом контекста. | ||
|
{"groups": [
{ "group": "Группа 1", "intersection": 3, "classes": [ "метка1_о", "метка2_о", "метка3_о" ] }, { "group": "Группа 2", "intersection": 2, "classes": [ "метка1_о", "метка5_о" ] }], "nearest": [ { "group": "Группа до которой не хватило 1 метки", "percent": 0.75, "need": "недостающая метка_о" } ] } | ||
| POST/smc/groups/{model} | Добавляет к модели группы из корпуса. Группы в модели будут перезаписаны | ||
|
{ "error": 0,
"message": "string"} | ||
| GET/smc/normalize | Обратная нормализация текста. Пример: двадцать пятого апреля в пятом часу — 25 апреля в 5-м часу. | ||
|
{"text": "<строка после обратной нормализации>"} | ||
| GET/smc/punctuate | Расстановка знаков препинания | ||
|
{ "text": "string" } | ||
| POST/smc/stop/{model} | Остановка обучения модели. Удаляет тестовую версию модели с сервера обучения, тем самым прерывает обучение. | ||
|
{ "error": 0,
"message": "string"} | ||
| POST/smc/test/{model} | Запуск тестирования модели smc. Метод асинхронный, статус тестирования можно запросить методом GET/info/{servicetype}/{model} | ||
|
{ "error": 0,
"message": "success" } | ||
| GET/smc/toxicity | Определение токсичности высказывания. Высказывание анализируется по 4 параметрам, по каждому выдается вероятность от 0 до 1: | ||
|
{ "insult": 0.13, # оскорбление
"obscenity": 0, # брань "threat": 0, # угрозы "politeness": 0.53 вежливость} | ||
| POST/smc/train/{model} | Добавление модели. | ||
|
{ error: INT, message: DESCRIPTION } | ||
/see: работа с сервисом SEE
| GET/see/entities/{model} | Поиск сущностей. Вернется массив со всеми моделями, в которых были найдены сущности.(модели для поиска указываются в поле id) Каждая переменная с названием модели будет содержать список всех найденных сущностей. | ||
|---|---|---|---|
|
{ ID-модели: [
{ position: 0, # позиция слова начала фрагмента, определяющего сущность confidence: 1, #вероятность правильного определения сущности text: текст сущности, calculated: vaktsinatsiya # поле, содержащее значение сущности, использованный при обучении модели }, {...} ] } | ||
| POST/see/stop/{model} | Остановка обучения модели | ||
|
{ "error": 0,
"message": "success"} | ||
| POST/see/train/{model} | Запуск обучения модели future | ||
|
{ "error": 0,
"message": "success"} | ||
/sbs: работа с сервисом SBS
| POST/sbs/analyze | Получение аналитических метаданных из голосового фрагмента. Вернется массив с метаданными голосового фрагмента. | ||
|---|---|---|---|
|
Пример:
{ 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 | Поиск говорящего по базе слепков. | ||
|
Пример ответа:
{ error: 0, speaker: Ivan, confidence: 0.79 } | ||
| POST/sbs/speakers/add | Добавление слепка в базу. | ||
|
{
"error": 0, "id": "251f78d7-ee50-4ba1-a669-ee89fdaf5433" } | ||
| DELETE/sbs/speakers/delete/{id} | Удаление слепка из базы. | ||
|
{ error: INT, message: DESCRIPTION } | ||
| GET/sbs/speakers/list | Получение списка всех слепков. | ||
| Входные параметры отсутствуют | [ {
"id": "251f78d7-ee50-4ba1-a669-ee89fdaf5433", "name": "наименование слепка" }] | ||
| POST/sbs/speakers/modify/{id} | Дообучение слепка. | ||
|
{ "error": 0,
"message": "Success"} | ||
| POST/sbs/verify/{id} | Сравнение wav-файла cо слепком в базе. В ответе - вероятность совпадения от 0 до 1. | ||
|
{ "error": 0, "confidence": 0.78 } | ||
/tts: методы работы с сервисом tts
| GET/tts/dictionary/export | Выгрузка пользовательского словаря ударений. | ||
|---|---|---|---|
| Входные параметры отсутствуют | простой текст - строки с словом и его интерперетацией с ударением | ||
| GET/tts/dictionary/get | Выгрузка пользовательского словаря ударений в виде json. | ||
| Входные параметры отсутствуют | [ [ "слово", "замена слова с удар+ением"],
[ "слово2", "замена слова2 с удар+ением"], ...] | ||
| POST/tts/dictionary/import | Загрузка пользовательского словаря ударений. Текущий словарь будет переписан. | ||
|
{ "error": 0,
"message": "сообщение о статусе результата"} | ||
| POST/tts/dictionary/put | Загрузка пользовательского словаря ударений в виде json. Текущий словарь будет переписан. | ||
|
{
"error": 0, "message": "сообщение о статусе результата" } | ||
| POST/tts/normalize | Нормализация текста - перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы), например "в понедельник 10.10.2025" -> "в понедельник дес+ятого октябр+я дв+е т+ысячи дв+адцать п+ятого г+ода". | ||
|
{ "error": 0,
"message": "success", "text": "нормализованный текст" } | ||
| GET/tts/synthesize/{model} | Синтез звукового файла из текста небольшого размера - для совместимости с предыдущими версиями. | ||
|
wav файл с синтезированой фразой | ||
| POST/tts/synthesize/{model} | Синтез звукового файла из текста для фраз большого размера - тип запроса "POST" позволяет отправку больших текстов. | ||
|
wav файл с синтезированой фразой | ||
/qas: методы работы с сервисом qas
| GET/qas/ask | Метод генерирует ответ на поставленный вопрос на основе информации из документов в базе. Ответ на вопрос генерируется на основе информации, содержащейся в одном или нескольких документах. Документы должны быть в текстовом формате. Ответ возвращается в формате JSON, его можно скачать. Если метод не смог найти ответ, возвращается код ошибки и сообщение. | ||
|---|---|---|---|
возможные варианты: - "no" не использовать - "all" использовать все - "checked" использовать только проверенные
|
{
"error": 0, "text": "Здесь будет текст ответа" } | ||
| GET/qas/cachemaker/start | Генерация ответов на вопросы в кэше. | ||
- paraphrase — генерирует вариации ответов перефразированием уже проверенных ответов, если таковые имеются на вопросе - generate — генерирует кэш через разные ответы на каждый вопрос по документации
|
{"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 созданной категории или сообщение об ошибке: | ||
|
{ "error": 0,
"message": "success", "id": "ad895085-2e48-439a-831e-b5f699b6a54a" } | ||
| DELETE/qas/category/delete/{id} | Удалить категорию. В ответе или сообщении об успехе, или ошибке, если категория используется или не существует. | ||
|
{ "error": 0,
"message": "success" } | ||
| GET/qas/category/list | Получить список категорий | ||
| Входные параметры отсутствуют | В ответе json с именами и id категорий | ||
| POST/qas/category/modify/{id} | Изменить категорию. У категории пока есть только наименование, поэтому метод только переименовывает категорию | ||
|
{ "error": 0,
"message": "success" } | ||
| POST/qas/channel/add | Добавление канала. В ответе id созданного канала или сообщение об ошибке | ||
|
{"error": 0,
"message": "success", "id": "a46fb887-5d98-41e0-8299-bcc94f615e91"} | ||
| DELETE/qas/channel/delete/{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} | Изменить канал. У канала пока есть только наименование, поэтому метод только переименовывает канал | ||
|
{ "error": 0,
"message": "success" } | ||
| POST/qas/doc/add | Загрузить текстовый документ. Добавляет документ в базу. В ответе - id созданного документа или сообщение об ошибке | ||
|
{"error": 0,
"message": "success", "id": "ebe2bc57551c2d17f892987d1f62306d"} | ||
| DELETE/qas/doc/delete/{id} | Удаление документа | ||
|
{"error": 0,"message": "success"} | ||
| GET/qas/doc/get/{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»), в случае неудачи — код ошибки. | ||
параметр который не меняется может отсутствовать в json
|
{"error": INT, "message": DESCRIPTION} | ||
| POST/qas/question/add | Добавление вопроса. В случае успеха метод вернет id вопроса, в случае неудачи - код ошибки. | ||
|
{
"error": 0, "id": "527be9f0-f773-4a3e-bd0b-81b40a061d0d" } | ||
| POST/qas/question/append/{id} | Непонятно | ||
| вход | выход | ||
| POST/qas/question/approve/{destination_id} | Непонятно | ||
| вход | выход | ||
| POST/qas/question/delete/list | Удаление списка вопросов или ответов. | ||
|
{"error": INT, "message": DESCRIPTION} | ||
| DELETE/qas/question/delete/{id} | Удаление вопроса | ||
|
{"error": INT, "message": DESCRIPTION} | ||
| GET/qas/question/get/{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} | Модификация вопроса. Позволяет заменить как все параметры так и отдельные | ||
|
В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.
{"error": INT, "message": DESCRIPTION} | ||
| GET/qas/questionlist/answers | Непонятно | ||
| вход | выход | ||
| POST/qas/questionlist/start | Непонятно | ||
| вход | выход | ||
| GET/qas/questionlist/status | Непонятно | ||
| вход | выход | ||
| GET/qas/questionlist/stop | Непонятно | ||
| вход | выход | ||
| GET/qas/questionmaker/start | Запуск генерации вопросов для кэша. По каждому документу генерируются по 5 вопросов на фрагмент. Количество фрагментов зависят от размера документа и настройки размера контекста из конфигурационного файла. Если вопрос сильно похож на существующий, новый не создается, а добавляется к существующему в aliases. | ||
|
{"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 | Поиск фрагментов содержащих ответ | ||
|
{ "error": 0,
"text": " Фрагмент 1:Здесь будет текст найденного фрагмента Фрагмент 2:Здесь будет текст найденного фрагмента", "fragments": [ { "id": "3a386b0a9e0e19efb0870685e1d0b484", "title": "Заголовок документа", "category": "Категория документа", "text": "Здесь будет текст найденного фрагмента" }, { "id": "44fd73ea1ac63f32cf18d79c854dbfe2", "title": "Заголовок документа", "category": "Категория документа", "text": "Здесь будет текст найденного фрагмента" } ] } | ||
| Метод | Описание | Входные параметры | Ответ | Пояснения |
|---|---|---|---|---|
| GET
/qas/ask |
Метод генерирует ответ на поставленный вопрос на основе информации из документов в базе |
возможные варианты: - "no" не использовать - "all" использовать все - "checked" использовать только проверенные
возможные варианты "yes" "no" |
{
|
Ответ на вопрос генерируется на основе информации, содержащейся в одном или нескольких документах. Документы должны быть в текстовом формате. Ответ возвращается в формате JSON, его можно скачать. Если метод не смог найти ответ, возвращается код ошибки и сообщение. |
| GET
/qas/cachemaker/start |
Генерация ответов на вопросы в кэше. | category — категория для которой генерируются ответы
mode — режим генерации ответов, возможные значения:
variants — количество ответов, от 1 до 9 |
{"error": 0, "message": "success"}
|
— |
| GET
/qas/cachemaker/status |
Состояние генерации ответов на вопросы в кэше.Статусы: started, stopped, если были ошибки, поле ответа error будет содержать код ошибки. | — | {
|
— |
| GET
/qas/cachemaker/stop |
Остановить генерацию ответов на вопросы в кэше. | — | {"error": 0, "message": "success"}
|
— |
| POST/qas/category/add | Добавить категорию с указанным именем |
|
В ответе - id созданной категории или сообщение об ошибке:
|
|
| DELETE
/qas/category/delete/{id} |
Удалить категорию |
|
{
|
В ответе или сообщении об успехе, или ошибке, если категория используется или не существует. |
| GET
/qas/category/list |
Получить список категорий | — | В ответе json с именами и id категорий | — |
| POST
/qas/category/modify/{id} |
Изменить категорию. У категории пока есть только наименование, поэтому метод только переименовывает категорию |
|
{
|
— |
| POST
/qas/channel/add |
Добавление канала |
|
{
|
В ответе id созданного канала или сообщение об ошибке |
| DELETE
/qas/channel/delete/{id} |
Удаление канала |
|
{
|
— |
| GET
/qas/channel/list |
Получить список всех каналов | — | {
|
— |
| POST
/qas/channel/modify/{id} |
Изменить канал. У канала пока есть только наименование, поэтому метод только переименовывает канал |
|
{
|
|
| POST
/qas/doc/add |
Предназначен для загрузки текстового документа |
|
|
Добавляет документ в базу. |
| DELETE
/qas/doc/delete/{id} |
Предназначен для удаления документа | id — идентификатор документа | {"error": 0,"message": "success"}
|
— |
| GET
/qas/doc/get/{id} |
Предназначен для выгрузки текста документа | id — идентификатор документа | {
|
|
| GET
/qas/doc/list |
Предназначен для получения списка имеющихся документов | — | {
|
|
| POST
/qas/doc/modify/{id} |
Метод для обновления документа |
параметр который не меняется может отсутствовать в json
|
В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.
|
|
| POST
/qas/question/add |
Метод для добавления вопроса |
|
В случае успеха метод вернет id вопроса, в случае неудачи - код ошибки.
|
|
| DELETE
/qas/question/delete/{id} |
Метод для удаления вопроса | id — идентификатор вопроса | В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.
|
|
| GET
/qas/question/get/{id} |
Метод для получения вопроса вместе с ответами и синонимами вопроса | id — идентификатор вопроса | {
|
|
| GET
/qas/question/list |
Метод для получения списка вопросов. | — | {
|
|
| POST
/qas/question/modify/{id} |
Метод для модификации вопроса. Позволяет заменить как все параметры так и отдельные |
|
В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.
|
|
| GET
/qas/questionmaker/start |
Запуск генерации вопросов для кэша. |
|
{"error": 0, "message": "success" }
|
По каждому документу генерируются по 5 вопросов на фрагмент. Количество фрагментов зависят от размера документа и настройки размера контекста из конфигурационного файла. Если вопрос сильно похож на существующий, новый не создается, а добавляется к существующему в aliases. |
| GET
/qas/questionmaker/status |
Проверка состояния генерации | — | {
|
Статусы: started, stopped.
Если были ошибки поле ответа error будет содержать код ошибки |
| GET
/qas/questionmaker/stop |
Прервать генерацию. | — | {"error": 0, "message": "success"}
|
|
| GET/qas/search | Предназначен для поиска фрагментов содержащих ответ |
|
{
|
— |
/transcription: методы работы со стенографией
| Метод | Описание | Входные параметры | Ответ | Пояснения |
|---|---|---|---|---|
| GET
/transcription/audio/{id} |
Предназначен для получения аудиофайла по id стенограммы |
|
wav файл сохраненной стенограммы | Идентификатор нужной стенограммы можно получить методом
"GET /transcription/list" |
| POST
/transcription/create |
Предназначен для создания стенограммы из завершенного задания в очереди распознавания |
|
{
|
В ответ придет id созданной стенограммы |
| DELETE
/transcription/delete/{id} |
Предназначен для удаления стенограммы | id — идентификатор стенограммы | {"error": 0,"message": "success"}
|
|
| GET
/transcription/get/{id} |
Предназначен для получения стенограммы | id — идентификатор стенограммы | стенограмма в json формате | Используется для отображения стенограммы в веб интерфейсе |
| GET
/transcription/list |
Предназначен для получения списка сохраненных стенограмм | — | [
|
- |
| POST
/transcription/save/{id} |
Предназначен для сохранения стенограмы | стенограмма в json формате
id стенограммы |
— | Используется для сохранения изменений по нажатию кнопки «Сохранить». |
| GET
/transcription/waveform/{id} |
Служебный метод для отображения аудио в графическом виде, содержит пики сигнала | id — идентификатор стенограммы | {
<<<"error": 0, "waveform": [ 0.016, .......... .......... 0.015, 0.01 ]
|
— |