Диплом: Разработка чат-бота как сервиса для прохождения тестов

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
42
приостанавливать ее до того, как заданные строки кода будут запущены,
для того, чтобы можно было отследить работу кода в нужный момент
времени.
Для более удобной отладки без прогона по всему коду, существуют
контрольные точки. Нажав на поле слева от строки можно поставить такую
контрольную точку (рисунок 24), это позволяет при запуске отладчика
смотреть выполнения программы начиная именно с этой точки
Рисунок 24 – Установка контрольной точки
Также на каждом шаге отладки есть возможность посмотреть какие
значения принимает та или иная переменная (рисунок 25), что позволяет
удостовериться в работоспособности программы на данном этапе и
исключить появление ошибок до этого этапа. [33]
Рисунок 25 – Просмотр значения переменной в режиме отладки
Большим преимуществом в режиме отладки является показ времени
отработки каждого шага, что позволяет определить слабые места
программы и максимально оптимизировать их.
43
ГЛАВА 3. РЕАЛИЗАЦИЯ ЧАТ-БОТА НА ОСНОВЕ
TELEGRAM MESSENGER
3.1. Регистрация бота в Telegram
3.1.1. Особенность бота
Бот на основе Telegram будет предлагать пользователям пройти
психологический тест на определение темперамента личности. Большим
плюсом данного теста является легкодоступност, для того, чтобы
пользователь прошел тест, достаточно просто начать чат с ботом, нет
необходимости искать в интернете информацию о тестах, искать описание
ответов, выписывать информацию на бумажный носитель. [33]
Алгоритм работы бота будет заключаться во взаимодействии с
пользователем, бот предлагает пользователю ответить на вопросы теста,
обрабатывает полученные ответы, и в зависимости от результатов
обработки возвращает результат прохождения теста пользователю.
Реализация логики работы бота будет написана на языке
программирования высокого уровня C#, с использованием среды
интегрированной среды разработки Microsoft Visual Studio 2017 и с
использованием установленной в проект библиотеки Telegram Bot Api,
которая способствует связи кода с ботом в мессенджере Telegram. [2]
3.1.2. Создание бота
Открываем версию Telegram для персонального компьютера. Для
создания бота необходимо начать чат с пользователем BotFather (рисунок
26), который является ботом, разработанным компанией Telegram для
регистрации бота внутри мессенджера. Данный бот обладает некоторым
наличием команд, которые позволяют зарегистрировать бота и настроить
его, а так же получить уникальный идентификатор бота. [39]
44
Рисунок 26 – Бот BotFather для регистрации собственного бота.
Для создания нового бота используем команду /newbot, после
введения которой, бот предлагает ввести имя, называем бота Temperament
Test Bot и никнейм бота, для быстрого доступа из других чатов. Никнейм
бота обозначаем как temperament_test_bot (рисунок 27). Обязательным
условием является обозначением бота словом bot в конце никнейма,
аналогичным образом выделяется ключ идентификатора в объектно-
ориентированном программировании, когда в конце приписывается id.
Таким образом, если написать в любом чате любому пользователю
никнейм бота, поставив перед никнеймом символ «@», пользователи в
один клик смогут перейти в чат с ботом и пройти тест, что не вызывает
45
никакой необходимости скидывать большие ссылки на сайты, открывать
браузер и так далее. [39]
Рисунок 27 – Создание бота
После создания бота получаем уникальный токен (идентификатор
бота), который в последствии будет использован в реализации кода
проекта для соединения по Telegram Bot Api. Важным моментом является
сохранность этого токена. Нельзя допускать передачи токена третьим
лицам, это может повлечь за собой нежелательные последствия, вплоть до
удаления бота, т.к. контроль за работой бота осуществляется
исключительно по средствам токена. Также получаем короткую ссылку на
бота, в данном случае - t.me/temperament_test_bot (рисунок 28). [39]
46
Рисунок 28 – Получение токена и короткой ссылки
3.1.3. Настройки бота
Бот BotFather имеет возможность настроить созданного бота, чтобы
бот был более привлекательным для других пользователей. Для настроек
бота доступны следующие команды: [39]
/setdescription – изменение описания бота;
/setabouttext – изменение информации о боте;
/setuserpic – изменение изображения бота
/setcommands – изменение списка команд бота (в данном случае
данную команду можно не трогать, но при развитии проекта и добавлении
многих тестов здесь можно указать команды для вызова интересующего
теста, что увеличит ориентированность в боте со стороны пользователя).
47
Используя приведенные выше команды изменим описание бота и
информацию о боте (рисунок 29).
Рисунок 29 – Изменение настроек бота
После настроек получился полностью готовый под реализацию
целей бот. Зайдем по никнейму бота @temperament_test_bot в чат с ним и
убедимся в его создании и правильности измененных настроек бота
(рисунок 30).
Таким образом процесс регистрации бота происходит в течении
небольшого количества времени, что позволяет сделать это абсолютно
любому пользователю, однако реализацию конкретных задач в боте
48
требует знаний. Именно реализация бота как сервиса для прохождения
тестов рассмотрена в следующем подразделе.
Рисунок 30 – Готовый под реализацию бот
3.2. Создание проекта чат-бота
Проект реализуется в интегрированной среде разработки Microsoft
Visual Studio 2017 на языке программирования высокого уровня C#. [1]
3.2.1. Создание проекта в Microsoft Visual Studio
Для начала необходимо определиться какой должен быть проект, в
Visual Studio предоставлена большая перечень различных видов проектов
[19]. Так как внешнюю оболочку проекта (front) представлена ввиде чата в
Telegram, то достаточно создать консольное приложение (рисунок 31), в
49
котором будет выполняться вся необходимая логика. Называться проект
будет также, как он называется в самом мессенджере –
TemperamentTestBot.
Рисунок 31 – Создание консольного приложения
Далее следует подключить необходимую библиотеку, которая
позволит работать с серверами Telegram. Библиотека называется
Telegram.Bot (рисунок 32) и доступна в специальном браузере библиотек
NuGet [3].
Рисунок 32 – Добавление библиотеки Telegram.Bot
3.2.2. Создание моделей данных
Любое тестирование состоит из вопроса и ответов, для удобной
инфраструктуры проекта и отсутствия дублированного кода создаются
модели данных [6]. В данном случае модели вопросов и ответом.
50
Для ответа создается публичный класс под названием Answer
(рисунок 33), состоящий из 3 полей: Id, Number и Description. Id служит
для идентификации ответа, чтобы при обработке полученного ответа
пользователя была возможность определить к какому именно вопросу
относится ответ. Поле Id имеет тип данных Guid и при инициализации
объекта этого класса для Id присваивается уникальный идентификатор на
уровне сервера [7]. Number - порядковый номер ответа. Description
описание ответа.
Также присутствует конструктор для инициализации полей Number и
Description.
Рисунок 33 – Класс Answer
Для вопроса создается публичный класс Question (рисунок 34),
который включается в себя поля: Id, Number, Description и коллекцию
Answers. Поля Id, Number и Description имеют абсолютно такое же
предназначение как в классе Answer. Коллекция Answers включает себя
некоторую последовательность классов типа Answer, в которой находятся
все возможные ответы, которые можно отнести к конкретному вопросу.
Также эту коллекцию можно проинициализировать с помощью
конструктора данного класса.
51
Рисунок 34 – Класс Question
3.2.3. Хранение данных
Далее создается непосредственно публичный класс самого теста –
TemperamentTest (рисунок 35). Данный класс содержит коллекцию данных
со статическим типом Question, которая при первом запуске проекта
инициализируется и с помощью констркуторов Question и Answer
заполняется необходимыми данными. Класс является статическим и
служит для хранения вопросов и вариантов ответов для теста.
Рисунок 35 – Класс TemperametTest
Далее следует обозначить место хранения ответов конкретных
пользователей, для будущей обработки результатов.

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран