We were inspired by the Alexa Conversations API to help us create skills easier and faster.
What it does
Invoke the skill by saying, "Alexa, open Sly Exercise". After the initial welcome prompt, there are three slots that need to be filled by Alexa Conversations: workoutLength, workoutType, and intensity.
workoutLength options: short, medium, long workoutType options: arms, chest, and legs intensity options: easy difficult
Alexa Conversations will handle slots uttered in one phrase ("I want a long legs workout that is easy") It will also handle inputting the slots one by one. It can also handle having two slots filled in by the user ("I want a short arms workout"), followed by a second request for the remaining slot ("I want an easy workout").
Once all slots have been filled, the user will receive a workout response ("I recommend a long walk")
How I built it
We used the Pet Match tutorial as a base for our skill and extended it to fit our needs for a workout app.
Challenges I ran into
The Alexa Conversations training requires a lot of time for the model to build, which decreased iteration time. There were many dialogs that were needed to be created to successfully give the user a response.
Accomplishments that I'm proud of
We are happy that the skill actually works! We also learned a lot about how the Alexa Conversations API worked and simplified user interaction.
What I learned
The Alexa Conversations API is magical, in both positive and negative viewpoints. Delegating control of the skill's workflow can be difficult to debug, especially considering how Intent-based dialog flows are easier to understand.
What's next for sly exercise
We plan to increase the options that users can say to customize their workout. After the contest, we also plan to build out features for account integrations, DynamoDB persistence, and APL visual components such as personal trainer videos. The sky is the limit!