The original Obama markov chain UI.
What 'It' Does
Her is an artificial intelligence companion -- you simply tell your Alexa-compatible device (Echo, Tap, or Dot) to start a conversation. You can start talking about anything and keep an engaging conversation going for a surprising amount of time.
How We Built It
We actually started by building a hack that utilizes Markov chains to generate (original) things Obama would likely say based on an aggregate of his speeches (as can be played with at http://guso.io/obama). We then thought it'd be a novel experience to converse with this simulated Obama, so we turned it into an Alexa application.
From there, we felt as though the next logical step would be to have a conversation in which the bot on the other side could actually communicate and persistent context -- that's what truly feels intelligent (at human levels), and that's how Her was made. We used the Cleverbot API to generate conversation and persistent context and AWS Lambda plus the Alexa SDK to be able to interface with it via voice.
Challenges We Ran Into
For one, none of us were familiar with Alexa or AWS Lambda before the hackathon; a great deal of time was spent familiarizing ourselves with the tools just to accomplish basic tasks.
From there, we initially planned to use a real chat API (such as Omegle) to generate conversation, but Omegle's API had various restrictions we wouldn't be able to circumvent. From there, we pivoted to building the Obama markov chain, and then we realized that Cleverbot API would allow us to achieve what we had originally intended with Omegle.
Accomplishments That We're Proud Of
We're proud that we have a functional Her at all! Given the amount of pivots in this project and sudden constraints, at certain points it didn't seem like we'd get this working at all.
We're also proud with the amount of work and the amount of different hacks we built to ultimately achieve our final product: we built everything from an Obama text generator API, to a web client for it, to an Alexa client for it, and then built an even more conversationally interesting Alexa bot after.
What We Learned
In terms of technical skills, we all dealt with the learning curve of Alexa and Lambda; for most of us, this was the very first hackathon and the very first opportunity to build a personal project, so that experience (in contrast with normal school assignments) taught us a lot in a small amount of time.
We also learned a lot about APIs and the power of abstraction that they provide -- we could spend more time thinking about the novel things we'd like to create than how we'd possibly create them despite limited experience.
What's Next For Her
You'll have to ask Her.