Recipes Alexa skill
Final project for the Language understanding systems course @ UniTN A.Y. 2019-2020
Dataset used to search recipes: Food.com recipes and user interactions
Initialization
In order to run the Alexa skill from your local machine follow this steps:
- Install the necessary python packages:
pip3 install -r requirements.txt
- [Optional] Update the sqlite3 db (the version in the repo is a lighter one)
- insert the
RAW_recipe.csv
file into therecipes_db
folder - run the
create_db_from_csv.py
script file to populate a db file - run the
scrape_ingredients_quantity.py
script if you want to take the right ingredients quantity from the web
- insert the
- Install the
ngrok
program - Create an Alexa developer account
Start the Alexa skill
- run
rasa run actions
- in another shell run
rasa run -m models --endpoints endpoints.yml
- in another shell run
ngrok http 5005
- copy the resulting url of ngrok (like "https://123abc4d.ngrok.io")
- go to the Alexa Developer Console
- choose "Endpoint" from the "Skill Builder Checklist"
- select HTTPS
- as SSL certificate, choose "My development endpoint is a subdomain of a domain that has a wildcard certificate from a certificate authority"
- copy the ngrok url concatenated with
webhooks/alexa_assistant/webhook
- save your endpoints configuration
- go to the "test" tab and start testing it by saying
recipes assistant
Test different configurations
To test different nlu pipelines over the training nlu, create some configuration files in the NLU_pipelines
folder and then type:
make test-nlu
In the NLU_results
folder you will find the obtained results.
To test different core policies over the test stories, create some configuration files in the CORE_policies
folder and then type:
make test-core
In the CORE_results
folder you will find the obtained results.
To test different nlu pipelines and core policies over the end-to-end test stories, create some configuration files in the END2END_configs
folder and then type:
make test-e2e
In the END2END_results
folder you will find the obtained results.