Alexa-Chatter icon indicating copy to clipboard operation
Alexa-Chatter copied to clipboard

Programmable voice assistant

Alexa-Chatter

This is a work in progress project.

Chatter is a programmable assistant that can get information from a number of sources. for example, weather, traffic APIs, rss feeds and more. The brains behind Chatter is Rivescript a simple scripting language for chatbots. Chatter uses Alexa Skills Kit catch all custom slot to capture what the users says, then Rivescript parses the utterances to the appropriate response.

Currently, Chatter can access the following APIs:

Adsbexchange - Interesting flights https://public-api.adsbexchange.com

Airnow http://www.airnowapi.org Requires API key

Cat Facts http://catfacts-api.appspot.com

DarkSky https://api.darksky.net Requires API key

Fixer.io - Foreign exchange rates http://api.fixer.io

Forismatic - Inspiring expressions http://api.forismatic.com

Google Maps https://maps.googleapis.com Requires API key

Mapquest http://www.mapquestapi.com/geocoding Requires API key

Moon API - Current status of moon http://api.burningsoul.in/moon

Oblique Strategies http://brianeno.needsyourhelp.org

Open Weather Map http://api.openweathermap.org Requires API key

People in Space http://api.open-notify.org

Random Jokes http://tambal.azurewebsites.net/joke/random

Space Launches https://launchlibrary.net/

The Open Movie Database http://www.omdbapi.com

The Internet Chuck Norris Database http://api.icndb.com/jokes/random

U.S. Geological Survey - Earthquakes http://earthquake.usgs.gov/fdsnws/event/1/

Weather Underground http://api.wunderground.com/ Requires API key

Chatter can search using these sites:

Duck Duck Go https://duckduckgo.com/

Open Movie Database http://www.omdbapi.com/

Rhyming Dictionary http://rhymebrain.com

Thesaurus http://words.bighugelabs.com Requires API key

Wikipedia https://www.wikipedia.org/

Wolfram Alpha http://api.wolframalpha.com Requires API key

WordNet - Definition http://chriscargile.com/dictionary/json/

Chatter can access common rss or xml feeds, google alerts and reddit topics. RSS feeds for CNN, Reuters, Wall Street Journal, New York Times, Science Daily, NASA, CNET, Crunch Gear, Gadget Flow and more.

Daily feeds for quote of the day, word of the day, history of the day, what happened on this day

Google Alerts for Amazon Echo, Google Home and Chatbots.

Random Reddit Topics such as artificial, chatbots, Futurology, science, space, technology

Chatter can also go over your checklist, get your to do list and calendar events, either from a cvs file or a rss feed from 30boxes.com.

You can also ask for a joke, riddle, random quote, random fact, imponderables or life's mysteries.

There are also some simple games written in Rivescript, such as a RPG demo, word game (madlibs), memory and math game. These games demonstrate what's possible.

To get started, say help me or what can I say, to get a basic list of the things you can say to Chatter. Of course, since Chatter is a chatbot, you can also chat, though, currently the interactions are limited.

To debug the interactions, if there is something Chatter does not understand, it will say: "I have no response for " and repeat what you said.

All the code which runs Chatter is found in the brain directory. You can easily change the wording of the commands, add other rss feeds or add functions. With Rivescript, Chatter is easy to customize for your own use.

##Instructions:

Copy the source_files.zip and upload to AWS Lambda. Note: I could not upload all the necessary files into the src directory, I kept getting an error, that is why I included the zip file.

The configuration is Runtime: Python 2.7, Handler: index.lambda_handler, Existing Role: lambda_basic_execution. In the Advanced settings, set the timeout to 50 seconds.

In the Amazon Developer Console, use the files from the speechAssets folder and make a custom slot named CHATTER and fill the slots with the values from CHATTER_Slot_Values.txt.

For the todo list, calendar, stocks and more you will need to host the startup.csv file somewhere. Personally, I saved the csv file to DropBox, which can easily be edited with a text editor. (Note when you get the link from DropBox change ?dl=0 to ?raw=1) Currently, Chatter is using the startup.csv file from https://raw.githubusercontent.com/ekt1701/Alexa-Chatter/master/data/startup.csv

If you are interested in learning how to code Rivescript, look at this tutorial: https://www.rivescript.com/docs/tutorial