Alexa分页反应长

时间:2018-07-26 09:28:14

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

我有一种Alexa技能可以调用外部Web服务。我的网络服务当前向我返回变量数组或字符串(句子),我将整个数组串联在字符串中,并提示它作为响应。

现在,我想添加下一个功能,跳过上一个,最后一个,第一个。

例如如果我有5个数组作为响应。现在,在Web服务的响应上,我将所有字符串串联起来时通常会说话,但是如果Alexa说出1行而用户说跳过,则Alexa会跳过第一行并从第二行开始。如果用户说的是最后一句话,而不是Alexa直接说出最后一行。

是否可以实现此功能?

我正在使用node.js和对话来进行用户输入以调用Web服务。

1 个答案:

答案 0 :(得分:0)

是的,AMAZON.NextIntentAMAZON.PreviousIntent可以做到这一点。

下一步,请使用AMAZON.NextIntent

当后端收到初始请求时,查询外部服务并保留句子数组作为响应sessionAttributes。您还可以设置STATE属性,以便在给出句子之前可以在AMAZON.NextIntent或其他分页处理程序中检查此状态。

"sessionAttributes": {
    "sentences": ["This is the first sentence","This is the second sentence", ..  ],
    "index": 1,
    "STATE": "READING_SENTENCES"
  }

当用户说“ next”时,检查状态是否为READING_SENTENCES并根据索引给出列表中的下一项。然后在sessionAttributes中增加index

类似地,对于 AMAZON.PreviousIntent ,相应地减小index

您可以为LastSkip创建两个自定义意图(skip具有与AMAZON.NextIntent相同的功能,因此可以在{{1 }})

当用户说“ Last”时,说出最后一句话。

有关sessionAttributes和响应参数here的更多信息