我正在使用NodeJs使用Botframework开发一个聊天机器人。我也在使用QnA制造商,为了将来的实施,我想使用LUIS。 那么,是否有可能从对话中提取相关信息,例如用户输入的问题和来自机器人的问题?我徘徊使用CosmosDB来存储这些信息,然后用它来实例化一个新的ML模型或者只是用它来进行分析。 提前致谢
答案 0 :(得分:1)
是的,这两件事都是可能的。
在Node.js中,使用会话对象在用户和机器人之间交换消息。
特别是
var userMessage = session.message.text;
This blog post适用于.NET,但展示如何存储用户的问题,以及QnA答案及其反馈并将该数据保存到Azure数据库,CosmosDB / Table Storage可以轻松完成。
This one提供了一些有关如何将QnA与node.js bot一起使用的见解。来自QnA服务的答案类似地通过会话对象来处理,
basicQnAMakerDialog.respondFromQnAMakerResult = function(session, qnaMakerResult){
// Save the question
var question = session.message.text;
session.conversationData.userQuestion = question;
// save answer from QnA
var qnaAnswer = qnaMakerResult.answers[0].answer;
希望这有帮助!祝好运!
答案 1 :(得分:0)
根据我的理解,您可以利用bot框架中的middeware功能来捕获机器人从用户收到的每条消息以及机器人发送给用户的每条消息。
在middeware功能中,您可以直接处理消息。
代码段应该是:
bot.use({
receive: function (event, next) {
console.log('message: ' + event.text + ', user: ' + event.address.user.name);
//TODO
next();
},
send: function (event, next) {
console.log('message: ' + event.text + ', user: ' + event.address.user.name);
//TODO
next();
}
})
您可以参考https://github.com/Microsoft/BotBuilder-Samples/blob/master/Node/capability-middlewareLogging/app.js的官方样本作为参考。