Dialogflow 后续意图为每个新的子意图创建新的上下文

Dialogflow followup intent creates new context for every new child intent

我正在研究 dialogflow 跟进 intent.And 结构是这样的。

它为每个新意图创建新上下文。

例如请参阅重复意图

每当我创建任何新意图时,它都会为它创建新的上下文。正如你在图片中看到的那样。当我尝试删除这些上下文中的任何一个时,它会删除该意图作为后续意图。

所以我的问题是:

这就是对话流程的工作方式,或者我做错了什么。

在 Dialogflow 中,上下文用于绑定意图并将用户引导至特定方向。一个意图的输出会进入另一个意图的输入,因此除非&直到您调用第一个意图,否则您将无法调用第二个意图。

现在回答您的问题,根据 follow-up 意图,您可以设计可能遵循 parent 意图的情境。您说的是正确的,创建 follow-up 意图将自动创建新的上下文。当您尝试删除这些 auto-created 上下文时,它也会删除意图作为 follow-up 意图。这就是它的设计方式,您对此无能为力。

尽管如果您想将现有意图作为另一个意图的 follow-up,您可以通过 REST API 执行此操作,您只需要更新“parentId ”和“rootParentId”,更改将反映在 UI。

这就是 Dialogflow 的工作原理。你没有做错任何事。 (上下文是否导致某种问题?)

Followup Intents 只是创建单独 Intent 并为它们提供传入上下文以确保它们只能在具有相应传出上下文的 Intent 之后触发的快捷方式。您不需要使用 Followup Intents - 它们只是一种方便的方式来强制该 Intent 在父 Intent 之后被触发。

如果您需要在初始 Intent 之后或随时触发 Intent - 您不希望将其作为 Followup Intent,只需将其设为常规 Intent。原Intent后依然可以触发

Followup Intents 对于问题后的有限答案处理很有用,但它们并不是对所有事情都有用,特别是如果用户可以随时发表 free-form 评论(这在对话中很常见!) .不要觉得你必须受到限制并使用它们。