首页 文章

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

提问于
浏览
1

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

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

1 回答

  • 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询问文图拉县我在哪里报告陪审团职责在你的后端你只需编写一些代码来检查它是什么职责类型然后为这个给定的职责类型执行这个给定的代码 .

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

相关问题