有没有一种方法可以使用 DialogFlow 指定在对话的特定点上哪些意图处于活动状态?

Is there a way to specify which intents are active at specific points in a conversation using DialogFlow?

我正在为 Google 助手创建一个互动小说游戏,我想在用户做出每个选择后继续推进故事。

我已经创建了新的意图来处理每个新场景,看看做出了哪些选择。我还想要一些其他的一般意图来寻找问题,例如 "What are my options?"

我遇到的问题是,当用户转到后续意图时,他们仍然可以说出与先前意图相关联的关键字,而该意图提供了不希望的实现。

禁用某些意图在某些场景中提供实现或指定哪些意图应随时处于活动状态的最简单方法是什么?

要控制用户可以触发哪些意图,您可以使用 Dialogflow 的 context 来设置可以触发和不可以触发的意图。您可以在意图上设置输出上下文,一旦触发该意图,输出上下文将处于活动状态。当任何上下文处于活动状态时,Dialogflow 将仅匹配使用与当前活动上下文匹配的输入上下文配置的意图。

在上图中您可以看到一个示例,CheckingBalance 意图只有在 CheckingInfo 意图中设置了活动上下文后才能触发,并且当上下文处于活动状态时,Dialogflow 将首先查找与上下文匹配的任何意图.有关设置输入和输出上下文的更多信息。看看 docs.