使用 Alexa.net - 我可以从代码中调用意图吗?

using Alexa.net - can i call an intent from code?

我正在尝试使用 alexa.net 构建问答游戏。但是我 运行 遇到了一个潜在的问题。

每当用户回答了一个问题并且对答案进行了评估时,我想立即提出另一个问题。

就像现在一样,用户必须手动请求另一个问题。我希望发生的事情是,处理问题的意图会一直调用自身,直到用户主动选择结束游戏。

这可能吗?如果是这样,谁能给我指出正确的方向,甚至可以写一个简短的 hello-world 样式示例?

假设你想创建一个数学问答游戏,Alexa 会问你随机的数学问题,你必须提供正确的答案。游戏必须继续,直到用户明确要求退出。

创建一个 AnswerIntent,当用户说出答案时触发。我们的答案是数字,因此使用 AMAZON.NUMBER 插槽创建此意图,您可以捕获所说的数字。 (根据问题的答案选择你的插槽)。

AnswerIntent 的示例话语:

{number}
the answer is {number}
is it {number}

{number} -> AMAZON.NUMBER slot

因此,每次当用户回答您的问题时,您都会在后端收到一个 POST 请求,其中包含触发的意图(在本例中为 AnswerIntent)、插槽及其值。那么:

  1. 验证答案。
  2. 更新分数(如果您的用例有分数)
  3. 生成下一个问题。
  4. 回答下一个问题。

您将只有在有用户交互时才会在您的后端收到请求。因此,请确保当用户说出答案时,你的回答有下一个要问的问题。通过这种方式,用户可以继续回答问题而无需明确提出问题。

示例交互:

User : Alexa, open math quiz
Alexa: Welcome to math quiz. Here is your first question. 
       What is the sum of five and four.
       [you will receive the launch request and your response has the first question]
User : Nine
       [you will receive AnswerIntent request, with number slot having value 9. 
        Validate the answer and generate the next question]
Alexa: Correct!. Here is your next question.
       What is the product of ten and five.
User : Twenty.
Alexa: Wrong, the right answer is fifty. 
       here is your next question.
       What is sum of two and six.
User : Stop
       [AMAZON.StopIntent is triggered and you can now end the game.]
Alexa: Bye.

使用 sessionAttributes 存储有关问题或其答案的一些信息,以便您在收到用户回复时可以在后端轻松验证它。