如何使用多个自定义意图构建Alexa技能

时间:2017-08-16 18:24:07

标签: alexa alexa-skill

我正在寻找能够回答多个问题的单一Alexa技能。使用亚马逊开发者网站上的技能构建器,我已经能够创建一个处理一个问题并返回响应的自定义意图,但是我无法看到如何使用技能构建器向第二个自定义意图添加第二个自定义意图。技巧(我可以看到如何添加第二个意图,但不知道如何将其与第二个AWS联系起来)。技能构建器允许您仅输入单个AWS apn编号来处理请求,但我希望使用不同的AWS来处理每种不同类型的问题。

所以,我的技能名称是文图拉县信息。我的援引是文图拉县。我希望能够说Alexa询问Ventura县我在哪里报告陪审义务(这将调用GetJuryDuty意图,这将在一个AWS中调用getJuryDutyFunction)并返回Jury Duty的位置。或者,我希望能够说Alexa询问Ventura县我在哪里可以获得我的出生证明的副本(这将调用GetBirthCertificate意图,该意图将在不同的AWS中调用getBirthCertificateFunction)并返回出生证书的位置。我只是无法弄清楚如何将每个Intent绑定到正确的AWS apn,当Skill Builder只给我一个apn号的插槽时。

1 个答案:

答案 0 :(得分:1)

正如您所发现的,您只能使用一个ARN来获得一项特定技能。所以这导致在这一个函数中为这个给定技能编写所有代码。 (有一种事情可以在另一个lambda函数中调用lambda函数,但我们不会使用这条路径)。 现在您的解决方案有两个选项:

1(推荐)

请查看此链接以获取有关如何进行设置的帮助:help me 但是在这里你需要针对你想要调用的每个意图采取不同的话语:

{ask jury duty} where do i report for jury duty

{ask birth certificate} where do i get a copy of my birth certificate

这样Alexa就会知道要调用哪个意图,你的后端会知道要执行什么。

2.(不推荐这个,因为你需要在后端自己编写很多代码。)

{
  "intents": [   
    {
      "intent": "ask duty",
      "slots": [{
        "name": "Duty type", 
        "type": "DUTY_TYPE"
      }]
    }
    {
      "intent": "AMAZON.HelpIntent"
    },    
    {
      "intent": "AMAZON.CancelIntent"
    },    
    {
      "intent": "AMAZON.StopIntent"
    }    
  ]
}

其中DUTY_TYPE是一个包含所有职责类型的自定义广告位。 和话语如:

{ask duty} where do i report for {duty type}

现在你的技能如下:Alexa问文图拉县我在哪里报到陪审团的职责 在你的后端,你只需编写一些代码来检查它是什么职责类型,然后为这个给定的职责类型执行这个给定的代码。

如有任何帮助或澄清,请随时提出。