我正试图建立一个聊天机器人,它可以查询数据库并根据所问的问题从数据库中返回答案.是否有任何方法可以将 azure 聊天机器人连接到数据库说 azure SQL 数据库?
根据你的补充信息,我已经改变了我的答案。使用QnA Maker的原始建议如下。如果你需要从数据库中检索数据,例如学生的分数,最好的方法是用填槽对话框。就我个人而言,我使用并更喜欢用LUIS的意图识别发起的瀑布式对话框,但也有其他方法。
if (step._info.options.entities.orderNumber) {
return await step.next(step._info.options.entities.orderNumber[0].toUpperCase());
} else {
return await step.prompt(ORDER_PROMPT, {
prompt: 'Please provide your order number.',
retryPrompt: 'Please enter a valid order number.',
});
}
step.values.orderNumber = step.result;
(或 step.result.value
如果返回的是选择项)。)const score = await queryMyDb(student, subject)
. 然后你可以把分数回复给用户。这应该可以让你有足够的时间去尝试检索信息。如果你尝试后仍然有问题,你可以打开一个单独的请求,显示你的代码和你遇到的具体问题。
在收到额外的上下文之前,之前的回答。
假设你只是想在一个问题-答案对中检索问题的答案,听起来你只需要部署QnA Maker并创建一个机器人来利用它。微软提供了很好的说明,告诉你如何 创建、培训和发布您的QnA Maker知识库。. 试一试,如果你有任何问题,请回来通过一个单独的问题与你所尝试的代码一起询问。
QnA Maker可以支持 多轮对话的提示 以及。你仍然在处理单一的问答对,但你可以为用户提供一个简单的选择,通过点击一个按钮来带出相关的答案。
如果你使用的是表存储或blob等azure存储。我建议使用Azure搜索服务。这将帮助你解决你的问题,但它肯定会增加成本。