首页 > 解决方案 > Alexa无需“询问”技能即可调用自定义意图

问题描述

我想在不说ask + InvocationName的情况下调用我的话语。举例:

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

代替

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

我在想你需要启动你的技能(Alexa,启动我的计划)并将shouldEndSession设置为false,但它不起作用,我做错了吗?

我发现“canfulfillintentrequest”在这里解释,但我无法在开发 alexa 面板上打开它:/

所以,我被卡住了,不确定这是否真的可能?

提前感谢您的回答。

标签: alexaalexa-skillalexa-app

解决方案


canfulfillintentrequest如果您正在寻找与 Alexa 交互而无需通过其调用名称调用特定技能的无名称交互,这正是您想要的。

CanFulfillIntentRequest 的工作原理:

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

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


shouldEndSession属性用于保持技能会话(当您需要用户响应时)最长 8 秒,然后reprompt再保持 8 秒。你不能延长这个时间。当您处于活动会话中时,您不必使用调用名称。

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


推荐阅读