dialogflow-es - 使用 Dialogflow 时,后续意图与在父意图中需要参数有什么区别?
问题描述
在此视频https://youtu.be/ADD-rvsS5z4?t=927 中,演示者演示了创建自行车商店预约应用程序。演示者使用后续意图询问用户什么类型的约会(“服务”或“维修”?)。在父意图下,我们不能通过将约会类型作为必需参数来做到这一点吗?我想问题就变成了,使用后续意图和根据需要设置参数有什么区别?
解决方案
它们是略有不同的硬币的两侧。每个都有用途和权衡,您选择使用哪一个取决于您的对话结构。
首先 - 永远记住,意图是为了捕捉用户所说的。不是我们对这些信息所说或所做的。
必需参数确定需要在来自用户的消息中包含的内容。如果他们的声明未提供参数,他们可以包含一个提示,我们将提供该提示以获取该信息。
但是,有时仅当包含或未设置其他参数时才需要参数。例如,您可能会发现用户说“我想明天早上约会”或“我想在明天上午 10 点约会”很有用。“Morning”和“10am”是两个不同的参数(一个比另一个更具体),但您希望表达其中一个。这不能使用必需的参数来完成。
但是如果省略了,我们可以使用fulfillment来提示用户更多信息。例如,我们可以问“你想要在早上、下午还是在特定时间?” 然后设置后续意图以捕获此回复。但后续意图也不完美。
如果用户回答一个问题,例如“早上什么时候有空”,该怎么办?我们的后续意图是否会将其与回复混淆?很有可能。或者在他们指定时间之前可能会有一些额外的来回。在这种情况下,您不想要狭窄的后续意图,但您确实想要更广泛的对话意图,可以在对话中的任何时候触发,但仍保留尝试设置的约会的上下文。
由于这些原因,我倾向于建议您不要太担心所需的参数或后续意图。虽然两者都有一些特定用途,但更一般地说,最好有其他可以处理这些相同问题的意图。您可以通过设置 Contexts 何时有效来确保触发最合适的那些。(后续意图在幕后使用上下文。)
推荐阅读
- python - 对象检测标签映射项目'str'对象没有属性'item'
- vue.js - 使Vuetify v-data-table列按降序排序,然后按升序排序?
- javascript - 当我开始使用文件夹时,Chrome 扩展弹出窗口停止工作
- python - 使用 python 和 pylibdmtx 库通过网络摄像头解码 DM 代码
- python - Wagtail 管理员:如何在提交更改以进行审核后控制用户重定向的位置
- model-checking - 输出总是大于 0 吗?PROMELA 计划
- javascript - NextJS 仅针对特定路径使用 trailingSlash 重写
- r - 使用公式预测 R 函数内部会产生“找不到对象”错误
- x86-64 - 在 0xFFFFFFFFFFFFFFFF 处引用内存
- java - 从包含不可映射字符的文件中读取