Chatbots are still a hot topic, and can be a great way to develop a more natural interfaces for our applications. They can be quite a interesting way to make a computer do fun stuff without the need to train users or assume knowledge, but as per usual with hot trends there are way too many choices so let’s take a closer look at two of the major ones: Watson Assistant and Amazon Lex.
Chatbot terminology
There is a bunch of words you see used in most Chatbot frameworks so here is a quick rundown on what they mean.
Chatbot/Bot
A automated system that performs tasks based on processing natural language either via text or speach.
Intent
An intent is a action that someone interacting with the Chatbot wants.
Slots/Parameters
At runtime slots or parameters are used to figure out the specifics of an Intent. For example a slot in a order pizza intent could be which pizza you wish to order (Hawaiian, meat lovers, vegetarian, …).
Amazon Lex
Amazon Lex is the Lex part of Alexa. This is all of the natural language processing smarts without any of the other bloat. This allows developers to use a well developed, proven, and mature platform for all the fun stuff that Chatbots can be used for.
The Lex console has a familiar look and feel for regular AWS developers, following the normal white/grey/blue controls look that is seen throughout the AWS console. This is useful for experienced AWS developers but not so much for other developers who may find the console a bit bland.
Creating a bot with Lex is easy enough, the things you need are easy to find in the console, and have useful tooltips to help you get started. Beginners may find a little difficulty getting up and running due to there being no obvious progression from zero to chatbot, but once you figure out what is what creating a chatbot is easy enough.
One big advantage of Amazon Lex is the integration with AWS Lambda; Amazon’s serverless functions feature. Use of AWS Lambda allows you to easily write custom code that responds to certain requests made from your Lex chatbot. This custom responses can easily integrate with other functions and services to create a easy to build and maintain activity service.
Another plus in the Lex column is that you can export Lex bots to Amazon Alexa skills. So if you create a chatbot for your website or app and think that this cool functionality could be great in someone’s living room, it’s just a few button clicks away.
Lex is a nice middle ground between ease of getting started on a simple project like a Q&A chatbots, while still allowing you to extend the functionality with use of AWS Lambda function at a later date.
IBM Watson Assistant
IBM Watson Assistant is Watson visiting the fun world of natural language interfaces. Featuring a nice UI that includes a nice easy to follow dialog tree that allows to you group and parent your Dialog nodes, which can help organize larger projects into logical categories. Watson also has a great UI for testing your bot during development, which shows the intent the bot detected and allows you to adjust the bot to treat certain inputs differently, which helps you iron out those pesky edge cases. To go with the nice UI, the UX of Watson Assistant is also great. Creating a bot in the Watson Assistant dashboard feels like it has a natural progression of left-to-right. This can really help newbie chatbot developers get going without having to read much documentation.
While the Watson Assistant dashboard is nice and easy to use, navigating around the IBM cloud dashboard can be a bit of a headache for newcomers as the path for getting from a google search to somewhere you can develop a bot is a bit obscure.
Assistant also suffers from not having access to a wider range of cloud tooling. Where Lex has access to AWS Lambda IBMs tooling in this space (IBM Cloud Functions) is not as mature, so integrating the Watson Chatbot with 3rd party services or adding complex behaviours can be a little more of a difficult experience though certainly possible.
Overall Watson Assistant is a great tool for basic chatbots and beginner chatbot developers who want a great quality chatbot to add to their interface experiences.
Comparing the bots
Both Lex and Watson have great features and you will be able to create a great bot in either framework. Amazon Lex might be an obvious choice for developers who have resources already in AWS that they wish to integrate with, or databases in a VPC that does not have public access. Likewise Watson is a good choice if you are already developing in IBM-land.
Watson also has a slightly stronger showing for users who are not programmers, with you being able to get more done though the nice Waton Assistant dashboard without having to resort to writing code.
That’s all on Lex and Watson Assistant for now, but there might be another couple of Chatbot blogs in the future.
Until then
Coffee to Code
Tim Gray