【问题标题】: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 语句中,这样无论意图是什么,您都可以解析出正确的值。您可能还希望将其构建到一个对话框中,您可以在其中检查实体是否存在,如果不存在,您可以提示用户输入丢失的数据。