# ODIN IVR-Interactive Solution for Emergency Calls Handling
## 2 Related Work
### Existing Platforms for Building Conversational Agents  
**Rasa**[18] is an open-source framework for developing conversational agents. It contains all the necessary tools for automatic text processing, message understanding, and conversation maintenance. From the architectural point of view, a Rasa conversational agent is built from a series of modules of different types: segmenting text (\"tokenizers\"), representing text in vector form (\"featurizers\"), classifiers for intent, entity extractors, and others. Similar to other frameworks, their components and parameters are chosen according to the particularities of the training data and the final purpose of the agent being built. There are several important key concepts within a conversational agent developed using this platform: domain, intent, action, and story. The domain defines a microworld in which the conversational assistant operates. Specifically, it contains a string of intents, intent parameters, entities, and actions. As such, it defines the configuration parameters of the agent. The intent dictionary lists all the possible intents a user can have and phrases that describe that intent. These examples may contain parameters, which will then be passed to the action's execution mode. From a string of intentions, actions, and responses, a story can be built, and thus, the agent can maintain context and have a dialogue. The most important part of implementing a Rasa conversational agent is the training stage. At this stage, it is necessary to define all the intentions alongside corresponding examples. If intent refers to entities, then they too must be defined as either rules or entity lists. Optionally, scenarios can be defined for the dialog module. **The Microsoft Bot Framework**[27] together with Azure Bot Service are tools for creating, testing, and deploying intelligent bots. The Microsoft Bot Framework includes a modular software development kit (SDK) for building chatbots that understand and process natural language. A major advantage of developing a bot using Microsoft technologies is that it can be integrated with a Microsoft API called Microsoft Cognitive Services. These services are a set of machine learning algorithms. To introduce natural language processing functionality, the Microsoft Bot Framework must be configured to use Microsoft LUIS [28]. Microsoft LUIS is a service used to train chatbots for natural language processing. The Microsoft Bot Framework offers multiple tools and components for developers, including automatic translation tools, dialog state management, and debugging. The main components of this framework are:  
* Bot connector service that uses a REST API and JSON over HTTPS for message exchange;
* Bot Builder SDK for _NET Framework for bot development using the C# programming language and Node.Js. **Botpress**[19] is an open-source tool for the visual design of chatbot solutions. Developing a chatbot using Botpress is done by combining visual techniques with writing code. The solution provides a consistent and complex suite of tools for understanding text and automating complex conversations. Botpress was launched in 2015 and is currently one of the most frequently used solutions for creating chatbots according to the authors of [29]. Botpress is a framework distinguished by its execution speed and underlying mechanisms for understanding natural language. The framework enables variable extraction and intent detection and integrates with various communication channels (Web, WhatsApp, Slack, etc.). SWAT analysis of the Botpress framework [30] indicates that the solution is easy to use and has low development cost. On the other hand, modifying the framework to implement functionality specific to the beneficiary is not trivial. Another strength of Botpress is that the solution is written in TypeScript and works on Linux, Windows, and macOS with an AGPL v3 license.