botframework - 在 QnA Maker 知识库中没有该问题(新问题)的答案时保存问题
问题描述
我正在尝试将用户向我的 QnA maker bot 提出的新问题保存到 Azure 数据库中,以便我可以将这些问题的答案添加到我的知识库中。
目前,当用户没有收到我的机器人的回复时,我要求用户在反馈表中写下他们的问题。这需要花费时间,用户也会因写作而烦恼。我希望我的机器人收集这些问题并将其存储在数据库中。
因此,请指导如何实现这一点,任何链接或建议表示赞赏。
解决方案
我能够使用 SharePoint 列表实现类似的目标。
https://stackoverflow.com/a/56612401/9611859
如果您想在 SharePoint 列表中添加“否”答案,我设法使用 csom-node 包和 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();
});
}
推荐阅读
- cypress - 赛普拉斯检查元素是否有滚动条可见
- javascript - 如何修复'在反应js中带有复选框的带有回车键的按键'
- rest - 使用 ServiceNow 表单进行出站邮寄电话
- java - handleWindowVisibility:令牌 android.os.BinderProxy 没有活动
- sql - 带有“not in”的 SQL 查询非常慢
- apache-spark - 为什么在向量的 Spark 数据帧上进行 MergeSort 连接后的不同计数会给出不确定的结果
- java - 匹配的通配符是严格的,但是在servlet.xml中找不到多个元素的声明
- javascript - 为什么 localStorage.getItem 总是返回字符串?
- wordpress - 如何将核心 WordPress Jquery 排入类
- xml - 如何使用PowerShell获取不是当前节点父节点的XML节点