Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • C competence search
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • 240 Поисковик компетенций
  • competence search
  • Wiki
  • Руководство разработчика

Руководство разработчика · Changes

Page history
2 done authored May 12, 2021 by Григорий Хромов's avatar Григорий Хромов
Hide whitespace changes
Inline Side-by-side
Руководство-разработчика.md
View page @ 766bba48
......@@ -143,24 +143,34 @@
В случае, если модуль-обработчик не смог обработать запрос, к корневому объекту `JSON` добавляется ключ с названием сервиса. В нем хранится объект, содержащий сообщение-предупреждение, а также `HTTP` статус ошибки `503` – «Service unavailable», «Сервис недоступен».
## 2.3 Описание алгоритма и принципа работы микросервиса «Gtable»
## 2.3 Описание алгоритма и принципа работы микросервиса Gtable
Алгоритм работы микросервиса по сбору обратной связи можно описать следующей последовательностью действий:
1) Ожидание запроса на сохранение обратной связи;
2) Получение запроса микросервисом «Gtable», отправка данных обратной связи, указанных в запросе, в заранее заготовленную таблицу Google;
3) Отправка сообщению клиенту об успешном сохранении данных обратной связи.
Запросы локального REST API данного микросервиса представлены в таблице 3.
1. Ожидание запроса на сохранение обратной связи;
2. Получение запроса, отправка данных обратной связи, указанных в запросе, в заранее заготовленную таблицу Google ([код](https://git.miem.hse.ru/240/competence-search/-/blob/c911531e19c93a1f7a0dc6b70b70c419284db23d/gtable/src/main.py#L32));
3. Отправка сообщению клиенту об успешном сохранении данных обратной связи.
Запросы локального `REST API` данного микросервиса представлены в таблице:
| URL и метод запроса | Описание |
| ------ | ------ |
| /ping (GET) | Запрос, возвращающий пустую JSON строку. Используется в отладочных целях. Возвращает ответ HTTP со статусом 200 («Ok», «Успешно»). |
| /feedback (POST) | Запрос, сохраняющий обратную связь. В теле запроса должна находиться JSON строка. Корневой объект должен иметь ключи: «bot_answer» (ответ бота, результат поиска), «user_answer» (отзыв пользователя) и «user_info» (информация о пользователе). В случае успешного сохранения возвращает ответ HTTP со статусом 200 («Ok», «Успешно»). В случае ошибки в теле запроса возвращает ответ HTTP со статусом 400 («Bad request», «Неправильный, некорректный запрос»). |
| `GET` **/ping** ([код](https://git.miem.hse.ru/240/competence-search/-/blob/c911531e19c93a1f7a0dc6b70b70c419284db23d/gtable/src/main.py#L27)) | Запрос, возвращающий пустую `JSON` строку. Используется в отладочных целях. Возвращает ответ `HTTP` со статусом `200` («Ok», «Успешно»). |
| `POST` **/feedback** ([код](https://git.miem.hse.ru/240/competence-search/-/blob/c911531e19c93a1f7a0dc6b70b70c419284db23d/gtable/src/main.py#L32)) | Запрос, сохраняющий обратную связь. В теле запроса должна находиться `JSON` строка. Корневой объект должен иметь ключи: `bot_answer` (ответ бота, результат поиска), `user_answer` (отзыв пользователя) и `user_info` (информация о пользователе). В случае успешного сохранения возвращает ответ `HTTP` со статусом `200` («Ok», «Успешно»). В случае ошибки в теле запроса возвращает ответ `HTTP` со статусом `400` («Bad request», «Неправильный, некорректный запрос»). |
## 2.4 Описание алгоритма и принципа работы микросервиса Zulip bot
## 2.4 Описание алгоритма и принципа работы микросервиса «Zulip bot»
Алгоритм работы чат бота представлен на рисунке.
![image](uploads/d25982f515272bb1d96f3bcdee46c443/image.png)
В начале работы чат-бот читает файл с реквизитами. Затем запускается цикл ожидания сообщений. При поступлении сообщения чат-бот определяет тип сообщения. Если сообщение является обратной связью, бот вычленяет отзыв пользователя из сообщения, собирает информацию о пользователе и запоминает поисковой ответ. Далее бот отправляет информацию об обратной связи главному микросервису «Competence Search», а также отправляет сообщение пользователю об успешной отправке обратной связи. Если сообщение пользователя является командой, пользователю отправляется сообщение, содержащее справочную информацию. Если сообщение не является командой или сообщением обратной связи, бот классифицирует сообщение как поисковой запрос. После этого бот отправляет данное сообщение главному микросервису «Comptence Search». После получения ответа от главного микросервиса бот форматирует полученные данные и отправляет пользователю ответ. В конце всех операций бот возвращается в режим ожидания новых сообщений.
В начале работы чат-бот читает файл с реквизитами (о файлах с реквизитами можно прочитать [здесь](Руководство-администратора#31-необходимые-файлы-с-реквизитами)).
Затем запускается цикл ожидания сообщений. При поступлении сообщения чат-бот определяет тип сообщения. Если сообщение является обратной связью ([код](https://git.miem.hse.ru/240/competence-search/-/blob/c911531e19c93a1f7a0dc6b70b70c419284db23d/chat_bot/src/main.py#L124)), бот вычленяет отзыв пользователя из сообщения, собирает информацию о пользователе и запоминает поисковой ответ. Далее бот отправляет информацию об обратной связи главному микросервису **Competence Search**, а также отправляет сообщение пользователю об успешной отправке обратной связи.
Если сообщение пользователя является командой ([код](https://git.miem.hse.ru/240/competence-search/-/blob/c911531e19c93a1f7a0dc6b70b70c419284db23d/chat_bot/src/main.py#L140)), пользователю отправляется сообщение, содержащее справочную информацию.
Если сообщение не является командой или сообщением обратной связи ([код](https://git.miem.hse.ru/240/competence-search/-/blob/c911531e19c93a1f7a0dc6b70b70c419284db23d/chat_bot/src/main.py#L142)), бот классифицирует сообщение как поисковой запрос. После этого бот отправляет данное сообщение главному микросервису **Comptence Search**. После получения ответа от главного микросервиса бот форматирует полученные данные ([код](https://git.miem.hse.ru/240/competence-search/-/blob/c911531e19c93a1f7a0dc6b70b70c419284db23d/chat_bot/src/main.py#L166)) и отправляет пользователю ответ. В конце всех операций бот возвращается в режим ожидания новых сообщений.
# 3 Подгрузка данных из сервисов и начальная предобработка
......
Clone repository
  • Home
  • Архитектура проекта
  • Руководство администратора
  • Руководство разработчика