I'm unsure how to model an Alexa skill that involves adjusting numeric parameters and should allow both relative and absolute adjustments.
Utterances could be similar to:
- Set temperature to 20 degrees
- Raise temperature by 2 degrees
- Increase the temperature to 25 degrees
- etc.
Idea 1: Create separate intents for increase, decrease, and set
The utterances of these three are going to be nearly identical which is against recommended best practices.
Idea 2: One intent containing a {AdjustmentType} Slot
That {AdjustmentType} slot would contain the values increase|decrease|set and according aliases. This way I'd no longer have multiple intents with very similar utterances but I would additionally need to deal with to and by who change the meaning and basically overrule {AdjustmentType}. I could simply create another slot type for this and deal with it using Lambda. I'm wondering though whether this is really the way to go as I would end up having utterances that contain little more than slots.
What are your thoughts on this?
As {AdjustmentType} is your on slot type the better solution would be to create custom slots for AdjustmentType. You can have multiple utterences for a given intent. It means even if you have only one intent you can configure multiple sample utterences and it will invoke those utterences based on your voice input.