Инструменты и этапы построения архитектуры расширяемого чат-бота на примере бота для изучения английского языка | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 11 мая, печатный экземпляр отправим 15 мая.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №30 (425) июль 2022 г.

Дата публикации: 30.07.2022

Статья просмотрена: 169 раз

Библиографическое описание:

Беднов, А. В. Инструменты и этапы построения архитектуры расширяемого чат-бота на примере бота для изучения английского языка / А. В. Беднов. — Текст : непосредственный // Молодой ученый. — 2022. — № 30 (425). — С. 4-5. — URL: https://moluch.ru/archive/425/94238/ (дата обращения: 30.04.2024).



Чат-бот — это программа, которая способна вести переписку с пользователями в чате, имитируя при этом поведение человека. Она может работать на любой известной платформе, например, Telegram, Viber и т. д. Согласно документу, опубликованному командой Telegram, посредством их мессенджера 52 млн. человек регулярно используют почти 800 тыс. активных ботов [1]. Основным преимуществом данного вида общения с пользователем является упрощенная коммуникация: чтобы воспользоваться нужным сервисом, достаточно просто открыть чат в мессенджере. Так, например, в России за август 2021 года мессенджером Telegram воспользовалось 37 миллионов человек [2], а за февраль 2022 года — 54 миллиона [3]. Данное преимущество делает чат-ботов очень удобным инструментом для самообразования, например, для изучения английского языка.

После изучения исследований [4] по данной тематике были разработаны следующие функциональные требования — бот должен предоставлять возможности для: 1) изучения грамматики английского языка; 2) прохождение тестов по грамматике английского языка, просмотр результатов; 3)изучение английских слов в игровом формате; 4) повторение уже выученных слов; 5) просмотр прогресса изучения слов.

Был выбран стэк технологий.NET, так как приложение должно иметь достаточно сложную логику и легко расширяться новым функционалом, а данная платформа обладает статически типизированным ООП-языком C#, мощными готовыми библиотеками и фреймворками и большим как англо- так и русскоговорящим сообществом. Все методические материалы по английской грамматике были взяты с сайта native-english.ru.

Реализовано два клиента: консольный и серверный. Консольный удобен для быстрой проверки и отладки реализуемого функционала во время разработки, а серверный — для публикации бота в интернете. Консольный реализован как обычное консольное приложение (Console App) на платформе.NET, а серверный — с использованием фреймворка ASP.NET Core MVC, шаблон проекта — Web-API. Для доступа к данным используется библиотека EF Core. Для работы с Telegram Bot API использована библиотека TelegramBots. Telegram Bot API — это HTTP-интерфейс, созданный для разработчиков, заинтересованных в создании ботов для Telegram. Для публикации бота в интернете использован бесплатный.NET хостинг Somee.com.

Разработка архитектуры чат-бота состоит из следующих этапов:

  1. Создание контейнера зависимостей. В качестве контейнера зависимостей был выбран Autofac, так как он имеет достаточно хорошую производительность и прост в настройке. Чтобы Autofac можно было использовать в проекте, необходимо его установить через NuGet Package Manager.
  2. Создание консольного клиента. Консольный клиент представляет из себя обычное консольное.NET Core приложение, которое с определенной периодичностью посылает запросы к серверам Telegram, для получения обновлений, чтобы затем передать их обработчику обновлений.
  3. Создание веб-клиента. Веб-клиент представляет собой серверное приложение ASP.NET Core, которое получает обновления от Telegram при помощи механизма webhook и затем передаёт их обработчику обновлений.
  4. Организация хранения данных. Для хранения данных бота был использован Entity framework Core с подходом Code first (подробнее см. главу 3.3). В качестве СУБД использовался SQL Server. Подход Code First подразумевает, что база данных будет генерироваться из классов-моделей.
  5. Идентификация пользователей. Для идентификации пользователя используется уникальный идентификатор чата.
  6. Взаимодействие с чатом. Чтобы бот имел возможность взаимодействовать с чатом, а именно отправлять, редактировать и удалять сообщения был добавлен проект типа Библиотека классов Communication и класс ChatManager, в данном классе заключена вся логика по взаимодействию бота с чатом.
  7. Прием сообщений. Для того чтобы бот мог принимать и обрабатывать сообщения, был спроектирован механизм приемников, он заключается в следующем: каждому пользователю было добавлено поле, отвечающее за его состояние, обработчик обновлений во время идентификации определяет текущее состояние пользователя и на основе этого определяет, какому именно приемнику нужно передать сообщение.
  8. Работа с кнопками. Telegram Bot API позволяет прикреплять к сообщениям кнопки и записывать в них информацию, которая будет передана боту при нажатии. Для унификации процесса обработки нажатия кнопки в проект Entities был добавлен класс CallbackQuerryItem.
  9. Обработчик обновлений. Для обработки обновлений приходящих от клиента был добавлен проект типа Библиотека классов UpdateHandlers с классом CommonHandler, который состоит из одного публичного метода HandleUpdate.
  10. Бизнес-логика. Чтобы соответствовать требуемой функциональности, бот должен иметь логику. Для этого был создан проект типа Библиотека классом с именем LogicLayer. Бизнес-логика реализуемого бота делится на два основных модуля: изучение слов и изучение грамматики. В каждый модуль было добавлено по два типа классов: первые отвечают за логику получения данных, а вторые за логику изменения. Также, чтобы изолировать логику генерации сообщений, для каждого класса логики был добавлен класс, генерирующий сообщения и их разметку.

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

Литература:

  1. Телеграм 2020: аудитория и каналы // Блоги экспертов и ИТ-компаний URL: https://club.cnews.ru/blogs/entry/telegram_2020_auditoriya_i_kanaly (Дата обращения 28.07.2022)
  2. Messenger audience by app Russia 2021 // Statista URL: https://www.statista.com/statistics/1065027/russia-messenger-audience-by-app/ (Дата обращения 28.07.2022)
  3. Telegram обошел Whatsapp по объему трафика в России // Ведомости URL: https://www.vedomosti.ru/technology/articles/2022/03/20/914320-telegram-oboshel-whatsapp (Дата обращения 28.07.2022)
  4. Будникова А. С., Бабенкова О. С. Использование чат-ботов при изучении иностранного языка // Ученые записки. Электронный научный журнал Курского государственного университета URL: https://cyberleninka.ru/article/n/ispolzovanie-chat-botov-pri-izuchenii-inostrannogo-yazyka/viewer (Дата обращения 28.07.2022)
Основные термины (генерируются автоматически): API, обработчик обновлений, английский язык, проект типа, MVC, SQL, Библиотека классов, изучение грамматики, консольный клиент, публикация бота.


Похожие статьи

Реализация архитектурного шаблона MVC с использованием...

Рис. 1. Диаграмма классов, реализующих шаблон MVC с использованием шаблона «наблюдатель». Базовый класс Model, который будет являться родительским для всех моделей приложения, определяется следующим образом: class Model implements SplSubject.

Особенности реализации MVC-архитектуры в веб-приложениях

Особенности реализации MVC-архитектуры в веб-приложениях. Автор: Чугреев Валерий Леонидович.

Целью данного исследования является уточнение методологии проектирования программных систем, основанных на MVC-архитектуре.

Создание клиент-серверного приложения на основе restful api...

Цель работы: изучить принципы работы клиент-серверных приложений с Restful API архитектурой.

Для взаимодействия с Restful сервером было решено реализовать клиентское веб-приложение на языке программирования JavaScript с использованием Node.JS и React JS.

Тематическая социальная сеть для владельцев собак

Framework Class Library (FCL) — это библиотека классов, которая содержит в себе множество компонентов для работы с базами данных.

Принцип работы MVC (model view controller). Ключевые принципы MVC: Модели (models) — ответственны за данные приложения и доступ к...

Использование социальных сервисов Web 2.0 в обучении...

Известными блогами по изучению английского языка являются: https

– grammar: твиты, связанные с грамматикой английского языка, орфографии, пунктуации и т. д.

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

Интеграция Telegram-ботов в информационных системах

После получения токена с помощю Telegram API (Application Programming Interface — прикладной интерфейс программы) вы можете написать программу в следующих языках программирования

API — REST API, который предоставляет платформу клиентам.

Чат-бот как средство сопровождения образовательного процесса

— AndyRobot — известный чат-бот для изучения английского языка. Он не только отправляет новые слова и упражнения, а может поддерживать разговор на разные темы используя естественный язык. Конечно, он не может заменить реального собеседника, но способен...

Критерии отбора учебных интернет-ресурсов в рамках обучения...

Наконец, последний вид учебных Интернет-ресурсов — вебквест, который в переводе с английского языка, звучит, как проект, основанный на материалах, взятых из Интернет источников, представляет собой самый сложный вид задания.

Использование шаблона проектирования MVC в разработке...

Наиболее перспективным шаблоном проектирования на сегодняшний день является шаблон MVC, аббревиатура которого расшифровывается как Model-View-Controller и переводится как Модель-Представление-Контроллер [1]. При использовании данного шаблона проектирования...

Похожие статьи

Реализация архитектурного шаблона MVC с использованием...

Рис. 1. Диаграмма классов, реализующих шаблон MVC с использованием шаблона «наблюдатель». Базовый класс Model, который будет являться родительским для всех моделей приложения, определяется следующим образом: class Model implements SplSubject.

Особенности реализации MVC-архитектуры в веб-приложениях

Особенности реализации MVC-архитектуры в веб-приложениях. Автор: Чугреев Валерий Леонидович.

Целью данного исследования является уточнение методологии проектирования программных систем, основанных на MVC-архитектуре.

Создание клиент-серверного приложения на основе restful api...

Цель работы: изучить принципы работы клиент-серверных приложений с Restful API архитектурой.

Для взаимодействия с Restful сервером было решено реализовать клиентское веб-приложение на языке программирования JavaScript с использованием Node.JS и React JS.

Тематическая социальная сеть для владельцев собак

Framework Class Library (FCL) — это библиотека классов, которая содержит в себе множество компонентов для работы с базами данных.

Принцип работы MVC (model view controller). Ключевые принципы MVC: Модели (models) — ответственны за данные приложения и доступ к...

Использование социальных сервисов Web 2.0 в обучении...

Известными блогами по изучению английского языка являются: https

– grammar: твиты, связанные с грамматикой английского языка, орфографии, пунктуации и т. д.

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

Интеграция Telegram-ботов в информационных системах

После получения токена с помощю Telegram API (Application Programming Interface — прикладной интерфейс программы) вы можете написать программу в следующих языках программирования

API — REST API, который предоставляет платформу клиентам.

Чат-бот как средство сопровождения образовательного процесса

— AndyRobot — известный чат-бот для изучения английского языка. Он не только отправляет новые слова и упражнения, а может поддерживать разговор на разные темы используя естественный язык. Конечно, он не может заменить реального собеседника, но способен...

Критерии отбора учебных интернет-ресурсов в рамках обучения...

Наконец, последний вид учебных Интернет-ресурсов — вебквест, который в переводе с английского языка, звучит, как проект, основанный на материалах, взятых из Интернет источников, представляет собой самый сложный вид задания.

Использование шаблона проектирования MVC в разработке...

Наиболее перспективным шаблоном проектирования на сегодняшний день является шаблон MVC, аббревиатура которого расшифровывается как Model-View-Controller и переводится как Модель-Представление-Контроллер [1]. При использовании данного шаблона проектирования...

Задать вопрос