Реалізація чат-ботів із поведінкою, що керується скінченним автоматом, у графічному конструкторі
Loading...
Date
2022
Authors
Гулаєва, Наталія
Кобєлєв, Михайло
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Окреслено основні методи використання скінченних автоматів (СА) для моделювання й програмної реалізації поведінки об’єктів різної природи. Як приклад інтерактивної програми розглянуто чат-боти: основні поняття, методи класифікації, способи реалізації. Запропоновано розширення СА для моделювання поведінки текстового чат-бота, побудованого на правилах. Дано короткий огляд методів перетворення СА на програмний код у різних парадигмах програмування. Запропоновано динамічний підхід для виконання такого перетворення, зі збереженням специфікації СА в базі даних. Розроблено графічний конструктор, який дає змогу створювати модель чат-бота, базованого на правилах, у вигляді скінченного автомата та виконує трансформацію побудованої моделі для безпосереднього використання в месенджер-платформі Telegram.
Description
Finite state machine (FSM) is a powerful tool to model object behavior. Using FSM and its extensions
to model program behavior followed by the automatic generation of executable code is the approach encouraged
by the model-driven development (MDD) – a software development methodology based on the
concepts of model and model transformation.
In this paper, a brief overview of FSM-based common methods to model and develop software programs
of any nature is given. These methods include David Harel’s statecharts, UML State Machines, Virtual Finite
State Machine, etc. Examples of all types of software systems (transformational, interactive, reactive)
implemented using FSM are cited.
Chat-bots as an example of an interactive software system are considered: concept, classification methods,
implementation techniques. A graphical designer of rule-based chat-bots to be integrated in the messenger
Telegram is developed and implemented. In this designer, chat-bot behavior is modeled using FSM.
Formal method to model a rule-based chat-bot using FSM is provided. The FSM concept is extended by
disabled transitions to save history of transition changes made during the FSM design process. A brief
overview of code generation methods from FSM specification is done; advantages and disadvantages of the
most popular approaches are considered. Dynamic approach to generate code by FSM specification saved
in DB is proposed. To implement this approach, document MongoDB and in-memory key-value Redis DB
are used; FSM is kept as a JSON-document. This approach is efficient in flexibility, speed and memory
needs.
Architecture diagram of developed chat-bot graphical designer is given. It has the microservice architecture.
The FSM model-to-code transformation is carried out by the bot-execution service written using
compiled language Go. Other services include the front-end (UI for end-user, CRUD API for chat-bot) and
the bot-management (synchronization of document and key-value databases) services.
Keywords
скінченний автомат, СА, model driven development, генерація кода, чат-бот, Telegram месенджер, мікросервісна архітектура, документна база даних, резидентна база даних, стаття, finite state machine, FSM, model driven development, code generation, chat-bot, Telegram-messenger, microservice architecture, document database, in-memory database
Citation
Гулаєва Н. М. Реалізація чат-ботів із поведінкою, що керується скінченним автоматом, у графічному конструкторі / Гулаєва Н. М., Кобєлєв М. Д. // Наукові записки НаУКМА. Комп'ютерні науки. - 2022. - Т. 5. - С. 31-40. - https://doi.org/10.18523/2617-3808.2022.5.31-40