Node.js 带有节点Js的Bot框架使用Cosmos数据库提取对话数据
我正在使用MS Bot框架和Node Js开发一个聊天机器人。 我同时使用Luis和QnA maker,对于存储,我设置了一个Cosmos Db。 我正在使用中间件进行日志记录:Node.js 带有节点Js的Bot框架使用Cosmos数据库提取对话数据,node.js,azure-storage,bots,botframework,azure-cosmosdb,Node.js,Azure Storage,Bots,Botframework,Azure Cosmosdb,我正在使用MS Bot框架和Node Js开发一个聊天机器人。 我同时使用Luis和QnA maker,对于存储,我设置了一个Cosmos Db。 我正在使用中间件进行日志记录: //Log conversation const logUserConversation = (event) => { console.log('message: ' + event.text + ', user: ' + event.address.user.name); }; // Middlew
//Log conversation
const logUserConversation = (event) => {
console.log('message: ' + event.text + ', user: ' + event.address.user.name);
};
// Middleware for logging
bot.use({
receive: function (event, next) {
logUserConversation(event);
next();
},
send: function (event, next) {
logUserConversation(event);
next();
}
});
如何通过查询Cosmos数据库提取相关数据?
谢谢我相信你想从哪里开始寻找答案。您可以在cosmosDB实例中记录消息,以便稍后检索 Bot Builder SDK中的中间件功能支持您的Bot 拦截用户和bot之间交换的所有消息。对于 对于截获的每条消息,您可以选择执行以下操作: 将消息保存到指定的数据存储中,该存储将创建 对话日志,或以某种方式检查消息并获取任何信息 代码指定的操作 编辑:既然你已经编辑了你的问题,你已经在使用中间件,我根本不明白你的问题是什么 编辑2 使用QnA maker+LUIS,它可能看起来像这样:
bot.dialog('Some LUIS Intent', function(session) {
var query = session.message.text;
session.send(query);
//LOG QUERY HERE
cog.QnAMakerRecognizer.recognize(query, 'https://westus.api.cognitive.microsoft.com/qnamaker/v2.0/knowledgebases/{QNA APP ID}}/generateAnswer', '{QNA SUBSCRIPTION KEY}', 1, 'intentName', (error, results) => {
session.send(results.answers[0].answer)
//LOG ANSWER HERE
})
这把博德带到了极致。请阅读关于本主题的常见问题解答抱歉,但为什么这么宽泛?我认为这是一个关于特定论点的特定问题。我读了所有的微软参考资料,没有人谈论它,我认为向汉克斯询问你的答案是合法的。我仍在使用它,我修改了我的问题,以便让它可见。如何改进代码以提取问题和答案?您可以通过对话ID和时间戳将数据库条目关联起来,以将用户问题与机器人响应对齐。我认为这是一个相当大的问题。。。你的意思是,请给我我需要做的代码,看起来你需要做更多的研究,我相信你能找到你想要的。也许有一个带有代码示例的Github存储库可以帮助您?@TaylorAckley当然不是。请给我需要做的事情的代码,它让我了解如何做一些非常不同的事情。因此,在添加评论之前,请仔细考虑这些话。显然,在发布Stackoverflow之前,我阅读了GitHub上的所有示例,它们没有多大帮助。我重复一遍,这是一个特定的问题,但如果它是一个秘密,那么ok将仍然是一个秘密。@JasonSowers我的问题是,即使我在Cosmos Db中使用中间件,我也无法检索任何问题。也许我做错了什么顺便说一句,这里的//日志查询是什么意思?