Чтобы начать работу с чат-ботом Поисковик Компетенций необходимо выполнить одно из следующих действий:
help
;help
.
После выполнения любого из описанных действий создастся личный чат с ботом Поисковик компетенций.
Внимательно прочитайте выведенное сообщение. В нем указана информация о:
В сообщении также указано несколько примеров запросов.
Чтобы снова вызвать данное сообщение достаточно написать боту команду help
еще раз.
Для формирования запроса достаточно перечислить необходимые компетенций через запятую или запятую с пробелом и отправить текст боту. Количество компетенций, которое можно перечислить не ограничено, но для лучших результатов рекомендуется использовать от 1 до 3 компетенций.
Пример ответа на запрос python, ML, Docker
:
После получения поискового запроса чат-бот создает ответное сообщение.
В тексте сообщения дублируется изначальный запрос, также указано напоминание о форматировании и о возможности отправки отзыва о качестве сформированных сервисом результатов.
Также выводится сообщение о том, что для тех пользователей, которые не пользовались корпоративным чатом Zulip, указывается префикс корпоративной почты, как это показано на рисунке.
В ответе чат-бота выводятся наиболее релевантные пользователи в виде раскрываемых блоков с именами (либо с префиксами почтовых адресов).
Каждый блок хранит в себе информацию, по которой поисковик принял решение о выводе пользователя в поисковую выдачу. Для отображения полной информации достаточно кликнуть на блок.
Пример отображаемой информации при раскрытии блока внутри данной статьи:
По данным кабинета, данный кандидат имеет следующий статус: Учащийся, Бакалавриат
Проекты, в которых участвовал пользователь по данным Кабинета МИЭМ
:
Поисковик компетенций, чат проекта по ссылке
Пример сообщений Zulip
:
Пример раскрываемого блока в чате Zulip
:
В отображаемой информации может быть информация о:
Также может быть приведена информация об ошибках доступа к одному из сервисов. Это означает, что Поисковик компетенций не смог использовать данные сервиса для формирования поискового ответа (что не говорит о том, что сам сервис не работает).
Для тех пользователей, которые ранее пользовались Zulip, есть возможность отобразить карточку пользователя при нажатии на его имя:
В карточке есть возможность написать личное сообщение пользователю (кнопка Отправить личное сообщение).
Для того, чтобы отправить обратную связь, достаточно воспользоваться функцией Ответить с цитированием:
Функция Ответить с цитированием формирует размеченное сообщение с цитатой ответа чат-бота. Курсор автоматически выставляется в конец сообщения (после цитаты). В этом сообщении можно отправить отзыв о качестве работы чат-бота при ответе на ваш поисковый запрос. Пример составления отзыва:
После отправки отзыва бот выдаст сообщение об успешной отправке:
Поиск производится по следующим источникам информации:
Каждый источник информации обрабатывается по-разному.
Каждый источник имеет разный "вес" в сервисе. Больше всего имеют значения данные из Личного Кабинета МИЭМ, меньше всего - данные из Zulip.
Открытое API сервиса Поисковик компетенций представляет собой список HTTP
запросов, принимающих и возвращающих результат в архитектурном стиле REST
.
Для отправки запросов может быть использована любая программа или библиотека, способная отправлять и принимать запросы по протоколу HTTP
.
Примеры программ: curl, Postman, Insomnia.
Примеры библиотек для языка Python
: requests
, aiohttp
.
Адрес сервера «Поисковика компетенций» – 34.118.4.219
, порт 80
, протокол – HTTP
.
Описание всех доступных запросов приведено в таблице:
URL и метод запроса | Описание |
---|---|
/ping GET |
Запрос, возвращающий JSON строку, содержащей все ответы модулей-обработчиков на запрос GET /ping. Используется в отладочных целях. Возвращает ответ HTTP со статусом 200 («Ok», «Успешно»). |
/help GET |
Запрос на получение справочной информации. Возвращает информацию в виде JSON строки, где по ключу message находится строка со справочной информацией. HTTP статус ответа – 200 («Ok», «Успешно»). |
/users GET |
Запрос на поиск кандидатов. В параметрах запроса должно быть задано ключевое слово query со значением в виде строки (поисковой запрос). Опционально можно передать параметр more . Если его значение равно true , запрос вернет дополнительную информацию. В случае отсутствия параметра query возвращает ответ с HTTP статусом 400 («Bad request», «Неправильный, некорректный запрос»). Иначе возвращает JSON ответ с HTTP статусом 200 («Ok», «Успешно»). |
/feedback POST |
Запрос, сохраняющий обратную связь. В теле запроса должна находиться JSON строка с ключами bot_answer , user_answer и user_info . |
Формат JSON
ответа на запрос GET
/ping:
{
"cabinet": {
"alert_message": "Could not connect to the service container.",
"status_code": 503
},
"wiki" : {
"status_code": 200
},
"zulip": {
"status_code": 200
}
}
В возвращаемом объекте JSON
представлены ответы всех модулей-обработчиков данных на запрос GET
/ping. Если значение поля status_code
внутри объектов по ключу с именем сервиса равно 200
(«Ok», «Успешно»), обработчик доступен поисковику. Иначе модуль-обработчик не доступен поисковику и его данные не будут использованы для выполнения запроса.
Формат JSON
ответа на запрос GET
/users:
{
"data": [
{
"email_prefix": "user_1",
"total_score": 1.0,
"wiki_score": 0.7,
"zulip_score": 4.3
},
{
"email_prefix": "user_2",
"total_score": 0.8,
"wiki_score": 0.4,
"zulip_score": 6.2
},
],
"cabinet": {
"alert_message": "Could not connect to the service container.",
"status_code": 503
}
}
Обязательным ключом корневого объекта JSON
является ключ data
. Он содержит массив, отсортированный по убыванию значения total_score
(итоговой оценки релевантности).
Элементами массива являются объекты, содержащие префикс корпоративной почты пользователя, оценку релевантности каждого модуля-обработчика, суммарную оценку релевантности пользователя и дополнительную информацию (если в параметрах запроса был указан параметр more
со значением true
).
В случае, если модуль-обработчик не смог обработать запрос, к корневому объекту JSON
добавляется ключ с названием сервиса. В нем хранится объект, содержащий сообщение-предупреждение, а также HTTP
статус ошибки 503
– «Service unavailable», «Сервис недоступен».