首页 > 解决方案 > 使用 Dialogflow 时,后续意图与在父意图中需要参数有什么区别?

问题描述

在此视频https://youtu.be/ADD-rvsS5z4?t=927 中,演示者演示了创建自行车商店预约应用程序。演示者使用后续意图询问用户什么类型的约会(“服务”或“维修”?)。在父意图下,我们不能通过将约会类型作为必需参数来做到这一点吗?我想问题就变成了,使用后续意图和根据需要设置参数有什么区别?

标签: dialogflow-es

解决方案


它们是略有不同的硬币的两侧。每个都有用途和权衡,您选择使用哪一个取决于您的对话结构。

首先 - 永远记住,意图是为了捕捉用户所说的。不是我们对这些信息所说或所做的。

必需参数确定需要在来自用户的消息中包含的内容。如果他们的声明未提供参数,他们可以包含一个提示,我们将提供该提示以获取该信息。

但是,有时仅当包含或未设置其他参数时才需要参数。例如,您可能会发现用户说“我想明天早上约会”或“我想在明天上午 10 点约会”很有用。“Morning”和“10am”是两个不同的参数(一个比另一个更具体),但您希望表达其中一个。这不能使用必需的参数来完成。

但是如果省略了,我们可以使用fulfillment来提示用户更多信息。例如,我们可以问“你想要在早上、下午还是在特定时间?” 然后设置后续意图以捕获此回复。但后续意图也不完美。

如果用户回答一个问题,例如“早上什么时候有空”,该怎么办?我们的后续意图是否会将其与回复混淆?很有可能。或者在他们指定时间之前可能会有一些额外的来回。在这种情况下,您不想要狭窄的后续意图,但您确实想要更广泛的对话意图,可以在对话中的任何时候触发,但仍保留尝试设置的约会的上下文。

由于这些原因,我倾向于建议您不要太担心所需的参数或后续意图。虽然两者都有一些特定用途,但更一般地说,最好有其他可以处理这些相同问题的意图。您可以通过设置 Contexts 何时有效来确保触发最合适的那些。(后续意图在幕后使用上下文。)


推荐阅读