我想在Microsoft Bot框架中启动Form对话聊天。
if(user says hello)
{
reply = what u want to listen hi or hello
if(user says order)
{
reply= start a formbuilder.form with order form workflow
}
if(user says hello)
{
reply= hello
}
}
我的问题是我做的第一件事 例如:如果我说第一个聊天行作为订单它开始订单表格但它永远不会进入正常的会话模式,即使表格结束。
如果我开始喜欢那么它总是进入hi模式永远不会去或在打字顺序上创建订单。
需要它是动态的
答案 0 :(得分:0)
当您处于对话框或对话流程结束时,您可以使用以下代码结束对话。
context.Done<object>(new object());
或
context.Done(true);
如果您需要任何帮助,请告诉我
答案 1 :(得分:0)
根据我的理解,您需要启动特定对话框,同时触发不同的字词,例如"hollo"
用于问候对话框,"order"
用于表单对话框。
我认为在C#中有两种方法可以实现这一点:
您可以利用识别意图来实现LUIS,它可以通过spken或文本输入或话语来识别用户的意图。触发每个LUIS意图的特定对话框。
对于此解决方案,您可以参考官方文档Recognize intents and entities with LUIS using a prebuilt domain了解详情,并参考https://github.com/Microsoft/BotBuilder-Samples/tree/master/CSharp/intelligence-LUIS获取样本供您参考。
您也可以在自己的机器人应用程序中构建Global message handlers using scorables。通过这种方式,当机器人期待不同的响应时,您可以通过在对话中使用“帮助”,“取消”或“重新开始”等单词来将用户路由到某些功能。
有关此解决方案的示例,请参阅https://github.com/Microsoft/BotBuilder-Samples/tree/master/CSharp/core-GlobalMessageHandlers。
希望它有所帮助。