So you want to build your own chatbot, and you want to do it quickly? Well, you’re in luck; several businesses have opened up their chatbot API’s to the public, so you can use them with little to no programming experience.
Here’s a run down of some of the most popular API’s that are available out there for use. Spoiler alert — none of them seem to be smart enough to build a productive bot that can help solve all your business problems. But they may be able to solve some of them. I’m bringing you a list of APIs, what they have to offer, and the ways in which I find them lacking.
Api.ai was acquired by Google in 2016. All of their NLP (Natural Language Processing) and ML (Machine Learning) data are available for use for free. Here are some advantages and shortcomings of the API:
- Conversations are driven by the user and not the API.AI chatbot. This means that the bot cannot initiate a new thread of conversation with a human user. E.g. the bot can’t ask the user questions like “Would you like to schedule a consultation?” because Api.ai assumes that all questions are generated by the user (& thus, all answers are generated by the bot).
- CON: Api.ai has developed the chatbot to behave like a search engine as opposed to a conversation engine. This means that a user can ask a question, and the bot responds to it, and the cycle continues. This make the communication seem one directional, since as the user is the sole recipient of information, and the bot is the only provider.
- PRO: Api.ai has certain pre-built modules that can be used to build a chatbot very quickly. For example, it has built-in templates for bookings, events, time and date, social networks etc.
- CON: Limited Machine Learning options are available, e.g. the ability to train new classifiers. However, the training algorithms are used in the backend, and adding new ML or NLP techniques is not supported. So, you can’t choose how to sort your data. Find out more about the pro/cons of ML algorithms here.
- PRO: Api.ai has SDK’s (software development kits) to support a large number of languages
Motion.ai claims to make the development of chatbots very simple by using a visual, flowchart-based development processes. Here are some cool features and limitations of using it:
- Using Motion.ai, you can visually build, train, and deploy chatbots. Motion.ai views chat interfaces as flowcharts and allows users to build their own flows of conversation.
- PRO: It’s easy for anyone to use, because it has a drag-and-drop structure. So people just use modular blocks to create flowcharts. You don’t even need to know how to code.
- CON: It’s infrastructure-focused, as opposed to NLP and AI (Artificial Intelligence) focused (which means it yields beautiful but bad quality bots).
- PRO: It has a small set of “bot templates” e.g. Restaurant bot, Survey Bot, Pet Adoption bot.
- CON: It is strongly dependent on the human following through with what the bot asks. It is very easy for a conversation to get into an infinite loop. e.g.
Q: What is your email address? A: I don’t want to share that right now Q: That doesn’t look like an email address. What is your email address? A: Representative Q: That doesn’t look like an email address. What is your email address?
- PRO: It starts with questions initiated by the bot. e.g. “How can I help you?” which is something that isn’t supported by Api.ai
- PRO: It has defined types of conversations that can be initiated by the bot. e.g. Multiple Choice Questions, Web Search, Yes/No Questions
- CON: The “NLP” is nothing by a regex type match where the bot looks for the exact or near similar matches of a word existing in the answer set received from the user, which makes this chatbot very simple and dumbed down — with little or no Artificial Intelligence in its backend.
ChatterBot is a freely available and downloadable chatbot simulator that can be used to develop a chatbot that appears human. Check it out on GitHub.
- E.g. if John says “hi”, ChatterBot responds with “Hello”
- ChatterBot does not have any true understanding of language
- ChatterBot requires training using human conversation, and it picks out the most likely response given a question/statement from already existing responses.
Wit.ai was acquired by Facebook in 2016, and is free to use - as long as you do not exceed rate limitations, which can bring their servers down. Find it on GitHub.
- PRO/CON: Wit.ai claims to be NLP for Developers. This means that if you are a programmer and don’t have internal knowledge of AI or NLP, you can still use Wit.ai. This is a huge PRO for developers, but a huge
- CON for scientists who like to work with the internals of the chatbot.
- PRO: Wit.ai provides some multilingual support for a limited set of languages.
- CON: It has limited core NLP functionality. E.g. you can add new entities of interest, but there is limited relationship-specification that’s possible between different entities.
- CON: It has flowchart-based conversation management, which is probably not the most ideal form of conversation management, which is the same downfall we see in the Motion.ai example above.
Chatbots need to be experts in their fields, and don’t need to know trivia about the world. For example:
- Real estate bots need to know that a gas leak is a higher priority than a water leak, and a water leak is a higher priority than a house painting
- A cosmetic surgery bot needs to know that a person enquiring about laser hair removal won’t be interested in new hair growth techniques for the same location on their body.
- A finance bot needs to know that people with checking accounts over $10,000 would benefit from having a savings account.
Most services try to build a “one-size-fits-all” solution. But that won’t work in almost all cases. Bots need to be custom made to perform well for one solution.
The freely-available chatbot services are not trained using proprietary information (E.g. customized financial language, or customized retail products).
In order to build something useful, we need to go a step beyond the generic and freely-available information we can find on the internet. For example, a chatbot needs to be trained using specific concepts or jargon that’s pertinent the domain or field it’s going to be used in. It doesn’t need to know about everything in the world. It just needs to know details about focused concepts.
- E.g. if Bank of America needs a chatbot, they will need to build one from scratch that understands terms like ”checking account” or “money market account”.
- E.g. if Home Depot needs a chatbot, existing chat services will not have an understanding of the different products and services that Home Depot is an expert in, e.g. “backsplash workshops” or “½ inch drywall screws”
The chatbots I listed here — Api.ai, Motion.ai, Chatterbot, and Wit.ai — are good starts to a growing field. They are fun to play with, and since three of them (Api.ai, Chatterbot, and Wit.ai) are free, I’d say that’s a pretty good deal. Still, most companies are going to have to create custom chatbots to truly get the usability and clarity they want.
I hope you found this analysis of chatbots interesting and helpful. If you enjoyed reading this article, please take a second to hit the heart icon below or leave us a comment!