如何在具有后续提示的QnA问题中实施卡并在卡中使用它们

时间:2019-05-17 11:06:22

标签: azure botframework qnamaker

我已经建立了一个与QnA服务链接的简单QnA机器人。在QnA服务中,我设置了一些问题,这些问题具有后续提示(相关者),例如我如何通过公交车,火车等去校园see image in link,在Qna maker测试功能内,您只需单击一个名为enable mutli-turn的按钮即可,该按钮提供功能性按钮来通知您可以/应该进行的操作接下来通过答案See image in link的依存关系询问。

但是,当在通道中/仿真器中使用时,see image不会出现类似现象,这有点奇怪。很明显,我想在机器人中实现这种功能,因为它使用户的生活变得更加轻松。

我是整个机器人的新手(我上个月开始),所以我浏览了互联网以查找可以找到的东西,但是除了在机器人内部自行编写问题之外,我看不到任何东西,{ {3}},这使得使用QnA制造商变得毫无意义。

我认为我需要做的是拦截QnA制造商回复用户的消息,查看所收到的Json以查找是否有任何依赖项,然后运行另一个对话框,该对话框获取上下文依赖项名称并运行对于每个受抚养人来说,很容易进行循环生成卡,然后将所生成的卡发送给用户,但是我不确定如何拦截Json并查找任何受抚养人,或者我需要在azure中单击一个按钮就是这样。

1 个答案:

答案 0 :(得分:0)

Bot Framework团队发布了this个实验示例,演示了如何处理后续提示。

您可以下载它(必须下载整个软件库),然后将详细信息插入appsettings.json文件中,并且应该能够使用Bot Framework Emulator对其进行测试-这是唯一的步骤我必须表演。

关键部分是this method,它检查结果是否包含任何提示并相应地返回响应-在controller内部被调用。

如果您只打算实现单个级别的提示,即您有一个显示提示的问题,并且当您单击其中一个提示时,它将显示答案,而不是带您进入另一个提示,可以从ProcessAsync方法(检查提示)中获取逻辑的精髓,并从Models文件夹和CardHelper类中获取所需的类,并将其用于您的现有应用程序-您无需担心QnABotState,因为您只需要深入研究一个级别,因此无需跟踪一系列提示中的位置。