有没有办法避免我第二次触发意图?

时间:2019-05-01 12:32:11

标签: dialogflow

我是Dialogflow中需要某些帮助的新手。 我有三个意图(实际上远不止于此),他们都有后续行动,请允许我在下面画草图。

我将第一个意图称为“ Head”,将第二个意图称为“ Chest”,将第三个意图称为“ Back”

当有人说“我有急事”时,会说出第一个意图, 该行将进行两次跟进,例如“这需要多长时间”,“何时开始” ......等等,直到此意图的最后一次跟进,此后代理会询问用户是否遇到“胸部”问题,因此触发了第二个意图,或者还可能询问用户是否存在“返回”问题,从而触发了第三个意图。

继续前进,例如代理人询问触发第二个Intent的“胸”,它也有自己的后续行动,我也将其设置为询问其他问题,就像我对第一个Intent所做的那样(在这种情况下, Head”或“ Back”)。

我的问题是我如何让代理不询问“ Head”(在第一个实例中已经问过),而只询问其余的“ Back”实例?

我希望我已经用一种可以理解的方式表达了这一点。

真的要感谢任何解决方法,

1 个答案:

答案 0 :(得分:1)

您可能想研究上下文。

https://dialogflow.com/docs/contexts https://dialogflow.com/docs/contexts/input-output-contexts

因此,它的本质原理是,如果您有一个包含输入上下文的意图,那么除非该特定上下文处于活动状态,否则它不会触发。您可以在输出上下文部分中创建并设置意图的上下文持续时间。

因此,如果您正处于胸部对话的中间,则不希望激活胸部或背部的输入上下文,这样它们的相关意图就不会触发。

只有在处理完胸部的最后一步之后,才可以启动“上一步”的输入上下文,然后在输出上下文中将胸部上下文的寿命设置为0,这样就结束了。这样可以确保与胸部相关的意图不会再次触发。

这是假设您希望按顺序处理这些对话,如果您希望它更具动态性,那么问题的顺序无关紧要。这将变得更加困难。

希望这会有所帮助!