我如何处理'是' /'否'自定义技能中用户的回复?

时间:2017-02-20 04:57:56

标签: alexa alexa-skills-kit alexa-skill alexa-slot amazon-echo

我正在尝试构建一个alexa自定义技能。我正面临一个问题,即我试图从用户那里得到是/否的回答,问题是技能问用户。

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

根据用户响应,我想执行特定操作。

这是我的意图架构:

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

以下是我的示例话语:

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

技能问用户的问题如下:

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

每当我说&#34;是&#34;时,StartGame意图就是被触发的内容。 (&#34; No&#34;)的情况也是如此。 Alexa总是选择StartGame作为意图。调用&#34; GetRules&#34;的最佳方式是什么?意图。我希望用户只说“是/否”而不是说“#34;获取规则&#34;。

如果已经回复/需要更多信息,请告诉我。

2 个答案:

答案 0 :(得分:5)

您需要使用AMAZON.YesIntent和AMAZON.NoIntent。

你可以在这里阅读:

标准内置意图。 https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents

答案 1 :(得分:0)

请在交互模型中添加以下代码。

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

并在lambda中提供是/否的业务逻辑。

'AMAZON.YesIntent': function () {
    //business code
},
'AMAZON.NoIntent': function () {
    //business code
}