new message has been received.
Step 3. The policy receives the current state of the tracker.
Step 4. The policy chooses which action to take next.
Step 5. The chosen action is logged by the tracker.
Step 6. The action is executed (this may include sending a message to the user).
Step 7. If the predicted action is not ‘listening’, go back to step 3.
1.2.2. Actions
Dialogue management is framed as a classification problem. At each iteration, Rasa Core predicts which action to take from a predefined list. An action can be a simple utterance, i.e. sending a message to the user, or it can be an arbitrary function to
execute. When an action is executed, it is passed a tracker instance, and so can
make use of any relevant information collected over the history of the dialogue:
slots, previous utterances, and the results of previous actions.
Actions cannot directly mutate the tracker, but when executed may return a list of events. The tracker consumes these events to update its state.
1.2.3. Natural Language Understanding
Rasa NLU is the natural language understanding module. It comprises loosely
coupled modules combining a number of natural language processing and machine learning libraries in a consistent API
1.2.3.1. Intent classification
Rasa uses the concept of intents to describe how user messages should be
categorized. Rasa NLU will classify the user messages into one or also multiple
user intents.
14
1.2.3.2. Entity Extraction
Understanding the user’s intent is only part of the problem. It is equally important to extract relevant information from a user’s message, such as dates and addresses.
This process of extracting the different required pieces of information is called
Entity Extraction.
1.2.4. Policies
The job of a policy is to select the next action to execute given the tracker object. A policy is instantiated along with a featurizer, which creates a vector representation
of the current dialogue state given the tracker.
The standard featurizer concatenates features describing:
e@ what the last action was
e the intent and entities in the most recent user message
e which slots are currently defined
The featurization of a slot may vary. In the simplest case, a slot is represented by a single binary vector element indicating whether it is filled. Slots
which are categorical variables are encoded as a one-of-k binary vector, those which take on continuous values can specify thresholds which affect their featurisation, or simply be passed to the featurizer as a float.
There is a hyperparameter max_history which specifies the number of previous states to include in the featurization. By default, the states are stacked to
form a two-dimensional array, which can be processed by a recurrent neural
network or similar sequence model.
15
3.3. FPT.AI Conversation Platform
FPT.AI Conversation provides a platform to build and manage chatbots via a user interface. Equipped with the best natural language processing technology for
Vietnamese language, as well as an optimized conversation management system,
FPT.AI Conversation provides a comprehensive chatbot builder solution for
businesses.
e Automation in sales and marketing: Easily build and manage customer
conversations, interact with customer journeys in using products/services;
automatically send promotional information to customers.
e Improve customer service experience: Ready to support customers at any
time, from anywhere, ensures no waiting time even during rush hours.
e Understand customers: Equipped with Machine Learning and NLP,
FPT.AI’s chatbot can understand intentions and requests of customers. Bot managers can track all conversations in History, and quickly train the bot with new information to provide customers with the most accurate advice.
e Easy to be integrated in business systems: FPT.AI’s Chatbot can be easily
integrated in business systems via APIs.
e Flexible scale expansion: The cloud platform allows FPT.AI’s Chatbot to
easily expand with the businesses’ growth, and can offer simultaneous support for up to millions of customers.
e Build once, deploy anywhere: Can integrate chatbot on popular messaging
channels like Facebook Messenger, Zalo, Viber, Live Chat on website ... or any other chat interface your business has.
e Multi-channel deployment: FPT.AI Chatbot can be integrated in popular
messaging channels like Live Chat on websites, Facebook Messenger, Zalo, Viber... or any others utilized by businesses. Therefore, businesses will only need to build the chatbot once then easily deploy it on multiple channels.
16
The system supports two types of users with their respective processes:
Bot creator: This is someone who can perform the following actions:
e Provide data to train bots and can add data over time.
e Edit old scripts and update new scripts according to needs.
e Configuration settings and integration with media channels (Facebook,
Viber, Zalo, Livechat ...)
e Track bot history and adjust learning bot through real conversation with bot
users.
e Customers’ insights statistics.
Bot user (Customer): This is the person who can perform the following actions:
e Chat with bots to get support from bots.
® Make conversations in several ways: ask input questions or click buttons,
image slides ...
Working mechanism
aa ————— - FPTAI FPTAI
NLP Bot Builder
[ | Core-engine | | Platform
Welcome to our Shop | 4
Figure 4.2: FPT.AI Conversation Platform working mechanism
After receiving messages from users, chatbot will respond using the following
mechanism:
17