【问题标题】:How to implement "Back" conversation in Chatbot如何在 Chatbot 中实现“返回”对话
【发布时间】:2017-01-30 18:45:55
【问题描述】:

我希望在 MS botframework 中实现以下场景对话

Bot: =>  what can do for you?            => User
Bot: <=  I want to rent a house         <= User
Bot: =>  Which city?                    => User
Bot: <=                 London          <= User
Bot: =>  How many bedrooms              => User
Bot: <=  Ops, I want a home in New York <= User  #User wish to change the topic here..

在 MS botframework 中,如何使用瀑布对话框来实现上述故事?有什么建议吗?

【问题讨论】:

    标签: node.js botframework chatbot


    【解决方案1】:

    我认为通过合理的努力,用瀑布方法实现它是不可能的。在简单的情况下,您可以尝试分析响应,在您的情况下,它是卧室的数量,如果不是数字,您可以检查另一个请求的响应。这里的问题是您应该对所有回复都这样做,而对于开放文本回复,很难区分合法答案或主题更改。

    因此,您应该使用意图方法来实现它。

    首先,您需要一个意图检测器,您可以使用 Luis,因为它与机器人框架高度集成,或者实现您自己的意图检测器。

    在您的情况下,此检测器应该检测到意图 - I want to rent a house(汽车等)。

    var intents = new builder.IntentDialog({ recognizers: [luis] });
    

    https://docs.botframework.com/en-us/node/builder/chat/IntentDialog 这些代码示例适用于 Node.Js,但同样的方法也适用于 .Net。

    然后,对于每个意图,您应该注册一个适当的操作,以启动获取所有必要数据的瀑布对话框。

    bot.beginDialogAction("RentHouseAction", RentHouseDialog.name+":/", { matches: "RentHouseAction"});
    

    其中 RentHouseAction 是您在 Luis 中定义的操作 RentHouseDialog 是一个位于库中的瀑布对话框。

    bot.library(RentHouseDialog);
    

    请注意,当 RentHouseDialog 对话框结束时,它将返回到上一个对话框停止的位置。所以,它再次询问 - How many bedrooms。 为了防止这种行为,您应该检测到您之前的对话尚未完成(您可以使用收集答案的状态)并调用session.replaceDialog('&lt;&gt;');

    希望对你有帮助。

    【讨论】:

    • 嗨,谢尔盖,感谢您的回复,这真的很有帮助。但如果回复是“哎呀,请不要伦敦,纽约!”所以很难为人类指导 RentHouse 意图,很清楚,最终用户希望根据上下文在纽约租房,在我的机器人代码中,我该如何实现?提前致谢
    • @YuhuaDeng 这将是一个changeLocation 意图。
    • @stuartd,你的意思是 Luis 可以识别“哎呀,不是伦敦,纽约,拜托!”作为更改位置? ,哦,让我试试,我会尽快反馈...
    • 在人工智能的当前状态下,你无法实现像人类一样聪明的机器人。所以,Luis 可以理解 - Ops, I want a home in New York 是想租房,而不是 oops, not London, New York please!(@stuartd 的评论可能会有所帮助)。但是您的机器人应该准备好它无法理解回复。如果是oops, not London..,它应该说 - `对不起,我不明白你的意思。您想要:1) 更改位置,2) 取消请求,3) 显示帮助等等。
    • @Sergey Luis 可以识别这种意图,但需要经过专门培训才能这样做。
    猜你喜欢
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    相关资源
    最近更新 更多