我试图通过跟踪事件跳转到一个随机问题,同时将问题编号存储在上下文中。但是dialogflow只跳到事件而没有存储问题号。有没有办法进行跟进事件并以一种意图存储上下文?
MealID = (DinnerSet.Value.Meals$(CurrentMeal)`.MealID)
答案 0 :(得分:2)
不是。使用conv.followup()
的目的是使它好像新的Intent是用户实际触发的那样。请记住-意图表示用户在说什么 不是您要回复的内容。您可以 在重定向中包含一个参数,我想您可以使用它来发送问题,但这仍然等同于用户发送的参数。
尚不清楚为什么您感到需要直接使用其他Intent。只是在提问中提出问题吗?继续,在您所在的Intent处理程序中询问它,然后将数字直接存储在上下文中。
更新
您已在注释中指出要结构化的东西,因此您有一个“随机调度程序”,然后将其重定向到一个Intent来提问,并且该Intent具有一个可以接受正确答案的后续Intent(并且可能那些回答错误的答案。
这要求您为所有各种问题以及每个问题的条件建立大量额外的Intent。这要求您每次想添加新问题时都重新构建此结构。
Dialogflow可以很好地导航对话的结构-因此您无需使用它来导航特定的问题,答案和响应。请记住-意图是对用户所说的内容进行广义建模,而不是我们的代理如何响应。
这里的结构可能会更好:
这意味着您仅在构建两个Intent来处理问题本身。您应该再添加一些。这里有一些需要考虑的地方:
最后,如果您使用列表,则可能想做点花哨的事情,并使用Dialogflow的API仅为该问题设置会话实体类型。这样,您就可以设置期望值(使用一些别名)来确定正确和不正确的值,然后对上下文使用后备意图(Fallback Intent)来说明用户所说的没有意义。