Creating Scalable Chatbots Using Kairon
By Anitej Rao
Chatbots are a unique piece of software that can interact with a user in a conversational manner to guide them to the information that they need, and it can even execute actions. Chatbots can be moulded to specialize in a specific domain, giving them the flexibility to be used in various fields. This versatility means they are used in industries such as banking, retail, healthcare, and even governments have adopted them.
Taking a look at healthcare for example, many chatbots have been developed as the pandemic started in order to deal with the need to provide reliable health and safety information to people. Many governmental organizations deployed chatbots on popular messaging channels such as Whatsapp to disseminate authentic information. Even beyond the pandemic, there are healthcare chatbots such as Grace, that are an effective conversational interface to answer questions, recommend care options, check symptoms or execute tasks such as booking appointments.
Img Src: Appypie.com
2020 has been a defining year for chatbots, and according to Acquire, 1.4 billion people interacted with chatbots in that year. The demand for chatbots is ever-present given its domain agnostic nature. However, there can be a bottleneck when it comes to supply.
There are several issues that you can encounter while developing your chatbot from scratch. You would need the prerequisite of actually knowing how to code up the chatbot. And then constantly add code to maintain and even come up with fallback options in scenarios where the chatbot can’t handle the user’s questions/queries. While there are open source machine learning frameworks such as RASA that help build up chatbots by providing the infrastructure and tools, the biggest obstacle to developing a chatbot is providing structured data for it to learn on.
This is where Kairon comes into the picture. It focuses on technology that deals with the pre-processing of data. Kairon converts unstructured data into structured data that can be used by the RASA framework to develop chatbots.
Let’s say you want to create a chatbot that guides users on how to use your product. And you have information about the said product in the form of a pdf (unstructured data). You can then upload the pdf on Kairon’s platform and then let it do its thing. It processes the document to analyze the text, and then generates intents, questions and answers that come as three different files, namely; nlu.md (intents, questions), stories.md (storylines) and domain.yaml (intents, response and entities). You could also directly upload these files using Kairon’s interface.
These files are then fed to RASA which powers the chatbot! Now you have a functional chatbot that can understand questions, and can reply with appropriate answers driven from the text in your document! With Kairon, there is no need to use vast resources to prepare training data and then code up your chatbot for a specific use. Kairon helps build chatbots at scale for use in multiple fields!
How does Kairon pre-process data?
Kairon parses the text in the document to construct a dependency graph representation of the text. The graph is formed by taking into account the physical structure of the text – where information is located, as well as the semantic structure – how often a topic is talked about. Using this graph it is able to decipher the subject, verb and object of the sentences,which helps to extract intents, and thereby produce possible questions with its respective responses.
As mentioned earlier, chatbots require constant maintenance. Every once in a while your chatbot will encounter questions or queries it can’t service, so its knowledge base would need to be updated. This is done by adding new content to the training data it learns from in order to improve its interaction. It can then respond to questions it previously couldn’t handle. How do you know what to add? This would require an analysis of the questions the chatbot receives from users and how it responds. While this would normally be a complicated and technical task to do, Kairon’s interface allows even non-coders an intuitive way of improving their chatbot. The following images will give you an idea of the layout of Kairon, and how it can be used.
You can add custom questions and answers to the training data, by intent, as the following image shows:
Kairon’s interface makes it super easy to analyze the conversations your bots have! The history tab allows us to look at a user’s interaction with the chatbot.
The setup tab allows you to keep track of all your chatbots. You can also use this tab to train, deploy and configure the chatbot to your liking.
You can begin creating your first chatbot at https://www.digite.com/kairon/. And since we believe in community collaboration, we have kept Kairon open-sourced. So do feel free to contribute any ideas you may have at https://github.com/digiteinfotech/kairon