我不想建立一个从其他API收集答案和问题的机器人。
Bot: How are you?
User: I'm fine, how are you?
Bot: I'm fine, also.
因此,来自bot(甚至第一个)的问题是通过REST API从外部服务收集的。还将用户的答案发送到该服务,而Bots回答“我也很好”是REST请求的结果。
我首先实现了它,完全没有使用对话框功能。效果很好,但是如果没有对话框,则无法完成对话框。
环顾四周,我只能用WaterfallDialog找到一些示例。 WatefallDialogs是用步骤构建的-我不知道步骤数。
是否有可能建立这样的对话框,或者不是不是为这种事情设计botframework?
答案 0 :(得分:2)
在bot框架V4中,您选择用于对话的对话/对话流是可选的,并且您不需要使用它们(https://docs.microsoft.com/en-us/azure/bot-service/bot-service-design-conversation-flow?view=azure-bot-service-4.0)。您所需要做的就是实现漫游器状态(https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-howto-v4-state?view=azure-bot-service-4.0),因此您可以存储会话数据(或用户数据-取决于所需的状态)。
我使用单个活动处理程序和FSM(https://en.wikipedia.org/wiki/Finite-state_machine)实现了对话流-我将识别器用于常见对话框(帮助),但在大多数情况下,我的过渡处理程序会进行正则表达式比较以提取关键字,然后点击下一个状态。因此,如果您可以绘制出FSM的图形,并列出所有对话框选项,则可以构建一个对话框,看起来很自然。
我目前无法共享代码,但希望您不需要它。