Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 带有节点Js的Bot框架使用Cosmos数据库提取对话数据_Node.js_Azure Storage_Bots_Botframework_Azure Cosmosdb - Fatal编程技术网

Node.js 带有节点Js的Bot框架使用Cosmos数据库提取对话数据

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

我正在使用MS Bot框架和Node Js开发一个聊天机器人。 我同时使用Luis和QnA maker,对于存储,我设置了一个Cosmos Db。 我正在使用中间件进行日志记录:

//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中使用中间件,我也无法检索任何问题。也许我做错了什么顺便说一句,这里的//日志查询是什么意思?