web-dev-qa-db-fra.com

Comment gérer les réponses "Oui"/"Non" de l'utilisateur dans la compétence personnalisée?

J'essaie de construire une compétence personnalisée Alexa. Je suis confronté à un problème où j'essaie d'obtenir des réponses oui/non de l'utilisateur à une question que la compétence lui demande.

Alexa: Would you like to know the rules of the game?
User: <Can respond either Yes or No>

En fonction de la réponse de l'utilisateur, j'aimerais effectuer une action spécifique.

Voici mon schéma d'intention:

{
    "intents": [
    {
        "intent": "Amazon.StopIntent"
    },
    {
        "intent": "Amazon.CancelIntent"
    },
    {
        "intent": "Amazon.HelpIntent"
    },
    {
        "intent": "StartGame"
    },
    {
        "intent": "GetRules"
    }
  ]
}

Voici mes exemples d'énoncés:

StartGame Begin the game
StartGame Start the game

GetRules What are the rules
GetRules Get the rules
GetRules Tell me the rules
GetRules Tell me the rules again

La question que la compétence demande à l'utilisateur est ci-dessous:

Welcome to the game. Would you like me to tell you the rules?

Chaque fois que je dis "Oui", l'intention de StartGame est ce qui est déclenché. (Idem pour "non"). Alexa choisit toujours l’intention comme StartGame. Quel est le meilleur moyen d'invoquer l'intention "GetRules". Je veux que l'utilisateur dise simplement Oui/Non et ne dise pas "Obtiens les règles".

S'il vous plaît laissez-moi savoir si cela a déjà été répondu/plus d'informations sont nécessaires.

7
emkay

Vous devez utiliser Amazon.YesIntent et Amazon.NoIntent.

Vous pouvez lire à leur sujet ici :. 

Intentions standard intégrées. https://developer.Amazon.com/public/solutions/Alexa/alexa-skills-kit/docs/built-in-int-int-ref/standard-intents

5
Tom

Veuillez ajouter le code ci-dessous dans le modèle d'interaction.

{
    "name": "Amazon.NoIntent",
    "samples": []
},
{
    "name": "Amazon.YesIntent",
    "samples": []
}

Et indiquez votre logique métier pour oui/non dans votre lambda.

'Amazon.YesIntent': function () {
    //business code
},
'Amazon.NoIntent': function () {
    //business code
}
0
Suneet Patil