Thursday, June 30, 2016

Unit Converter Bot

Unit Converter Bot converts from one unit to another. You can use it by asking questions like “How many liters in 3 quarts?” or “Please convert 5 pounds to kilograms.”

image

My goals for Unit Converter Bot were to have a limited scope, use natural language processing, and handle unknown conditions.

Limited Scope

The reason I wanted limited scope is to be able to create a bot in a decent amount of time, make building it manageable, and give potential users a definitive reason to use the bot. I think there are concepts out there where people are building bots with a wide array of features. If I had embarked on something like that, I wouldn’t be writing this blog post right now because I would still be building the bot. Limiting scope also increases the quality of Unit Converter Bot because it reduces the number of possibilities of what people can say to the bot. What I’ve learned so far is that even with simple conversions, there are many ways to request the same thing. Combined with the number of possible conversions, the complexity increases. Limiting scope reduces this complexity. Users would benefit from the bot’s limited scope because they know that this bot does one thing and won’t be confused in what’s it’s purpose is. By focusing on one thing, my bot has the potential to be awesome for conversions only and thus more useful.

Natural Language

Engaging in conversation is the sweet spot for bots. In the future, people won’t want to constantly learn new UI’s, they’ll just want to ask a question and get an answer. Many current bots aren’t much more than a messaging based imitation of an app or Web site – and that’s okay because I’m not advocating a one-size-fits-all approach to bots. What I am saying is that the conversational aspect of bots is so compelling that it should be strongly considered in addition to buttons and menus. Unit Converter Bot uses natural language processing and is pretty decent at understanding the question. Considering the vast number of possibilities of how someone could ask a conversion question, there’s undoubtedly questions that the bot won’t understand. However, it will continue to improve to the point that not understanding a conversion question will be a rare occurrence.

Graceful Recovery

People ask bots all kinds of things. If someone were to ask about the weather, Unit Converter Bot will politely let it know that it doesn’t understand the request. However, stopping at the point of misunderstanding is a missed opportunity. You have to think, “what is the goal of the bot?” In this case it’s unit conversions and the bot needs to do everything it can to help the person reach their goal. So, Unit Converter Bot has a backup strategy where it takes the user step-by-step through a set of questions to perform the conversion. This increases the possibility that the user will have a successful experience with the bot. My goal was to not just leave people hanging when the bot doesn’t understand them, but to take extra measures to help them achieve their goal.

Parting Thoughts

This was a great exercise in designing and building a bot that I thought should stand up to higher standards than the demo’s I’ve been blogging about. It’s been a good learning experience and I expect to learn more from it. I built this on the Microsoft Bot Framework. Though it resides on all supported channels, a few channels are pending final approval.

@JoeMayo