在Alexa技能中搜索功能

时间:2016-11-30 10:32:26

标签: node.js alexa alexa-skills-kit alexa-voice-service alexa-slot

我正在构建播放音频的Alexa技能。音频具有标题,扬声器和其他属性。

问题:我想在我的技能中添加搜索功能,以便用户可以根据标题或演讲者的姓名等播放音频。我该如何实现这一目标?

用户如何搜索某些自定义字符串(发言人,标题)&那个字符串被传递给我的技能?,我会写逻辑来搜索那个音频。

我知道自定义意图和插槽,但我不知道它们将如何在我的情况下工作。

请指导。我只需要一些起点。感谢。

2 个答案:

答案 0 :(得分:3)

是的 - 你需要看custom slots

您的intents.json

{
  "intents": [
    {
      "intent": "GetAudio",
      "slots": [
        {
          "name": "Query",
          "type": "QUERY"
        },
      ]
    },
  ],
  ...
}

您定义的话语

你的话语可能包含以下内容:

GetAudio search for {Query}
GetAudio find audio matching {Query}

处理您技能中的请求

当您的技能获得意图时,它将获得IntentRequest  充满了你定义的任何插槽。因此,如果您已经定义了Query的自定义广告位(并且最好使用示例搜索来改进匹配),您可能会收到如下内容:

{
  "type": "IntentRequest",
    ...
  "intent": {
    "name": "GetAudio",
    "slots": {
      "Query": {
        "name": "Query",
        "value": "jimi hendrix"
      }
    }
  }
}

因此可以轻松检索value字段并使用内部逻辑进行搜索。

希望有所帮助。

答案 1 :(得分:0)

您可以通过定义AMAZON.SearchQuery类型的自定义插槽来实现。 所有详细信息here