Introduction
Last updated
Last updated
This user manual is divided in chapters that explains eva’s features and functions. Those chapters follow a user journey, from creating a bot to checking how it is performing.
In “”, you will learn how to assign a channel to your bot, how to integrate it to a cognitive engine and how to customize it.
In “”, you will learn how to manage users in eva.
In “”, you will learn the importance of using the same bot for different channels when not to, also how to keep your channel information up-to-date.
In “”, you will learn how the different eva components are strung together to build the bot knowledge base.
In “”, you will learn how to check your bot accuracy.
In “”, you will learn how to check how your bot is performing.
In the , you will have detailed instructions on how to integrate your bot to different cognitive engines and external analytics tools.
In the you will find definitions of eva’s different components.
Talking to each other is second nature to most of us, but it is an extremely complex endeavor for a computer.
However, if we look at the structure of language, we see that conversations are made of flows: logical steps that branch and become something much more complex. Bots work just like that. They start with a single conversational string that branches out to become something much more complex.
eva allows you to build those flows in a simple, intuitive environment and combine them to form robust bots.
eva has a simple and friendly user interface to build bots. How to use it will be explained below. When two people talk to each other, their dialogs are sequences of questions and answers. A conversation between a person and a virtual assistant follows the same structure. When you build a bot in eva, you will have some tools to make questions and discover what a user wants (intents and entities) and to answer those questions in many ways. Before starting building your bot, there are some important concepts.
In a conversation between two people, one person will say something and the listener will have to decode the sentence to answer properly. The human brain will compare the information it received to what this person learned so far and then will answer.
When a person asks for a pea soup in a restaurant, the listener’s brain will decode not only the concept of soup and pea, but the style of the region, the kind of pea, the meaning of “want” and the fact that “I”, means the person who is talking.
The process goes like this:
The person who is hungry wants a pea soup.
This person asks for a pea soup.
The waiter listens to the sentence “I want a pea soup”.
The waiter’s brain will decode this sentence. “I” means the person who is ordering, “want” means there is a desire, “pea” means a category of legumes and “soup” means a watery foodstuff category.
The waiter knows that the person wants a watery food made from a legume, but the kind of pea and the soup recipe will depend on the time and place.
When someone asks something to a bot, a similar process happens. The question is taken to a computer program, called a cognitive engine, that employs Natural Language Processing (NLP, for short). This program will decode what this person is saying by comparing it to example sentences that were fed beforehand.
So, the same person might say “I want pea soup” or “Bring me pea soup”, the NLP will understand that this person wants a pea soup.
The result of this interaction will send back to eva, that will select the most compatible answer and deliver it to the user.
When the NLP receives the question posed by the human to the bot, it has to do what our brain does and compare it to the dataset it has to decode that sentence.
Before saying “I want soup”, the user knows that he wants soup. An intent is the expression of this desire, a collection of possible sentences that a user would say. Those are the initial questions that you tie to specific answers.
The sentences “I want soup”, bring me soup” and “I want to order soup” indicates a desire to eat soup.
The intent is the dataset of possible sentences and fragments that shows to the NLP what a user wants.
An entity is a selection of categories, synonyms and phrase structures that helps your bot to understand better what a user is saying. After discovering that the user wants soup, you use entities to know the flavor, temperature and quantity. So, a large pot of hot pea soup uses three entities: size, temperature and flavor.
After getting the desire for soup, the NLP will try to understand what specific soup this person wants. It might be a pea soup, a gazpacho or a ramen. So, by using those categories, the bot will have a clearer picture.
In eva, there are two categories of entities: synonyms (words with approximate meaning) and patterns (phrases that share the same structure). They have to be tied to specific answers.
After building those elements, you have to make sure that they are connected to the right answers. To do so, you train your intents and entities. This process makes sure you connect a user sentence such as “I want a large bowl of hot pea soup” to the intent “order_soup” and the entities “soup_size”, “soup_temperature” and “soup_flavour”.
The training is the same process that a person goes through when learning a language. It ties sentences to meanings. A waiter had to be trained to know what kinds of soups and their ingredients to understand what a patron wants.
When you connect those intents, entities and answers, you form a flow, or the representation of a dialog between a bot and a human.
A bot probably will have more than one flow. When a user says the first sentence to a bot, the NLP will search among the intents to see if there is one that fits the user message and will deliver the flow that it starts.
So, when a user says to a bot “I want soup”, the NLP will search an intent that matches this sentence, such as order_soup, and discard others, such as order_pizza or order_taco. After that, it will run the flow attached to this intent (if it exists), asking which is the soup flavor (pea), temperature (hot), quantity (a lot), and so on.
This dialog must happen somewhere. This place is called “channel”. It is very important to choose wisely where the interaction between a human and a bot happens. Depending on where you choose, you will have to adapt your bot. Some channels only accept text, while other
only accept audio or video. Other channels accept everything. In eva, you can even build a bot that inhabits virtual realities. You will choose your bot channels depending on where the users are. And this choice will reflect on how you will build your flows.
This manual will show you how to build and maintain bots in eva, from choosing NLPs to creating intents, entities and every other eva component. But before learning how to use eva to build bots, here are some general guidelines and best practices:
You should use a clear and fluid language, so your bot can be understood by a diverse audience. They also should be short, as a bot must be practical.
Always plan your bot persona beforehand. Study your target audience and then decide on how your bot will talk. Slang might work for a teenager talking about bonus points, but not so much for a senior that was victim of a fraud.
Pay attention to heavy files. You should think beforehand about your client and user data usage
Don’t be ironic, offensive, rude.
Always keep your content updated. Avoid data involving numbers (such as dates, quantities, and so on), as they might change without notice. If you really need to use them, pay extra attention.
Test links periodically to make sure that they are working.
Pay attention to what your users are saying. You should keep up to the current affairs and subjects.
Always train your bot so it can understand your user better.
Pay attention to memes, news, seasonal events, and so on. Don’t surprise your bot. Someone might ask something pertaining to a meme or a recent event. Be prepared.
Start your intents with at least 10 examples and then keep adding new ones.
Do not use similar examples for different intents. The NLP might get confused.
Use complete sentences as examples. “I want to cancel my order” is way better than just “cancel”. From “I want to cancel my order” the NLP can extract variations such as “cancel” or “cancel order”.
Try to keep your intents with a similar number of examples.
It is good to design a strategy for your intents. You can build intents with a lot of examples to cover possible spelling errors or build intents with fewer examples and deal with those spelling variations with entities.