A chatbot is a software to simulate conversation using Natural Language Understanding (NLU) that is a part of Artificial Intelligence (AI). There are three main components of chatbot; Conversation / Dialog / Flow Manager, Natural Languange Understanding / Processing (NLU / NLP), and Content / Data.
Conversation / Dialog / Flow Manager
A basic component. It is a software to decide or manage responses to users based on what the user has said as input, to place the user in a specific conversation flow, and also depends on the circumstances the user has.
Natural Languange Understanding / Processing (NLU / NLP)
NLU and NLP are similar. NLU is a piece of software of AI to decide the intents and entities of the context or sentence. NLP is about how NLU works. It converts the unstructured data to structured data with a value of confidence (from zero to one) to the intents and entities.
Content / Data
The content or data is needed to train the NLU for deciding the intents and entities. The content is sentences of a lot of (sample) conversations as input and output.
A chatbot is a conversation software with NLP. Conversation software is a piece of software with multiple if-else and switch statements. The content is templates as actions or outputs, and data to train the NLU.
I built some chatbots from scratch, but I have some tools that I used and recommend:
- Rasa. You can make conversation flows, design and train the NLU, then deploy it to your server.
- Kata.ai. It comes with beautiful UI to design the conversation flow, design and train the NLU, and many more. Seamless deployment. You don't need any server to deploy the chatbot or NLU, and it supports multiple channels such as LINE and Facebook Messenger. The NLU is great for Bahasa Indonesia because it comes with some pre-trained models.