CN117112590A - 一种生成结构性查询语言的方法和数据查询设备 - Google Patents
一种生成结构性查询语言的方法和数据查询设备 Download PDFInfo
- Publication number
- CN117112590A CN117112590A CN202310526550.6A CN202310526550A CN117112590A CN 117112590 A CN117112590 A CN 117112590A CN 202310526550 A CN202310526550 A CN 202310526550A CN 117112590 A CN117112590 A CN 117112590A
- Authority
- CN
- China
- Prior art keywords
- target
- candidate
- information
- filtered
- sql
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 101
- 238000013507 mapping Methods 0.000 claims abstract description 110
- 238000012216 screening Methods 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 36
- 238000004590 computer program Methods 0.000 claims description 12
- 238000013473 artificial intelligence Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 20
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 10
- 238000003058 natural language processing Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 241000234295 Musa Species 0.000 description 2
- 235000018290 Musa x paradisiaca Nutrition 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 239000008280 blood Substances 0.000 description 2
- 210000004369 blood Anatomy 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 235000019219 chocolate Nutrition 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
- G06F16/24522—Translation of natural language queries to structured queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提出一种生成结构性查询语言SQL语句的方法和数据查询设备,根据存储的历史查询信息中用户历史输入的问题以及对应的历史生成的正确的SQL语句之间的映射关系,在历史查询记录中寻找到和用户当前输入的问题最匹配的候选示例,从而以用户当前输入的问题和候选示例作为大语言模型的输入,使得大语言模型输出用户当前输入的问题对应SQL语句。本申请提供的方法可以较为便捷和准确的获得用户当前输入的问题对应的候选示例,从而提高了用户当前输入的问题生成的SQL语句的准确性。
Description
技术领域
本申请实施例涉及自然语言处理技术领域,并且更具体的,涉及一种生成结构性查询语言的方法和数据查询设备。
背景技术
结构化查询语言(structured query language,SQL)是一种数据库查询和程序设计语言,用于存取数据、查询、更新和管理关系数据库系统。SQL语言是关系数据库中的标准化查询语言,能够对目标数据库完成数据定义、数据查询和数据控制等操作。在使用SQL进行初级查询的过程中,用户一般不需要指的数据库中的数据如何定义和怎样存储,只需要了解表的结构,就可以从表中查询出需要的信息。
自然语言转结构化查询语言(natural language to structured querylanguage,NL2SQL)指的是一种将自然语言转换为SQL查询的技术。它的目的是将自然语言查询转换为机器可读的SQL查询,以便可以从关系数据库中检索数据。例如,在实际应用时,用户可以直接输入问题,后台生成该问题对应的SQL语句,并使用SQL语句向数据库发出操作请求,数据库服务器处理该请求,并将查询结果返回给用户。然而,在该过程中,是否可以准确的生成用户给出的问题对应的SQL语句,会影响查询结果的准确性。
因此,针对用户输入的问题,如何才能可以提高生成的SQL语句的准确性,成为一种需要解决的技术问题。
发明内容
本申请提供了一种生成结构性查询语言的方法,可以提高生成的SQL语句的准确性。
第一方面,提供了一种生成结构性查询语言的方法,该方法可以由数据查询设备执行,或者,也可以由数据查询设备的组成部件(例如芯片或者电路)执行,还可以由云服务系统中的各个服务器或者虚拟机执行,对此不作限定。
该方法包括:存储历史查询信息,该历史查询信息包括第一信息与第一结构性查询语言SQL语句之间的第一映射关系,其中,第一信息包括用户历史输入的问题,第一SQL语句为用户历史输入的问题对应的历史生成的正确的SQL语句;根据第二信息对该历史查询信息进行筛选,获得候选示例,其中,第二信息包括用户当前输入的问题,候选示例包括筛选后的第一映射关系,其中,筛选后的第一映射关系中的第一信息与第二信息之间的相似度大于或者等于第一阈值;根据第二信息和候选示例生成第三信息,第三信息包括所述第二信息和候选示例;根据大语言模型和第三信息生成第二信息对应的第二SQL语句,其中,该大语言模型的输入为第三信息,大语言模型的输出为第二SQL语句。
具体的,衡量问题之间的相似度例如可以采用以下方法:可以先使用独热(onehot)编码或词嵌入(word embedding)编码,对用户当前输入的问题与存储的用户历史输入的问题进行向量化,然后通过比较两者内积,或者通过距离测量,或者通过神经网络等方法进行相似度比较。
本申请中,可以存储历史查询信息,其中,历史查询信息记录了用户历史输入的问题以及对应的历史生成的正确的SQL语句之间的映射关系,然后在历史查询记录中寻找到和用户当前输入的问题最匹配的候选示例,从而以用户当前输入的问题和候选示例作为大语言模型的输入,使得大语言模型输出用户当前输入的问题对应SQL语句。本申请提供的方法可以较为便捷和准确获得用户当前输入的问题对应的候选示例,从而提高了基于用户当前输入的问题生成的SQL语句的准确性。
可选的,第二信息还包括用户当前输入的问题对应的表模式,此时,第二信息具体为用户当前输入的问题以及该问题对应的表模式;第一信息还包括所述用户历史输入的问题对应的表模式,此时,历史查询信息具有可以为,用户历史输入的问题、该问题对应的表模式、以及第一结构性查询语言SQL语句三者之间的映射关系。
具体的,在基于表模式进行筛选的时可以通过设定规则进行筛选。例如,用户可以编辑各种规则,进行筛选。例如:表名相同、或者表的列名相同、或者表之间有血缘关系、或者表名不同但主外键关联的表相同等。通过这些规则可以对用户历史输入的问题对应表模式进行评分,当得分大于或者等于某个阈值(例如,第一阈值)时,可以确定其为候选示例。又例如,可以针对表模式的属性,用户自定义规则进行筛选,例如基于表的质量,表的日期等对用户历史输入的问题对应表模式进行评分,当得分大于或者等于某个阈值(例如,第一阈值)时,可以确定其为候选示例。
本申请中,在筛选历史查询信息时不仅可以通过用户当前输入的问题进行筛选,还可以进一步通过用户当前输入的问题对应的表模式进行筛选,由此可以进一步保证筛选出的候选示例与用户当前输入的问题的匹配性,从而保证生产的SQL语句的准确性。
结合第一方面,在一种可能的实现方式中,在获得候选示例后,该方法还包括:在候选示例中确定目标示例;根据所述第二信息和候选示例生成第三信息,第三信息包括用户当前输入的问题和候选示例,包括:根据第二信息和目标示例生成第三信息,第三信息包括用户当前输入的问题和目标示例。
本申请中,在获得候选示例后还可以进一步对候选示例进行筛选,在候选示例中获得目标示例,可以去除候选示例中的冗余信息并且保证目标示例的丰富性,既可以节省计算资源也可以提高获取的目标示例的丰富性。
结合第一方面,在一种可能的实现方式中,获得的候选示例包括多个候选示例,其中,多个候选示例中的每个候选示例包括筛选后的第一映射关系,筛选后的第一映射关系为筛选后的用户历史输入的问题与筛选后的第一SQL语句之间的映射关系,在候选示例中确定目标示例,包括:根据多个候选示例对应的多个第一映射关系中包括的多个第一SQL语句之间的差异性,对多个第一SQL语句进行筛选,获得多个目标SQL语句,该多个目标SQL语句之间的差异度大于或者等于第二阈值;根据多个目标SQL语句以及多个目标SQL语句各自对应的筛选后的所述用户历史输入的问题,确定多个目标示例,目标示例中的每个候选示例包括筛选后的用户历史输入的问题和目标SQL语句之间的映射关系。
本申请中,在判断各个SQL语句的差异性时,例如可以通过分别比较SQL语句的各个字段的内容确定SQL语句之间的差异性。
结合第一方面,在一种可能的实现方式中,获得的候选示例包括多个候选示例,其中,多个候选示例中的每个候选示例包括筛选后的所述第一映射关系,筛选后的第一映射关系为筛选后的用户历史输入的问题、筛选后的所述用户历史输入的问题对应的表模式,以及筛选后的所述第一SQL语句之间的映射关系,在候选示例中确定目标示例,包括:根据多个候选示例对应的多个第一映射关系中包括的多个表模式之间的差异性,对多个表模式进行筛选,获得多个目标表模式,多个目标表模式之间的差异度大于或者等于第三阈值;根据多个目标表模式以及多个目标表模式各自对应的筛选后的用户历史输入的问题和筛选后的第一SQL语句,确定多个目标示例;其中,多个目标示例中的每个目标示例包括:筛选后的用户历史输入的问题、筛选后的目标表模式,以及筛选后的第一SQL语句之间的映射关系。
结合第一方面,在一种可能的实现方式中,获得的候选示例包括多个候选示例,其中,多个候选示例中的每个候选示例包括筛选后的第一映射关系,筛选后的第一映射关系为筛选后的用户历史输入的问题、所述后的所述用户历史输入的问题对应的表模式,以及筛选后的第一SQL语句之间的映射关系,根据所述候选示例确定目标示例,包括:根据多个候选示例对应的多个所述第一映射关系中包括的多个第一SQL语句之间的差异性,对个第一SQL语句进行筛选,获得多个目标SQL语句,多个目标SQL语句之间的差异度大于或者等于第二阈值;根据多个目标SQL语句以及多个目标SQL语句各自对应的筛选后的用户历史输入的问题、筛选后的用户历史输入的问题对应的表模式,确定多个目标示例;其中,多个目标示例中的每个目标示例包括:筛选后的所述用户历史输入的问题、筛选后的表模式,以及目标SQL语句之间的映射关系。
应理解,当各个候选示例都是相似的,则通过差异性进行筛选时可以理解为最终保留了一个或两个候选示例,该候选示例为目标示例。该过程可以理解为去除冗余示例的过程,可以减少资源占用。
本申请中,通过在获得的候选示例后,可以根据SQL语句的差异性和/或表模式的差异性对候选示例进行筛选,从而获得目标示例,使得目标示例与用户当前输入的问题或者使得目标示例与用户当前输入的问题以及该问题对应的表模式更为匹配,提高生成的SQL语句的准确性。
第二方面,本申请提出了一种数据查询设备,该设备用于执行上述第一方面的方法。具体地,该设备可以包括用于执行上述第一方面方法的单元和/或模块,如收发单元和/或处理单元。
第三方面,提供了一种数据查询设备,该设备包括:至少一个处理器,用于执行存储器存储的计算机程序或指令,以执行上述第一方面的方法。可选地,该设备还包括存储器,用于存储的计算机程序或指令。可选地,该设备还包括通信接口,处理器通过通信接口读取存储器存储的计算机程序或指令。
在一种实现方式中,该设备为用于芯片中实现生成SQL语句的方法的功能数据查询设备。
在另一种实现方式中,该设备为用于芯片中实现生成SQL语句的方法功能芯片、芯片系统或电路。
第四方面,本申请提供一种处理器,包括:输入电路、输出电路和处理电路。所述处理电路用于通过所述输入电路接收信号,并通过所述输出电路发射信号,使得所述处理器执行上述第一方面的方法。
在具体实现过程中,上述处理器可以为一个或多个芯片,输入电路可以为输入管脚,输出电路可以为输出管脚,处理电路可以为晶体管、门电路、触发器和各种逻辑电路等。输入电路所接收的输入的信号可以是由例如但不限于收发器接收并输入的,输出电路所输出的信号可以是例如但不限于输出给发射器并由发射器发射的,且输入电路和输出电路可以是同一电路,该电路在不同的时刻分别用作输入电路和输出电路。本申请实施例对处理器及各种电路的具体实现方式不做限定。
对于处理器所涉及的发送和获取/接收等操作,如果没有特殊说明,或者,如果未与其在相关描述中的实际作用或者内在逻辑相抵触,则可以理解为处理器输出和接收、输入等操作,也可以理解为由射频电路和天线所进行的发送和接收操作,本申请对此不做限定。
第五方面,提供了一种处理设备,包括处理器和存储器。该处理器用于读取存储器中存储的指令,并可通过收发器接收信号,通过发射器发射信号,以执行上述第一方面的方法。
可选地,所述处理器为一个或多个,所述存储器为一个或多个。
可选地,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
应理解,相关的数据交互过程例如发送指示信息可以为从处理器输出指示信息的过程,接收能力信息可以为处理器接收输入能力信息的过程。具体地,处理器输出的数据可以输出给发射器,处理器接收的输入数据可以来自收发器。其中,发射器和收发器可以统称为收发器。
上述第五方面中的处理设备可以是一个或多个芯片。该处理设备中的处理器可以通过硬件来实现也可以通过软件来实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
第六方面,提供了一种计算设备集群,包括至少一个计算设备,每个计算设备包括处理器和存储器;所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行第一方面或第一方面任意一种可能的实现方式中所述的方法。
可选地,该处理器可以是通用处理器,可以通过硬件来实现也可以通过软件来实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
第七方面,提供一种计算机可读存储介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行上述第一方面的方法。
第八方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面中的方法。
第九方面,提供一种芯片系统,包括处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片系统的设备执行上述第一方面的方法。
附图说明
图1是本申请适用的一种数据查询设备架构的示意图。
图2是本申请提供的一种生成SQL语句的方法200的示意性流程图。
图3是本申请提供的一种生成SQL语句的另一种示意性流程图。
图4是本申请提供的数据查询设备100的示意性框图。
图5是本申请提供的数据查询设备200的示意性框图。
图6是本申请实施例提供的一种计算设备集群的架构示意图。
图7是本申请实施例提供的计算设备600A和600B之间通过网络进行连接的示意图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
为了便于理解本申请的技术方案,下面对本申请涉及的个别专业术语进行简单的说明。
1、大语言模型(large language model,LLM)
大语言模型是指一种基于深度学习技术构建的自然语言处理模型,它可以接收文本作为输入并预测文本中缺失的部分。大语言模型通常是由大量文本数据训练得到的,例如互联网上的新闻、博客、维基百科等。这些模型可以生成自然语言文本、回答自然语言问题、进行机器翻译、语音识别等任务,被广泛应用于语言处理领域。目前,一些大型技术公司如谷歌、微软等已经构建了非常强大的大语言模型。这些模型具备非常强的语言理解和生成能力,可以用于各种语言处理任务,并在很多领域展现出了优秀的表现。本申请提到的“大语言模型”也包括了未来可能出现的其他机器学习模型。
2、聊天生成型预训练变换模型
聊天生成型预训练变换模型是目前最先进的自然语言处理(natural languageprocessing,NLP)模型之一,它是基于语言模型的机器学习模型,可以用来生成自然语言的文本,具有高度的语言理解能力,可以通过学习不同的数据集,获得非常高的文本理解能力与生成能力。以聊天生成型预训练变换模型为代表的LLM可以协助人类完成各种任务,从而减轻人们的工作压力,提高生产效率。在自然语言处理的各个领域中,聊天生成型预训练变换模型模型的高效性与精准性都得到了广泛的认可。例如,它可以用于机器翻译、自动摘要、文本纠错、言语生成等领域。
3、结构化查询语言(structured query language,SQL)
SQL是具有数据操纵和数据定义等多种功能的数据库语言,这种语言具有交互性特点,能为用户提供极大的便利,数据库管理系统应充分利用SQL语言提高计算机应用系统的工作质量与效率。SQL可以用来操作数据库的语句,例如:创建项目(create),查询内容(read),更新内容(update),删除条目(delete)等操作。通常情况下,SQL语句的一般格式包括以下字段:“select”、“from”、“where”、“group by”、“orderby”。
4、自然语言转结构化查询语言(natural language to structured querylanguage,NL2SQL)
NL2SQL是一项将用户的自然语句转为可执行SQL语句的技术,对改善用户与数据库之间的交互方式有很大意义。NL2SQL的本质是将用户的自然语言语句转化为计算机可以理解并执行的规范语义表示,是语义分析领域的一个子任务。NL2SQL的应用领域主要包括:(1)智能搜索引擎:使用NL2SQL技术,可以实现用户自然语言查询关系数据库中的数据,从而提高搜索引擎的智能化水平。(2)聊天机器人:使用NL2SQL技术,可以实现聊天机器人的智能,使其能够自动识别用户输入的自然语言查询,并从数据库中检索相关信息。(3)数据库查询:NL2SQL技术可以支持数据库管理系统,支持用户使用自然语言查询数据库中的数据,提高了查询效率。
基于目前的大语言模型的发展,考虑到可以将大语言模型应用在NL2SQL领域中。大语言模型最常用的使用场景是基于用户输入的问题反馈查询结果,为了使得大语言模型的输出内容更加全面、满足用户的期望,像聊天生成型预训练变换模型就采用了上下文(in-context)学习模型,通过对模型进行引导,从合适的上下文关联中,生成合理的内容。例如,用户在输入问题时,还可以额外的给大语言模型输入一些示例,从而形成对大模型的引导。示例性的,用户可以向大语言模型输入以下内容:请把“我喜欢吃巧克力”翻译一下,例如:苹果-apple,香蕉-banana。此时,语言模型会根据用户输入的示例(“例如:苹果-apple,香蕉-banana”)中学习出这是一个中文翻译成英文的任务,从而快速高效的进行中文→英文的翻译。同样的,对于一个NL2SQL的任务,如果可以提供一些示例,得到的SQL语句可能会更加全面或者更加准确。或者也可以理解为,写出比较合适的示例会影响生成的SQL语句的准确性,进而也会直接影响用户输入的问题得到的查询结果的准确性。
但是,对一个数据开发工程师而言面对的可能是整个数据湖。数据湖里的数据来源于不同的存储系统,例如,对象存储,数仓,数据库等。也来自于不同的业务系统,例如,客户关系管理系统(customer relationship management,CRM),企业资源管理系统(enterprise resource planning,ERP),运维系统等。这个复杂系统中,要让工程师通过思考确定当前输入的问题对应的示例,将会耗费大量的时间,并且输入的示例也不一定是是与当前问题最匹配的示例,这样导致最终生成的SQL语句不一定准确。换句话说,如何可以使得大语言模型生成的SQL语句更加准确,成为需要解决的技术问题。
有鉴于此,本申请提出可以存储历史查询信息,其中,历史查询信息记录了用户历史输入的问题以及对应的历史生成的正确的SQL语句之间的映射关系,然后在历史查询记录中寻找到和用户当前输入的问题最匹配的候选示例,从而以用户当前输入的问题和候选示例作为大语言模型的输入,使得大语言模型输出用户当前输入的问题对应SQL语句。本申请提供的方法可以较为便捷和准确的获得用户当前输入的问题对应的候选示例,从而提高了基于用户当前输入的问题生成的SQL语句的准确性。
图1是本申请适用的一种数据查询设备的示意性架构图,如图1所示,用户输入的文本内容或者由语音转换的文本内容经过交互层输入到NL2SQL模型中,NL2SQL模型在数据库中查找该文本内容对应的SQL语句,并将SQL执行结果反馈给交互层。
图2是本申请提出的一种获取SQL语句的方法200的示意性流程图,本申请提供的技术方案可以由云服务架构中各个服务器(例如,虚拟机)进行实现,也可以由普通数据查询设备(例如,数据查询引擎)进行实现。如图2所示,该方法包括:
步骤201,存储历史查询信息,该历史查询信息包括第一信息与第一结构性查询语言SQL语句之间的第一映射关系。
本申请中,第一信息包括用户历史输入的问题,第一SQL语句可以理解为用户历史输入的问题对应的历史生成的正确的SQL语句。此时,历史查询信息具体可以理解为是:用户历史输入的问题与用户历史输入的问题对应的历史生成的正确的SQL语句两者之间的映射关系。例如,该方式中存储的历史查询信息的格式为<key_1:用户历史输入的问题,value:历史生成的正确的SQL语句>。示例性的,第一映射关系可以理解为如下表格1示出的对应关系。
表格1
第一映射关系 | 第一信息 | 第一SQL语句 |
映射关系#1 | 用户历史输入的问题#1 | 历史生成的正确的SQL语句#1 |
映射关系#2 | 用户历史输入的问题#2 | 历史生成的正确的SQL语句#2 |
映射关系#3 | 用户历史输入的问题#3 | 历史生成的正确的SQL语句#3 |
映射关系#4 | 用户历史输入的问题#4 | 历史生成的正确的SQL语句#4 |
可选的,在一些实现方式中,第一信息还包括用户历史输入的问题对应的表模式。此时,历史查询信息可以理解为是:用户历史输入的问题与用户历史输入的问题、用户历史输入的问题对应的表模式(table schema)、以及历史生成的正确的SQL语句三者之间的映射关系。例如,该方式中存储的历史查询信息的格式为<key_1:用户历史输入的问题,key_2:用户历史输入的问题对应的表模式,value:历史生成的正确的SQL语句>。示例性的,此时第一映射关系可以理解为如下表格2示出的对应关系。
表格2
本申请中,“表模式”可以理解为表的属性、表的名称、表中列的名称,等等。
本申请中,第一SQL语句包括大语言模型之前生成的并且直接执行的SQL语句,也包括大语言模型生成SQL语句后,经过人工修改后最终执行的SQL语句
可替换地,本文中的“映射关系”、“对应关系”也可以表述为“关联关系”。应理解,本申请实施例中所说的“映射关系”可以通过函数关系、或表格等方式保存或被记录。
步骤202,根据第二信息对历史查询信息进行筛选,获得候选示例。
本申请中,第二信息包括用户当前输入的问题,候选示例包括筛选后的第一映射关系。其中,该筛选后的第一映射关系中的第一信息与第二信息之间的相似度大于或者等于第一阈值。
在一种实现方式中,当第二信息只包括用户当前输入的问题时,第一信息包括用户历史输入的问题时,第一信息与第二信息之间的相似度具体可以理解为是:用户当前输入的问题与存储的用户历史输入的问题之间的相似性。该实现方式也可以理解为,基于问题的相似度在第一映射关系中进行筛选,从而获得筛选后的第一映射关系。
具体的,衡量问题之间的相似度例如可以采用以下方法:可以先使用独热(onehot)编码或词嵌入(word embedding)编码,对用户当前输入的问题与存储的用户历史输入的问题进行向量化,然后通过比较两者内积,或者通过距离测量,或者通过神经网络等方法进行相似度比较。
示例性的,基于问题相似度的筛选最终确定的候选示例为表格1中的映射关系#1、映射关系#2、映射关系#3、映射关系#4。
在另一种实现方式中,当第二信息包括用户当前输入的问题和用户当前输入的问题对应的表模式时,第一信息包括用户历史输入的问题以及用户历史输入的问题对应的表模式,此时,第一信息与第二信息之间的相似度具体可以理解为是:用户当前输入的问题与存储的用户历史输入的问题之间的相似性,以及,用户当前输入的问题对应的表模式与用户历史输入的问题对应的表模式之间的相似性。该实现方式可以理解为,不仅可以基于问题的相似度进行筛选,进一步的还可以基于问题对应的表模式进行筛选,从而获得筛选后的第一映射关系。应理解,也可以先对表模式相似性进行筛选然后根据问题相似度进行筛选,两者的顺序不予限定。
具体的,在基于表模式进行筛选的时可以通过设定规则进行筛选。例如,用户可以编辑各种规则,进行筛选。例如:表名相同、或者表的列名相同、或者表之间有血缘关系、或者表名不同但主外键关联的表相同等。通过这些规则可以对用户历史输入的问题对应表模式进行评分,当得分大于或者等于某个阈值(例如,第一阈值)时,可以确定其为候选示例。又例如,可以针对表模式的属性,用户自定义规则进行筛选,例如基于表的质量,表的日期等对用户历史输入的问题对应表模式进行评分,当得分大于或者等于某个阈值(例如,第一阈值)时,可以确定其为候选示例。
其中“表名不同但主外键关联的表相同”可以理解为是,虽然各个表的表名称不同,但是各个表中都包含了某个信息,通过该信息可以查找到该信息相关的信息都关联在同一个表中。
示例性的,基于问题相似度的筛选确定的候选示例为表格2中的映射关系#5、映射关系#6、映射关系#7、映射关系#8,基于表模式的相似度再次对候选示例进行筛选,最终确定的候选示例为表格2中的映射关系#5、映射关系#6、映射关系#7。
步骤203,根据第二信息和候选示例生成第三信息,第三信息包括第二信息和候选示例。
作为一个示例,假设用户当前输入的问题是:查询仓库还有多少蓝色的运动服,通过在历史存储记录中筛选到候选示例是:“找到有多少红色汽车”—“A table calledcarts with columns id and color”“Select*from cars where color=‘red’”。因此,第三信息可以理解为是:查询仓库还有多少蓝色的运动服,例如,“找到有多少红色汽车”—“Atable called carts with columns id and color”“Select*from cars where color=‘red’”。
为了使得最终获得的示例可以涵盖各个维度或者各个方面并且去除各个示例中的冗余示例(可以理解为,候选示例中比较相似的示例保留一个即可),可以进一步对候选示例进行筛选,获得目标示例。因此,在一种可能的实现方式中,在获得候选示例后,该方法还包括:在候选示例中确定目标示例。也可以理解为,本申请中还提出可以对候选示例进行进一步筛选,获得目标示例。此时,根据第二信息和候选示例生成第三信息,包括:根据第二信息和目标示例生成第三信息,第三信息包括用户当前输入的问题和目标示例。下面分别介绍本申请中对候选示例进行筛选获得目标示例的各个实现方式:
方式1:
假设候选示例中包括多个候选示例,该多个候选示例中的每个候选示例包括筛选后的第一映射关系,其中,筛选后的第一映射关系为筛选后的用户历史输入的问题与筛选后的第一SQL语句之间的映射关系。示例性的,假设候选示例为上述表格1中的映射关系#1~映射关系#4。
此时,可以根据多个候选示例对应的多个所述第一映射关系中包括的多个第一SQL语句之间的差异性,对多个第一SQL语句进行筛选,获得多个目标SQL语句,该多个目标SQL语句之间的差异度大于或者等于第二阈值。示例性的,候选示例中的映射关系#1~映射关系#4分别对应历史生成的正确的SQL语句#1~历史生成的正确的SQL语句#4,此时,可以比较各个历史生成的正确的SQL语句之间的差异性,使得最终挑选各个历史生成的正确的SQL语句之间的差异性大于或者等于某个阈值(例如,第二阈值)。例如,经过筛选发现历史生成的正确的SQL语句#1、历史生成的正确的SQL语句#2这两个SQL语句的差异性较大,因此可以确定目标示例为映射关系#1、映射关系#2。
本申请中,在判断各个SQL语句的差异性时,例如可以通过分别比较SQL语句的各个字段的内容确定SQL语句之间的差异性。
方式2:
假设候选示例中包括多个候选示例,该多个候选示例中的每个候选示例包括筛选后的第一映射关系,其中,筛选后的第一映射关系为筛选后的用户历史输入的问题、筛选后的所述用户历史输入的问题对应的表模式,以及筛选后的第一SQL语句之间的映射关系。示例性的,假设候选示例为上述表格2中的映射关系#1~映射关系#3。
此时,可以根据多个候选示例对应的多个所述第一映射关系中包括的多个第一SQL语句之间的差异性,对多个第一SQL语句进行筛选,获得多个目标SQL语句,该多个目标SQL语句之间的差异度大于或者等于第二阈值。示例性的,候选示例中的映射关系#5~映射关系#7分别对应历史生成的正确的SQL语句#A~历史生成的正确的SQL语句#C,此时,可以比较各个历史生成的正确的SQL语句之间的差异性,使得最终挑选各个历史生成的正确的SQL语句之间的差异性大于或者等于某个阈值(例如,第二阈值)。例如,经过筛选发现历史生成的正确的SQL语句#A、历史生成的正确的SQL语句#B这两个SQL语句的差异性较大,因此可以确定目标示例为映射关系#5、映射关系#6。
方式3:
假设候选示例中包括多个候选示例,该多个候选示例中的每个候选示例包括筛选后的第一映射关系,其中,筛选后的第一映射关系为筛选后的用户历史输入的问题、筛选后的所述用户历史输入的问题对应的表模式,以及筛选后的第一SQL语句之间的映射关系。示例性的,假设候选示例为上述表格2中的映射关系#1~映射关系#3。
此时,可以根据多个候选示例对应的多个所述第一映射关系中包括的多个表模式之间的差异性,对多个表模式进行筛选,获得多个目标表模式,该多个目标表示之间的差异度大于或者等于第二阈值。示例性的,候选示例中的映射关系#5~映射关系#7分别对应历史生成的正确的SQL语句#A~历史生成的正确的SQL语句#C,此时,可以比较各个表模式之间的差异性,使得最终挑选各个表模式之间的差异性大于或者等于某个阈值(例如,第三阈值)。例如,经过筛选发现表模式#1、表模式#3这两个表模式的差异性较大,因此可以确定目标示例为映射关系#5、映射关系#7。
本申请中,在判断各个候选示例中各个表模式之间的差异性时,例如可以通过分别比较各个表的表名、列名等确定目标表模式。
当然,也可以同时执行方式2和方式3,也就是既可以通过对第一SQL语句的差异性进行筛选,也可以对表模式之间的差异性进行筛选,从而综合两方面的结果确定目标示例,例如,结合方式2和方式3获得目标示例为映射关系#6、映射关系#7。
本申请中,在获得候选示例后还可以进一步对候选示例进行筛选,在候选示例中获得目标示例,可以去除候选示例中的冗余信息并且保证目标示例的丰富性,既可以节省计算资源也可以提高获取的目标示例的丰富性。
应理解,当各个候选示例都是相似的,则通过差异性进行筛选时可以理解为最终保留了一个或两个候选示例,该候选示例为目标示例。该过程可以理解为去除冗余示例的过程,可以减少资源占用。
通过上面介绍可以看出,本申请可以通过问题之间的相似性或者通过问题之间的相似性和表模式之间的相似性确定候选示例,而在确定目标示例时是通过候选示例中第一SQL语句之间的差异性和/或表模式之间的差异性确定的。通过多次筛选可以使得最终筛选的示例的与用户当前输入的问题的匹配性最好,进而保证生成的SQL语句的准确性。
步骤204,根据大语言模型和第三信息生成第二信息对应的第二SQL语句。
本申请中,大语言模型的输入为用户当前输入的问题以及目标示例,该大语言模型的输出为用户当前输入的问题对应的SQL语句。示例性的,大语言模型的输入信息是“查询仓库还有多少蓝色的运动服,示例:找到有多少红色汽车—“A table called cartswith columns id and color”“Select*from cars where color=‘red’”,大语言模型的输出为“Atable called tracksuit with columns id and color”“Select*fromtracksuit where color=‘blue’”。
需要说明的是,本申请中的大语言模型可以部署在第三方服务器上,也可以集成在同一个服务器上,不予限定。
图3是本申请提供的一种生成SQL语句的另一种示意性流程图,如图3所示,步骤301,对历史查询信息进行存储。其中,存储的历史查询信息的格式可以为:<key_1,value>,或者存储的历史查询信息的格式可以为:<key_1,key_2,value>。步骤302,基于表模式的规则对历史查询信息进行筛选。例如,可以在历史查询信息中筛选出用户历史输入的问题对应的表模式的表名与用户当前输入的问题对应的表模式的表名相同的历史查询信息。又例如,可以在历史查询信息中筛选出用户历史输入的问题对应的表模式的表名不同,但是表的列属性与用户当前输入的问题对应的表模式的列属性相同的历史查询信息。再例如,可以在历史查询信息中筛选出用户历史输入的问题对应的表模式的表名,不同但是表的主外键关联的表与用户当前输入的问题对应的表模式的主外键关联的表相同的历史查询信息。步骤303,基于问题的相似度对历史查询信息进行筛选。步骤304,基于SQL语句的差异性和/或表模式的差异性进行筛选。步骤305,将用户当前输入的问题与筛选获得的示例进行拼接(例如,采用prompt技术进行拼接)。步骤306,调用大语言模型输出用户当前输入的问题对应的SQL语句。
基于上述方案,本申请通过在存储的历史查询信息中逐步筛选示例,最终获得和用户当前输入的问题较为匹配的示例,以用户当前输入的问题和筛选的示例作为大语言模型的输入,使得大语言模型输出用户当前输入的问题对应的SQL语句。该方法,可以保证获取的示例与用户当前输入的问题有极高的匹配度,开发者不需要人为的输入示例,即保证了获取的示例的准确性也可以简化了数据开发者的工作难度,提高了生成SQL语句的效率。
可以理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域技术人员应该可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对计算设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。下面以采用对应各个功能划分各个功能模块为例进行说明。
图4是本申请实施例提供的数据查询设备100的示意性框图。如图所示,该设备100可以包括:存储模块110、筛选模块120、处理模块130。
其中,上述各个模块分别用于执行前述获取模型的方法的各个步骤,此处不再赘述。
还应理解,这里的数据查询设备100以功能单元的形式体现。这里的术语“单元”可以指应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。
上述各个方案的数据查询设备100具有实现上述方法200相应步骤的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块;例如,筛选单元等可以由处理器替代,分别执行各个方法实施例中的收发操作以及相关的处理操作。此外,出来单元可以是处理电路。
需要指出的是,图4中的设备可以是前述方法实施例中的数据查询设备,也可以是计算设备的芯片或者芯片系统,例如:片上系统(system on chip,SoC)。其中,处理单元为该芯片上集成的处理器或者微处理器或者集成电路。在此不做限定。
图5是本申请实施例提供的另一数据查询设备200的示意性框图。如图所示,该设备200包括:至少一个处理器220。该处理器220与存储器耦合,用于执行存储器中存储的指令,以发送信号和/或接收信号。可选地,该设备200还包括存储器230,用于存储指令。可选的,该设备200还包括收发器210,处理器220控制收发器210发送信号和/或接收信号。
应理解,上述处理器220和存储器230可以合成一个处理设备,处理器220用于执行存储器230中存储的程序代码来实现上述功能。具体实现时,该存储器230也可以集成在处理器220中,或者独立于处理器220。
还应理解,收发器210可以包括收发器(或者称,接收机)和发射器(或者称,发射机)。收发器还可以进一步包括天线,天线的数量可以为一个或多个。收发器210有可以是通信接口或者接口电路。
具体地,该设备200中的处理器220可对应于数据查询设备100中的筛选模块120、出来模块130。
作为一种方案,该数据查询设备200用于实现上文方法200实施例中的步骤。
例如,处理器220用于执行存储器230存储的计算机程序或指令,以实现上文方法200中的各个步骤。
图6是本申请实施例提供的一种计算设备集群的架构示意图。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。如图6所示,所述计算设备集群包括至少一个计算设备600。计算设备集群中的一个或多个计算设备600中的存储器630中可以存有相同的用于执行上述实施例描述的生成SQL语句的方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备600的存储器630中也可以分别存有用于执行上述实施例描述的生成SQL语句的方法的部分指令。换言之,一个或多个计算设备600的组合可以共同执行用于执行上述实施例描述的生成SQL语句的方法的指令。
需要说明的是,计算设备集群中的不同的计算设备600中的存储器630可以存储不同的指令,分别用于执行计算设备600的部分功能。也即,不同的计算设备600中的存储器630存储的指令可以实现存储模块110、筛选模块120、处理模块130中的一个或多个模块的功能。
或者,计算设备集群中的不同的计算设备600中的存储器630可以存储不同的指令,分别用于执行上述数据查询设备100~200的部分功能。也即,不同的计算设备600中的存储器630存储的指令可以实现存储模块110、筛选模块120、处理模块130中的一个或多个模块的功能。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。图7示出了一种可能的实现方式。图7是本申请实施例提供的计算设备600A和600B之间通过网络进行连接的示意图。两个计算设备600A和600B之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与所述网络进行连接。在这一类可能的实现方式中,计算设备600A中的存储器630中存有执行筛选模块120、处理模块130的功能的指令。同时,计算设备600B中的存储器630中存有执行存储模块110的功能的指令。
图7所示的计算设备集群之间的连接方式可以是考虑到本申请提供的生成SQL的方法需要存储大量的历史查询信息,因此考虑将存储模块110实现的功能交由计算设备600B执行。
应理解,图7中示出的计算设备600A的功能也可以由多个计算设备600完成。同样,计算设备600B的功能也可以由多个计算设备600完成。
根据本申请实施例提供的方法,本申请还提供一种计算机程序产品,该计算机程序产品上存储有计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行方法200实施例中的步骤。
根据本申请实施例提供的方法,本申请还提供一种计算机可读介质,该计算机可读介质存储有程序代码,当该程序代码在计算机上运行时,使得该计算机执行上述方法200实施例中的步骤。
上述提供的任一种设备中相关内容的解释及有益效果均可参考上文提供的对应的方法实施例,此处不再赘述。
应理解,各收发器、处理器执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应注意,本申请实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程设备。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disc,SSD))等。
上述各个设备实施例中,由相应的模块或单元执行相应的步骤,例如收发单元(收发器)执行方法实施例中接收或发送的步骤,除发送、接收外的其它步骤可以由处理单元(处理器)执行。具体单元的功能可以参考相应的方法实施例。其中,处理器可以为一个或多个。
在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所述领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种生成结构性查询语言的方法,其特征在于,包括:
存储历史查询信息,所述历史查询信息包括第一信息与第一结构性查询语言SQL语句之间的第一映射关系,其中,所述第一信息包括用户历史输入的问题,所述第一SQL语句为所述用户历史输入的问题对应的历史生成的正确的SQL语句;
根据第二信息对所述历史查询信息进行筛选,获得候选示例,其中,所述第二信息包括用户当前输入的问题,所述候选示例包括筛选后的所述第一映射关系,其中,所述筛选后的所述第一映射关系中的所述第一信息与所述第二信息之间的相似度大于或者等于第一阈值;
根据所述第二信息和所述候选示例生成第三信息,所述第三信息包括所述第二信息和所述候选示例;
根据大语言模型和所述第三信息生成所述第二信息对应的第二SQL语句,其中,所述大语言模型的输入为所述第三信息,所述大语言模型的输出为所述第二SQL语句。
2.根据权利要求1所述的方法,其特征在于,所述第二信息还包括所述用户当前输入的问题对应的表模式,所述第一信息还包括所述用户历史输入的问题对应的表模式。
3.根据权利要求1或2所述的方法,其特征在于,在获得候选示例后,所述方法还包括:
在所述候选示例中确定目标示例;
所述根据所述第二信息和所述候选示例生成第三信息,所述第三信息包括所述用户当前输入的问题和所述候选示例,包括:
根据所述第二信息和所述目标示例生成第三信息,所述第三信息包括所述用户当前输入的问题和所述目标示例。
4.根据权利要求3所述的方法,其特征在于,获得的所述候选示例包括多个候选示例,其中,所述多个候选示例中的每个候选示例包括所述筛选后的所述第一映射关系,所述筛选后的所述第一映射关系为所述筛选后的用户历史输入的问题与所述筛选后的所述第一SQL语句之间的映射关系,
所述在所述候选示例中确定目标示例,包括:
根据所述多个候选示例对应的多个所述第一映射关系中包括的多个所述第一SQL语句之间的差异性,对多个所述第一SQL语句进行筛选,获得多个目标SQL语句,所述多个目标SQL语句之间的差异度大于或者等于第二阈值;
根据所述多个目标SQL语句以及所述多个目标SQL语句各自对应的所述筛选后的所述用户历史输入的问题,确定所述多个目标示例;
其中,所述目标示例中的每个候选示例包括筛选后的所述用户历史输入的问题和所述目标SQL语句之间的映射关系。
5.根据权利要求3所述的方法,其特征在于,获得的所述候选示例包括多个候选示例,其中,所述多个候选示例中的每个候选示例包括所述筛选后的所述第一映射关系,所述筛选后的所述第一映射关系为所述筛选后的用户历史输入的问题、所述筛选后的所述用户历史输入的问题对应的表模式,以及所述筛选后的所述第一SQL语句之间的映射关系,
所述在所述候选示例中确定目标示例,包括:
根据所述多个候选示例对应的多个所述第一映射关系中包括的多个表模式之间的差异性,对所述多个表模式进行筛选,获得多个目标表模式,所述多个目标表模式之间的差异度大于或者等于第三阈值;
根据所述多个目标表模式以及所述多个目标表模式各自对应的所述筛选后的所述用户历史输入的问题和所述筛选后的所述第一SQL语句,确定所述多个目标示例;
其中,所述多个目标示例中的每个目标示例包括:所述筛选后的所述用户历史输入的问题、所述筛选后的目标表模式,以及所述筛选后的所述第一SQL语句之间的映射关系。
6.根据权利要求3所述的方法,其特征在于,获得的所述候选示例包括多个候选示例,其中,所述多个候选示例中的每个候选示例包括所述筛选后的所述第一映射关系,所述筛选后的所述第一映射关系为所述筛选后的用户历史输入的问题、所述筛选后的所述用户历史输入的问题对应的表模式,以及所述筛选后的所述第一SQL语句之间的映射关系,
所述根据所述候选示例确定目标示例,包括:
根据所述多个候选示例对应的多个所述第一映射关系中包括的多个第一SQL语句之间的差异性,对所述多个第一SQL语句进行筛选,获得多个目标SQL语句,所述多个目标SQL语句之间的差异度大于或者等于第二阈值;
根据所述多个目标SQL语句以及所述多个目标SQL语句各自对应的所述筛选后的所述用户历史输入的问题、所述筛选后的所述用户历史输入的问题对应的表模式,确定所述多个目标示例;
其中,所述多个目标示例中的每个目标示例包括:所述筛选后的所述用户历史输入的问题、所述筛选后的表模式,以及所述目标SQL语句之间的映射关系。
7.一种数据查询设备,其特征在于,包括:存储模块,筛选模块,处理模块,其中,
所述存储模块用于存储历史查询信息,所述历史查询信息包括第一信息与第一结构性查询语言SQL语句之间的第一映射关系,其中,所述第一信息包括用户历史输入的问题,所述第一SQL语句为所述用户历史输入的问题对应的历史生成的正确的SQL语句;
所述筛选模块用于根据第二信息对所述历史查询信息进行筛选,获得候选示例,其中,所述第二信息包括用户当前输入的问题,所述候选示例包括筛选后的所述第一映射关系,其中,所述筛选后的所述第一映射关系中的所述第一信息与所述第二信息之间的相似度大于或者等于第一阈值;
所述处理模块根据所述第二信息和所述候选示例生成第三信息,所述第三信息包括所述第二信息和所述候选示例;
所述处理模块用于根据大语言模型和所述第三信息生成所述第二信息对应的第二SQL语句,其中,所述大语言模型的输入为所述第三信息,所述大语言模型的输出为所述第二SQL语句。
8.根据权利要求7所述的数据查询设备,其特征在于,所述第二信息还包括所述用户当前输入的问题对应的表模式,所述第一信息还包括所述用户历史输入的问题对应的表模式。
9.根据权利要求7或8所述的数据查询设备,其特征在于,
所述处理模块用于在所述候选示例中确定目标示例;
所述处理模块用于根据所述第二信息和所述候选示例生成第三信息,所述第三信息包括所述用户当前输入的问题和所述候选示例,包括:
所述处理模块用于根据所述第二信息和所述目标示例生成第三信息,所述第三信息包括所述用户当前输入的问题和所述目标示例。
10.根据权利要求9所述的数据查询设备,其特征在于,获得的所述候选示例包括多个候选示例,其中,所述多个候选示例中的每个候选示例包括所述筛选后的所述第一映射关系,所述筛选后的所述第一映射关系为所述筛选后的用户历史输入的问题与所述筛选后的所述第一SQL语句之间的映射关系,
所述处理模块用于在所述候选示例中确定目标示例,包括:
所述处理模块用于根据所述多个候选示例对应的多个所述第一映射关系中包括的多个所述第一SQL语句之间的差异性,对多个所述第一SQL语句进行筛选,获得多个目标SQL语句,所述多个目标SQL语句之间的差异度大于或者等于第二阈值;
所述处理模块用于根据所述多个目标SQL语句以及所述多个目标SQL语句各自对应的所述筛选后的所述用户历史输入的问题,确定所述多个目标示例;
其中,所述目标示例中的每个候选示例包括筛选后的所述用户历史输入的问题和所述目标SQL语句之间的映射关系。
11.根据权利要求9所述的数据查询设备,其特征在于,获得的所述候选示例包括多个候选示例,其中,所述多个候选示例中的每个候选示例包括所述筛选后的所述第一映射关系,所述筛选后的所述第一映射关系为所述筛选后的用户历史输入的问题、所述筛选后的所述用户历史输入的问题对应的表模式,以及所述筛选后的所述第一SQL语句之间的映射关系,
所述处理模块用于在所述候选示例中确定目标示例,包括:
所述处理模块用于根据所述多个候选示例对应的多个所述第一映射关系中包括的多个表模式之间的差异性,对所述多个表模式进行筛选,获得多个目标表模式,所述多个目标表模式之间的差异度大于或者等于第三阈值;
所述处理模块用于根据所述多个目标表模式以及所述多个目标表模式各自对应的所述筛选后的所述用户历史输入的问题和所述筛选后的所述第一SQL语句,确定所述多个目标示例;
其中,所述多个目标示例中的每个目标示例包括:所述筛选后的所述用户历史输入的问题、所述筛选后的目标表模式,以及所述筛选后的所述第一SQL语句之间的映射关系。
12.根据权利要求9所述的数据查询设备,其特征在于,获得的所述候选示例包括多个候选示例,其中,所述多个候选示例中的每个候选示例包括所述筛选后的所述第一映射关系,所述筛选后的所述第一映射关系为所述筛选后的用户历史输入的问题、所述筛选后的所述用户历史输入的问题对应的表模式,以及所述筛选后的所述第一SQL语句之间的映射关系,
所述处理模块用于根据所述候选示例确定目标示例,包括:
所述处理模块用于根据所述多个候选示例对应的多个所述第一映射关系中包括的多个第一SQL语句之间的差异性,对所述多个第一SQL语句进行筛选,获得多个目标SQL语句,所述多个目标SQL语句之间的差异度大于或者等于第二阈值;
所述处理模块用于根据所述多个目标SQL语句以及所述多个目标SQL语句各自对应的所述筛选后的所述用户历史输入的问题、所述筛选后的所述用户历史输入的问题对应的表模式,确定所述多个目标示例;
其中,所述多个目标示例中的每个目标示例包括:所述筛选后的所述用户历史输入的问题、所述筛选后的表模式,以及所述目标SQL语句之间的映射关系。
13.根据权利要求7至12中任一项所述的数据查询设备,其特征在于,所述数据查询设备部署在人工智能AI应用的云服务器上。
14.一种计算设备,其特征在于,包括处理器和存储器,所述处理器运行所述存储器中的指令,使得所述处理器执行如权利要求1至6中任一项所述的方法。
15.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;
所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1至6中任一项所述的方法。
16.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求的1至6中任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310526550.6A CN117112590A (zh) | 2023-05-10 | 2023-05-10 | 一种生成结构性查询语言的方法和数据查询设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310526550.6A CN117112590A (zh) | 2023-05-10 | 2023-05-10 | 一种生成结构性查询语言的方法和数据查询设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117112590A true CN117112590A (zh) | 2023-11-24 |
Family
ID=88802722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310526550.6A Pending CN117112590A (zh) | 2023-05-10 | 2023-05-10 | 一种生成结构性查询语言的方法和数据查询设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117112590A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117973255A (zh) * | 2024-01-05 | 2024-05-03 | 西南石油大学 | 一种油气生产区域中检测可燃气体泄漏的反演方法 |
CN118093632A (zh) * | 2024-04-17 | 2024-05-28 | 商飞智能技术有限公司 | 基于大语言模型和图结构的图数据库查询方法和装置 |
CN118227742A (zh) * | 2024-05-24 | 2024-06-21 | 浙江口碑网络技术有限公司 | 数据趋势分析方法、装置、设备、存储介质及程序产品 |
CN118227656A (zh) * | 2024-05-24 | 2024-06-21 | 浙江大学 | 一种基于数据湖的查询方法和装置 |
CN118377783A (zh) * | 2024-06-27 | 2024-07-23 | 卓世智星(青田)元宇宙科技有限公司 | Sql语句生成方法及装置 |
-
2023
- 2023-05-10 CN CN202310526550.6A patent/CN117112590A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117973255A (zh) * | 2024-01-05 | 2024-05-03 | 西南石油大学 | 一种油气生产区域中检测可燃气体泄漏的反演方法 |
CN118093632A (zh) * | 2024-04-17 | 2024-05-28 | 商飞智能技术有限公司 | 基于大语言模型和图结构的图数据库查询方法和装置 |
CN118227742A (zh) * | 2024-05-24 | 2024-06-21 | 浙江口碑网络技术有限公司 | 数据趋势分析方法、装置、设备、存储介质及程序产品 |
CN118227656A (zh) * | 2024-05-24 | 2024-06-21 | 浙江大学 | 一种基于数据湖的查询方法和装置 |
CN118227656B (zh) * | 2024-05-24 | 2024-08-13 | 浙江大学 | 一种基于数据湖的查询方法和装置 |
CN118377783A (zh) * | 2024-06-27 | 2024-07-23 | 卓世智星(青田)元宇宙科技有限公司 | Sql语句生成方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11790006B2 (en) | Natural language question answering systems | |
US20220382752A1 (en) | Mapping Natural Language To Queries Using A Query Grammar | |
US11995073B2 (en) | One-shot learning for text-to-SQL | |
CN117112590A (zh) | 一种生成结构性查询语言的方法和数据查询设备 | |
CN112437917B (zh) | 使用自主代理和词库的数据库的自然语言接口 | |
US20230031591A1 (en) | Methods and apparatus to facilitate generation of database queries | |
US20170116260A1 (en) | Using a dimensional data model for transforming a natural language query to a structured language query | |
WO2021174783A1 (zh) | 近义词推送方法、装置、电子设备及介质 | |
CN103377239B (zh) | 计算文本间相似度的方法和装置 | |
US20230177078A1 (en) | Conversational Database Analysis | |
CN110597844B (zh) | 异构数据库数据统一访问方法及相关设备 | |
CN110659282B (zh) | 数据路由的构建方法、装置、计算机设备和存储介质 | |
WO2021047373A1 (zh) | 基于大数据的列数据处理方法、设备及介质 | |
CN114756607A (zh) | 参数配置方法及装置 | |
WO2012164738A1 (ja) | データベース管理システム、装置及び方法 | |
US10877998B2 (en) | Highly atomized segmented and interrogatable data systems (HASIDS) | |
WO2021135103A1 (zh) | 一种语义分析方法、装置、计算机设备及存储介质 | |
CN112989011B (zh) | 数据查询方法、数据查询装置和电子设备 | |
CN111625579A (zh) | 一种信息处理方法、装置及系统 | |
CN118210809B (zh) | 一种基于er信息的对象定义方法、系统、设备以及介质 | |
CN118568128A (zh) | 用于查询语句生成的方法、装置、设备和可读介质 | |
CN118152423A (zh) | 智能查询方法、装置、电子设备及可读存储介质 | |
CN118796871A (zh) | 一种基于sql的数据库操作方法、装置及电子设备 | |
CN116992831A (zh) | 语句处理方法及装置 | |
CN118798127A (zh) | 结构化查询代码语句的生成方法、装置和计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |