Alexa无需“询问”即可调用自定义意图

时间:2018-11-14 16:47:33

标签: alexa alexa-skill alexa-app

我想说的话不要说询问+ InvocationName 。 例如:

  

Alexa,我今天的计划是什么?

代替

  

Alexa,询问我的计划今天我的计划是什么?

我当时认为您需要提高技能( Alexa,制定我的计划) 并将 shouldEndSession 设置为 false ,但它不起作用,我做错了吗?

我发现“ canfulfillintentrequest”解释为here,但我无法在dev alexa面板上将其打开:/

所以,我被困住了,不确定是否真的可行?

预先感谢您的回答。

1 个答案:

答案 0 :(得分:4)

canfulfillintentrequest正是您想要无名称交互以与Alexa交互而无需通过其调用名称调用特定技能的真正要求。

CanFulfillIntentRequest的工作方式:

  1. 客户与Alexa交流,请求的操作,问题或陈述不包含技能名称。
  2. Alexa,处理这种话语并查询一些可以处理CanFulfillIntentRequest的技能,以检查他们是否可以满足要求。
  3. 您的技能会收到CanFulfillIntentRequest,其中包含经过处理的语音和时段。然后,您的技能必须使用一个canFulfillIntent对象进行响应,该对象包含用于意图的强制字段canFulfill和用于插槽的两个可选字段– canUnderstandcanFulfill
  4. Alexa从原始技能列表中收集响应,并选择最佳技能来满足客户的要求。
  5. Alexa用实际的IntentRequest调用选定的技能,就像客户可能通过名称调用该技能一样。然后,您的技能必须像往常一样对此IntentRequest做出回应。

如果您的技能支持CanFulfillIntentRequest界面,则可以选择您的技能并自动启用该技能,以针对尚未启用您的技能的用户执行查询。


shouldEndSession属性用于使技能会话(当需要用户响应时)保持最长8秒钟的时间,然后是reprompt和另外8秒钟。您不能延长此时间。在活动会话中时,不必使用调用名称。

  

注意:在Alexa技能中使用CanFulfillIntentRequest是作为公开预览/测试版提供的,可能会改善或更改。这个   功能仅适用于英语(美国)技能。