Dialogflow 中“意图”和“操作”之间的关系是什么?

2024-03-26

我在概念化 Dialogflow 代理中的“意图”和“操作”之间的关系时遇到了一些麻烦。

我了解到意图将用户的口头请求映射到我的履行服务的特定功能,并可选择携带参数作为输入变量。这就是意图的定义方式官方文档 https://dialogflow.com/docs/intents:

“意图代表用户所说内容和内容之间的映射 您的软件应该采取行动。”

那么什么是行动呢?他们的定义 https://dialogflow.com/docs/actions-and-parameters读起来几乎完全相同:

“操作对应于您的应用程序在以下情况下将采取的步骤: 特定意图已由用户的输入触发。”

操作是在意图上下文中定义的,这意味着每个意图只能有一个操作,并且一个操作不能附加到多个意图。一个操作似乎不只是它的名称,这也是完全可选的,因为无论我是否指定操作名称,意图都是相同的。

那么他们的目的是什么?为什么我的服务要对操作而不是意图做出反应?


您的问题中有一个轻微的错误陈述,但它说明了 Dialogflow 意图和操作之间的区别。该声明

一个操作不能附加到多个意图

不是真的。您可以对多个 Intent 名称使用相同的 Action 名称。在这种情况下,这意味着您可以使用 Action 作为实现中函数的映射,而无需列出代码中映射的每个 Intent。

在 Dialogflow 中,意图不仅仅匹配特定的用户短语 - 它还用于匹配处于特定状态(由设置的上下文确定)或特定非短语事件的对话。由于您可能希望将其中几个映射到后端的相同操作(例如,如果您有两个不同的传入上下文,需要与不同的用户短语匹配),因此您可以为它们设置相同的操作,但使用不同的操作用于识别它们的意图名称。

一些库,例如谷歌行动 https://github.com/actions-on-google/actions-on-google-nodejs v2 and 多声部 https://github.com/afirstenberg/multivocal让您可以使用其中任何一个,以最有意义的为准。

当我命名意图时,我通常会启动所有执行大致相同操作的意图,并使用与操作相同的名称,但添加一个后缀来指示意图为何不同。 (使用不同的上下文、事件或参数的名称。)

Update澄清一些事情

我通常使用操作名称作为触发我的函数的名称,但是在某些情况下,我仍然可以按操作对事物进行分组(因为以这种方式组织它们是有意义的),但为其中一个意图开辟了一个例外。将其视为 OO 模型中的子类化。经验法则是使用操作名称,但如果有充分的理由不这样做,则不要严格保留它。 (一个例子是使用多音,库定义了一个“未知”操作,它涵盖了被误解的输入和无输入。但是,有时我想以不同的方式处理其中一个,所以我将定义一个仅适用于意图。)

操作名称应在 Dialogflow 发送您的履行的 JSON 中可用queryResult.action。我不确定为什么文档现在忽略了这一点。

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

Dialogflow 中“意图”和“操作”之间的关系是什么? 的相关文章

随机推荐

  • 不同的构建操作在 csproj 中有何作用? IE。附加文件或假货

    不同的构建操作在 Web API 项目中起什么作用 也可能适用于其他类型 我看到 无 编译 内容 嵌入式资源 AdditionalFiles CodeAnalysisDictionary ApplicationDefinition 页面 资
  • Windows 10 上的 npx 和 nvm 导致需要安装以下软件包

    我已经安装了用于 Windows 的 nvm https github com coreybutler nvm windows和 nvm 列表显示 17 2 0 16 13 1 Currently using 64 bit executab
  • 如何在 SwiftUI 中使用 DatePicker 创建提醒

    我要显示DatePicker在警报视图或操作表视图中 但我找不到任何资源来执行此操作 我想要以下视图 谢谢您的帮助 你想要的实际上是被苹果劝阻的 根据这个答案 https stackoverflow com a 26342100 86977
  • 图标不是 3.00 格式

    在 Visual Studio 2008 中构建 C 应用程序时 我收到以下错误 iconfile ico 不是 3 00 格式 我使用 Paint 创建了图标文件 并将其保存为 ico 文件 我尝试将其保存为 16 位 24 位和 256
  • 仅匹配括号内字符的模式

    我在这里查看了很多关于 SO 的帖子 其中包含有关 REGEX 模式的建议 以从括号中获取文本 但是 根据我的研究 我找不到有效的解决方案 例如 我查看了以下内容 R 正则表达式提取包含关键字的括号之间的文本 https stackover
  • PHP性能考虑?

    我正在建造一个PHP网站 但目前唯一PHP我在某些页面上使用的是六个左右的包含内容 我最终可能会使用一些数据库查询 很简单include 声明关注速度或扩展 而不是静态HTML 什么样的事情容易导致网站陷入困境 当然 include 比静态
  • Activity 方法:onCreate() 和 onDestroy()

    当第一次创建活动时 系统会调用OnContentChanged 方法作为系统的第一个方法和最后一个调用是OnDetachedFromWindow 方法当一个 Activity 被杀死时 但 android 文档说 Activity 的整个生
  • 如何使用PageDown Markdown编辑器?

    我想为用户提供实时预览使用 Markdown 创建的笔记的能力 但是我在该项目中找不到任何下载 我怎样才能开始使用PageDown 降价 https github com balpha pagedown编辑 PageDown 的文档非常混乱
  • 使用 pyExcelerator/xlrd 进行数据透视

    如何使用 pyExcelerator xlrd 等 Python 库创建带有数据透视表的工作表 在 Excel 工作簿中 我需要生成一份每日报告 其中有一个数据透视表来汇总其他工作表上的数据 一种选择是使用一个空白模板 我可以复制该模板并用
  • TFS 分支和合并策略

    我在 TFS 中有一个团队项目 每天都会提交任务 我想独立完成每个任务 然后在测试后将其合并到主线中 目前有一个 MAIN 分支和一个 DEV 分支 它是 MAIN 的子分支 更改在 DEV 分支中进行 然后在准备就绪时合并到 MAIN 中
  • 什么时候应该尝试消除 switch 语句? [复制]

    这个问题在这里已经有答案了 我在我正在处理的代码库中遇到了一个 switch 语句 我正在尝试找出如何用更好的东西替换它switch 语句被认为是代码味道 http c2 com cgi wiki SwitchStatementsSmell
  • React 处理表单提交

    我正在尝试在 React Redux 中创建一个表单 现在我只希望表单在提交表单时触发我的函数handleSubmit 然而目前看来该功能是在页面加载时立即触发的 export default class AssetsAdd extends
  • Selenium:Firefox 驱动程序,在 c# 中使用 SelectElement 从下拉列表中选择一个项目无法正常工作

    我正在尝试执行一项简单的任务 尝试使用显示的文本在下拉列表中选择一个值 场景如下 我的 HTML 看起来像 div class col md 4 div
  • SQL Server 2008 中 Oracle 的 LAST_DAY() 函数的等效项是什么?

    我已经用过LAST DAY 函数 http docs oracle com cd B19306 01 server 102 b14200 functions072 htm在Oracle中是这样的 Last Day to date pay f
  • 使用 node.js 通过 Firebase-Admin 登录

    我正在尝试使用 firebase admin 使用 node js 登录 但是当我查找 API 时 他们只有关于update delete and create 他们确实有关于如何通过电子邮件获取用户的部分 但如果我想登录用户 我是否也应该
  • 在 Visual Studio 2008 中构建解决方案后,是否可以运行外部可执行文件?

    我不是在谈论项目的构建后事件 相反 我想在构建整个解决方案后自动运行可执行文件 有没有办法为解决方案执行构建后事件 Visual Studio 2010 及之前版本 您可以在宏编辑器中通过处理 OnBuildDone 来执行此操作 该事件为
  • 在模板中显示 Handlebars.js 上下文

    是否有一个变量传递到每个handlebar js 模板中 其中包含模板可访问的所有上下文内容 例如我正在创建一个模板 但我不知道该模板可访问的所有上下文内容 我希望能够在模板中输入内容 debug 并且handlebars js会将所有上下
  • 解析 XML Libxmljs (Node.js)

    我正在尝试解析 XML 字符串libxmljs https github com polotek libxmljs https github com polotek libxmljs 不过我有一些问题 我需要将逻辑应用于我正在解析的内容 并
  • 在 Javascript 中绘制可缩放的音频波形时间线

    我有来自歌曲的原始 44 1 kHz 音频数据作为 Javascript 数组 我想用它创建一个可缩放的时间线 Audacity 的时间表示例 由于有数百万个时间点 普通的 Javascript 图形库可能无法解决它 我认为 不确定 普通的
  • Dialogflow 中“意图”和“操作”之间的关系是什么?

    我在概念化 Dialogflow 代理中的 意图 和 操作 之间的关系时遇到了一些麻烦 我了解到意图将用户的口头请求映射到我的履行服务的特定功能 并可选择携带参数作为输入变量 这就是意图的定义方式官方文档 https dialogflow