- Наименование ИС: Виртуальный помощник студента ТюмГУ
- Заказчик: ФГАОУ ВО «Тюменский государственный университет», управление по сопровождению студентов «Единый деканат»
- Исполнитель: Деканадзе Даниил Давидович, Низамов Тимур Дамирович, Герасимов Константин Сергеевич, Сидоров Владислав Евгеньевич, Редикульцев Андрей Александрович (лицензия MIT)
- Назначение ИС: предоставление обучающимся справочной информации из корпоративной вики-системы Confluence и ответы на произвольные вопросы посредством диалогов VK и Telegram
- Обработка и отправка сообщений в чат-ботах:
- в параллельном режиме через LongPoll API должны работать чат-боты в VK и Telegram;
- перед началом работы пользователь должен быть уведомлен об использовании ИИ для генерации ответов и обработке персональных данных;
- пользователю должна быть предоставлена возможность подписки (отписки) на информационные сообщения;
- параметры подключения к LongPoll API VK и Telegram указываются в переменных окружения.
- Предоставление справочной информации из структуры корпоративной вики-системы:
- по запросу пользователя чат-бот должен отправлять справочное меню, повторяющее структуру страниц основного пространства корпоративной вики-системы, имеющих тег (метку) «справка»;
- если выбранная пользователем чат-бота страница содержит дочерние, вывести меню с дочерними страницами, иначе – текст страницы, включая параграфы, нумерованные и маркированные списки;
- для уменьшения количества запросов к вики-системе необходимо использовать почасовое кеширование вызываемых пунктов меню (подменю и контента страниц);
- кодовое название основного пространства Confluence указывается в переменных окружения.
- Ответ на произвольные вопросы студентов с опорой на документы из корпоративной вики-системы:
- генерировать ответ на сообщение (вопрос) пользователя необходимо в случае, если выполняются все условия:
- сообщение не соответствует командам чат-бота,
- в сообщении больше 3 символов,
- за последнюю минуту пользователь задал менее 5 вопросов;
- при генерации ответов необходимо опираться на текст (фрагмент текста) документа из корпоративной вики-системы, в котором может быть ответ на вопрос пользователя, при этом документ не должен иметь дочерних страниц, в противном случае он является навигационным и не содержит полезных сведений;
- документ вики-системы может представлять собой как HTML-страницу, так и PDF-файл с текстовым слоем;
- допускается создание отдельного поискового хранилища текстов (фрагментов текстов) документов из вики-системы с частотой обновления не более 24 часов;
- если ответа на вопрос пользователя нет, необходимо отправить пользователю сообщение с просьбой переформулировать вопрос или задать другой;
- сообщение с ответом на вопрос должно содержать ссылку на источник в корпоративной вики-системе;
- в случае получения ответа на вопрос, пользователю необходимо предложить оценить ответ: нравится/не нравится;
- если генерация ответа в среднем занимает больше секунды, необходимо отправить пользователю сообщение с предупреждением о задержке, пока не будет готов ответ;
- параметры подключения к сервису генеративной модели и корпоративной вики-системе указываются в переменных окружения.
- генерировать ответ на сообщение (вопрос) пользователя необходимо в случае, если выполняются все условия:
- Накопление данных о пользователях и вопросах для последующей обработки:
- в базе данных должны храниться сведения о пользователях:
- ID VK или Telegram,
- согласие на получение информационных сообщений;
- в базе данных должны храниться сведения о заданных вопросах и полученных ответах:
- текст вопроса,
- текст ответа, если ответ не найден – пустая строка,
- ссылка на источник в вики-системе, если ответ не найден – NULL,
- оценка пользователя;
- все записи в БД должны иметь поля времени создания и обновления.
- в базе данных должны храниться сведения о пользователях:
- Обработка вопросов пользователей с помощью административной панели помощника:
- Отображение сводки использования чат-ботов виртуального помощника студента за определенный пользователем период:
- количество новых пользователей по дням (столбчатая диаграмма);
- количество заданных вопросов по дням (столбчатая диаграмма);
- количество задавших вопросы пользователей по дням (столбчатая диаграмма);
- оценки ответы на вопросы и вопросы без ответа (круговая диаграмма);
- кол-во пользователей, согласившихся получать рассылку информационных сообщений.
- Вывод сгруппированных по темам вопросов за определённый период с выделением ключевых слов, при этом возможна фильтрация по категориям:
- вопросы без ответа;
- низкая оценка ответа;
- высокая оценка ответа;
- ответы не оценены.
- Отображение сводки использования чат-ботов виртуального помощника студента за определенный пользователем период:
- Дополнительный функционал административной панели, позволяющий взаимодействовать с вики-системой и непосредственно пользователями чатбота:
- организация рассылки информационных сообщений сообщений пользователям чат-ботов виртуального помощника;
- переиндексация документов из корпоративной вики-системы для ответов на вопросы в базе данных виртуального помощника;
- авторизация посредством корпоративной службы Active Directory Federation Services с возможностью добавления и удаления администраторов в настройках панели;
Рис. 1. Архитектура приложения
Архитектура приложения (рис. 1) состоит из четырёх составляющих: микросервис работы с LongPoll API чат-ботов VK и Telegram (Chatbot), микросервис ответа на вопрос по документам (QA), веб-приложение, с которым взаимодействует администратор (Adminpanel), база данных. Каждая составляющая вынесена в отдельный Docker-контейнер.
Chatbot взаимодействует с API вики-системы Confluence для получения справочной информации и LongPoll API VK и Telegram. QA взаимодействует с API вики-системы Confluence для получения документов при формировании векторного хранилища документов и API большой языковой модели сервиса GigaChat от Сбера для генерации ответов. Панель администратора взаимодействует с микросервисами и базой данных, чтобы провести аналитику вопросов. Также администратор может произвести ручную синхронизацию документов на Confluence.
Important
В отдельный Docker-контейнер db-migrate
вынесен сервис создания миграций баз данных. Синхронизация между базой данных и моделями ORM микросервисов должна осуществляться путём миграций.
- OS с предустановленными Docker, Docker compose
- CPU: 2 GHz, 2 ядра
- RAM: 6 GB
- Disk: 20 GB
Пример файла с переменными среды представлен в .env.example в корне репозитория.