My First Chatbot

The Beginnings

After learning the basic notions of machine learning, we delved into the world of conversational user interfaces (CUI). CUI’s are user interfaces that emulate a conversation with a real human. It’s the Hals, Eliza’s, Alexa’s and Siri’s of the world. The most basic form of a CUI is a chatbot – dated term I know, but relevant nonetheless.

The concept of our chatbot assignment sounded simple enough: build a chatbot that helps you with something in your life. My group and I brainstormed together and came up with Mookie:

Everybody goes about their day experience a range of emotions. Sometimes we’re nervous, we doubt ourselves and overthink. We may thrive in one environment, like as a leader at work, while falling short in another environment, like when we have to present a project at school. Somewhere in the mess that we call life, sometimes we just need someone to check in on us, see how we are doing. Whether it be to motivate us or calm us down, this person will be focused on us and our well-being. It’s part therapist, part best friend, part hype-man.

We imagined Mookie to be used in a situational context – right before a big presentation, during an evening period when you start to feel anxious, or when you’re sitting in traffic and begin to dread the next activity. It would be friendly, uplifting, wise but stern. We included “brief” as part of Mookie’s personality because we didn’t want the user to become dependent on Mookie for emotional support. To help with our conversational design, we wrote out and a rough script and also drew a conversational flow chart:

CUI Conversation Flow 1.jpg

The Building PROCESS

We built Mookie using DialogFlow, a robust platform for building virtual agents brought to you by Google’s machine learning and algorithms. For those unfamiliar with conversational design or the building of virtual agents – it’s really hard! Conversation comes easy to humans because it’s natural for us, it’s intuitive. Our conversations ebb and flow, we switch back and forth between subjects, we jump around, we’re funny and serious at the same time. The casual comfort of human conversation is very difficult to implement into a virtual agent because you have to break down aspects that make up a conversation by creating intents and entities.

Plainly speaking, intents are the actions of purpose behind an utterance while entities are the objects mentioned in utterances that are relevant to a user’s purpose.

intents_entities.jpg
Screen Shot 2020-02-08 at 2.09.56 PM.png
Screen Shot 2020-02-08 at 2.10.07 PM.png

Intents are more easily defined when a specific task needs to be done, like ordering a pizza or making reservations. Our bot on the other hand, was more ambiguous and it became difficult to determine what was an intent and what wasn’t. To be safe (and because we are newbies at this), we made a ton of intents and a ton of entities. Mookie was built to respond in a very specific scenario:

It is Sunday night , and come Monday morning you have two classes in which you will present on readings in seminar and then move to studio in which you will participate in rockets (quick presentation of ideas) . You don' t like presenting because it makes you nervous and anxious. So, you message Mookie for a pep talk. 

Click here to say hi and interact with Mookie!