What is a chatbot

How it is made

How hard is it to make

How to learn to use these services

2016 has been the year of the chatbots. A lot of instant messaging platforms have opened up to us developers to allow us to integrate our apps and services with them. This allows the apps/businesses to add an element of conversation to their service. Or it can also act as an automated customer service.A chatbot is a service, powered by rules and sometimes artificial intelligence, that you interact with via a chat interface. This allows us to add an element of conversation to businesses, apps and literally everything around us.A chatbot is made using the power of natural language processing or NLP which helps in parsing text typed or spoken by a user in natural speaking language. This is achieved by the help of machine learning.Once the language is parsed, the required data can be extracted and used to perform the required actions. This makes it look like the machine is understanding and obeying what we say in our natural language.J.A.R.V.I.S from the movie iron man may seem very hard to build. Of course, it is hard, but not as hard as it looks. The biggest challenge involved in making a chatbot is the natural language processing itself. So if we overcome that, then we have covered half the journey.There are a lot of free natural language processing services and APIs available. My personal favorites are api.ai and wit.ai.These services are surprisingly easy to use and are very agile. They also provide speech recognition support right out of the box. Also, they make it easy to integrated with messaging services like facebook messenger, slack, kik etc.Api.ai was recently acquired by google and wit.ai was acquired by facebook. So both of them offer top-notch services. But I would prefer api.ai over any other service because you know, it's Google's.There are several resources online, explaining how to uses these services. But my personal favorite is the one by Siraj Raval on youtube. In his video, he clearly explains the differences between each chatbot building services. He also builds a sample chatbot which is capable of handling the sales of a small flower selling shop. Here is his video, it should be more than enough to get you started.With enough practice, you can someday end up building a program better than J.A.R.V.I.S.I made a python-powered chatbot/assistant which is capable basic operations like opening your favorite websites in the browser by giving text commands in the natural human English. I am still working on it. I'll probably post the code on GitHub when it gets better.The possibilities with a chatbot are infinite. Most of the apps that are built are used only once by the users. So instead of building apps, we should build chatbot which can be integrated with the user's favorite messaging platform. This will also help the businesses scale much faster without investing on complicated software.So good luck in building your very first chatbot. Do let me know what you are building in the comments below.PS : Siraj Raval 's youtube channel is awesome. He makes short video tutorials about machine learning and other badass concepts. Do subscribe to his channel