49714 Programming for Online Prototypes
· 9 members
A hands on introduction to building online products and services through code
Cleo is a weather bot accessed via Alexa skill that provides utilitarian information including the daily forecast, high and low temps, and chance of precipitation, in an unconventional way. For example, if you ask her for today's forecast, she might tell you that she sees dark clouds of uncertainty in your future (and also that it's going to rain.)
My goal in designing Cleo was to challenge VUI convention; instead of delivering weather data as quickly and concisely as possible (as most CUIs/VUIs tend to do,) I wanted to create a more playful interaction. My hope was that by injecting a bit of mystique and drama into a traditionally simple exchange, users might form a different relationship with the data being delivered.
One of the most influential precedents in the process of designing Cleo was (the now defunct) Poncho the weather cat. I drew inspiration from the fun, whimsical nature of the interaction between user and agent, and was curious to see how I could put my own spin on the delivery of otherwise straightforward information. Cleo's namesake, the late Miss Cleo of 90's tele-fortune fame, also factored into the bot's personality.
Cleo was built utilizing the Dark Sky API (accessed via 'forecast' gem) to provide the following metrics:
Chance of precipitation
Each of these is invoked by a custom intent and tied to a conditional "fortune" designed to play on the terminology. For example, if the current temperature is below 40 degrees, Cleo will tell the user to prepare for "the bitter sting of disappointment" before revealing the numerical value.
One of the most challenging aspects of working with Dark Sky's API was converting the returned data into a form that would be appropriate for Cleo's script. For example, the humidity value automatically returns as a decimal between 0 and 1, so that needed to be converted to a percentage (as this is what most users are accustomed to hearing.) This in itself wasn't complicated, but I soon realized that depending on the day, the response would sometimes contain 10 or more decimal places, resulting in a response from Cleo of "it's fourteen point zero zero zero zero zero zero zero zero two percent!" These small variables added up to some strange and somewhat erratic behavior.
After sorting out some of the technical hang-ups, I wanted to fine-tune the experience of Cleo's response to delight users and encourage ongoing use. Following Cleo's initial response acknowledging that she's heard the user's question, a "magic" sound from the Alexa Skill Sound Library plays to indicate that she's "conjuring" the weather. (I initially experimented with a simple pause between these two responses, but the dead silence felt uncomfortable and seemed likely to cause users to question whether the bot was working properly.)
During the Wizard of Oz exercise and usability testing, I quickly learned that the framing of my bot was critical to its usability. At first, I positioned Cleo as a weather fortune-teller, and users tended to latch on to the "fortune teller" aspect, asking for their fortunes and wanting to know on what subjects they could get "readings." So to address this misalignment, I chose to redesign the introductory flow to clearly position Cleo as a weather agent. I also added a bit more structure to the initial exchange, having Cleo ask specific questions and steering the conversation in the right direction.
To alleviate some of the rigidity that could come from a simple ask-and-receive exchange, I wanted to incorporate some more casual and natural options in terms of utterances. For example, instead of only respond to a request for the chance of precipitation, Cleo will also respond to questions like "will I need an umbrella?"
To take this project forward, I'd like to build out further functionality in terms of what information is accessible, and utilize sessions to determine whether audio should be played in any given response. As was pointed out during our final presentation, the "magic" sound might get a bit grating if users were to ask a string of questions during one period of use, so I would want to minimize or do away with this effect after the first or second response per session. I'd also like to give users the ability to save locations more colloquially, e.g. "mom's house," rather than having to designate a city each time, or tap into the user's Alexa profile to glean the location information automatically.
I'd also like to try my hand at creating a simple physical computing element; I imagine that the "mystical" nature of the interaction between Cleo and user could be enhanced by some kind of visual component, such as a small "crystal ball" that flashes or lights while Cleo conjures the weather. This would lessen the need for audio during that wait time and could add a further touch of whimsy.
Cleo is a playful take on a weather bot, delivering the information you need with whimsy and a little mystique.
October 18th, 2018