alexa-skills-kitalexa-voice-service

Why are my sentences returning my intent even tough they are not in the utterance list of my intent?


We are developing a skill and my invocation name is "call onstar"

I got an intent "CallOnStarIntent"

I got the next utterances

"switch to onstar",

"access onstar emergency",

"access onstar advisor",

"access onstar",

"connect to onstar emergency",

"connect to onstar advisor",

"connect to onstar",

"i want to use onstar",

"open onstar",

"call onstar emergency",

"call onstar advisor",

"call onstar",

"use onstar",

"start onstar",

"onstar information",

"onstar services",

"onstar please",

"onstar emergency",

"onstar advisor"

These are the listed utterances and they are working fine when i try a utterance "call square" i get Amazon.FallBackIntent as expected. But when i tried with utterances like "ping onstar" , "play onstar", or any utterances that has the word onstar it returns CallOnStarIntent.

Does any one know why is this happening?

Thanks in advance.


Solution

  • Your utterances are processed by a machine learning algorithm that creates a model that will also match similar utterances so this is normal (your extra utterances seem to be similar enough for the model to determine there's a match). However there's something that you can do to make the model more precise at matching:

    1. You can extend the sample utterances of AMAZON.FallbackIntent to include the ones where you don't want a match (e.g. "ping onstar")
    2. You can try to change the sensitivity tuning of the AMAZON.FallbackIntent to HIGH so matching out-of-domain utterances becomes more aggressive

    From the Alexa developer docs:

    "You can extend AMAZON.FallbackIntent with more utterances. Add utterances when you identify a small number of utterances that invoke custom intents, but should invoke AMAZON.FallbackIntent instead. For large number of utterances that route incorrectly, consider adjusting AMAZON.FallbackIntent sensitivity instead."

    To adjust the AMAZON.FallbackIntent sensitivity to HIGH you can use either the ASK CLI or JSON Editor to update the interactionModel.languageModel.modelConfiguration.fallbackIntentSensitivity.level setting in the JSON for your interaction model. Set fallbackIntentSensitivity.level to HIGH, MEDIUM, or LOW.

    {
      "interactionModel": {
        "languageModel": {
          "invocationName": "...",
          "intents": [],
          "types": [],
          "modelConfiguration": {
            "fallbackIntentSensitivity": {
              "level": "HIGH"
            }
          }
        },
        "dialog": {},
        "prompts": []
      }
    }