While I love my Amazon Echo, I always felt that as a smart assistant, Alexa was missing a major piece of functionality: the ability to answer most of my questions. It's something Google and Siri can both do, but without the incredible convenience of hands-free, far field voice recognition that Alexa offers. Thus, I set out to code up a skill to fill that gap.

What it does

Ask Anything extends the ability of Alexa to answer questions by searching Google and scraping the result. By default, Alexa can't answer "can you use dish soap in a dishwasher" or "how do you fix a cold," but with Ask Anything, Alexa now can. To trigger the skill, say, "Alexa, I have a question." You'll hear "what's up?" in response, and you can ask Alexa any number of questions after that.

Example questions:

  • "can you use dish soap in a dishwasher"
  • "how to fix a cold"
  • "what is the common app"
  • "what time is it in india"
  • "how many calories are there in a matcha latte from starbucks"

How I built it

I wrote the scraper in Python and then uploaded that to an AWS lambda function, which runs in conjunction with the Alexa Skills Kit.

Challenges I ran into

Learning how to write an Alexa Skill in Python, as most of the sample code is in Javascript. Figuring out how to isolate the result of the answer from the larger search results page. Getting Alexa to accept a question of variable content and length and send that to the lambda function for processing, as the existing APIs are currently designed to accept a specific, limited list of potential responses.

Share this project: