Meet Neona, a chatbot for learning AI

By interacting with her, you can explore concepts from across the field of artificial intelligence. By studying her design and architecture, you can learn how to build conversational agents.

Channels

Slack — Add to Slack
Facebook Messenger — coming soon.

Technology

Azure

An open, flexible, enterprise-grade cloud computing platform. Neona uses Azure Functions to process events with a serverless code architecture. These functions are responsible for extracting data from Wikipedia, processing it into the desired form, and storing it in Cosmos DB.

Node

An event-driven I/O server-side JavaScript environment. The Azure Functions were written in Node.js. It was used to call the MediaWiki action API, a web service that provides convenient access to wiki features, data, and meta-data over HTTP. Using Node.js’ request module (and JavaScript Promises), the API is called with very carefully constructed queries to return just the data Neona would need.

Cosmos DB

A distributed database service for managing JSON documents at Internet scale. It is a highly-flexible key-value store that integrates closely with other Microsoft systems. It is Neona's knowledge-base.

Azure Search

A fully managed search-as-a-service in the cloud. It indexes the contents of the knowledge-base and provides an HTTP endpoint Neona can hit to query the knowledge-base. It natively supports Cosmos DB.

Microsoft Bot Framework

This framework provided an impressive amount of functionality and was the inspiration for this project. For Neona, it provides the connection to the various channels, manages incoming and outgoing messages, and helps orchestrate the dialogue flow. It also integrates naturally with LUIS, a fast and effective way of adding language understanding to applications.

Artificial Intelligence Concepts

Semantic Network

A semantic network is a network that represents meaningful relationships between concepts. This is how Neona represents knowledge. We call her semantic network a knowledge-base (KB). The current KB consists of AI concepts. In the future, the KB will also consist of users that interact with the agent, courses from online programs, and jobs from career websites.

Classification

Classification is the problem of identifying to which of a set of categories a new observation belongs. If you chat with Neona enough, you will notice that certain words are strongly associated with certain types of responses. That is because she has found those words to be features that predict those responses.

Case-based Reasoning

Case-based reasoning is the process of solving new problems based on the solutions of similar past problems. Neona uses AI concepts other people have defined on Wikipedia as responses. These AI concepts are indexed, retrieved, and ranked by Azure Search. The keyword matching and ranking decide what concepts she displays.

Learning Resources

Team

Paul Prae
Creator, Cloud Architect
Thomas Bailey
Thomas Bailey
Computational Linguist
Austin New
Austin New
Lead Developer, Engineer
Dylan Martin
Dylan Martin
Full-Stack Developer
David Prae
David Prae
Front-End Developer
Ian Edwards
Full-Stack Developer

FAQ

  • — What's next for Neona?

    In the future, she will be used by students to find courses and jobs in the field of AI. From the perspective of universities and employers, she will also be used as a teaching assistant and a recruiting tool.

Contact Us

Atlanta, GA