Реалізація чат-ботів із поведінкою, що керується скінченним автоматом, у графічному конструкторі

Loading...
Thumbnail Image
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