As a parent, I'm constantly faced with the dilemma of giving my kids suggestions on what books they should read. Like any parent, I always want my kids to read more, but not knowing what content my children will enjoy creates hurdles for the discovery process.
Generally speaking, titles come from other parents, children's friends, teachers, librarians, book stores, and web sites. But even then, how do I know these books will pique the interest of my kids? And more importantly, are they appropriate for their reading level?
Wouldn't it be great to have a trusted source of recommendations that takes into account key factors such as child's age, reading levels, interests, and their favorite authors? Essentially, a single destination for book discovery but one that is also extremely intuitive to use and readily accessible.
Thus, Parent's Librarian was born. An ideal marriage between a leading edge content discovery platform with Amazon Alexa technology and tools!
What it does
Parent's Librarian allows parents to discover children's literary content that is appropriate for the interests and reading level based on the child's age, previously read books, and preferred authors. And it takes place in a frictionless environment by using natural language voice interactions via Alexa-enabled devices.
Parent's Librarian also supports multiple recommendations so users are provided with more choices for their children.
How we built it
We built Parent's Librarian using Alexa Conversations to manage the dialog model and combined it with our proprietary software and associated algorithms (lambda functions). We use AWS hosted services for our back end including relational database.
Challenges we ran into
Learning how to construct a dialog model using Alexa Conversations was challenging. The tutorials and sample skills are big help but it takes some time to learn the nuances of the system. Building and training the model for the skill can be time-consuming and requires patience. Often, cryptic build fail messages including the dreaded "Build model failed, with no accompanying info", make it challenging to track down and debug issues. Alexa Conversations can be prone to corrupted models (e.g. following changes to dialog variables and arguments) which trigger error messages that don't reflect the surface values. Sometimes, the only solution is to rewrite large portions of the dialogs (I believe this is a known problem and best practices exists now). The lack of a revision/code management system for Alexa Conversations makes it difficult to track changes and increases the risk of regressions errors and build breaks.
Accomplishments that we're proud of
Providing book recommendations relies on a large amount of data which can be extremely intensive to work with. We're proud of our platform's algorithms that can analyze and produce suggestions that are both tailored to the interests of the child and appropriate reading level. Even more impressive is our ability to generate recommendations in a timely manner.
What we learned
Testing your skill in the console is quick and easy but doesn't reflect the nuanced interactions that happen with an actual device (e.g. time-outs, accuracy, natural conversation, etc).
The bottom line is it can be both a frustrating and a highly rewarding experience working with Alexa Conversations (AC). In its current beta state, AC isn't without its warts, but as a Skills development and dialog model tool, it is definitely a game changer!
What's next for Parent's Librarian
The Parent's Librarian platform and its algorithms are constantly evolving to improve the suitability of its results for the target readers. Combined with a growing library of titles, the platform continues to provide better results drawn from an expanding content set for parents and kids.
The team at Chatter Learning is extremely excited about the future of Parent's Librarian and a plethora of features and enhancements are planned for the skill. In the near term, support for Amazon display devices (e.g. Echo Show) as well as expanded invocation options are a priority.