Flowstorm: Open-Source Platform with Hybrid Dialogue Architecture (2022)

Abstract: This paper presents a conversational AI platform called Flowstorm. Flowstorm is an open-source SaaS project suitable for creating, running, and analyzing conversational applications. Thanks to the fast and fully automated build process, the dialogues created within the platform can be executed in seconds. Furthermore, we propose a novel dialogue architecture that uses a combination of tree structures with generative models. The tree structures are also used for training NLU models suitable for specific dialogue scenarios. However, the generative models are globally used across applications and extend the functionality of the dialogue trees. Moreover, the platform functionality benefits from out-of-the-box components, such as the one responsible for extracting data from utterances or working with crawled data. Additionally, it can be extended using a custom code directly in the platform. One of the essential features of the platform is the possibility to reuse the created assets across applications. There is a library of prepared assets where each developer can contribute. All of the features are available through a user-friendly visual editor.

## introduction with the increasing popularity of conversational systems in various areas, there is an increasing demand for human-like aspects of the systems. the human-like aspects cover not only the content of the conversation but also the conversational style and tone of voice. moreover, many conversational constructs are applicable to various situations and are therefore suitable for sharing and reusing. we introduce the flowstorm platform foot_0 , where conversational designers can easily design an application using shared assets created by a community, create an application on their own, or use a combination of both approaches. the platform does not require any installation as it can be used as a web app. however, advanced developers can use the opensource code foot_1 to run and modify their own version of the platform. our platform works with a novel dialogue architecture we have proposed. it uses a combination of dialogue trees/graphs (scenarios) specific to a domain (or only a part of the domain) and generative models handling the aspects of the conversation that are not domain-specific. the flowstorm platform targets users with limited coding skills and conversational ai knowledge as well as the experts in the area who can easily extend an out-of-thebox functionality with custom logic. using the provided tools, documentation foot_2 , and library of the shared assets, one can create a dialogue application in minutes. the alquist @xcite socialbot, which was the first place winner in the alexa prize socialbot grand challenge 4 @xcite , was created using the flowstorm platform, proving the platform to be suitable even for such a complex system. flowstorm platform supports english, czech, german and spanish languages. ## related work there are two categories of related software: opensource frameworks or libraries and online platforms. rasa @xcite and deep-pavlov @xcite are the most famous representatives of the framework category. they provide the developer with a set of programmatic and declarative interfaces for defining and training natural language understanding (nlu) and dialogue management (dm) models. they also allow creating a pipeline of the components where the developer can create a sequence of models or components for utterance processing. both libraries require a local installation and, in addition, inte-grating either of them with the rest of the conversational application requires considerable effort. alexa skills kit (ask) foot_3 , google dialogflow foot_4 , and voiceflow foot_5 are representatives of the category of online platforms. ask and dialogflow offer an online application for the definition of nlu models (intents and slots/entities). for dialogue management, ask introduced alexa conversations @xcite allowing the developer to specify the conversation flow using sample conversations. dialogflow cx (a part of dialogflow providing a new way of working with conversational agents) offers a visual view of the conversation agents to see the possible flows of the conversation. voiceflow uses a visual dialogue editor as an approach to building a conversational application. dialogue blocks can be connected via transitions to create a flow of blocks where each block represents a specific functionality such as keyword matching or api calls. the comparison of the key aspects of the described libraries and platforms is shown in ## architecture the flowstorm platform combines two sets of functions-design and analytics. the design functions allow users to create individual sub-dialogues, train entity models, write shared code, and combine the sub-dialogues into complex conversational applications. each of the created assets can then be shared with the community. the analytic functions can be used to inspect the applications' traffic and show basic metrics such as session transcripts or visualizations of specific parameters. the following sections describe a novel conversational system architecture. the novel aspect consists of a combination of manually created subdialogues (that can be easily combined into a complex dialogue structure) and neural generative models. first, we describe the blocks essential for creating an application, and then we describe each component used in runtime in detail. ## system components the flowstorm conversational platform consists of several components crucial for processing the user utterance and driving the dialogue. first, nlu gathers the information required by the dm. afterward, dm traverses the corresponding sub-dialogue tree structure based on the nlu output. ## analytics the set of analytic tools allows developers to inspect the traffic on their conversational applications. there are tools for inspecting session transcripts, community and user attributes, and creating metric visualizations. the session transcripts contains a list of the dialogue turns of each session with all the annotations and log messages. one can easily watch the nlu results, identify a weak part of the corresponding application, inspect the automatic speech recognition (asr) hypotheses, duration of each turn, and session attributes stored during the conversation. the community and user attributes can be viewed in individual tables to watch the values gathered during conversations. the metric visualization tool allows creating plots of values defined as a metric. one can easily filter the specific values, time ranges, applications, users and specify the granularity of the visualization. an example visualization is shown in figure 4 . ## conclusion the open-source platform flowstorm allows users to easily create conversational applications with low effort while allowing them to modify each part with custom functionality. developers can visually design an application and extend it with custom code thanks to an easy-to-use interface. a library of shared assets contains common dialogue structures that can be used in various use cases. a novel hybrid architecture allows the system to handle unexpected utterances and make the conversation more robust. analytic tools show the conversation transcripts, attributes, and metrics directly in the flowstorm app. based on the analytic data, the developer can quickly identify the weak parts of the application and fix them by modifying the dialogue structure or intent examples. the flowstorm platform is in active development, and we are primarily focusing on the generative part of the dialogue architecture to make it more suitable for various dialogue situations.