Математические структуры и моделирование 2020. №3(55). С. 117-122
УДК 004.55, 004.584, 004.623, 378 DOI 10.24147/2222-8772.2020.3.117-122
ЧАТ-БОТ ВКОНТАКТЕ «РАСПИСАНИЕ ЗАНЯТИЙ ОМГУ»
Омский государственный университет им. Ф.М. Достоевского, Омск, Россия
Аннотация. Речь в статье идёт о разработке чат-бота в социальной сети «ВКонтакте» для формирования расписания занятий ОмГУ. Чат-бот отображает пользователю расписание занятий по имени группы или имени преподавателя.
Ключевые слова: чат-бот, vk.com, расписание занятий.
Введение
Чат-бот - это виртуальный собеседник в мессенджере, который может имитировать коммуникацию с пользователями на естественном языке [3]. В Омском государственном университете идёт внедрение «1С: Автоматизированное составление расписания. Университет» [1,2]. Стандартные функции продукта не позволяют автоматически публиковать расписание занятий на сайте вуза, поэтому был придуман механизм обмена данными через xml-файл. Данные из этого файла используются для работы чат-бота в сети «ВКонтакте».
Этапы работы
Разработка и запуск бота разделялись на несколько этапов:
1. Создание группы в социальной сети «ВКонтакте» и получение «Ключа доступа»
2. Проектирование архитектуры.
3. Разработка чат-бота.
4. Тестирование чат-бота.
5. Размещение бота на сервере.
Набор технологий и платформы для разработки:
• Язык программирования: Python;
Т.А. Дейнеко
к.т.н., доцент, e-mail: DeinekoTA@omsu.ru Д.А. Бобров
студент, e-mail: bobrov1437@gmail.com
• Парсинг данных: библиотека BeautifulSoup 4;
• Сервис контроля версий: Github;
• Хранение данных: СУБД PostgreSQL;
• Хостинг чат-бота: Heroku.
На первом этапе была создана «Группа» в социальной сети «ВКонтакте» и «Ключ доступа», который позволил взаимодействовать с функционалом социальной сети через код программы.
На втором этапе спроектирована архитектура чат-бота. Использовались возможности Python. Приложение обрабатывает события пользователей при помощи технологии LongPoll от API «ВКонтакте», анализирует полученные данные и отправляет ответ пользователю [4].
Далее был разработан чат-бот, проведено тестирование возможностей функционала, найдены и исправлены ошибки.
В итоге чат-бот размещён на хостинг-сервисе Heroku [5], создана база данных в СУБД PostgreSQL.
Хранение данных
Для реализации данного чат-бота потребовалось создать базу данных, чтобы хранить userlD пользователя, имя группы и имя преподавателя, которые вводит пользователь. Также необходимо хранить результат извлечённых данных из XML-документа, то есть расписание занятий для студентов.
Для хранения данных используется реляционная система хранения базы данных PostgreSQL.
Для хранения данных пользователей (userlD, имя группы и имя преподавателя) и данных о расписании занятий (название дисциплины, время, имя аудитории, имя группы, имя преподавателя) были созданы таблицы: users, schedule, timewindow, teachers, rooms.
Структурная схема базы данных показана на рисунке ниже (см. рис. 1).
Обработка запросов пользователя
Взаимодействие бота с пользователем происходит путём обмена сообщениями. Для корректной обработки данных необходимо убедиться, что нам пришли корректные данные от серверов «ВКонтакте».
Прослушивание сервера осуществляется при помощи технологии LongPoll.
Когда сервер принимает новое сообщения от пользователя, чат-боту необходимо провести обработку сообщения: найти пользователя в базе данных, проверить, является ли сообщение пользователя командой, номером группы или именем преподавателя. После обработки сообщения пользователя вызываются функции вывода пользователю расписания занятий на соответствующий день недели или регистрация нового пользователя в базе данных.
schedule
discipline CHARACTER VARYING(150)
teacherindex INTEGER /
Piimid INTEGER /
narnegroup CHARACTER VARYING(20J
indextime INTEGER /
users
userid INTEGER
narnegroup CHARACTER VARYING(20)
nanneteacher CHARACTER VARYING(35)
teachers
teacherld INTEGER
narneteacher CHARACTER VARYING(25)
roorriid INTEGER
ihortnarne CHARACTER VARYING(15)
time window
indextime INTEGER
datetimes CHARACTER VARYING(11)
datefrorn CHARACTER VARYING(6)
dateto CHARACTER VARYING{6)
Рис. 1. Схема базы данных
Для обработки сообщения пользователя был создан класс VkBot. Класс имеет следующие функции:
• registrationUser(self, message) — добавляет имя группы и имя преподавателя пользователя в базу данных;
• checkUser(self) — проверяет, зарегистрирован пользователь в базе данных или нет;
• newMessage(self, message) — обработка новых сообщений пользователей, последующая обработка их и отправка ответов пользователю;
getSchedule(self, name, mode) — метод возвращает расписание занятий пользователю. Параметр name может содержать имя группы или имя преподавателя. Параметр mode может включать три варианта: «Today», «NextDay», «Week».
Чтобы начать взаимодействие с чат-ботом, пользователю необходимо пройти регистрацию в базе данных. Сделать это можно путем отправки сообщения чат-боту с именем группы или именем преподавателя. После этого чат-бот будет искать полученный запрос в базе данных, в таблице schedule в поле group (для поиска имени группы) или в таблице teachers в поле shortname (если запрос является именем преподавателя). После этого бот добавляет пользователя в таблицу users и пользователю становятся доступны команды для вывода расписания занятий: «на сегодня», «на завтра», «на неделю». На рисунке ниже (см. рис. 2) показан алгоритм регистрации пользователя.
Рис. 2. Алгоритм регистрации пользователя
Демонстрация работы
Ответы чат-бота имеют свой шаблон, например, расписание на один день (сегодня/завтра) или неделю.
Примеры ответов чат-бота приведены ниже (см. рис. 3 и рис. 4).
©Расписание занятий ОмГУ 15:50
Среда 9Ё 13.05.2020
09:45-11:20
^Образовательные технологии в социальной работе Прак а кожей с к § в 2-403
©11:30-13505
^Социальная психодиагностика ИПракт
Ашурлакован.а.
Л в 2-217
13:45-15:20 ^Социальная психодиагностика Прак хшурлакован.а. § в 2-217
Рис. 3. Структура расписания занятий на день на десктопной версии «ВКонтакте»
Расписание занятий ОмГУ -
Рис. 4. Структура расписания занятий на день в мобильной версии «ВКонтакте»
Заключение
В предстоящем учебном семестре планируется запустить полученный чат-бот в опытную эксплуатацию в Омском государственном университете им. Ф.М. Достоевского.
Литература
1. Дейнеко Т.А. Переход к автоматизированному составлению расписания учебного процесса в ОмГУ // Математическое и компьютерное моделирование, сборник материалов VI Международной научной конференции, посвященной памяти Б.А. Рогозина. Омск, 2018. С. 170-171.
2. Дейнеко Т.А., Епанчинцева О.Л. Особенности перехода от ручного к автоматизированному составлению расписания в ОмГУ // Омские научные чтения. 2019. Материалы Третьей Всероссийской научной конференции. Омск, 2019. С. 932-934.
3. Что такое чат-бот // The StartUp. URL: https://medium.com/swlh/ what-is-a-chatbot-and-how-to-use-it-for-your-business-97 6ec2e0a99f (дата обращения 02.05.2020).
4. User Long Poll API // ВКонтакте. URL: https://vk.com/dev/using_ longpoll (дата обращения 03.05.2020).
5. Kaffeine. URL: https://kaffeine.herokuapp.com/ (дата обращения 01.05.2020).
VKONTAKTE CHATBOT "OMSU CLASS SCHEDULE"
T.A. Deineko
Ph.D.(Eng.), Associate Professor, e-mail: DeinekoTA@omsu.ru
D.A. Bobrov
student, e-mail: bobrov1437@gmail.com
Dostoevsky Omsk State University, Omsk, Russia
Abstract. This article is about the development of a chatbot in the social network "VKontakte" for the schedule of classes at OmSU. The chatbot displays the class schedule to the user by the name of the group or the name of the teacher.
Keywords: chat-bot, VK.com, schedule of classes.
References
1. Deineko T.A. Perekhod k avtomatizirovannomu sostavleniyu raspisaniya uchebnogo protsessa v OmGU. Matematicheskoe i komp'yuternoe modelirovanie, sbornik materi-alov VI Mezhdunarodnoi nauchnoi konferentsii, posvyashchennoi pamyati B.A. Rogoz-ina, Omsk, 2018, pp. 170-171. (in Russian)
2. Deineko T.A. and Epanchintseva O.L. Osobennosti perekhoda ot ruchnogo k avtomatizirovannomu sostavleniyu raspisaniya v OmGU. Omskie nauchnye chteniya, 2019, Materialy Tret'ei Vserossiiskoi nauchnoi konferentsii, Omsk, 2019, pp. 932-934. (in Russian)
3. Chto takoe chat-bot. The StartUp. URL: https://medium.com/swlh/ what-is-a-chatbot-and-how-to-use-it-for-your-business-97 6ec2e0a99f.
4. User Long Poll API. VKontakte. URL: https://vk.com/dev/using_longpoll (data obrashcheniya 03.05.2020). (in Russian)
5. Kaffeine. URL: https://kaffeine.herokuapp.com/ (data obrashcheniya 01.05.2020).
Дата поступления в редакцию: 04.08.2020