Why do we really need chatbots?
A few years back (two to be precise), Facebook launched Messenger platform to build chatbots, and since then these small computer programs designed to simulate conversation with human users through the use of Artificial Intelligence (AI) algorithms have been one of the biggest hypes in IT. In fact, it wasn’t that hard to find an article saying that “chatbots are going to revolutionize e-commerce” or “chatbots are going to replace many web and mobile applications”. Additionally, new tools ranging from code libraries, drag & drop tools, Graphical User Interface (GUI) based chatbot builders, mockup tools and analytics platforms were being launched each single week.
Although all of these new tools and platforms generated a lot of hype, it seems that chatbots haven’t lived up to their initial promise, probably because the promise itself was wrong! So far most of these tools and platforms don’t have the level of AI required to achieve a full human-like conversation. Many developers believed that chatbots were going to replace a ton of mobile and web applications, and they started replacing their applications for chatbots which ended up being weak re-implementations of their initial functionalities. The only chatbots that worked out are the ones that re-imagined the purpose of the initial application through a conversational perspective.
All of this led to many people to start questioning whether the chatbot trend is a hype bubble that is eventually going to burst and some people actually believe that the burst has already happened a while ago.
Although we agree that expectations around the consumption and development of chatbots were unrealistic, we still believe that the world needs them. We have been used to traditional Graphical User Interface (GUI) to interact with software. But stop a minute and consider this question carefully : aren’t conversations a much more natural way to do the same thing? There are some people that argue that clicking and pointing is something more natural to humans because it’s what we did when we were babies, which is actually true but only if we talk about colorful pictures, not when we end up trying to look for buttons and links to click in a 4 level menu.
You might still be convinced that a traditional GUI is the natural and most efficient way to interact with a computer, and that is because you have been exposed to PCs, cell phones and other pieces of technology for most of your life. However try to ask seniors – who probably haven’t grown up using GUI like we did – to use a certain application for the first time. GUIs are actually complex to use for people that are not accustomed to them. This also applies to developing markets, where the majority of the population is just getting connected to the internet and starting to use smartphones.
One thing we can be sure is that these people have been used to have normal human like conversations, and so, we can say that there is a huge market for developers to use chatbots that are able to “talk” with these users – either by text or voice – in a natural way and in their own mother tongues. Chatbots can also be used to solve problems in areas which haven’t kept up with technology evolution as much as others: i.e. education, healthcare, banking and so on. Conversational UIs help in removing the technology apprehension that the people in these sectors might have and also provide more intuitive solutions to problems in these areas.
If you are curious to know more, check out chatbot.fail! This website explains perfectly why chatbots typically fail and provides guidance on how can you start building better, more relevant and delightful chatbot experiences. 🙂
Introducing SAP Conversational AI
On January 2018 SAP acquired Recast.AI, a French start-up that focused on conversational user experience technology. This acquisition enriched SAP’s Machine Learning capabilities which are essential to our goal to provide intelligent software solutions to customers worldwide. Now, the powerful and simple-to-use chatbot development environment first developed by the Recast.AI team is fully embedded in an offering named SAP Conversational AI.
SAP Conversational AI provides a collaborative chatbot development environment where anyone can start building chatbots in a few hours. You don’t need a software development background to access its best-in-class Natural Language Processing (NLP) and Natural Language Understanding (NLU) capabilities. Then, you can connect the bots you created to the most used communication channels (i.e. Facebook Messenger, Line, Skype, Slack and others).
You can make use of more than 20 supported languages to understand what users want to say. And finally, you can integrate all SAP solutions through our standard APIs, and with other 3rd party software.
If you think it’s too good to be true, we actually spent less than a day to learn how to use the tool and build our first chatbot. So, how do you get there ?
Build your first chatbot in a few steps
In order to start building chatbots using SAP Conversational AI, firstly we need to understand these 4 different concepts:
- Intent: an objective the user of the chatbot wants to achieve (for example: Request a Vacation);
- Expression: a sentence that a person says to express what he/she wants to achieve (“I need to book a vacation for October” or “Submit a vacation request for October 12th”). An intent is expressed through expressions;
- Entity: a word or a group of words that have value for the intent (Date, Time);
- Skills: what the chatbot is going to answer to a certain question after understanding its intention (Retrieve Confirmation).
SAP Conversational AI is divided into 4 steps (see picture above).
The first one is Train, which is where you are going to create intents or either use already made ones created by a community of more than 30.000 developers, saving you a lot of time specially with the most basic intents (for that you just need to search and fork an intent from the community).
To create an intent you just need to choose a name for it and start populating it with expressions that might have entities or not. As you can see in the picture below the intent date_founded was loaded with 9 expressions, which have 4 different entities (pronoun, duration, datetime and number).
Here you have some tips that you can use to create efficient intents:
- If you are developing a chatbot for demo purposes try to add between 15 and 20 different expressions to your intent. If it’s for production around 60 different expressions will be necessary to leverage the full potential of the NLP capabilities;
- Despite the expressions you might have loaded to your intents, try to ask friends, co-workers and family (as much people as you can) for multiple extra expressions. These variety of perspectives will probably be the most important step for a successful performance of your chatbot.
Now that you have created all the intents, expressions and entities that your chatbot needs, the next step is Build.
This is the step where you are going to create the skills you need for your chatbot, and by skills we mean a question-answer pair or the way that the chatbot is going to answer a certain question from the user after understanding its intention.
There are 3 different types of skills. You have Business and Floating skills, which have the same structure but might be useful when the scope of the chatbot is more complex (when you build a lot of skills). You also have Fallback skills, which are used when no other skills have been triggered (you just need one skill of this kind in each chatbot).
A skill has the following parts:
- Readme: just used for writing a description of what the skill will do;
- Triggers: where you can define why the skill should be activated after a certain user message, i.e. after detecting or not a specific intent or entity.
- Requirements: used to describe what information will a certain skill needs to collect and/or what questions need to be asked by the chatbot in order to fulfill the requirements of the skill. Note that it’s not mandatory for a skill to have requirements;
- Actions: where you can define what the chatbot is going to retrieve after the requirements have been fulfilled, if it’s the case.
When you’re done creating your first skill, you can immediately try the interactions you planned. For that you just need to click on the chat button on the bottom-right corner and start testing if the intents and the skills you’ve built are actually working as you intended. If something is wrong, just go back and correct the conversation flow you’ve created before. The typical mistakes are normally related to lack of data present in the intents (in terms of quality and quantity) and misconfiguration of the triggers during the build step.
If you are happy with the results that you tested you can now move to the Connect step.
Here you just need to choose the messaging platform (or communication channel) where you will deploy the chatbot and just follow the instructions provided. Simple configurations are needed to deploy the chatbot into a channel and you can connect it to multiple channels at the same time. Below you can check for the communication channels available and also the types of messages supported by each one.
We recommend that you start to connect your newly made chatbot with Webchat, Facebook Messenger or even Telegram.
After connecting your chatbot to the world you can use the Monitor tab to track how is it performing and at the same time sharpen its intelligence.
Here you can check for all the messages that the users typed to communicate with your chatbot, see what intent and/or entity was matched through the use of its NLP capabilities and, in case it matches the wrong one, you can assign the one that is correct with one-click.
In the beginning of this chapter, we said that in order to build a chatbot using SAP Conversational AI, you need to go through 4 different steps. Well, if you want to add more advanced capabilities to your chatbot, such as consuming external APIs and connecting to it to different back-end systems, you will need to add a fifth step: Code. As the name tells, here you need programming skills. You can use several languages, like Node.JS and Python. We are not going to focus on this step right now because we don’t consider it as something that can be used in a beginner level, which is the main focus of this blog post.
However, you will find all the references you need to get started here, and we will showcase a real working bot connected to an SAP back-end in the next article 🙂
Here, you can find a few examples of what people are already building !
Do you want to get started?
As we told you before, it’s really easy to get started.
Firstly, you need to sign up for an account. Note that you can develop chatbots for free for personal and test use but if you want to have a chatbot for commercial purposes you need a subscription. With this, developers can practice while contributing with useful content to the community. All without paying a single cent!
You’ll find the best tutorials in here. We suggest that you follow the steps provided by the different available tutorials, that differ in terms of scope and level of complexity. To get started we suggest that you try out this one first.
For technical details check Recast.ai Concepts.
Finally, if you have any further questions don’t hesitate to contact us!
Jorge Mendes, SAP Portugal
Maxime Simon, SAP Japan