Back to Parent

Outcome


Show Advanced Options

Conceptualizing the Conversation

When I started out this project, I knew I want to create a chatbot which interact with people like a real friend. From the discoveries and articles we read in this class, I understand that people tend to project a personality to the bot s/he is chatting with. This sets the tone and "unspoken rules" on how to interact with the bot. It's is therefore very important. 

Here are the elements I took into consideration: 

- Tone of voice

- pacing

- interactions

- flexibility in words

...

I also want the human - bot interaction to be as natural as possible. The relationship should be developed organically, like real human interactions. Therefore, the conversation should evolve other time. I used the concept of "progressive disclosure" in design. Instead of dumping a bunch information upfront, the bot should disclose information gradually. Bot should give hints and guide where the conversation should go, but never force a conversation to happen. 

The main function of the bot is to provide book reviews, but this is kinda hidden. You will have to chat with Bear, get to know him more and then you will find out that he is such a well-read bear. This is exactly like how real life human interactions work - you find out a person's talents and personality the more you get to know him/her. 

This also created a sense of mystery - making it more interesting for users. 

Img 0153
Show Advanced Options

Coding the bot 

Because I want the conversation to be as natural as possible, and can adapt for different modes of engagement, I used a lot of "body.include?" rather than "body == " to make sure users don't need to type in exact same word. 

My initial thought was to incorporate Goodreads' API into the conversation, but then I realized that the reviews were so randomly drew, some reviews sounds very negatively or sarcastic, this is not consistent with Bear's personality. It would be very weird that your initial interaction with Bear is so positive and loving, but then he suddenly turn into a sarcastic or negative tone. 

Show Advanced Options

Reflection

It was such a Challenging project for someone who doesn't have much coding experience. But to be honest once I figured out the logic of ruby, it was a lot of fun making the bot! It's like creating a fictional character. 

Things I hope to achieve in my next project:

  • Incorporating natural language processing in Bear, such as IBM Watson. To make my bot more empathetic and can identify user's emotions.
  • learn technics to break down long conversations into several text, and slow down the time that the text is sent - mimic real life situation when users need to take time to type in the answer.
  • design a more sophisticated conservation structure. 
Drop files here or click to select

You can upload files of up to 20MB using this form.