如何在 Alexa 中使用带有意图确认的意图链?

2024-02-20

我正在尝试混合对话管理和意图链。我已禁用自动委派。

但我被困在 当用户填写所有槽值时,我使用意图确认并提示他数据是否正确。

如果用户说“否”。 我想出于同样的目的重新启动对话管理。

但我得到的错误是, “指令“Dialog.Delegate”只能在对话框处于活动状态且尚未完成时使用”。

我尝试用其他意图替换第 15 行,它有效,但当我发送相同意图的指令时则无效。 有谁知道我错过了什么?

const DeniedPostMessageIntentHandler = {
    canHandle(handlerInput) {
      return handlerInput.requestEnvelope.request.type === 'IntentRequest' &&
        handlerInput.requestEnvelope.request.intent.name === 'PostMessageIntent' &&
        handlerInput.requestEnvelope.request.dialogState === 'COMPLETED' &&
        handlerInput.requestEnvelope.request.intent.confirmationStatus === 'DENIED';
    },
    handle(handlerInput) {
        let speechText = ri('POST_MESSAGE.DENIED');
        return handlerInput.jrb
          .speak(speechText)
          .addDelegateDirective({
            name: 'PostMessageIntent',
            confirmationStatus: 'NONE',
            slots: {}
          })
          .getResponse();
    },
};

注意 - 我正在使用禁用自动委派的对话管理。

Alexa 发送请求dialogState = IN_PROGRESS and confirmationStatus = DENIED甚至在发送相同的请求之前dialogState = COMPLETED and confirmationStatus = DENIED.

错误

仅当对话框处于活动状态时才能使用指令“Dialog.Delegate” 并且尚未完成”

对此的一种暗示,但需要注意的一件事是,我们可以在dialogState = COMPLETED但不能出于同样的意图这样做。

因此,如果您想为相同的意图重新启动对话框,当意图确认被拒绝时,您必须在dialogState仍处于状态时执行此操作进行中。如果您想处理以任何其他方式拒绝的意图确认,那么您也可以在dialogState为完全的.

我上述问题的解决方案只需将 canHandle 函数中的dialogState更改为进行中代替完全的.

canHandle(handlerInput) {
  return handlerInput.requestEnvelope.request.type === 'IntentRequest' &&
    handlerInput.requestEnvelope.request.intent.name === 'PostMessageIntent' &&
    handlerInput.requestEnvelope.request.dialogState === 'IN_PROGRESS' &&
    handlerInput.requestEnvelope.request.intent.confirmationStatus === 'DENIED';
}

发现这个埋在深处——https://forums.developer.amazon.com/comments/206243/view.html https://forums.developer.amazon.com/comments/206243/view.html

亚马逊应该注意这一点并将其添加到文档中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Alexa 中使用带有意图确认的意图链? 的相关文章

随机推荐

  • 我想要在“drawRect”内进行动画制作,实际上是淡入淡出

    有没有办法让drawRect动画化从上一个场景到下一个 令人惊讶的是 你可以在drawRect中设置动画 尝试一下 您可以对任何其他属性进行淡入淡出 平移或动画处理 然而 它是从 新鲜 从空白开始的 DrawRight 是不可见的 它发生在
  • Haste 模块命名冲突:使用 AWS 服务响应本机应用程序(Amplify 项目)

    我已经开始使用 React Native 项目 之前是使用本机代码 我想添加 Amazon Lex 因此请按照链接中的以下步骤操作 https aws amplify github io docs js interactions https
  • 检查 pthread 互斥体是否被锁定或解锁(线程锁定自身之后)

    我需要查看 if 语句中互斥体是否被锁定或解锁 所以我像这样检查 if mutex id 2 do stuff 但是当我检查 gcc 时 出现以下错误 error invalid operands to binary have pthera
  • 如何正确设置树视图行前景色和背景色

    我在设置 ttk Treeview 的前景色和背景色时遇到问题 我尝试过使用 tag configure 但这似乎也不起作用 我有一些模型代码 如下 我用它来解决这个问题 可以更改标题颜色 但不能更改行 不确定我做错了什么 from tki
  • Objective c “你忘记嵌套 alloc 和 init 了吗?”

    我刚刚开始攀爬 Objective C 学习曲线 使用 Nerd Ranch iOS 编程书 根据我从其他语言中了解到的有关在一行中 嵌套 多个执行的信息 我认为我可以更改 NSString descriptionString NSStri
  • 返回很大范围内的非重复随机值

    我想要一个函数 它可以从一组 n 个整数 0 到 n 1 中生成 k 个伪随机值 而不重复任何先前的结果 k小于或等于n O n 内存不可接受由于尺寸较大n以及我需要重新洗牌的频率 这些是我到目前为止考虑过的方法 Array 通常 如果我想
  • 如何在.NET 2.0 ListView 中全选/全选?

    在不使用的情况下选择列表视图中的所有项目或不选择任何项目的好方法是什么 foreach ListViewItem item in listView1 Items item Selected true or foreach ListViewI
  • 在 Visual Studio 2017 中的类图中创建聚合和组合

    我正在考虑在 Visual Studio 中创建类图 我注意到工具箱似乎只允许类之间的关联关系 是否可以在类图中创建更强的关系 即聚合和组合关系 另外 是否可以从代码自动创建类图 好问题 首先 Visual Studio VS 类设计器不是
  • boost::process 异步 IO 示例不起作用?

    以下程序 include
  • 如何在 Eclipse 调试视角中识别线程?

    我正在开发一个具有一些线程的 Java 应用程序 我在控制台中打印 threadId 例如 17 18 19 等 但是当我打开调试透视图时 我有这个 调试 窗口 最左上角的窗口 它显示当前线程 但它们使用 Thread 2 thread 3
  • 强化学习+优化:如何做得更好?

    我正在学习如何使用强化学习进行优化 我选择的问题是最大匹配 https en wikipedia org wiki Maximum cardinality matching在二分图中 因为我可以轻松计算出真正的最优值 回想一下 图中的匹配是
  • 从页面基类查找页面中的控件

    希望你周五过得愉快 好吧 这是我的问题 我的所有 ASPX 页面都继承自名为 BasePage 的基类 BasePage 继承自 System Web UI Page 现在 如何从我的页面库访问 设置我的 aspx 页面中的控件 我试过这个
  • 匹配完全限定类名的正则表达式

    在文本中匹配完全限定的 Java 类名的最佳方式是什么 例子 java lang Reflect java util ArrayList org hibernate Hibernate Java 完全限定类名 假设为 N 具有以下结构 N
  • DDD:用户聚合根与其他聚合中几乎所有实体之间的一对多关系

    我有以下 DDD 场景 分为以下聚合 User 各位朋友 用户协会 文件 供用户上传 画廊 文件分组 消息 用户通信 群组 用户可以创建并且其他成员可以加入 GroupMessages 发送给组中所有成员的消息 群组论坛 群组成员可以讨论各
  • 将额外参数添加到 $cordovaFileTransfer.upload

    我在用 cordovaFileTransfer upload 将图片从设备上传到我的服务器 在文档中它说它排除了这些参数 server filePath options 我需要传递一些额外的自定义参数 比如user id 例如 有谁知道是否
  • 从水晶报表中的路径加载动态图像

    我想在我的报告中显示图像 我将图像路径保存在我的 sqlserver 数据库中 现在我想从路径加载图像 我搜索整个互联网并尝试所有指导 我首先将图像插入到我的报告中 然后之后我去 gt Format Editor gt picture gt
  • Linux 中的独立 Python 应用程序

    如何在 Linux 中分发独立的 Python 应用程序 我想我可以理所当然地认为任何现代发行版中都存在最新的 Python 解释器 问题在于处理那些不属于标准库的库 即wxPython scipy python cryptographic
  • 内联定义函数与非内联函数有什么区别?

    我正在读这本书计算机程序的结构和实现 http mitpress mit edu sicp full text book book Z H 4 html在其中一章中 有一些代码用于计算数字的阶乘 define factorial n fac
  • 如何处理“表达式在检查错误后已更改”的特殊情况

    关于这个特定错误 有很多值得阅读的内容 以及一些适用于它所解决的特定实现的解决方案 我不知道它如何适用于我的 我正在根据 FormGroup 是否有效来更改材质扩展面板的背景颜色 我在某些 FormGroup 上有一些复选框表单控件 可以切
  • 如何在 Alexa 中使用带有意图确认的意图链?

    我正在尝试混合对话管理和意图链 我已禁用自动委派 但我被困在 当用户填写所有槽值时 我使用意图确认并提示他数据是否正确 如果用户说 否 我想出于同样的目的重新启动对话管理 但我得到的错误是 指令 Dialog Delegate 只能在对话框