Dialogflow es 如何将用户自然查询转换为SQL查询?

Dialogflow es 如何将用户自然查询转换为SQL查询?,dialogflow-es,rasa-nlu,rasa-core,Dialogflow Es,Rasa Nlu,Rasa Core,我正在尝试在Rasa/Dialogflow中构建一个聊天机器人,我面临的问题是将英语转换为SQL查询,以便用户用英语编写的内容可以转换为SQL,从MYSQL数据库获取数据并显示结果以供使用 有人能告诉我怎么做吗?理想情况下,这只能通过像SEQ2SQL()这样的解决方案实现 但我以一种变通方式实现了它:- 我使用tracker.latest_message获得了json 之后,我处理了json,生成了我们自己的结构化json,如: [{'column_name':'a', “运算符”:“=”, '

我正在尝试在Rasa/Dialogflow中构建一个聊天机器人,我面临的问题是将英语转换为SQL查询,以便用户用英语编写的内容可以转换为SQL,从MYSQL数据库获取数据并显示结果以供使用


有人能告诉我怎么做吗?

理想情况下,这只能通过像SEQ2SQL()这样的解决方案实现

但我以一种变通方式实现了它:-

  • 我使用
    tracker.latest_message
    获得了json
  • 之后,我处理了json,生成了我们自己的结构化json,如:
  • [{'column_name':'a', “运算符”:“=”, '值':'100'}, {'column_name':'b', “运算符”:“>”, '值':'100'}]

  • 上面的结构用于形成查询的where子句
  • 同样,我也为Select部件制作了自定义json:-
  • [{sum:column1},{count:column2}]

    5.然后我循环使用我创建的json并进行查询


    注意:-此json结构无法涵盖所有可能的场景,但为我编写了体面的工作。

    您能详细解释一下,我该怎么做吗?共享代码会有点困难,因为它是保密的,但可以解释您。上面json中的列名称和值是从用户查询中捕获的插槽。假设此人说:show me records where payment是100,那么,Columname:payment,value:100,operator:=。我们将制作定制的json结构,我们将循环使用它来进行查询。您能解释一下一步一步的过程吗?您能解释一下您不理解的部分吗?我相信英语文本到json的转换,以及如何查询到MYSQL数据库吗?