Friday, June 12, 2009

A Look into Amy Iris' Brain

Amy Iris is a community-built Conversational Interface platform. She responds to user submissions as a chat bot would. This blog post discusses how she determines an appropriate response based on user input.

Users can interact with Amy Iris in chat sessions via the website (, or through widgets on other websites. Web Developers can add an Amy Iris widget to their sites for free, simply by agreeing to the terms, and grabbing the HTML. Developers can also build their own Conversational Interface, using Amy Iris' API. And users can interact with Amy Iris through Twitter.

When a user "talks to" Amy Iris, she seeks out an appropriate response, by submitting the text and any relevant context to various programs.

The first program is called ALICE. It's an award-winning open source chat-bot program that has been around for a few years. ALICE is Amy Iris' "fallback", in case no other developer-submitted code has a response for the user input.

Amy Iris also submits the user text and context to a series of Open Source Contributed Code Snippets, in search of a good response. Amy Iris has an algorithm to select which snippets will be executed, based on a number of factors, including keywords, author's reputation, snippet ratings, success in the past, etc.

Each of these code snippets executes, and many will provide Amy Iris with a potential response for the user, along with a rating stating how confident the code snippet is in the answer provided. The contributing developer will rate their confidence based on a number of factors, such as how thoroughly their snippet evaluated the user input, how much context is used to arrive at an answer, and how good of a fit the answer is.

Amy Iris selects a single answer to be provided to the user based on a number of factors.

The code snippets can run in isolation, or they can contact other websites to retrieve information. For instance, a code snippet written to perform natural language translation (such as English to Spanish) may post to an existing translation website, and parse the results, to present them to the user. This could use an HTML-scraping method, which provides a way to harness all of the information that's available on the web today.

The HTML scraping method is fragile, since the snippet developer is relying on a specific format for the resulting web page. It works, but it can break anytime the website owner substantially reformats their webpage.

This technique should only be performed with the permission of the website owner, and within the "Fair Use" guidelines of copyright law, as you would not want to "republish" information that is not intended for republication.

Code snippets can also interact with APIs (Application Programming Interfaces). For example, Best Buy has an API that they have created called Remix. Best Buy Remix allows you perform lookups on Best Buy's information such as store location, product information, pricing, etc.

APIs typically provide a more robust, sturdy method of information retrieval than HTML scraping, since API specifications are typically published and changes to the specification usually take existing users into account so that they don't break anything.

So, the whole system looks like this. Amy Iris is a repository for developers to submit and manage Open Source code snippets. It's a toolkit to allow you to build "Application specific" bots. It's a collection of widgets that allow developers to integrate the the tools into their own products.

In short, Amy Iris aims to do for Artificial Intelligence what Wikipedia did for Encyclopedic knowledge - provide a free, open source, contributory platform for the benefit of the world.


Steve Oldner said...

That's pretty neat! It can be applicable for an ERP system, like a FAQ or Help. Thanks!

Amy Iris said...

Thanks for the comment. I definitely think conversational interfaces are the wave of the future. Something similar is already implemented on phone systems at major corporations - call in, and machines talk to you as they guide you through a series of options, and try to answer Frequently Asked Questions.

Customer Service, Helpdesk, HR Q&A, FAQs, Website guide - all these are great applications in my opinion!