【问题标题】:LUIS to MySQL query - Azure ChatbotLUIS 到 MySQL 查询 - Azure 聊天机器人
【发布时间】:2020-07-30 21:56:52
【问题描述】:

如何使用 LUIS 生成 MySQL 查询并从 Azure 中托管的数据库中获取数据?

应该为 MySQL Query 生成自然语言查询。 例如

2018 年慕尼黑啤酒节喝了多少啤酒? --> GET amountOfBeer FROM Oktoberfest WHERE Year ==2018;

有人知道如何让它工作吗?

已经在 LUIS 中生成了小的 Intent,例如GetAmountOfBeer

不知道如何生成 MySQL 语句以及如何从数据库中获取数据。

谢谢。

【问题讨论】:

    标签: mysql database azure chatbot azure-language-understanding


    【解决方案1】:

    您应该能够使用意图和实体来实现此目的或类似的目的。这能取得多大的成功取决于您的查询需要有多少和多么多样化。首先让我们从你提到的那句话开始:“2018 年慕尼黑啤酒节喝了多少啤酒”。您可以轻松地(就像您所做的那样)将其添加为意图的话语GetAmountOfBeer。虽然我很喜欢可以读作“我想GetAmountOfBeer”的意图名称,但在这里您可能希望将意图命名为amountOfBeer,以便您可以直接在查询中使用它。

    接下来,您需要设置实体。对于年份(或更确切地说是日期时间),这应该很容易,因为我相信为此有一些预定义的实体。我认为您需要使用日期时间识别器来解析正确的属性(如年份),但我之前没有尝试过这样做。接下来,慕尼黑啤酒节似乎是您数据库中的特定节日或活动,因此您可以创建一个包含所有活动的列表实体。

    剩下的就是(伪代码)GET topIntent FROM eventEntity WHERE Year ==datetime.Year,或类似的东西。

    如果您的查询集更复杂,您可能必须有多个 GET 语句,但您可以将它们放在 topIntent 的 switch 语句中,这样无论意图是什么,您都可以解析出正确的值。您可能还希望将其构建到一个对话框中,您可以在其中检查实体是否存在,如果不存在,您可以提示用户输入丢失的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-28
      • 1970-01-01
      • 2020-03-31
      • 2018-08-25
      • 2022-01-23
      • 1970-01-01
      • 2022-12-23
      相关资源
      最近更新 更多