我们正在设计一个应用程序,它有以下功能:
欢迎意向-典型的问候信息,当谈话开始。意图1-在哪里更多的是认证,用户会被问到某些凭证意图2-要求服务的功能,如预订一些食品在家送货。此意图包含一系列强制问题,并定义了在参数值中捕获的提示。
场景1(更像是一个快乐的场景):用户开始交谈,App/Agent询问有关凭据的用户提供凭据: App/Agent -调用一个web钩子,验证(从意图1)如果用户不正确,提供一条消息让他/她注册/活动App/Agent -调用下一个意向2并为他的问题获取值。这很好。
场景2:用户开始会话,App/Agent询问凭据,用户总是可以说一个查询(而不是凭据),并放置一个可以调用意图2的查询
我们如何确保意图2中的一系列问题不会被调用,除非意图1未被覆盖(该用户已通过身份验证)。从用户体验的角度来看,解决方案不应该询问所有的用户查询,然后调用Web钩子进行意图2,然后说您没有经过身份验证。那不是全部都是好的用户体验吗?如何在配置对话框流时处理此设计问题?
发布于 2018-05-22 16:57:20
Dialogflow的上下文特性是用来控制对话中哪一点可以匹配的意图。您可以为intent1设置一个"loggedin“的输出上下文,并以相同的值"loggedin”向intent2添加一个输入上下文。
在intent1被匹配之后,"loggedin“的上下文将被添加到会话状态。只有当会话中添加了"loggedin“上下文时,intent2才能匹配。这确保了只有在会话中匹配了intent2之后才匹配intent1。您可以在下面看到此设置的屏幕截图。
本博客文章中更多关于上下文的信息:https://blog.dialogflow.com/post/how-contexts-and-followup-intents-work/


https://stackoverflow.com/questions/50467122
复制相似问题