在这段视频https://youtu.be/ADD-rvsS5z4?t=927中,演示者演示了自行车商店预约预订应用的创建过程。演示者使用跟进意图来询问用户哪种约会类型(“服务”或“维修”?)。我们不能通过在父项意图下将约会类型作为REQUIRED参数来执行此操作。我想问题就变成了,使用跟进意图和根据需要设置参数有什么区别?
答案 0 :(得分:3)
它们是硬币略有不同的两个侧面。每个都有使用和取舍,您选择使用哪个取决于会话的结构。
首先-请始终记住,意图是要捕获用户所说的内容。 不是我们在说或处理这些信息。
必需的参数确定需要在用户消息中包含哪些内容。如果他们的声明中未提供该参数,他们可以在提示中提供一个信息,以便我们获取。
但是,有时仅当包含或未设置其他参数时才需要参数。例如,您可能会说“我明天早上要预约”或“我希望明天上午10点预约”对用户很有用。 “早晨”和“上午10点”是两个不同的参数(一个参数比另一个参数更具体),但是您想要表达一个或另一个。使用必需的参数无法完成此操作。
但是,如果省略它,我们可以使用实现来提示用户更多信息。例如,我们可以问“您要在早上,下午还是在特定时间吗?”然后设置跟踪意图以捕获此回复。但是跟进的意图也不是完美的。
如果用户回答一个问题,例如“早上什么时候有空?”,该怎么办?我们的跟进意图可以将其与答复混淆吗?很有可能。或者,在指定时间之前,可能还会有一些额外的来回操作。在这种情况下,您不需要狭窄的跟进意图,但是您希望可以在对话中的任何时候触发更广泛的对话意图,但仍保留尝试设置的约会的上下文。
由于这些原因,我倾向于建议您不要过于担心所需的参数或后续意图。尽管两者都有某些特定用途,但更笼统地说,最好是具有可以处理这些相同问题的其他意图。您可以通过设置上下文的有效时间来确保触发最合适的上下文。 (后续意图使用背景幕。)