QAS. Руководство пользователя: различия между версиями
Материал из Флора AI
| Строка 17: | Строка 17: | ||
|+''Методы API'' | |+''Методы API'' | ||
|- | |- | ||
! colspan=" | ! colspan="3" style="text-align: center" |'''<big>Группа методов qas</big>''' | ||
|- | |- | ||
! style="color:blue;width: 15%" |'''GET/qas/ask''' | ! style="color:blue;width: 15%" |'''GET/qas/ask''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Метод генерирует ответ на поставленный вопрос на основе информации из документов в базе. <small>Ответ на вопрос генерируется на основе информации, содержащейся в одном или нескольких документах. Документы должны быть в текстовом формате. Ответ возвращается в формате JSON, его можно скачать. Если метод не смог найти ответ, возвращается код ошибки и сообщение.</small> | ||
|- | |- | ||
| colspan="2" style="width: 50%" | | | colspan="2" style="width: 50%" | | ||
| Строка 40: | Строка 40: | ||
* <small>'''addAlias''' - добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. возможные варианты "'''yes'''" "'''no'''"</small> | * <small>'''addAlias''' - добавлять похожие вопросы к синонимам, не создавая отдельного вопроса. возможные варианты "'''yes'''" "'''no'''"</small> | ||
| | | style="width: 50%" |<small>{</small> | ||
<small>"error": 0,</small> | <small>"error": 0,</small> | ||
| Строка 48: | Строка 48: | ||
|- | |- | ||
! style="color:green;width: 15%" |'''POST/qas/autocache''' | ! style="color:green;width: 15%" |'''POST/qas/autocache''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Добавление вопросно-ответной пары в кэш. | ||
<small>В случае указания id, answer будет принудительно добавлен в вопрос, с указанным id. Если же указан question, то система сначала попытается найти похожий вопрос и добавить ответ в него, если же вопрос не будет найден, то система создаст новый с указанной формулировкой. При установке флага emptyQuestion будет добавлен только вопрос (без ответа). Флаг addAlias отвечает за добавление/не добавление кандидата в формулировки существующего вопроса в случае, если в базе уже найден вопрос, сооветствующий указанному в question.</small> | <small>В случае указания id, answer будет принудительно добавлен в вопрос, с указанным id. Если же указан question, то система сначала попытается найти похожий вопрос и добавить ответ в него, если же вопрос не будет найден, то система создаст новый с указанной формулировкой. При установке флага emptyQuestion будет добавлен только вопрос (без ответа). Флаг addAlias отвечает за добавление/не добавление кандидата в формулировки существующего вопроса в случае, если в базе уже найден вопрос, сооветствующий указанному в question.</small> | ||
|- | |- | ||
| Строка 59: | Строка 59: | ||
* <small>'''addAlias''' - yes или no, флаг добавления кандидата в формулировки существующего вопроса</small> | * <small>'''addAlias''' - yes или no, флаг добавления кандидата в формулировки существующего вопроса</small> | ||
* <small>'''id''' - код существующего вопроса</small> | * <small>'''id''' - код существующего вопроса</small> | ||
| | | style="width: 50%" |<small>{"error": 0, "message": "success"}</small> | ||
|- | |- | ||
! style="color:blue;width: 15%" |'''GET/qas/cachemaker/start''' | ! style="color:blue;width: 15%" |'''GET/qas/cachemaker/start''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Генерация ответов на вопросы в кэше. | ||
|- | |- | ||
| colspan="2" style="width: 50%" | | | colspan="2" style="width: 50%" | | ||
| Строка 76: | Строка 76: | ||
* <small>'''variants''' - количество ответов, от 1 до 9</small> | * <small>'''variants''' - количество ответов, от 1 до 9</small> | ||
| | | style="width: 50%" |<small>{"error": 0, "message": "success"}</small> | ||
|- | |- | ||
! style="color:blue;width: 15%" |'''GET/qas/cachemaker/status''' | ! style="color:blue;width: 15%" |'''GET/qas/cachemaker/status''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Состояние генерации ответов на вопросы в кэше. | ||
<small>статусы: '''started''', '''stopped''', если были ошибки поле ответа</small> | <small>статусы: '''started''', '''stopped''', если были ошибки поле ответа</small> | ||
| Строка 86: | Строка 86: | ||
|- | |- | ||
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | | colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | ||
| | | style="width: 50%" |<small>{ "error": "",</small> | ||
<small> "status": "started",</small> | <small> "status": "started",</small> | ||
| Строка 93: | Строка 93: | ||
|- | |- | ||
! style="color:blue;width: 15%" |'''GET/qas/cachemaker/stop''' | ! style="color:blue;width: 15%" |'''GET/qas/cachemaker/stop''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Остановить генерацию ответов на вопросы в кэше. | ||
|- | |- | ||
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | | colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | ||
| | | style="width: 50%" |<small>{"error": 0, "message": "success"}</small> | ||
|- | |- | ||
! style="color:green;width: 15%" |'''POST/qas/chat''' | ! style="color:green;width: 15%" |'''POST/qas/chat''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Поиск ответа за пределами документов. <small>На стадии разработки, не используется.</small> | ||
|- | |- | ||
| colspan="2" style="width: 50%" | | | colspan="2" style="width: 50%" | | ||
* <small>'''text -''' текст вопроса</small> | * <small>'''text -''' текст вопроса</small> | ||
| | | style="width: 50%" |<small>Пример ответа на вопрос "как пройти в библиотеку"</small> | ||
<small>{"error": 0,</small> | <small>{"error": 0,</small> | ||
| Строка 110: | Строка 110: | ||
|- | |- | ||
! style="color:blue;width: 15%" |'''GET/qas/chat''' | ! style="color:blue;width: 15%" |'''GET/qas/chat''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Поиск ответа за пределами документов. <small>Аналогичен методу "POST/qas/chat". Не поддерживает большие тексты.На стадии разработки, не используется.</small> | ||
|- | |- | ||
| colspan="2" style="width: 50%" | | | colspan="2" style="width: 50%" | | ||
* <small>'''text -''' текст вопроса</small> | * <small>'''text -''' текст вопроса</small> | ||
| | | style="width: 50%" |<small>Аналогично методу "POST/qas/chat".</small> | ||
|- | |- | ||
! style="color:blue;width: 15%" |'''GET/qas/questionlist/answers''' | ! style="color:blue;width: 15%" |'''GET/qas/questionlist/answers''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Отображает лог массовой обработки вопросов | ||
|- | |- | ||
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | | colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | ||
| | | style="width: 50%" |<small>на выходе :</small> | ||
<small>массив из объектов {</small> | <small>массив из объектов {</small> | ||
| Строка 135: | Строка 135: | ||
|- | |- | ||
! style="color:green;width: 15%" |'''POST/qas/questionlist/start''' | ! style="color:green;width: 15%" |'''POST/qas/questionlist/start''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Старт массовой обработки вопросов | ||
|- | |- | ||
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | | colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | ||
| | | style="width: 50%" | <small><nowiki>{error: 0 | 1, message: string}</nowiki></small> | ||
|- | |- | ||
! style="color:blue;width: 15%" |'''GET/qas/questionlist/status''' | ! style="color:blue;width: 15%" |'''GET/qas/questionlist/status''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Статус массовой обработки вопросов | ||
|- | |- | ||
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | | colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | ||
| | | style="width: 50%" |<small>{ error: string;</small> | ||
<small> status: 'started' | 'stopped';</small> | <small> status: 'started' | 'stopped';</small> | ||
| Строка 151: | Строка 151: | ||
|- | |- | ||
! style="color:blue;width: 15%" |'''GET/qas/questionlist/stop''' | ! style="color:blue;width: 15%" |'''GET/qas/questionlist/stop''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Остановка массовой обработки вопросов | ||
|- | |- | ||
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | | colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | ||
| | | style="width: 50%" | <small><nowiki>{error: 0 | 1, message: string}</nowiki></small> | ||
|- | |- | ||
! style="color:blue;width: 15%" |'''GET/qas/questionmaker/start''' | ! style="color:blue;width: 15%" |'''GET/qas/questionmaker/start''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Запуск генерации вопросов для кэша. <small>По каждому документу генерируются по 5 вопросов на фрагмент. Количество фрагментов зависят от размера документа и настройки размера контекста из конфигурационного файла. Если вопрос сильно похож на существующий, новый не создается, а добавляется к существующему в aliases.</small> | ||
|- | |- | ||
| colspan="2" style="width: 50%" | | | colspan="2" style="width: 50%" | | ||
* <small>'''category''' — категория, для которой выполнится генерация вопросов.</small> | * <small>'''category''' — категория, для которой выполнится генерация вопросов.</small> | ||
| | | style="width: 50%" | <small><nowiki>{error: 0 | 1, message: string}</nowiki></small> | ||
|- | |- | ||
! style="color:blue;width: 15%" |'''GET/qas/questionmaker/status''' | ! style="color:blue;width: 15%" |'''GET/qas/questionmaker/status''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Проверка состояния генерации. <small>Статусы''': started''', '''stopped.''' Если были ошибки поле ответа '''error''' будет содержать код ошибки</small> | ||
|- | |- | ||
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | | colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | ||
| | | style="width: 50%" |<small>{ "error": "",</small> | ||
<small> "status": "stopped",</small> | <small> "status": "stopped",</small> | ||
| Строка 174: | Строка 174: | ||
|- | |- | ||
! style="color:blue;width: 15%" |'''GET/qas/questionmaker/stop''' | ! style="color:blue;width: 15%" |'''GET/qas/questionmaker/stop''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Прервать генерацию. | ||
|- | |- | ||
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | | colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | ||
| | | style="width: 50%" | <small><nowiki>{error: 0 | 1, message: string}</nowiki></small> | ||
|- | |- | ||
! style="color:blue;width: 15%" |'''GET/qas/search''' | ! style="color:blue;width: 15%" |'''GET/qas/search''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Поиск фрагментов содержащих ответ | ||
|- | |- | ||
| colspan="2" style="width: 50%" | | | colspan="2" style="width: 50%" | | ||
| Строка 186: | Строка 186: | ||
* <small>'''category''' — категория (раздел) знаний. Допускается указание нескольких категорий через разделитель "|".</small> | * <small>'''category''' — категория (раздел) знаний. Допускается указание нескольких категорий через разделитель "|".</small> | ||
| | | style="width: 50%" |<small>{ "error": 0,</small> | ||
<small> "text": "</small> | <small> "text": "</small> | ||
| Строка 212: | Строка 212: | ||
|- | |- | ||
! style="color:green;width: 15%" |'''POST/qas/summarize''' | ! style="color:green;width: 15%" |'''POST/qas/summarize''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |<small>Построение протокола или краткого содержания совещания</small> | ||
|- | |- | ||
| colspan="2" style="width: 50%" | | | colspan="2" style="width: 50%" | | ||
| Строка 220: | Строка 220: | ||
* <small>'''file''' - файл с текстом (utf8 только текстовый формат)</small> | * <small>'''file''' - файл с текстом (utf8 только текстовый формат)</small> | ||
| | | style="width: 50%" |<small>{</small><small> "error": 0,</small> | ||
<small> "message": "success",</small> | <small> "message": "success",</small> | ||
| Строка 228: | Строка 228: | ||
<small>}</small> | <small>}</small> | ||
|- | |- | ||
! colspan=" | ! colspan="3" style="text-align: center" |'''<big>Группа методов channel</big>''' | ||
|- | |- | ||
! style="color:green;width: 15%" |'''POST/qas/channel/add''' | ! style="color:green;width: 15%" |'''POST/qas/channel/add''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Добавление канала. <small>В ответе id созданного канала или сообщение об ошибке</small> | ||
|- | |- | ||
| colspan="2" style="width: 50%" |<small>'''name''' — наименование канала</small> | | colspan="2" style="width: 50%" |<small>'''name''' — наименование канала</small> | ||
| | | style="width: 50%" |<small>{"error": 0,</small> | ||
<small>"message": "success",</small> | <small>"message": "success",</small> | ||
| Строка 240: | Строка 240: | ||
|- | |- | ||
! style="color:red;width: 15%" |'''DELETE/qas/channel/delete/{id}''' | ! style="color:red;width: 15%" |'''DELETE/qas/channel/delete/{id}''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Удаление канала | ||
|- | |- | ||
| colspan="2" style="width: 50%" |<small>'''id''' — идентификатор канала</small> | | colspan="2" style="width: 50%" |<small>'''id''' — идентификатор канала</small> | ||
| | | style="width: 50%" | <small>{ "error": 0, "message": "success" }</small> | ||
|- | |- | ||
! style="color:blue;width: 15%" |'''GET/qas/channel/list''' | ! style="color:blue;width: 15%" |'''GET/qas/channel/list''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Получить список всех каналов | ||
|- | |- | ||
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | | colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | ||
| | | style="width: 50%" |<small>{ "error": 0,</small> | ||
<small> "channels": [</small> | <small> "channels": [</small> | ||
| Строка 261: | Строка 261: | ||
|- | |- | ||
! style="color:green;width: 15%" |'''POST/qas/channel/modify/{id}''' | ! style="color:green;width: 15%" |'''POST/qas/channel/modify/{id}''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Изменить канал. <small>У канала пока есть только наименование, поэтому метод только переименовывает канал</small> | ||
|- | |- | ||
| colspan="2" style="width: 50%" | | | colspan="2" style="width: 50%" | | ||
| Строка 267: | Строка 267: | ||
* <small>'''id''' — идентификатор канала</small> | * <small>'''id''' — идентификатор канала</small> | ||
| | | style="width: 50%" |<small>{ "error": 0,</small> | ||
<small> "message": "success" }</small> | <small> "message": "success" }</small> | ||
|- | |- | ||
! colspan=" | ! colspan="3" style="text-align: center" |'''<big>Группа методов category</big>''' | ||
|- | |- | ||
! style="color:green;width: 15%" |'''POST/qas/category/add''' | ! style="color:green;width: 15%" |'''POST/qas/category/add''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |обавить категорию с указанным именем. <small>В ответе - id созданной категории или сообщение об ошибке:</small> | ||
|- | |- | ||
| colspan="2" style="width: 50%" | | | colspan="2" style="width: 50%" | | ||
* <small>'''name''' — наименование категории</small> | * <small>'''name''' — наименование категории</small> | ||
| | | style="width: 50%" |<small>{ "error": 0,</small> | ||
<small> "message": "success",</small> | <small> "message": "success",</small> | ||
| Строка 283: | Строка 283: | ||
|- | |- | ||
! style="color:red;width: 15%" |'''DELETE/qas/category/delete/{id}''' | ! style="color:red;width: 15%" |'''DELETE/qas/category/delete/{id}''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Удалить категорию. <small>В ответе или сообщении об успехе, или ошибке, если категория используется или не существует.</small> | ||
|- | |- | ||
| colspan="2" style="width: 50%" | | | colspan="2" style="width: 50%" | | ||
* <small>'''id''' - идентификатор категории</small> | * <small>'''id''' - идентификатор категории</small> | ||
| | | style="width: 50%" |<small>{ "error": 0,</small> | ||
<small> "message": "success" }</small> | <small> "message": "success" }</small> | ||
|- | |- | ||
! style="color:blue;width: 15%" |'''GET/qas/category/list''' | ! style="color:blue;width: 15%" |'''GET/qas/category/list''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Получить список категорий | ||
|- | |- | ||
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | | colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | ||
| | | style="width: 50%" |<small>В ответе json с именами и id категорий</small> | ||
|- | |- | ||
! style="color:green;width: 15%" |'''POST/qas/category/modify/{id}''' | ! style="color:green;width: 15%" |'''POST/qas/category/modify/{id}''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Изменить категорию. <small>У категории пока есть только наименование, поэтому метод только переименовывает категорию</small> | ||
|- | |- | ||
| colspan="2" style="width: 50%" | | | colspan="2" style="width: 50%" | | ||
* <small>'''id''' — идентификатор категории</small> | * <small>'''id''' — идентификатор категории</small> | ||
* <small>'''name''' — наименование категории</small> | * <small>'''name''' — наименование категории</small> | ||
| | | style="width: 50%" |<small>{ "error": 0,</small> | ||
<small> "message": "success" }</small> | <small> "message": "success" }</small> | ||
|- | |- | ||
! colspan=" | ! colspan="3" style="text-align: center" |'''<big>Группа методов doc</big>''' | ||
|- | |- | ||
! style="color:green;width: 15%" |'''POST/qas/doc/add''' | ! style="color:green;width: 15%" |'''POST/qas/doc/add''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Загрузить текстовый документ. <small>Добавляет документ в базу. В ответе - id созданного документа или сообщение об ошибке</small> | ||
|- | |- | ||
| colspan="2" style="width: 50%" | | | colspan="2" style="width: 50%" | | ||
| Строка 314: | Строка 314: | ||
* <small>'''category''' — категория документа</small> | * <small>'''category''' — категория документа</small> | ||
* <small>'''text'''</small> — <small>файл документа</small> | * <small>'''text'''</small> — <small>файл документа</small> | ||
| | | style="width: 50%" |<small>{"error": 0,</small> | ||
<small>"message": "success",</small> | <small>"message": "success",</small> | ||
| Строка 320: | Строка 320: | ||
|- | |- | ||
! style="color:red;width: 15%" |'''DELETE/qas/doc/delete/{id}''' | ! style="color:red;width: 15%" |'''DELETE/qas/doc/delete/{id}''' | ||
! colspan=" | ! 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>{"error": 0,"message": "success"}</small> | ||
|- | |- | ||
! style="color:blue;width: 15%" |'''GET/qas/doc/get/{id}''' | ! style="color:blue;width: 15%" |'''GET/qas/doc/get/{id}''' | ||
! colspan=" | ! 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>{</small> | ||
<small> "error": 0,</small> | <small> "error": 0,</small> | ||
| Строка 339: | Строка 339: | ||
|- | |- | ||
! style="color:blue;width: 15%" |'''GET/qas/doc/list''' | ! style="color:blue;width: 15%" |'''GET/qas/doc/list''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Получение списка имеющихся документов | ||
|- | |- | ||
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | | colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | ||
| | | style="width: 50%" |<small>Пример:</small> | ||
<small>{ "error": 0,</small> | <small>{ "error": 0,</small> | ||
| Строка 360: | Строка 360: | ||
|- | |- | ||
! style="color:green;width: 15%" |'''POST/qas/doc/modify/{id}''' | ! style="color:green;width: 15%" |'''POST/qas/doc/modify/{id}''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Обновление документа. <small>В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.</small> | ||
|- | |- | ||
| colspan="2" style="width: 50%" | | | colspan="2" style="width: 50%" | | ||
| Строка 378: | Строка 378: | ||
* <small>'''id''' — идентификатор документа.</small> | * <small>'''id''' — идентификатор документа.</small> | ||
| | | style="width: 50%" |<small>{"error": INT, "message": DESCRIPTION}</small> | ||
|- | |- | ||
! colspan=" | ! colspan="3" style="text-align: center" |'''<big>Группа методов question</big>''' | ||
|- | |- | ||
! style="color:green;width: 15%" |'''POST/qas/question/add''' | ! style="color:green;width: 15%" |'''POST/qas/question/add''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Добавление вопроса. <small>В случае успеха метод вернет id вопроса, в случае неудачи - код ошибки.</small> | ||
|- | |- | ||
| colspan="2" style="width: 50%" | | | colspan="2" style="width: 50%" | | ||
| Строка 397: | Строка 397: | ||
<small><code>["вопрос","еще вопрос"]</code></small> | <small><code>["вопрос","еще вопрос"]</code></small> | ||
| | | style="width: 50%" |<small>{</small> | ||
<small> "error": 0,</small> | <small> "error": 0,</small> | ||
| Строка 405: | Строка 405: | ||
|- | |- | ||
! style="color:green;width: 15%" |'''POST/qas/question/append/{id}''' | ! style="color:green;width: 15%" |'''POST/qas/question/append/{id}''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Добавляет алиасы/кандидаты к другому вопросу | ||
|- | |- | ||
| colspan="2" style="width: 50%" | | | colspan="2" style="width: 50%" | | ||
| Строка 413: | Строка 413: | ||
* <small>'''id''' - идентификатор вопроса к которому добавить синонимы и(или) кандидаты</small> | * <small>'''id''' - идентификатор вопроса к которому добавить синонимы и(или) кандидаты</small> | ||
| | | style="width: 50%" |<small><nowiki>{error: 0 | 1, message: string}</nowiki></small> | ||
|- | |- | ||
! style="color:green;width: 15%" |'''POST/qas/question/approve/{destination_id}''' | ! style="color:green;width: 15%" |'''POST/qas/question/approve/{destination_id}''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Перемещает кандидаты в формулировки другого вопроса | ||
|- | |- | ||
| colspan="2" style="width: 50%" | | | colspan="2" style="width: 50%" | | ||
| Строка 422: | Строка 422: | ||
* <small>'''destination_id''' - идентификатор вопроса</small> | * <small>'''destination_id''' - идентификатор вопроса</small> | ||
| | | 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=" | ! colspan="2" style="width: 85%" |Удаление списка вопросов или ответов. | ||
|- | |- | ||
| colspan="2" style="width: 50%" | | | colspan="2" style="width: 50%" | | ||
| Строка 431: | Строка 431: | ||
* <small>'''type''' - выбор, удалять вопросы или ответы ('''questions''', '''answers''')</small> | * <small>'''type''' - выбор, удалять вопросы или ответы ('''questions''', '''answers''')</small> | ||
| | | style="width: 50%" |<small>{"error": INT, "message": DESCRIPTION}</small> | ||
|- | |- | ||
! style="color:red;width: 15%" |'''DELETE/qas/question/delete/{id}''' | ! style="color:red;width: 15%" |'''DELETE/qas/question/delete/{id}''' | ||
! colspan=" | ! 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>{"error": INT, "message": DESCRIPTION}</small> | ||
|- | |- | ||
! style="color:blue;width: 15%" |'''GET/qas/question/get/{id}''' | ! style="color:blue;width: 15%" |'''GET/qas/question/get/{id}''' | ||
! colspan=" | ! 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>{ "error": 0,</small> | ||
<small> "answers": [</small> | <small> "answers": [</small> | ||
| Строка 463: | Строка 463: | ||
|- | |- | ||
! style="color:blue;width: 15%" |'''GET/qas/question/list''' | ! style="color:blue;width: 15%" |'''GET/qas/question/list''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Получение списка вопросов. | ||
|- | |- | ||
| colspan="2" style="width: 50%" | | | colspan="2" style="width: 50%" | | ||
| Строка 469: | Строка 469: | ||
* <small>'''answer''' - фильтр ответов</small> | * <small>'''answer''' - фильтр ответов</small> | ||
| | | style="width: 50%" |<small>{ "error": 0,</small> | ||
<small> "questions": [</small> | <small> "questions": [</small> | ||
| Строка 487: | Строка 487: | ||
|- | |- | ||
! style="color:green;width: 15%" |'''POST/qas/question/modify/{id}''' | ! style="color:green;width: 15%" |'''POST/qas/question/modify/{id}''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |Модификация вопроса. <small>Позволяет заменить как все параметры так и отдельные</small> | ||
|- | |- | ||
| colspan="2" style="width: 50%" | | | colspan="2" style="width: 50%" | | ||
| Строка 523: | Строка 523: | ||
* <small>'''id''' — идентификатор вопроса</small> | * <small>'''id''' — идентификатор вопроса</small> | ||
| | | style="width: 50%" |<small>В случае успеха метод вернет статус выполнения операции (например, «success»), в случае неудачи — код ошибки.</small> | ||
<small>{"error": INT, "message": DESCRIPTION}</small> | <small>{"error": INT, "message": DESCRIPTION}</small> | ||
|- | |||
| | |||
| colspan="2" | | |||
|- | |||
| colspan="2" | | |||
| | |||
|} | |} | ||
Версия от 15:41, 17 февраля 2025
В Общее описание
Сервис предназначен для поиска ответа на заданный вопрос. Входным значением для сервиса являются данные в текстовом формате. В ответ на входящий запрос сервис возвращает данные в формате JSON.
Термины и определения
Question Answering System (QAS) – сервис ответов на вопросы.
Описание методов API
Сервис QAS доступен по протоколу HTTP 1.1 через порт 6187/tcp. Авторизация не требуется, но все запросы должны содержать заголовок "accept: application/json". Ответ сервиса возвращается в формате JSON. Если произошла ошибка, возвращается переменная «error=1» и описание ошибки в переменной «message». Для удобства тестирования и использования методов сервиса, по адресу http://АДРЕС:6187 доступен интерфейс Swagger, который позволяет просматривать и тестировать все доступные методы из таблицы ниже.
| Группа методов qas | ||
|---|---|---|
| GET/qas/ask | Метод генерирует ответ на поставленный вопрос на основе информации из документов в базе. Ответ на вопрос генерируется на основе информации, содержащейся в одном или нескольких документах. Документы должны быть в текстовом формате. Ответ возвращается в формате JSON, его можно скачать. Если метод не смог найти ответ, возвращается код ошибки и сообщение. | |
возможные варианты: - "no" не использовать - "all" использовать все - "checked" использовать только проверенные
|
{
"error": 0, "text": "Здесь будет текст ответа" } | |
| POST/qas/autocache | Добавление вопросно-ответной пары в кэш.
В случае указания id, answer будет принудительно добавлен в вопрос, с указанным id. Если же указан question, то система сначала попытается найти похожий вопрос и добавить ответ в него, если же вопрос не будет найден, то система создаст новый с указанной формулировкой. При установке флага emptyQuestion будет добавлен только вопрос (без ответа). Флаг addAlias отвечает за добавление/не добавление кандидата в формулировки существующего вопроса в случае, если в базе уже найден вопрос, сооветствующий указанному в question. | |
|
{"error": 0, "message": "success"} | |
| 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/chat | Поиск ответа за пределами документов. На стадии разработки, не используется. | |
|
Пример ответа на вопрос "как пройти в библиотеку"
{"error": 0, "text": "1. Проверить время работы библиотеки (обычно от 9 до 20)\n2. Проверить местоположение библиотеки на карте или с помощью сервиса Google Maps\n3. Убедиться, что у вас есть необходимые документы для входа (паспорт, карта члена библиотеки и т.д.)\n4. Посетить библиотеку по адресу: [адрес библиотеки]\n5. Проверить правила поведения в библиотеке перед входом" } | |
| GET/qas/chat | Поиск ответа за пределами документов. Аналогичен методу "POST/qas/chat". Не поддерживает большие тексты.На стадии разработки, не используется. | |
|
Аналогично методу "POST/qas/chat". | |
| GET/qas/questionlist/answers | Отображает лог массовой обработки вопросов | |
| Входные параметры отсутствуют | на выходе :
массив из объектов { error: number; question: string; answer: string; confidence: number | null; } | |
| POST/qas/questionlist/start | Старт массовой обработки вопросов | |
| Входные параметры отсутствуют | {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. | |
|
{error: 0 | 1, message: string} | |
| GET/qas/questionmaker/status | Проверка состояния генерации. Статусы: started, stopped. Если были ошибки поле ответа error будет содержать код ошибки | |
| Входные параметры отсутствуют | { "error": "",
"status": "stopped", "progress": 0 } | |
| GET/qas/questionmaker/stop | Прервать генерацию. | |
| Входные параметры отсутствуют | {error: 0 | 1, message: string} | |
| GET/qas/search | Поиск фрагментов содержащих ответ | |
|
{ "error": 0,
"text": " Фрагмент 1:Здесь будет текст найденного фрагмента Фрагмент 2:Здесь будет текст найденного фрагмента", "fragments": [ { "id": "3a386b0a9e0e19efb0870685e1d0b484", "title": "Заголовок документа", "category": "Категория документа", "text": "Здесь будет текст найденного фрагмента" }, { "id": "44fd73ea1ac63f32cf18d79c854dbfe2", "title": "Заголовок документа", "category": "Категория документа", "text": "Здесь будет текст найденного фрагмента" } ] } | |
| POST/qas/summarize | Построение протокола или краткого содержания совещания | |
|
{ "error": 0,
"message": "success", "summary": "здесь текст протокола" } | |
| Группа методов channel | ||
| 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} | Изменить канал. У канала пока есть только наименование, поэтому метод только переименовывает канал | |
|
{ "error": 0,
"message": "success" } | |
| Группа методов category | ||
| 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" } | |
| Группа методов doc | ||
| 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} | |
| Группа методов question | ||
| POST/qas/question/add | Добавление вопроса. В случае успеха метод вернет id вопроса, в случае неудачи - код ошибки. | |
|
{
"error": 0, "id": "527be9f0-f773-4a3e-bd0b-81b40a061d0d" } | |
| POST/qas/question/append/{id} | Добавляет алиасы/кандидаты к другому вопросу | |
|
{error: 0 | 1, message: string} | |
| POST/qas/question/approve/{destination_id} | Перемещает кандидаты в формулировки другого вопроса | |
|
{error: 0 | 1, message: string} | |
| 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} | |