我正在使用Api.Ai创建一个机器人。我的回答有30个意图。我希望对话框流程在用户每次问“您是否满意答案”时都向用户询问一个后续问题。基本上,对用户提出的每个问题进行跟进,机器人将回答并回答跟进问题。
场景:
User: What is the Maternity insurance plan? (No action here)
Bot: Reply with some Response from Text Response.
Bot: Are you satisfied with the answer?
User: YES/NO
答案 0 :(得分:0)
没有webhook,它会很杂乱,可能会不时地调用后续意图,或触发不需要的意图。最好针对您想要的每种意图进行“是/否”跟进,或者使用webhook并以编程方式进行处理。
不过,如果您只想使用Dialogflow进行操作,则可以这样操作:
are-you-satisfied
”(或您选择的其他内容)添加到“是”和“否”意图中。输入的上下文中不得放置其他上下文。are-you-satisfied
”,其寿命为2或3。发生这种情况是,您将有2个意图具有输入上下文“ are-you-satisfied
”,并用YES或NO调用。这样就不会有后续行动的意图。每当输入上下文出现在输出上下文中并且说是或否时,这两者将作为后续操作。
但是正如我之前说的,当有其他活动上下文准备在说“是”或“否”后触发时,它可能会变得混乱。在这种情况下,它可能会基于活动上下文触发不同的意图,并且可能不会被用户喜欢。
更新
如果您使用的是Webhook,则可以这样操作:
ask.for.permission.confirmation
”并检查if (confirmationGranted) { ... }
在单个意图的webhook处理程序方法中。当这些意图被触发时,检查活动上下文是什么,然后像
那样继续进行 switch (activeContext){
case context1: ....
case context2: ....
}
我的选择是采用辅助方法,或者分别具有“是”或“否”的跟踪意图。