首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从Alexa中的HelpIntent中引出插槽

从Alexa中的HelpIntent中引出插槽
EN

Stack Overflow用户
提问于 2018-01-26 22:01:13
回答 2查看 764关注 0票数 2

我已经为Alexa实现了一个多轮对话。帮助意图根据对话框的状态提供不同的帮助文本。在用户触发HelpIntent并看到帮助文本之后,我想用ElicitSlotDirective引出一个特定的位置

现在这似乎不受支持,因为您只能引出当前意图的插槽,而HelpIntent没有插槽。

https://github.com/alexa/alexa-skills-kit-sdk-for-nodejs/issues/162

我现在的问题是:在用户触发HelpIntent后,我如何返回我的多轮对话框并引出特定的插槽?

EN

回答 2

Stack Overflow用户

发布于 2019-06-10 05:06:54

您现在可以使用intent chaining从不同的Intent中获取一个插槽。例如:

代码语言:javascript
复制
.addDirective({
    type: 'Dialog.ElicitSlot',
    slotToElicit: 'drink',
    updatedIntent: {
        name: 'OrderIntent',
        confirmationStatus: 'NONE'
    }
})

请参阅此blog post

票数 3
EN

Stack Overflow用户

发布于 2018-11-15 09:48:01

这里有一个可能可行的复杂的解决方案(2018年11月,目前没有直接的方法):

  1. 在多轮对话的每个循环中将基于对话的意图保存在会话属性中(整个意图对象,您可以使用intent.name作为键)
  2. 在每个触发的意图(即使是HelpIntent)中将意图名称保存在lastIntent会话属性中(以跟踪上一个意图名称)
  3. 用户触发帮助,您现在就在HelpIntent中。在您提供帮助消息后,在末尾追加一个问题,该问题将导致用户说一些将再次触发您的基于对话的意图的话

当您在基于意图的对话框中,且仅当lastIntent为HelpIntent (上一步中的那个)时,请执行以下步骤:

  1. 从会话属性加载最新的意图数据,并在其中删除要触发的插槽的槽值和分辨率(或者,如果您想从头开始,也可以删除剩余的槽值,由您决定)
  2. 将当前意图替换为上一步修改后的意图
  3. 使用当前意图发出DialogDelegate (您的模型需要将要触发的槽标记为elicitationRequired设置为true)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48462828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档