Chatbots are systems that use artificial intelligence to conduct an online conversation through text or voice interfaces. These conversations can be simple, such as asking a robot about the current time, or more complex, such as conducting a long conversation about a given topic.
In this article we explore some platforms dedicated to creating custom chatbots for your business.
First of all, it is worth noting that you can create a chatbot without using any of the platforms available on the internet, and start working from scratch. This will of course give us a full control over the design, the model choice, parameter settings, training data etc. Except that from a cost point of view (time, effort and therefore money), it is usually not quite optimal to choose this option.
Chatterbot is a Python library for creating custom chatbots.
To use it, you have to create a list of conversations and train the model based on it. The creation of this list remains a tedious task, yet mandatory for the bot to know the different scenarios it will face in production. Another big problem in this kind of system is that you don’t have a reasonable control over the model and its parameters, you just provide the data and you don’t know anything else about what happens in the training phase.
Chatterbot is an example of this type of systems that now occupy a large portion of the platforms on the market.
Problems with this approach arise mostly when the bot doesn’t work as expected (and we usually find ourselves in this situation at some point on most projects) – this is what developers refer to as debugging.
AllenNLP is a Python library, based on Pytorch, and used by big companies and institutions: Facebook Research, Amazon Alexa, Airbnb, University of Washington, etc…
AllenNLP is well known and powerful when it comes to give it a text and then ask questions about the information quoted in this text.
One of the strong points of AllenNLP is that it proposes implementations of what is called ‘state of the art’ of the most efficient artificial intelligence models. Thus, we can choose a model which is well adapted to our needs, download the weights and use it without the need to train it ourselves. This saves us time and resources.
AllenNLP is a reasonable choice in cases where we don’t need a training database “specific to a singular domain”, and when our goal is to make our bot understand a given text: it’s Natural Language Understanding.
AllenNLP is therefore not really designed for chatbots in their common sense, i.e. to maintain a conversion.
Furthermore, we can use this library in case we want to create a chatbot ‘from scratch’.
We can use the state of the art models already implemented to save time (and gain more efficiency too).
DialogFlow is a platform developed by Google. It adopts a hybrid approach : first, it tries to obtain a rule-based grammatical correspondence. If no match is found, it switches to matching using Machine Learning tools.
DialogFlow has several advantages: First of all, it supports speech recognition, it is well documented, it supports several languages, and it can be integrated with other platforms such as Slack, Messenger, Telegram etc.
In addition, DialogFlow is equipped with spelling and grammar correction tools, and has an optimal response time when compared with other solutions.
DialogFlow gives relatively more control over the model, i.e. the ability to personalized settings, a rich choice of actions: sending text, audio, media, executing predefined tasks, and the ability to import/export the bot.
DialogFlow is accessible via two interfaces: Console or API. Additionally, it offers an advanced dashboard for viewing statistics and performance of your bot. This allows you to further improve the user experience you provide.
A lot of challenges arise when you’re actually building chatbots that are supposed to conduct complex conversations in several levels of depth. So far, chatbots are not “extremely intelligent” tools. Understanding human language is one of the extraordinarily difficult tasks for machines.
That being said, we are no longer in the era where chatbots only answer questions by consulting a database of predefined questions/answers.
By implementing your chatbot using the platforms we have presented in this article, you will give them an undeniably significant level of intelligence, and therefore provide your customers with a better experience.