我们正在设计一个应用程序,其中包含以下内容:
欢迎意图 - 会话开始时的典型问候消息。 意图1 - 更多的是身份验证,用户会被问及某些凭据 意图2 - 询问服务的功能,例如预订一些送货上门的食物。此意图有一系列强制性问题,其中定义了提示,这些提示正在参数值中捕获。
场景1(更多是快乐场景): 用户开始交谈,App / Agent询问凭据 用户提供凭证:App / Agent - 调用webhook,验证(来自Intent 1)如果不是正确的用户,则提供获取他/她注册/活动的消息 App / Agent - 调用Intent 2的下一个启动并获取他的问题的值。 这很好。
场景2: 用户开始交谈,App / Agent询问凭据 用户总是可以说一个查询(而不是凭据)并放置一个可以调用Intent 2的查询
我们如何确保在Intent 2中的一系列问题不会被调用,直到&除非未涵盖意图1(该用户已通过身份验证)。从用户体验的角度来看,解决方案不应该询问所有用户查询,然后调用Webhook for Intent 2,然后说你没有经过身份验证。这不一定都是好的用户体验吗? 在配置对话流时我们如何处理这个设计问题?
答案 0 :(得分:0)
Dialogflow的上下文功能用于控制哪些意图可以在对话中的哪个点匹配。您可以为“loggedin”的intent1设置输出上下文,并将具有相同值“loggedin”的输入上下文添加到intent2。
匹配intent1后,“loggedin”的上下文将被添加到会话状态。只有在会话中添加了“loggedin”上下文时才能匹配intent2。这可以确保在对话中匹配 intent1之后,intent2仅与匹配。您可以在下面看到此设置的屏幕截图。
有关此博客文章中的上下文的更多信息:https://blog.dialogflow.com/post/how-contexts-and-followup-intents-work/