Научная статья на тему 'РАЗРАБОТКА ЧАТ-БОТА НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ PYTHON В МЕССЕНДЖЕРЕ "TELEGRAM"'

РАЗРАБОТКА ЧАТ-БОТА НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ PYTHON В МЕССЕНДЖЕРЕ "TELEGRAM" Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
4543
537
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РАЗРАБОТКА / ЧАТ-БОТ / ПРОГРАММНАЯ ИНЖЕНЕРИЯ / PHYTON / TELEGRAM-BOT

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Шумилина Мария Александровна, Коробко Анна Владимировна

В статье рассматривается разработка чат-бота, на основе существующей методологии Agile, поддерживающая информационный поток на основе продвижения обучения востребованным IT - профессиям, с помощью интерактивного тестирования и рекламы в телеграм-канале. Существующие методики для разработки чат - ботов ограничиваются лишь внесением уже разработанных команд в конструкторе чат - ботов, либо шаблонной программы, в которой необходимо заполнить лишь некоторые информационные поля, поэтому данные методики не применимы к области разработки программного продукта. Приведено решение задач по: поиску информации, организации обратной связи, а также наполнение актуальным контентом чат-бота. Особенностью разработки интеллектуального помощника является разделение ролей на пользователя и администратора (модератора чат-бота), определяемого по индивидуальному номеру на основе которого осуществляется наполнение контента с помощью прописанных команд для бота. Для обеспечения обратной связи с пользователем разработан простой сценарий, позволяющий получить информацию о пользователе: ФИО, номер телефона, локацию.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DEVELOPMENT OF A CHATBOT IN THE PYTHON PROGRAMMING LANGUAGE IN THE TELEGRAM MESSENGER

The article discusses the development of a chatbot based on the existing Agile methodology, which supports the information flow based on the promotion of training in popular IT professions, using interactive testing and advertising in the telegram channel. The existing methods for developing chatbots are limited only to introducing already developed commands in the chatbot designer, or a template program in which only some information fields need to be filled in, so these methods are not applicable to the field of software product development. The solution of the tasks of: finding information, organizing feedback, as well as filling the chatbot with relevant content is given. A feature of the development of an intelligent assistant is the separation of roles into a user and an administrator (moderator of a chatbot), determined by an individual number on the basis of which content is filled using prescribed commands for the bot. To provide feedback to the users.

Текст научной работы на тему «РАЗРАБОТКА ЧАТ-БОТА НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ PYTHON В МЕССЕНДЖЕРЕ "TELEGRAM"»

УДК 004.42

РАЗРАБОТКА ЧАТ-БОТА НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ PYTHON В МЕССЕНДЖЕРЕ «TELEGRAM»

Шумилина Мария Александровна

Магистрант, Сибирский государственный университет науки и технологий им. М.Ф. Решетнева marya_dnep@mail. ru

Коробко Анна Владимировна

Доцент, кандидат технических наук, Сибирский государственный университет науки

и технологий им. М.Ф. Решетнева

[email protected]

В статье рассматривается разработка чат-бота, на основе существующей методологии Agile, поддерживающая информационный поток на основе продвижения обучения востребованным IT - профессиям, с помощью интерактивного тестирования и рекламы в телеграм-канале. Существующие методики для разработки чат - ботов ограничиваются лишь внесением уже разработанных команд в конструкторе чат - ботов, либо шаблонной программы, в которой необходимо заполнить лишь некоторые информационные поля, поэтому данные методики не применимы к области разработки программного продукта. Приведено решение задач по: поиску информации, организации обратной связи, а также наполнение актуальным контентом чат-бота. Особенностью разработки интеллектуального помощника является разделение ролей на пользователя и администратора (модератора чат-бота), определяемого по индивидуальному номеру на основе которого осуществляется наполнение контента с помощью прописанных команд для бота. Для обеспечения обратной связи с пользователем разработан простой сценарий, позволяющий получить информацию о пользователе: ФИО, номер телефона, локацию.

Ключевые слова: разработка, чат-бот, программная инженерия, phyton, telegram-bot.

DEVELOPMENT OF A CHATBOT IN THE PYTHON PROGRAMMING LANGUAGE IN THE TELEGRAM MESSENGER

Shumilina Maria Alexandrovna

Master's student, M.F. Reshetnev Siberian State University of Science and Technology marya [email protected]

Korobko Anna Vladimirovna

Associate Professor, Candidate of Technical Sciences, M.F. Reshetnev Siberian State

University of Science and Technology

[email protected]

The article discusses the development of a chatbot based on the existing Agile methodology, which supports the information flow based on the promotion of training in popular IT professions, using interactive testing and advertising in the telegram channel. The existing methods for developing chatbots are limited only to introducing already developed commands in the chatbot designer, or a template program in which only some information fields need to be filled in, so these methods are not applicable to the field of software product development. The solution of the tasks of: finding information, organizing feedback, as well as filling the chatbot with relevant content is given. A feature of the development of an intelligent assistant is the separation of roles into a user and an administrator (moderator of a chatbot), determined by an individual number on the basis of which content is filled using prescribed commands for the bot. To provide feedback to the users.

Keywords: development, chatbot, software engineering, phyton, telegram-bot.

На сегодняшний день ^-технологии с большой скоростью шагнули вперед и чат-боты нашли широкое применение в различных сферах бизнеса и жизни, что сильно повлияло на выполнение повседневных задач. В современной жизни при большом количестве информации и в какой-то мере фальсифицирующих данных, в первую очередь требуется умение находить нужную и достоверную информацию, фильтруя бесполезные материалы, выбирая из них только самое необходимое для применения этих знаний при решении поставленной задачи.

Разброс показателя

удовлетворенности ботами очень велик и в среднем по рынку превышает 10%, отмечают аналитики Markswebb [2]. Текстовых роботов внедряют преимущественно лидеры рынков, а остальным компаниям недостает компетенций в этом.

Чат-бот - это разновидность программного виртуального помощника с ограниченным функционалом, который общается с пользователем посредством текстовых сообщений и виджетов [1]. Программа представляет собой предметно-ориентированный текстовый диалоговый интерфейс, с помощью которого пользователь может выполнить ограниченный набор задач.

Разработчик может программно прописать любые свойства виртуального помощника, который выдает, сохраняет и определяет ответы, схожие с теми, что отвечает специалист контактной помощи. Боты, используются для решения простых ежедневных задач, получения различной информации, консультаций, заказов и др. Таким образом, чат-боты могут заменить

некоторых сотрудников, а также сайты, call-центры и целые приложения.

За последнее время чат-ботов начали активно внедрять в сферу образования. Например, для расширения предоставления существующей информации об

образовательном учреждении, ответов студентам и абитуриентам на вопросы по образовательной деятельности и доступности курсов, что отражено в работах. Исследователи отмечают большой потенциал использования чат-ботов для улучшения процесса обучения и результатов обучения [10].

Одно из направлений внедрения и разработки чат-ботов для образовательных учреждений являться продвижение системы открытого образования. Это и определило цель данного проекта -продвижение обучения востребованным IT - профессиям, с помощью интерактивного тестирования и рекламы отделу дополнительного ИТ - образования СибГУ им. М. Ф. Решетнева путем разработки чат-бота, автоматизирующего бизнес-процесс обработки обращений будущих студентов, подбор курсов посредством прохождения теста в телеграм-чате, а также разработка модуля администратора для управления контентом, на языке программирования python в мессенджере «Telegram».

Актуальностью выбранной темы проекта является улучшение

пользовательского опыта при использовании сервисов учебного заведения слушателями и студентами мобильных устройств, а также повышении понимания проблемы

взаимодействия людей и чат-ботов, на актуальность которой исследователи обращают пристальное внимание в последнее время, в частности в работе [9].

Рис. 1. Диаграмма описания бизнес-процесса «до внедрения чат-бота»

Рис. 2. Диаграмма описания бизнес-процесса «после внедрения чат-бота»

Кроме того, актуальной проблемой может быть не всегда достаточная поддержка мобильных устройств и небольшие размеры экрана смартфона, что затрудняет просмотр сайтов, таблиц и большого текста. Все это в совокупности может сделать опыт для пользователей мобильных устройств малоприятным. В результате можно описать основные требования, которые необходимо учитывать при реализации системы разработки чат - бота. Можно выделить следующие:

- актуальность и доступность информации о курсах;

- получение информации максимально простым и быстрым способом;

- доступный и удобный интерфейс для пользователей, использующих мобильные устройства;

- реализация учета различных особенностей подачи информации о курсах, например, категории обучения: дистанционное, очное, переподготовка, повышение квалификации и т.д.;

- система, предоставляющая информацию о курсах, расположении, цене должен предоставлять последнее состояние данных на случай непредвиденного нарушения работоспособности сервера.

В качестве реализуемости диалогового интерфейса было выбрано использовать платформу с разрабатываемым каналом чат-бота в мессенджере «Telegram». В качестве программной оболочки был выбран язык разработки Python в среде Pycharm.

Разрабатываемый чат-бот будет служить полезным дополнением и к другим способам представления информации об Управлении и актуальных курсов, ориентированным на поколение, привыкшее

достаточно много времени проводить в мессенджерах и социальных сетях и желающее получать от них не только развлечения, но и полезные сервисы, с необходимыми напоминания.

При необходимости получения дополнительной информации от

потенциального клиента в рамках разрабатываемого модуля получения и структурирования информации для более точного формирования статистики пользователя предусматривается подсистема формирования опросов, посредством которой осуществляется систематизированный сбор необходимой информации (возраст, пол, регион проживания, интересы и т.д.) [5].

Описание разработки системы посредством проектирования ПО

На сегодняшний день нет чётких терминологических понятий, дающий определение «программному обеспечению». Поэтому ставиться вопрос, можно ли отнести разработку чат - бота к определению разработки ПО. Для этого необходимо описать алгоритм разработки ПО, провести анализ методов разработки ПО и попробовать применить одну из методологий к разработке чат - бота.

Сравнивая существующие методологии разработки программного обеспечения и оценивая их применимость к процессу разработки чат - бота для образовательного учреждения, можно сказать, что «гибкие» методы позволяют быстро создать первую версию продукта, имеющего законченный функционал и обладающий

самодостаточностью, которую можно предоставить заказчику для тестирования [4]. Наиболее применимой в области разработки и проектирования чат - ботов можно считать FDD

методологию с добавлением в процессе проектирования и реализации практик из других методов (DSDM, Scrum и OpenUP).

Существует два подхода к реализации ПО для разработки чат - бота:

- однокомпонентная архитектура. Вся логика изложена в одно приложение, индивидуально для каждой платформы, но оно не позволяет использовать социальное взаимодействие между пользователями;

- многокомпонентная архитектура или клиент-сервер. Описывает отношения между

клиентом и сервером, где их клиент выполняет последовательность действий, запрос ожидает ответ - обработка при получении. Сервер, в свою очередь, разрешает пользователь выполняет обработку, необходимую для получения результата - передает результат [2].

В нашем случае больше разработки ПО для реализации чат - бота подходит многокомпонентная архитектура (клиент -сервер).

Сервер

Рис. 3. Многокомпонентная архитектура взаимодействия

Обычно процесс разработки программного обеспечения включает в себя разработку требований, анализ,

проектирование, реализацию, тестирование и внедрение. На этапе проектирования пользовательского интерфейса, необходимо прописать концептуальную модель. Для начала выделим актеров (пользователей), которые будут взаимодействовать с системой:

- администратор чат - бота (moderator)-специалист отдела, который будут управлять всем контентом в системе, также специалист отдела будет иметь полный доступ ко всему функционалу системы;

- пользователь - в основном это будущие слушатели / студенты дополнительных программ, которые хотят получить дополнительное образование или повысить квалификацию, но в дальнейшем приложением могут пользоваться и студенты, которые уже получили дипломы.

Необходимо выделить основные прецеденты телеграм-бота:

- рассылка новостей;

- просмотр контактной информации об отделе дополнительного ИТ - образования;

- прохождение тестирования для побора курса;

- предоставление справочной информации;

- сохранение обратной связи;

- наполнение базы данных от роли администратора.

Исполнитель: пользователь.

Производится в приложении Telegram.

Описание шагов:

- запустить бота командой /start;

- перейти к модулю «Основное меню», которое содержит команды: «Что могу», «Где находимся», «Свяжитесь со мной» и

«Подобрать курс» с помощью навигационных кнопок;

- выбрать команду из меню, например, «Подобрать курс» и следовать указаниям бота, отвечая на вопросы, управляя ими инлайн-кнопками;

- после окончания тестирования бот выдает наиболее подходящий курс, под ваши интересы и предлагает записаться на курс.

Исполнитель: администратор,

специалист отдела дополнительного ИТ -образования. Производится в приложении Telegram, в группу с чат-ботом необходимо прописать команду /moderator или /Загрузить. Описание шагов:

- авторизоваться в системе;

- запустить бота командой /moderator;

- дождаться подтверждения роли. После прописанной команды, чат - бот ищет ваш номер ID в администраторах группы, если ваш ID является администратором, то бот выдает администраторскую панель управления, если ваш ID не найден в базе администраторов, то бот пишет сообщение: «Вы не являетесь администратором».

- добавить, редактировать или удалить новости, контакты, или другую информацию;

- загрузить обновленные данные в БД с помощью команды /сохранить данные.

Разработка и оптимизация готового решения.

Функциональная модульная структура разрабатываемого бота состоит из компонентов:

- модуль получения и структурирования информации;

- модуль для обработки полученного сообщения;

- модуль распределения ролей на администратора и пользователя (клиента);

- модуль подключённой базы данных;

модуль передачи конечного

результата.

Рис. 5. Схема функциональной модульной структуры

Для того, чтобы создать нового бота, необходимо в контактах мессенджера Telegram включить бота по созданию ботов BotFather командой /start. После того, как BotFather направит пользовательское меню, необходимо задать настройку

разрабатываемого бота. Алгоритм создания бота представлен ниже:

1. В чате с BotFather выбирается команда создания собственного бота: /newbot (новый бот), скриншот доступных команд представлен на рисунке 6.

2. Далее боту присваиваем имя бота (@infokomt_sibguBot), команды представлены на рисунке 7.

3. После того, как BotFather подтвердил имя бота, копируем ссылку с присвоенным token (идентификатор, по которому можно подключить бота) и прописываем пользовательское имя бота (Научим IT - профессии).

Хранение token'a должно быть локальным, так как это ключ для взаимодействия с ботом. ни в коем случае нельзя выгружать его в общий доступ.

Q. О :

Информация о боте

1 can help you create and manage Telegram bots. If you're new to the Bot API, please see the manual.

You can control me by sending these commands:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

/newbot • create a new bot /mybots - edit your bots [beta]

Edit Bots /setname - change a bot's name /setdescription - change bot description /setaboultext - change bot about info /setuserpic - change bot profile photo /setcommands - change the list of commands /deletebot - delete a bot

Bot Settings /token - generate authorization token /revoke - revoke bot access token /setlnline - toggle inline mode /setinlinegeo - toggle inline location requests /setinlinefeedback - change inline feedback settings ''setjoingroups - can your bot be added to groups? /setprivacy - toggle privacy mode in groups

Games /mygames - edit your games [beta] < newgame - create a new game /listgames - get a list of your games /'editgame - edit a game /deletegame - delete an existing game

©

BotFather ф

BotFather is the one bot to rule them all. Use it to creat« new bot accounts and manage your existing bots.

Информация

@BotFather

Имя пользователя

(7) Пожаловаться

(JJ^ Остановить и блокировать

Рис. 6. Команды доступные при подключении к BotFather

Рис. 7. Присвоение создаваевому чат - боту название

Запуск бота осуществим с помощью bat-файла (bot_run.bat). В целом, можно обойтись и без него, но запускать приложение бота при помощи bat-файла более правильно во время оформления проекта, т.к. безопасно получится сохранить token и другие данные, ведь приложение будет запускаться в оболочке с необходимыми для неё данными.

Чтобы прописать необходимый функционал для чат-бота необходимо написать соответствующий код. С помощью среды разработки PyCharm разработали код, который

будет описывать требования к функционалу чат-бота.

После установки библиотеки aiogram и создания bat-файла, можно приступать к написанию главного файла - tg_bot.py. Для этого необходимо импортировать

конфигурацию и систему логирования. Затем необходимо подключить модули библиотеки aiogram, а также инициализировать объекты бота и диспетчера, создав две переменные -Bot и Dispatcher, скриншот представлен на рисунке 8.

I^i create_bot.py i£> tg_bot.py X l from aiogram import Bot

from aiogram.dispatcher import Dispatcher

3

A import os

5 from aiogram.contrib.fsm_storage.memory import MemoryStorage

storage=MemoryStorage()

bot = Bot(token=os.getenv(1 TOKEN')) dp = DispatcherCbot, storage=storage)

Рис. 8. Импортированные модули библиотеки aiogram

Переменная bot отвечает за прямой доступ к методам API и обеспечивает общее взаимодействие с ботом, а вторая переменная Dispatcher - является простым обработчиком событий. Dispatcher в библиотеке aiogram это своего рода диспетчер, который будет выполнять множество задач по взаимодействию с ботом. В т.ч. получение сообщений. А polling не даст завершить работу бота пока приложение активно.

В программный код записываем функцию async def echo_send(): т.к. aiogram -это асинхронная библиотека, а python однопоточный - любые команды выполняются

только после того, как завершилась предыдущая. Но боту необходимо отвечать на множество сообщений и отвечать очень быстро

[7].

Для управления чат-ботом необходимо разделение на роли пользователей: администратор и клиент. Если клиентская часть состоит из выбора команд главного меню, то часть администратора состоит в обновлении и ведении информации внутри бота. Пропишем «проверку» на администратора бота, чтобы у любого пользователя не было возможности добавлять и редактировать курсы, рисунок 9.

Рис. 9 - Админская часть чат- бота командой /Загрузить или /moderator

Рис.10. Админская часть чат- бота с загрузкой в БД

Рис. 11. Клиентская часть чат- бота пункта меню

Для хранения контента и контактов студентов подключили базу данных sqlite3. Данная база данных простая встроенная база данных для бота, позволяет очень быстро производить чтение - запись, не требует отдельного сервера т.к. реализована через один файл [8].

Для удобного переноса и расположении на удаленном сервере, а также локальной разработки применялся инструмент по работе с контейнерами Docker (https://www.docker.com/) [3]. В качестве редактора кода использовался Sublime Text.

В образовательных заведениях немаловажным процессом является предоставление актуальной информации о доступных курсах, на которые ведется запись. А также индивидуальный подбор курсов и их реклама. В рамках представленной работы описаны анализ и проектирование системы, позволяющей любому образовательному учреждению разработать и внедрить собственного чат - бота для продвижения обучения востребованным IT - профессиям, с помощью интерактивного тестирования и

рекламы. Аналогичные технологии могут быть эффективными как самостоятельно, так и при интеграции в другие информационные системы учебного заведения, например, сайты, внутренние порты и т.д.

В результате исследования было разработано программное обеспечение чат -бот, а также модуль администрирования по методологии разработки ПО Agile. В данный момент степень внедрения находится на этапе тестирования, модуль работает.

Использование программного обеспечения может осуществляться везде, где есть сеть интернет, для него не требуется подключения никаких дополнительных устройств.

Разработка чат-бота направлена для помощи выбора подходящего курса обучения по дополнительным программам. Основная аудитория, которая будет пользоваться данным ПО это будущие слушатели / студенты отдела дополнительного IT- образования, а также люди, которые нуждаются в новой профессии и ищут краткую информации об обучении.

ЛИТЕРАТУРА

1. Документация Telegram: боты. [Электронный ресурс] - Режим доступа: https://tlgrm.ru/docs/bots

2. Гниденко, И. Г. Технология разработки программного обеспечения: учеб. пособие для СПО / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. - М. : Издательство Юрайт, 2017. - 235 с.

3. Моуэт Э., Использование Docker / пер. с англ. А. В. Снастина; науч. ред. А. А. Маркелов. -М.: ДМК Пресс, 2017. - 354 с.

4. Рассел, Джесси Гибкая методология разработки / Джесси Рассел. - М.: VSD, 2017. - 179 c.

5. Рынок чат-ботов в цифрах и фактах. Инфографика // Журнал ПЛАС [Электронный ресурс] URL: https://plusworld.ru/daily/tehnologii/403076-2/ (дата обращения: 2.05.2022).

6. Chatbot Rank 2021 [Электронный ресурс] / URL: https://www.markswebb.ru/report/chatbot-rank-2021 /#rejection

7. Aarthi Ganitha N., Vaishnavee V., Oviya K., Jayaseelan J. Salem. Implementation of Chatbot in Trading Application Using SQL and Python // Bioscience Biotechnology Research Communications, 2020. Vol. 13. No. 2. Pp. 111-115.

8. Documentation SQLite3 [Электронный ресурс] / URL: https://www.sqlite.org/docs.html

9. Ho C. Chun, Lee H. L., Lo W. K., Lui K. F. A. Developing a Chatbot for College Student Programme Advisement // International Symposium on Educational Technology (ISET). 2018. Pp. 52-56.

10. Skjuve M., Folstad A., Fostervold K. I., Brandtzaeg P. B. My Chatbot Companion - a Study of Human-Chatbot Relationships. International Journal of Human-Computer Studies, 2021, Vol. 149, May, 102601.

i Надоели баннеры? Вы всегда можете отключить рекламу.