gpt4 book ai didi

azure-sql-database - 天蓝色的聊天机器人有什么方法可以查询数据库并从数据库返回答案吗?可能正在使用 qna maker 或 luis?

转载 作者:行者123 更新时间:2023-12-05 07:09:19 27 4
gpt4 key购买 nike

我正在尝试构建一个聊天机器人,它查询数据库并根据提出的问题从数据库返回答案。有什么方法可以将 azure 聊天机器人连接到数据库,比如 azure SQL 数据库?

最佳答案

根据您的补充信息,我更改了答案。使用 QnA Maker 的原始建议如下。如果您需要从数据库中检索数据,例如学生成绩,最好的方法是使用插槽填充对话框。就个人而言,我使用并更喜欢通过 LUIS 的意图识别启动的瀑布对话,但还有其他方法可以做到这一点。

  • 首先,使用 LUIS 识别用户意图并启动适当的对话。我喜欢 DispatchBot sample用于展示如何进行基本意图识别(但该示例在同一个 .js 文件中包含对话框,我不喜欢这样。我更喜欢将对话框保存在单独的文件中)。
  • 如果可能,您将希望尝试提取相关实体,这样用户就不必重新输入它们。关于如何执行此操作的教程很多,但是 here is a good one .
  • 使用对话框收集调用数据库所需的所有信息。 multi-turn prompt sample是如何做到这一点的一个很好的例子。您还需要考虑实体提取的代码,这样您就不会再次提示用户。我通过 if 语句执行此操作:如果实体存在,则将其返回到下一步;否则提示用户输入实体。这是一个例子。
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)。例如,在上述步骤之后,您将通过 step.values.orderNumber = step.result;(或 step.result.value 在我的示例中存储订单号如果返回一个选项)。
  • 一旦您拥有所有值,您就可以查询您的数据库。这样做的方法将取决于您使用的是哪个数据库。但是,如果我们假设您是通过某种帮助程序来执行此操作,您只需调用类似 const score = await queryMyDb(student, subject) 的方法。然后您可以将分数回复给用户。

这应该足以让您尝试检索信息。如果您尝试后仍然遇到问题,您可以打开一个单独的请求,显示您的代码和您遇到的具体问题。


收到附加上下文之前的上一个答案:

假设您只想在单个问答对中检索问题的答案,听起来您只需要部署 QnA Maker 并创建一个机器人来使用它。 Microsoft 提供了有关如何 Create, train, and publish your QnA Maker knowledge base 的良好说明.试一试,如果您有任何问题,请返回并通过单独的问题以及您尝试过的代码来提问。

QnA Maker 可以支持prompts for multi-turn conversations以及。您仍在处理单个问答对,但您可以为用户提供一个简单的选择,让用户只需点击一个按钮即可显示相关答案。

关于azure-sql-database - 天蓝色的聊天机器人有什么方法可以查询数据库并从数据库返回答案吗?可能正在使用 qna maker 或 luis?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61651786/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com