DialogFlow - 防止同时触发多个顶级意图
DialogFlow - Prevent multiple top level intents from triggering at same time
我有 2 个顶级意图,每个都有后续意图。它们如下:
Order tea
-- Which tea flavour
---- Amount of sugar
------ Say tea served
Order coffee
-- Which coffee flavour
--- Amount of sugar
---- Hot or cold?
------ If hot, say hot coffee, caution.
------ If cold, say cold coffee, enjoy.
现在在快乐的道路上,一个接一个的意图被触发,我可以使用后续意图实现流程。但我想知道我们如何才能停止以下流程:
Order Tea
-- [Prompt] Which tea flavour
-- [User] Darjeeling
---- [Prompt] Amount of sugar?
---- [User] Order coffee
-- [Prompt] Which coffee flavour
在此流程中,咖啡意图被触发。有什么方法可以确保在处理茶意向时,直到完成或取消之前,不会调用或处理咖啡等其他意向。如果用户在处理 order tea
时说类似 order coffee
的话,它会说类似 I did not get that
.
对于这个问题,没有不涉及大量额外工作的真正解决方案。顶级意图意味着在对话期间始终对用户可用,这就是为什么您能够在 Order Tea
流程中触发 Order Coffee
意图。
正如 AlphaOne 在评论中提到的,解决此问题的一种方法是添加回退意图,但由于 Dialogflow 理解输入,标准回退将不起作用。如果你想阻止任何 Order Coffee
命令工作,你必须将所有这些命令添加到回退意图。根据您拥有的步骤数量,如果您为 Order Coffee
意图的每个短语的每个步骤添加回退,这可能会变得很难维护。
最好的选择是添加一个 Ordering_Tea
上下文作为 Order Tea
意图的输出上下文,这将表明您正在点茶。然后创建一个将 Ordering_Tea
作为输入上下文的回退意图。只要 Ordering_Tea
上下文处于活动状态,此回退意图就应该可用。因此,要停止触发 Order Coffee
命令,您需要将触发 Order Coffee
意图的所有短语添加到 Ordering_Tea
回退中。
这样你就有了 1 个回退意图来防止触发 Order Coffee
而不是每个步骤有 1 个回退。您所要做的就是向每个 Order Tea
步骤添加一个 Ordering_Tea
输出上下文,并在用户订购茶后将其删除。
我有 2 个顶级意图,每个都有后续意图。它们如下:
Order tea
-- Which tea flavour
---- Amount of sugar
------ Say tea served
Order coffee
-- Which coffee flavour
--- Amount of sugar
---- Hot or cold?
------ If hot, say hot coffee, caution.
------ If cold, say cold coffee, enjoy.
现在在快乐的道路上,一个接一个的意图被触发,我可以使用后续意图实现流程。但我想知道我们如何才能停止以下流程:
Order Tea
-- [Prompt] Which tea flavour
-- [User] Darjeeling
---- [Prompt] Amount of sugar?
---- [User] Order coffee
-- [Prompt] Which coffee flavour
在此流程中,咖啡意图被触发。有什么方法可以确保在处理茶意向时,直到完成或取消之前,不会调用或处理咖啡等其他意向。如果用户在处理 order tea
时说类似 order coffee
的话,它会说类似 I did not get that
.
对于这个问题,没有不涉及大量额外工作的真正解决方案。顶级意图意味着在对话期间始终对用户可用,这就是为什么您能够在 Order Tea
流程中触发 Order Coffee
意图。
正如 AlphaOne 在评论中提到的,解决此问题的一种方法是添加回退意图,但由于 Dialogflow 理解输入,标准回退将不起作用。如果你想阻止任何 Order Coffee
命令工作,你必须将所有这些命令添加到回退意图。根据您拥有的步骤数量,如果您为 Order Coffee
意图的每个短语的每个步骤添加回退,这可能会变得很难维护。
最好的选择是添加一个 Ordering_Tea
上下文作为 Order Tea
意图的输出上下文,这将表明您正在点茶。然后创建一个将 Ordering_Tea
作为输入上下文的回退意图。只要 Ordering_Tea
上下文处于活动状态,此回退意图就应该可用。因此,要停止触发 Order Coffee
命令,您需要将触发 Order Coffee
意图的所有短语添加到 Ordering_Tea
回退中。
这样你就有了 1 个回退意图来防止触发 Order Coffee
而不是每个步骤有 1 个回退。您所要做的就是向每个 Order Tea
步骤添加一个 Ordering_Tea
输出上下文,并在用户订购茶后将其删除。