如何使用对话框流程实现node.js在Google行为上实现二进制决策树?

问题描述 投票:0回答:1

我想以我的欢迎意图向用户询问几个问题,并根据他们的回答为他们提供特定的输出。我的问题是,一旦用户回答了第一个问题,代理就会退出我的欢迎意图并尝试与下一个意图匹配。我以为我可以通过将其与欢迎意图相匹配来解决此问题。因此理想情况下,它应该像这样:Welcome intent -> 1st question -> user answer -> Welcome intent ->2nd question -> and so on但是实际上这发生了:Welcome intent -> 1st question -> user answer ->Welcome intent -> 1st question它将继续询问第一个问题。为了解决这个问题,我开始为每个问题维护一个标志。如果回答了问题1,则将其标志设置为true,然后在第二次匹配欢迎意图时使用它跳过第一个问题。这是一个非常复杂的方法,可能与最佳方法相去甚远。谁能指出我正确的实施方向?谢谢。

node.js dialogflow actions-on-google dialogflow-fulfillment
1个回答
0
投票

首先请记住,一个Intent捕获的是用户所说或所做的事情,而不是您对该信息所做的事情或如何答复。这部分最好由您的充实来处理。虽然我们can使用Contexts来限制将考虑用于用户响应的Intent,但在这种情况下,它们可能最有用的是存储您的状态并跟踪已提出和回答的问题。

在此方案下,您的Intent仍然负责捕获输入,并且您的实现将检查此输入,根据此输入更改状态,并根据新状态(接下来需要询问的内容)发送回复。如果用户的响应几乎是相同的(自由格式,或来自相同的短语集),则您甚至可以使用相同的Intent捕获此输入,并且实现将使用状态和输入来确定要执行的逻辑。如果您需要不同类型的输入,因此需要不同的Intent,则它们的处理程序仍可以调用通用函数来进行处理并更改状态/答复。

这将在Thinking for Code: Design conversations not logic中进一步讨论

© www.soinside.com 2019 - 2024. All rights reserved.