Botframework 在QnA Maker知识库中没有该问题(新问题)的答案时保存该问题

Botframework 在QnA Maker知识库中没有该问题(新问题)的答案时保存该问题,botframework,azure-bot-service,qnamaker,Botframework,Azure Bot Service,Qnamaker,我正在尝试将用户向我的QnA maker机器人提出的新问题保存到Azure数据库中,以便我可以将这些问题的答案添加到我的知识库中 目前,我要求用户在没有收到我的机器人的回复时,将他们的问题写在反馈表中。这占用了用户的时间,而且用户对写作感到厌烦。我希望我的机器人收集这些问题并将其存储在数据库中 因此,请指导如何实现这一点,任何链接或建议都值得赞赏。我能够使用SharePoint列表实现类似的功能 如果您想向SharePoint列表添加“否”答案,我使用csom节点包和Bot Framework

我正在尝试将用户向我的QnA maker机器人提出的新问题保存到Azure数据库中,以便我可以将这些问题的答案添加到我的知识库中

目前,我要求用户在没有收到我的机器人的回复时,将他们的问题写在反馈表中。这占用了用户的时间,而且用户对写作感到厌烦。我希望我的机器人收集这些问题并将其存储在数据库中


因此,请指导如何实现这一点,任何链接或建议都值得赞赏。

我能够使用SharePoint列表实现类似的功能

如果您想向SharePoint列表添加“否”答案,我使用csom节点包和Bot Framework v4/NodeJS设法使其正常工作。当然,这不是最优雅的解决方案,但它确实有效

Bot.JS

const csomapi = require('../node_modules/csom-node');
settings = require('../settings').settings;

// Set CSOM settings
csomapi.setLoaderOptions({url: settings.siteurl});
再往下一点

// If no answers were returned from QnA Maker, reply with help.
            } else {
                await context.sendActivity("Er sorry, I don't seem to have an answer.");
                console.log(context.activity.text);
                var response = context.activity.text;
                var authCtx = new AuthenticationContext(settings.siteurl);
                authCtx.acquireTokenForApp(settings.clientId, settings.clientSecret, function (err, data) {

                    var ctx = new SP.ClientContext("/sites/yoursite");  //set root web
                    authCtx.setAuthenticationCookie(ctx);  //authenticate
                        var web = ctx.get_web();
                        var list = web.get_lists().getByTitle('YourList');
                        var creationInfo = new SP.ListItemCreationInformation();
                        var listItem = list.addItem(creationInfo);
                        listItem.set_item('Title', response);
                        listItem.update();
                        ctx.load(listItem);
                        ctx.executeQueryAsync();
                });
            }