Bot Framewok作曲家-“替换此对话框”会导致错误400

时间:2020-08-25 11:28:52

标签: replace dialog repeat bot-framework-composer


我正在使用bot Framework Composer构建我的第一个聊天机器人,但我并没有成功构建一个非常简单的场景。

我在Bot Framework Composer Documentation中深深地看着,但是发现没有任何帮助。


我要实现的儿童场景:

  • 机器人问/提示“说点什么”
  • 用户回答/输入一个字符串,例如“ anAnswer”
  • 机器人说:“您说的是'anAnswer',对吗?”
  • 用户键入“是”或“否”
    • 如果用户键入“是”:对话框结束
    • 如果用户键入“ no”:重复此对话框

See the Bot Composer Canvas here


我面临的问题:

1。 “重复此对话框”不符合我的预期。

  • 模拟器不断告诉我:“ 检测到递归循环,AdaptiveDialog不能一轮重复两次

  • 我尝试将“允许循环”设置为“真”,但似乎会导致无限循环(尽管我不知道该如何检查...)

See the "Repeat the dialog" options here

我是否必须在“重复对话框”操作的“选项”中添加某些内容? 喜欢从哪里开始循环?如果是这样,该怎么做?


2。如何在已使用的方案中使用“替换此对话框”?

由于我没有成功执行“重复对话框”操作,因此我尝试通过将整个对话分为两个对话来将整个对话减半。每个对话都有一个目标:

  • 第一种情况是向用户询问信息
  • 第二种情况是要求用户确认

See the "Ask for infos" dialog here

See the "Confirmation" dialog here

最初的目标是当用户希望编辑以前键入的内容时,将其“重定向”到“询问信息”对话框。

但是在这里,它导致错误:POST400directline/conversations/<conversationId>/activities

再次出现了“替换对话框”操作的一些“选项”可能,但我没有发现任何in the documentation on this subject


非常感谢帮助新手,我很乐意尝试您带来的解决方案并提供反馈。

祝你有美好的一天,


PS:您知道关于Bot Framework Composer的很好的教程(除Microsoft以外的其他教程)

1 个答案:

答案 0 :(得分:2)

在使用“重复对话框”操作之前,您必须清除存储用户答案的​​变量。其循环的原因是该漫游器已在内存中找到答案,因此不会再次提示用户。

在重复对话框之前,使用“设置属性”操作并将变量值设置为null