Alexa如何才能采用仅限插槽的话语?

问题描述 投票:4回答:1

我正在尝试编写我的第一个Alexa技能,但应用程序流程有点混乱,甚至阅读有关对话委托等的所有文档。我真的很喜欢一些建议。

我追求的流程

“Alexa,开始Movietime测验。”

欢迎来到Movietime测验。在我们开始之前,你在哪个团队:红色还是蓝色?

“蓝色。”

蓝色始终是最好的球队。问题1:哪些电影不是由阿尔弗雷德希区柯克执导的? A:眩晕,B:绳索,C:快乐吉尔摩。

“C。”

正确!蓝队10分。问题2...

这是一个简单的例子,用于以最短,最清晰的方式说明我的问题,然后再想知道为什么团队需要参与其中。

我的本能/天真的方法

让初始启动请求处理程序说welcome-and-what-team,然后有两个意图。第一个显然是AnswerQuestionIntent,它会侦听“A”,“B”,“C”或“D”。第二个是SetTeamIntent,它会侦听“红色”或“蓝色”。

我有一个包含~100个琐事问题的数组。当游戏开始时,将会话属性'currentQuestion'设置为0.在AnswerQuestionIntent中,在处理用户的正确/错误响应后,递增该数字,如果它在9,则结束游戏;如果没有,请随机提问。

我的问题

我实际上无法弄清楚如何让Alexa使用单个插槽作为话语。我的意思是,我想要一个'团队'插槽类型(值'红色'和'蓝色')和'答案'插槽类型(值'A','B','C'和'D' )。 SetTeamIntent应该由{team}的话语{answer}和AnswerQuestionIntent激活,但是当我尝试设置时,developer.amazon.com技能构建器给我“错误请求”错误。

我尝试在GitHub上查看SDK示例,但我有点迷失,因为我在学习时一直在使用GUI技能构建器,并且不确定它是如何映射的 - 无论如何都不足以阅读解决方案。

alexa alexa-skills-kit
1个回答
1
投票

处理此问题有两种不同的方法。

1.带有对话模型的ElicitSlot指令

在您启动技能并触发意图后,您可以使用elicitslot directive进行回复。

交互模型:您可以定义一个插槽和一个意图,例如PlayGameIntent中的{team}和{answer}。提供触发意图的话语,例如“开始游戏”。

技巧:触发PlayGameIntent后。使用elicit slot指令返回响应。像下面这样的东西。

{
  "version": "1.0",
  "sessionAttributes": {},
  "response": {
    "outputSpeech": {
      "type": "PlainText",
      "text": "What team are you on? Blue or Red? "
      },
    "shouldEndSession": false,
    "directives": [
      {
        "type": "Dialog.ElicitSlot",
        "slotToElicit": "team",
        "updatedIntent": {
          "name": "PlayGameIntent",
          "confirmationStatus": "NONE",
          "slots": {
            "team": {
              "name": "team",
              "confirmationStatus": "NONE"
            },
            "answer": {
              "name": "answer",
              "confirmationStatus": "NONE"
            }
          }
        }
      }
    ]
  }
}

用户现在可以为插槽{team}提供答案,Alexa会为PlayGameIntent发送另一个IntentRequest。在游戏结束之前,您可以根据需要多次使用。

2.没有对话模型的自定义意图

如果不使用对话模型,您只能使用插槽 - 话语。您可以按照描述构建意图架构。如果您离开Skill Builder Beta,则会自动禁用交互模型的对话框模型。

然后,您可以使用如下样本话语构建意图模式:

AnswerQuestionIntent {answer}
SetTeamIntent {team}
© www.soinside.com 2019 - 2024. All rights reserved.