CN116629227B - 一种将文本转换为sql语句的方法及设备 - Google Patents

一种将文本转换为sql语句的方法及设备 Download PDF

Info

Publication number
CN116629227B
CN116629227B CN202310910377.XA CN202310910377A CN116629227B CN 116629227 B CN116629227 B CN 116629227B CN 202310910377 A CN202310910377 A CN 202310910377A CN 116629227 B CN116629227 B CN 116629227B
Authority
CN
China
Prior art keywords
information
statement
sql
question
template
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.)
Active
Application number
CN202310910377.XA
Other languages
English (en)
Other versions
CN116629227A (zh
Inventor
陈帅
刘微
张建安
曲磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hisense Group Holding Co Ltd
Original Assignee
Hisense Group Holding Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hisense Group Holding Co Ltd filed Critical Hisense Group Holding Co Ltd
Priority to CN202310910377.XA priority Critical patent/CN116629227B/zh
Publication of CN116629227A publication Critical patent/CN116629227A/zh
Application granted granted Critical
Publication of CN116629227B publication Critical patent/CN116629227B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/353Clustering; Classification into predefined classes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及数据处理技术领域,尤其涉及一种将文本转换为SQL语句的方法及设备,在本申请实施例中,城市问答系统使用语言大模型处理输入的问题语句,具体的,该城市问答系统将问题语句填充到schema link模板,再通过语言大模型,得到schema link信息;城市问答系统再将该schema link信息填充到问题难度分类模板,然后通过语言大模型,得到问题难度分类信息;城市问答系统再根据问题难度分类信息,填充SQL语句生成模板,然后通过语言大模型,得到SQL语句。城市问答系统通过语言大模型将问题语句对应的文本转化为SQL语句的过程逐步分解,提高了城市问答系统的可靠性、鲁棒性和可泛化性。

Description

一种将文本转换为SQL语句的方法及设备
技术领域
本申请涉及数据处理技术领域,尤其涉及一种将文本转换为SQL语句的方法及设备。
背景技术
在城市问答系统的应用场景中,用于回答用户提问的答案往往存放在关系型数据库中,城市问答系统在接收到问题语句之后,需要将该问题语句转换为结构化查询语言(Structured Query Language,SQL)语句,并基于该SQL语句在关系型数据库中,查找该SQL语句对应的答案。
在现有技术中,在将问题语句转换为SQL语句时,往往通过一个语言模型实现,如基于转换器的双向编码器表示(Bidirectional Encoder Representations fromTransformer,Bert)模型等。具体包括两种方式:方式一是Bert模型直接生成问题语句对应的SQL语句;方式二是Bert模型对问题语句进行命名实体识别和分类,确定问题语句对应的问题类型、主题及关键字,然后用预先定义好的该问题类型模板拼装成SQL语句。
但是,方式一中由于Bert模型的性能限制,不能准确理解问题语句中的用户意图,并且直接将问题语句转化成SQL语句,转换跨度太大,将文本转换为SQL语句的转换准确率过低;方式二中由于需要使用模板生成SQL语句,对于每一种问题类型,都需要一个模板相匹配,这就需要构造大量的模板,并且实际使用中往往出现模板不足的情况,导致将文本转换为SQL语句的准确率低。
发明内容
本申请提供了一种将文本转换为SQL语句的方法及设备,用以解决现有技术中将问题语句转换为SQL语句时,转换的准确率低的问题。
第一方面,本申请实施例提供了一种将文本转换为SQL语句的方法,所述方法包括:
将问题语句填充到schema link模板中,并将填充好的schema link模板输入到语言大模型中,获取所述语言大模型输出的所述问题语句对应的schema link信息;
根据所述schema link信息以及所述问题语句,对问题难度分类模板进行填充,并将填充好的问题难度分类模板输入到所述语言大模型中,获取所述语言大模型输出的所述问题语句对应的问题难度分类信息;
根据所述问题难度分类信息、所述schema link信息以及所述问题语句,对结构化查询语言SQL语句生成模板进行填充,并将填充好的SQL语句生成模板输入到所述语言大模型中,获取所述语言大模型输出的SQL语句。
第二方面,本申请实施例还提供了一种电子设备,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如上述任一所述将文本转换为SQL语句的方法的步骤。
在本申请实施例中,城市问答系统将问题语句填充到schema link模板中,并将填充好的schema link模板输入到语言大模型中,获取该语言大模型输出的该问题语句对应的schema link信息;根据该schema link信息以及该问题语句,对问题难度分类模板进行填充,并将填充好的问题难度分类模板输入到该语言大模型中,获取该语言大模型输出的该问题语句对应的问题难度分类信息;根据该问题难度分类信息、该schema link信息以及该问题语句,对结构化查询语言SQL语句生成模板进行填充,并将填充好的SQL语句生成模板输入到该语言大模型中,获取该语言大模型输出的SQL语句。在本申请实施例中,城市问答系统使用语言大模型处理输入的问题语句,具体的,该城市问答系统将问题语句填充到schema link模板,再通过语言大模型,得到schema link信息;城市问答系统再将该schemalink信息填充到问题难度分类模板,然后通过语言大模型,得到问题难度分类信息;城市问答系统再根据问题难度分类信息,填充SQL语句生成模板,然后通过语言大模型,得到SQL语句。城市问答系统通过语言大模型将问题语句转化为SQL语句的过程逐步分解,提高了城市问答系统的可靠性、鲁棒性和可泛化性。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种将文本转换为SQL语句的过程示意图;
图2为现有技术提供的将文本转换为SQL语句的实体图;
图3为本申请实施例提供的schema link模板的示意图;
图4为本申请实施例提供的问题难度分类模板的示意图;
图5为本申请实施例提供的简单问题对应的第一SQL语句生成模板的示意图;
图6为本申请实施例提供的简单问题对应的第二SQL语句生成模板的示意图;
图7为本申请实施例提供的简单问题对应的第三SQL语句生成模板的示意图;
图8为本申请实施例提供的将文本转换为SQL语句的流程示意图;
图9为本申请实施例提供的一种将文本转换为SQL语句的装置结构示意图;
图10为本申请实施例提供的一种电子设备结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
为了提高将文本转换为SQL语句的准确率,本申请实施例提供了一种将文本转换为SQL语句的方法及设备。
在本申请实施例中,城市问答系统将问题语句填充到schema link模板中,并将填充好的schema link模板输入到语言大模型中,获取该语言大模型输出的该问题语句对应的schema link信息;根据该schema link信息以及该问题语句,对问题难度分类模板进行填充,并将填充好的问题难度分类模板输入到该语言大模型中,获取该语言大模型输出的该问题语句对应的问题难度分类信息;根据该问题难度分类信息、该schema link信息以及该问题语句,对结构化查询语言SQL语句生成模板进行填充,并将填充好的SQL语句生成模板输入到该语言大模型中,获取该语言大模型输出的SQL语句。
图1为本申请实施例提供的一种将文本转换为SQL语句的过程示意图,该过程包括:
S101:将问题语句填充到schema link模板中,并将填充好的schema link模板输入到语言大模型中,获取所述语言大模型输出的所述问题语句对应的schema link信息。
本申请实施例提供的一种将文本转换为SQL语句的方法应用于城市问答系统。
在城市问答系统的应用场景中,用于回答用户提问的问题语句的答案往往存放在关系型数据库中。城市问答系统在接收到用户输入的问题语句对应语音之后,该城市问答系统将该语音转换为问题语句对应的文本,再将该问题语句对应的文本转换为SQL语句。其中,城市问答系统需要提供完成问题语句从自然语言到数据库查询语言SQL的过程,即将问题语句对应的文本转换为SQL语句。现有解决方案是通过一个Text-to-SQL解析器完成自然语言的问题语句到SQL语句的转换,再将SQL语句传到SQL执行器,执行数据库查询,返回查询的结果到答案生成器,生成的答案返回给用户。其中,技术难点在于Text-to-SQL解析器的设计。
图2为相关技术提供的将文本转换为SQL语句的实体图,如该图2所示,城市问答系统被配置在电子设备上,用于将接收到的问题语句转换为SQL语句,并基于SQL语句查找问题语句对应的答案。例如该图2中,城市问答系统接收到的问题语句为“绿化率前5的城市有哪些,分别隶属于哪些省?”;该城市问答系统通过Text-to-SQL解析器确定该问题语句的SQL语句为Select名称,所属省、From中国城市以及Order by绿化率Desc Limit 5;城市问答系统通过SQL执行器进行数据库中查询,确定查询结果为珠海……成都……;城市问答系统通过答案生成器确定生成的答案为2018年中国绿化前5的城市有XXX,分别属于XXX。
在本申请实施例中,城市问答系统通过语言大模型对问题语句进行多步骤处理,得到转换后的SQL语句。
语言大模型是指模型的参数量数百亿,模型结构基于transformer结构,使用PB(1PB=1024TB)数量级文本数据,在上百或者上千块GPU上训练数十天或者数月的深度学习网络模型。该语言大模型参数量大、使用海量数据训练,相比与Bert等传统语言模型,能够更加理解文本中的语义信息。与传统模型不同,语言大模型可以通过提示词手段,使得语言大模型输出对应的信息。
在本申请实施例中,关系型数据库中包括多个表,每个表用于记录不同的信息,如部门表用于记录id、机构名称、机构别名、职能、工作人员数量以及办公电话等,职员表用于记录id、职员姓名、身份证号、出生日期、籍贯、性别、民族、政治面貌、文化程度、婚姻状况、职级以及工资等。城市问答系统为了回答用户的问题语句,需要查询数据库的一个或多个表、每个表需要被查询的列以及需要查询的表格之间的外键信息。其中,外键信息为同一信息在不同表中的表现形式,如雇佣关系表中的部门id=部门表中的id等。
基于此,在本申请实施例中,城市问答系统可以根据语言大模型,确定问题语句的Schema link信息,该Schema link信息为回答该问题语句需要查询的目标表名、目标列名和目标外键名。
其中,在本申请实施例中,城市问答系统中保存有一个schema link模板,城市问答系统可以基于该schema link模板确定问题语句对应的schema link信息。
具体的,在本申请实施例中,城市问答系统将问题语句填充到schema link模板中,并将填充好的schema link模板输入到语言大模型中,获取该语言大模型输出的该问题语句对应的schema link信息。
S102:根据所述schema link信息以及所述问题语句,对问题难度分类模板进行填充,并将填充好的问题难度分类模板输入到所述语言大模型中,获取所述语言大模型输出的所述问题语句对应的问题难度分类信息。
为了更好地对问题语句进行处理,在本申请实施例中,城市问答系统通过语言大模型对问题语句进行问题难度分类,并根据问题语句对应的问题难度分类信息,确定该问题语句对应的SQL语句。
具体的,城市问答系统中保存有问题难度分类模板,该城市问答系统根据问题语句的schema link信息以及该问题语句,对该问题难度分类模板进行填充,并将填充后的问题难度分类模板输入到该语言大模型中,获取该语言大模型输出的该问题语句对应的问题难度分类信息。
其中,该问题难度分类模板中至少包括关系型数据库中包含的所有的表信息,以及用于提示语言大模型确定问题难度分类信息的提示词、示例问题语句、示例问题语句对应的示例schema link信息以及示例问题语句对应的问题难度分类信息。
S103:根据所述问题难度分类信息、所述schema link信息以及所述问题语句,对结构化查询语言SQL语句生成模板进行填充,并将填充好的SQL语句生成模板输入到所述语言大模型中,获取所述语言大模型输出的SQL语句。
在本申请实施例中,城市问答系统通过语言大模型对问题语句进行问题难度分类,并根据问题语句对应的问题难度分类信息,确定该问题语句对应的SQL语句。
基于此,在本申请实施例中,城市问答系统在确定了问题语句对应的问题难度分类信息之后,该城市问答系统获取保存的SQL语句生成模板。该城市问答系统采用该问题语句、该问题语句对应的问题难度分类信息以及该问题语句的schema link信息,对该SQL语句生成模板进行填充。该城市问答系统将填充后的SQL语句生成模板输入到该语言大模型中,获取该语言大模型输出的SQL。
其中,SQL语句生成模板中至少包括关系型数据库中包含的所有的表信息,以及用于提示语言大模型生成SQL语句的提示词、示例问题语句、示例问题语句对应的难度信息以及示例问题语句的示例schema link信息。
在本申请实施例中,城市问答系统使用语言大模型处理输入的问题语句,并通过schema link模板、问题分类模板及SQL语句生成模板,将问题语句转化为SQL语句的过程逐步分解,提高了城市问答系统的可靠性、鲁棒性和可泛化性。
为了提高城市问答系统的可靠性、鲁棒性和可泛化性,在上述实施例的基础上,在本申请实施例中,所述schema link模板包括:用于提示所述语言大模型进行schema link识别的第一提示词、预设的表信息、示例问题语句、示例问题语句对应的示例schema link信息以及待填充问题语句的第一字段。
在本申请实施例中,schema link模板中至少包括用于提示所述语言大模型进行schema link识别的第一提示词、预设的表信息、示例问题语句、示例问题语句对应的示例schema link信息以及待填充问题语句的第一字段。
其中,该预设表信息为数据库中保存的每个表的标识及每个表中保存的数据的属性。此外,预设表信息中还可以包括表之间的外键信息,该外键信息用于表示至少两个表中的哪些数据为同一数据。
在本申请实施例中,语言大模型在输出问题语句对应的schema link信息时,可以以答复语句的形式输出该schema link信息,即将schema link信息嵌套在答复语句中输出,该答复语句可以用于描述确定该schema link信息的信息过程,并且答复语句中还可以包括确定schema link信息所需的数据。基于此,schema link模板中的示例问题语句对应的示例schema link信息可以被嵌入在预先配置的答复语句中。
图3为本申请实施例提供的schema link模板的示意图,如该图3所示,“&表信息&”为预设的表信息;“&示例问题语句&”为预先制定好的示例问题语句;“让我们一步一步解决这个问题。根据问题&示例问题语句&,用户提问&条件&所以我们需要&结论&,&重复&。根据得到的表名和列名,我们需要&外键结论&。根据得到的表名、列名和外键名,我们需要查询条件&查询结论&。综上所述,我们得到schema link=&示例schema link&”为示例语句对应的答复语句,“&条件&”为示例问题语句中的某个片段;“&结论&”为查询时所需要使用的表名和列名,“&重复&”为如果有多个“&条件&”和“&结论&”,需要重复生成,“&外键结论&”需要使用的外键信息,“&查询结论&”为需要的查询条件,“&示例schema link&”为得到的示例schema link信息;“&用户问题&”为待填充问题语句的第一字段;“根据下面的每一个问题和表信息找到用于生成数据库查询语句的schema link”为第一提示词。
为了提高城市问答系统的可靠性、鲁棒性和可泛化性,在上述各实施例的基础上,在本申请实施例中,所述将问题语句填充到schema link模板中包括:
获取预先保存的所述schema link模板中待填充问题语句的第一字段对应的第一位置信息;
根据所述第一位置信息,将所述问题语句写入到所述第一字段中。
在本申请实施例中,schema link模板中至少包括待填充问题语句的第一字段,城市问答系统可以将问题语句写入到该第一字段中。
具体的,在本申请实施例中,城市问答系统获取预先保存的schema link模板中待填充问题语句的第一字段对应的第一位置信息,并根据该第一位置信息,将问题语句写入到该第一字段中。
在图3的基础上,若问题语句为“市场管理部中女员工占的比率是多少?”,则填充后的schema link模板为:
根据下面的每一个问题和表信息找到用于生成数据库查询语句的schema link。
##表信息:
#部门表(id,机构名称,机构别名,职能,工作人员数量,办公电话)
#职员表(id,职员姓名,身份证号,出生日期,籍贯,性别,民族,政治面貌,文化程度,婚姻状况,职级,工资)
#雇佣关系表(部门id,职员id)
#外键(雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id)
##
##问题与回答:
问:“研发管理部中的员工,在十月份出生的人数有多少?”
答:让我们一步一步解决这个问题。根据问题“研发管理部中的员工,在十月份出生的人数有多少?”,用户提问“研发管理部”所以我们需要[部门表.机构名称],用户提问“在十月份出生的人数有多少”所以我们需要[职员表.出生日期],根据得到的表名和列名,我们需要[外键=雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id]。根据得到的表名、列名和外键名,我们需要查询条件[研发管理部,10]。综上所述,我们得到schemalink=[部门表.*,职员表.出生日期;雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id;研发管理部,10]
问:“市场管理部中女员工占的比率是多少?”
答:
为了提高了城市问答系统的可靠性、鲁棒性和可泛化性,在上述各实施例的基础上,在本申请实施例中,所述问题难度分类信息包括:简单问题、非嵌套复杂问题或嵌套复杂问题。
在本申请实施例中,问题难度分类信息至少包括简单问题、非嵌套复杂问题或嵌套复杂问题。其中,若问题语句需要嵌套查询,则问题语句为嵌套复杂问题;若问题语句不需要嵌套查询,但是需要多个表格信息,则问题语句为非嵌套复杂问题;若问题语句不需要嵌套查询,也不需要多个表格信息,则问题语句为简单问题。
为了提高城市问答系统的可靠性、鲁棒性和可泛化性,在上述各实施例的基础上,在本申请实施例中,所述问题难度分类模板包括:用于提示所述语言大模型进行问题难度分类的第二提示词、预设的表信息、问题难度分类信息分别对应的示例问题语句和示例schema link信息、待填充问题语句的第二字段以及待填充schema link信息的第三字段。
在本申请实施例中,问题难度分类模板中至少包括用于提示所述语言大模型进行问题难度分类的第二提示词、预设的表信息、问题难度分类信息分别对应的示例问题语句和示例schema link信息、待填充问题语句的第二字段以及待填充schema link信息的第三字段。
其中,该预设表信息为数据库中保存的每个表的标识及每个表中保存的数据的属性。此外,预设表信息中还可以包括表之间的外键信息,该外键信息多个表中的哪些数据为同一数据。
在本申请实施例中,语言大模型在输出问题语句对应的问题难度分类信息时,可以以答复语句的形式输出,即将问题难度分类信息嵌套在答复语句中输出,该答复语句可以用于描述确定该问题难度分类信息的信息过程,并且答复语句中还可以包括确定问题难度分类信息所需的数据。基于此,问题难度分类模板中的示例问题语句对应的示例问题难度分类信息可以被嵌入在预先配置的答复语句中。
并且,在本申请实施例中,不同难度分类信息的示例问题语句对应的答复语句不同。
图4为本申请实施例提供的问题难度分类模板的示意图,如该图4所示,该问题难度分类模板中包括简单问题、非嵌套复杂问题以及嵌套复杂问题分别对应的示例问题语句。“&表信息&”为预设的表信息;“&简单问题&”用于表示问题难度分类信息为简单问题的示例问题语句;“&嵌套复杂问题&”用于表示问题难度分类信息为嵌套复杂问题的示例问题语句;“&非嵌套复杂问题&”用于表示问题难度分类信息为非嵌套复杂问题的示例问题语句;“让我们一步一步解决这个问题。使用SQL查询如下问题:&示例问题语句&,需要以下表格&表格结论&,所以我们不需要使用多个表格信息。另外,它不需要使用多个SELECT嵌套查询,所以问题不需要嵌套查询也不需要多个表格信息,这个问题的分类为[简单问题]”为简单问题的示例问题语句对应的答复语句;“让我们一步一步解决这个问题。使用SQL查询如下问题:&示例问题语句&,需要以下表格&表格结论&,所以我们需要使用多个表格信息。另外,它需要使用多个SELECT嵌套查询&嵌套问题&,所以问题需要嵌套查询也需要多个表格信息,这个问题的分类为[嵌套复杂问题]”为嵌套复杂问题的示例问题语句对应的答复语句;“让我们一步一步解决这个问题。使用SQL查询如下问题:&示例问题语句&,需要以下表格&表格结论&,所以我们需要使用多个表格信息。另外,它不需要使用多个SELECT嵌套查询,所以问题不需要嵌套查询,但是需要多个表格信息,这个问题的分类为[非嵌套复杂问题]”为非嵌套复杂问题的示例问题语句对应的答复语句;其中,“&示例问题语句&”为重复对应的示例问题语句;&表格结论&”为查询时所需要使用的表名和列名;“&示例schemalink&”为示例问题语句对应的示例schema link信息;“&用户问题&”为待填充问题语句的第二字段;“&schema link&”为待填充问题语句对应的schema link信息的第三字段;“使用如下表信息回答问题。将该问题分为3类,分别为:简单问题,嵌套复杂问题,非嵌套复杂问题。如果问题需要嵌套查询,则为嵌套复杂问题。如果问题不需要嵌套查询,但是需要多个表格信息,则为非嵌套复杂问题。如果问题不需要嵌套查询,也不需要多个表格信息,则为简单问题”为第二提示词。
为了提高城市问答系统的可靠性、鲁棒性和可泛化性,在上述各实施例的基础上,在本申请实施例中,所述根据所述schema link信息以及所述问题语句,对问题难度分类模板进行填充包括:
获取预先保存的所述问题难度分类模板中待填充问题语句的第二字段对应的第二位置信息,以及待填充schema link信息的第三字段对应的第三位置信息;
根据所述第二位置信息,将所述问题语句写入到所述第二字段中;
根据所述第三位置信息,将所述问题难度分类信息写入到所述第三字段中。
在本申请实施例中,问题难度分类模板中至少包括待填充问题语句的第二字段以及待填充schema link信息的第三字段,城市问答系统可以将问题语句写入到该第二字段中,将schema link信息写入到该第三字段。
具体的,在本申请实施例中,城市问答系统获取预先保存的问题难度分类模板中待填充问题语句的第二字段对应的第二位置信息,并获取预先保存的问题难度分类模板中待填充schema link的第三字段对应的第三位置信息并根据该第三位置信息,将问题语句写入到该第三字段中。
在图4的基础上,若问题语句为“研发管理部的汉族员工有谁?”,则填充后的问题难度分类模板为:
使用如下表信息回答问题。将该问题分为3类,分别为:简单问题,嵌套复杂问题,非嵌套复杂问题。
如果问题需要嵌套查询,则为嵌套复杂问题。如果问题不需要嵌套查询,但是需要多个表格信息,则为非嵌套复杂问题。如果问题不需要嵌套查询,也不需要多个表格信息,则为简单问题。
##表信息:
#部门表(id,机构名称,机构别名,职能,工作人员数量,办公电话)
#职员表(id,职员姓名,身份证号,出生日期,籍贯,性别,民族,政治面貌,文化程度,婚姻状况,职级,工资)
#雇佣关系表(部门id,职员id)
#外键(雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id)
##
##问题与回答:
问:研发管理部的办公电话是什么?
schema link:[部门表.机构名称,部门表.办公电话;null;研发管理部]
答:让我们一步一步解决这个问题。使用SQL查询如下问题:研发管理部的办公电话是什么,需要以下表格[部门表],所以我们不需要使用多个表格信息。另外,它不需要使用多个SELECT嵌套查询,所以问题不需要嵌套查询也不需要多个表格信息,这个问题的分类为[简单问题]。
问:哪个部门的员工平均工资大于所有员工的平均工资?
schema link:[部门表.机构名称,职员表.工资;雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id;null]
答:让我们一步一步解决这个问题。使用SQL查询如下问题:那个部门的员工平均工资大于所有员工的平均工资,需要以下表格【部门表,职员表】,所以我们需要使用多个表格信息。另外,它需要使用多个SELECT嵌套查询所有员工的平均工资,所以问题需要嵌套查询也需要多个表格信息,这个问题的分类为[嵌套复杂问题]。
问:研发管理部的女员工有谁?
schema link:【部门表.机构名称,职员表.职员姓名,职员表.性别;雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id;研发管理部,女】
答:让我们一步一步解决这个问题。使用SQL查询如下问题:研发管理部的女员工有谁,需要一下表格【部门表,职员表】,所以我们需要使用多个表格信息。另外,它不需要使用多个SELECT嵌套查询,所以问题不需要嵌套查询,但是需要多个表格信息,这个问题的分类为[非嵌套复杂问题]。
问:研发管理部的汉族员工有谁?
schema link:&schema link&
答:
为了提高城市问答系统的可靠性、鲁棒性和可泛化性,在上述各实施例的基础上,在本申请实施例中,所述SQL语句生成模板包括:简单问题对应的第一SQL语句生成模板、非嵌套复杂问题对应的第二SQL语句生成模板以及嵌套复杂问题对应的第三SQL语句生成模板;
其中,所述第一SQL语句生成模板包括用于提示所述语言大模型进行SQL语句生成的第三提示词、预设的表信息、难度分类信息为简单问题的第一示例问题语句、所述第一示例问题语句的第一示例schema link信息、所述第一示例问题语句的第一示例SQL语句、待填充问题语句的第四字段以及待填充问题语句的schema link信息的第五字段;
所述第二SQL语句生成模板包括用于提示所述语言大模型进行SQL语句生成的第三提示词、预设的表信息、难度分类信息为非嵌套复杂问题的第二示例问题语句、所述第二示例问题语句的第二示例schema link信息、所述第二示例问题语句的第二示例SQL语句、待填充问题语句的第六字段以及待填充问题语句的schema link信息的第七字段;
所述第三SQL语句生成模板包括用于提示所述语言大模型进行SQL语句生成的第三提示词、预设的表信息、难度分类信息为嵌套复杂的第三示例问题语句、所述第三示例问题语句的第三示例schema link信息、所述第三示例问题语句的第三示例SQL语句、待填充问题语句的第八字段以及待填充问题语句的schema link信息的第九字段。
为了使转换的SQL语句更加准确,在本申请实施例中,城市问答系统针对不同的问题难度分类信息保存有不同的SQL语句生成模板。具体的,城市问答系统中保存有简单问题对应的第一SQL语句生成模板、非嵌套复杂问题对应的第二SQL语句生成模板以及嵌套复杂问题对应的第三SQL语句生成模板。
其中,在本申请实施例中,第一SQL语句生成模板中至少包括用于提示语言大模型进行SQL语句生成的第三提示词、预设的表信息、难度分类信息为简单问题的第一示例问题语句、第一示例问题语句的第一示例schema link信息、第一示例问题语句的第一示例SQL语句、待填充问题语句的第四字段以及待填充问题语句的schema link信息的第五字段。
图5为本申请实施例提供的简单问题对应的第一SQL语句生成模板的示意图,如该图5所示,“&表信息&”为城市问答系统中涉及的所有表和外键信息;“&示例问题语句&”为预先制定好的示例问题语句;“&示例schema link&”为示例问题语句对应的schema link信息;“&示例SQL语句&”为示例问题语句对应的SQL语句;“&用户问题&”为待填充问题语句的第四字段;“&schema link&”为待填充问题语句对应的schema link信息的第五字段;“使用schema link和表信息,为下面的每一个问题生成SQL语句”为第三提示词。
在本申请实施例中,第二SQL语句生成模板至少包括用于提示语言大模型进行SQL语句生成的第三提示词、预设的表信息、难度分类信息为非嵌套复杂问题的第二示例问题语句、第二示例问题语句的第二示例schema link信息、第二示例问题语句的第二示例SQL语句、待填充问题语句的第六字段以及待填充问题语句的schema link信息的第七字段。
在本申请实施例中,针对问题难度分类信息为非嵌套复杂问题的问题语句,语言大模型在确定该问题语句对应的SQL语句时,需要查询多个表格。基于此,为了体现生成SQL语句的过程,语言大模型可以以答复语句的形式输出问题语句对应的SQL语句,即将SQL语句嵌套在答复语句中输出,该答复语句可以用于描述生成SQL语句过程,并且答复语句中还可以包括生成SQL语句所需的数据。基于此,非嵌套复杂问题对应的第二SQL语句生成模板中的示例问题语句对应的示例SQL语句可以被嵌入在预先配置的答复语句中。
图6为本申请实施例提供的简单问题对应的第二SQL语句生成模板的示意图,如该图6所示,该问题难度分类模板中“&xxx&”的部分为需要根据实际内容填充的部分,其它文本固定不变。“&表信息&”为预设的表信息;“&示例问题语句&”为预先制定好的示例问题语句;“&示例schema link&”为示例问题语句对应的schema link信息;“&示例SQL语句&”为示例问题语句对应的SQL语句;“让我们一步一步分析这个问题。首先根据schema link确定需要JOIN查询的多个表格&表格信息&,再根据schema link确定外键信息&外键信息&,根据这些信息生成SQL=&示例SQL语句&”为示例SQL语句对应的答复语句;“&用户问题&”为待填充问题语句的第六字段;“&schema link&”为待填充问题语句对应的schema link信息的第七字段;“使用schema link和表信息,为下面的每一个问题分析生成SQL语句的过程”为第三提示词。
其中,在本申请实施例中,第三SQL语句生成模板中至少包括用于提示所述语言大模型进行SQL语句生成的第三提示词、预设的表信息、难度分类信息为嵌套复杂的第三示例问题语句、所述第三示例问题语句的第三示例schema link信息、所述第三示例问题语句的第三示例SQL语句、待填充问题语句的第八字段以及待填充问题语句的schema link信息的第九字段。
在本申请实施例中,针对问题难度分类信息为嵌套复杂问题的问题语句,语言大模型在确定该问题语句对应的SQL语句时,需要查询多个表格并进行嵌套查询。基于此,为了体现生成SQL语句的过程,语言大模型可以以答复语句的形式输出问题语句对应的SQL语句,即将SQL语句嵌套在答复语句中输出,该答复语句可以用于描述生成SQL语句过程,并且答复语句中还可以包括生成SQL语句所需的数据。基于此,嵌套复杂问题对应的第三SQL语句生成模板中的示例问题语句对应的示例SQL语句可以被嵌入在预先配置的答复语句中。
图7为本申请实施例提供的简单问题对应的第三SQL语句生成模板的示意图,如该图7所示,“&表信息&”为预设的表信息;“&示例问题语句&”为预先制定好的示例问题语句;“&示例schema link&”为示例问题语句对应的schema link信息;“&示例SQL语句&”为示例问题语句对应的SQL语句;“让我们一步一步分析这个问题。首先确定需要查询的子问题&子问题&,根据schema link,回答子问题需要的SQL=&SQL&,再根据schema link和子问题SQL,我们生成最终的SQL=&示例SQL语句&”为示例SQL语句对应的答复语句;“&用户问题&”为待填充问题语句的第八字段;“&schema link&”为待填充问题语句对应的schema link信息的第九字段;“使用schema link和表信息,为下面的每一个问题分析生成SQL语句的过程”为第三提示词。
为了提高城市问答系统的可靠性、鲁棒性和可泛化性,在上述各实施例的基础上,在本申请实施例中,所述根据所述问题难度分类信息、所述schema link信息以及所述问题语句,对结构化查询语言SQL语句生成模板进行填充包括:
若所述问题难度分类信息为简单问题,则获取预先保存的所述第一SQL语句生成模板中所述第四字段对应的第四位置信息,以及所述第五字段对应的第五位置信息;根据所述第四位置信息,将所述问题语句写入到所述第四字段中;根据所述第五位置信息,将所述schema link信息写入到所述第五字段中;或,
若所述问题难度分类信息为非嵌套复杂问题,则获取预先保存的所述第二SQL语句生成模板中所述第六字段对应的第六位置信息,以及所述第七字段对应的第七位置信息;根据所述第六位置信息,将所述问题语句写入到所述第六字段中;根据所述第七位置信息,将所述schema link信息写入到所述第七字段中;或,
若所述问题难度分类信息为嵌套复杂问题,则获取预先保存的所述第三SQL语句生成模板中所述第八字段对应的第八位置信息,以及所述第九字段对应的第九位置信息;根据所述第八位置信息,将所述问题语句写入到所述第八字段中;根据所述第九位置信息,将所述schema link信息写入到所述第九字段中。
为了使转换的SQL语句更加准确,在本申请实施例中,城市问答系统针对不同的问题难度分类信息保存有不同的SQL语句生成模板,城市问答系统在确定了问题语句的问题难度分类信息之后,该城市问题系统根据问题难度分类信息,确定对应的SQL语句生成模板,并对SQL语句生成模板进行填充。
具体的,在本申请实施例中,若城市问答系统确定问题难度分类信息为简单问题,则该城市问答系统获取保存的简单问题对应的第一SQL语句生成模板。该第一SQL语句生成模板中至少包括待填充问题语句的第四字段,以及待填充schema link信息的第五字段。
城市问答系统获取预先保存的待填充问题语句的第四字段对应的第四位置信息,以及待填充schema link信息的第五字段对应的第五位置信息,并根据该第四位置信息,将问题语句写入到该第四字段中,根据该第五位置信息,将该问题语句的schema link信息写入到该第五字段中。
在图5的基础上,若问题语句为“研发管理部的员工数量是多少?”,则填充后的第一SQL语句生成模板为:
使用schema link和表信息,为下面的每一个问题生成SQL语句
## 表信息:
#部门表(id,机构名称,机构别名,职能,工作人员数量,办公电话)
#职员表(id,职员姓名,身份证号,出生日期,籍贯,性别,民族,政治面貌,文化程度,婚姻状况,职级,工资)
#雇佣关系表(部门id,职员id)
#外键(雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id)
##
问:研发管理部的办公电话是什么?
schema link:【部门表.机构名称,部门表.办公电话;null;研发管理部】
SQL:SELECT 办公电话 FROM 部门表 WHERE 机构名称==研发管理部
问:研发管理部的员工数量是多少?
schema link:【部门表.机构名称,部门表.工作人员数量;null;研发管理部】
SQL:
若城市问答系统确定问题难度分类信息为非嵌套复杂问题,则该城市问答系统获取保存的非嵌套复杂问题对应的第二SQL语句生成模板。该第二SQL语句生成模板中至少包括待填充问题语句的第六字段,以及待填充schema link信息的第七字段。
城市问答系统获取预先保存的待填充问题语句的第六字段对应的第六位置信息,以及待填充schema link信息的第七字段对应的第七位置信息,并根据该第六位置信息,将问题语句写入到该第六字段中,根据该第七位置信息,将该问题语句的schema link信息写入到该第七字段中。
在图6的基础上,若问题语句为“研发管理部的汉族员工有谁?”,则填充后的第二SQL语句生成模板为:
使用schema link和表信息,为下面的每一个问题分析生成SQL语句的过程
##表信息:
#部门表(id,机构名称,机构别名,职能,工作人员数量,办公电话)
#职员表(id,职员姓名,身份证号,出生日期,籍贯,性别,民族,政治面貌,文化程度,婚姻状况,职级,工资)
#雇佣关系表(部门id,职员id)
#外键(雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id)
##
问:研发管理部女性员工有谁?
schema link:【部门表.机构名称,职员表.职员姓名,职员表.性别;雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id;研发管理部,女】
分析:让我们一步一步分析这个问题。首先根据schema link确定需要JOIN查询的多个表格【部门表,职员表】,再根据schema link确定外键信息【雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id】,根据这些信息生成SQL=SELECT 职员表.职员姓名FROM 部门表JOIN雇佣关系表ON 部门表.id=雇佣关系表.部门id JOIN 职员表 ON 雇佣关系表.职员id=职员表.id WHERE 职员表.性别==女
问:研发管理部的汉族员工有谁?
schema link:【部门表.机构名称,职员表.职员姓名,职员表.民族;雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id;研发管理部,汉族】
分析:
在本申请实施例中,若城市问答系统确定问题难度分类信息为嵌套复杂问题,则该城市问答系统获取保存的嵌套复杂问题对应的第三SQL语句生成模板。该第三SQL语句生成模板中至少包括待填充问题语句的第八字段,以及待填充schema link信息的第九字段。
城市问答系统获取预先保存的待填充问题语句的第八字段对应的第八位置信息,以及待填充schema link信息的第九字段对应的第九位置信息,并根据该第八位置信息,将问题语句写入到该第八字段中,根据该第九位置信息,将该问题语句的schema link信息写入到该第九字段中。
在图7的基础上,若问题语句为“研发管理部中的女员工的平均工资是否比男员工的高?”,则填充后的第三SQL语句生成模板为:
使用schema link和表信息,为下面的每一个问题分析生成SQL语句的过程
##表信息:
#部门表(id,机构名称,机构别名,职能,工作人员数量,办公电话)
#职员表(id,职员姓名,身份证号,出生日期,籍贯,性别,民族,政治面貌,文化程度,婚姻状况,职级,工资)
#雇佣关系表(部门id,职员id)
#外键(雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id)
##
问:哪个部门的员工平均工资大于所有员工的平均工资?
schema link:[部门表.机构名称,职员表.工资;雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id;null]
分析:让我们一步一步分析这个问题,首先确定需要查询的子问题”所有员工的平均工资”,根据schema link,回答子问题需要的SQL=SELECT AVG(工资) FROM 职员表,再根据schema link和子问题SQL语句,我们生成最终的SQL=SELECT 部门表.机构名称 FROM 部门表JOIN雇佣关系表ON部门表.id=雇佣关系表.部门id JOIN 职员表 ON 职员表.id=雇佣关系表.职员id GROUP BY 部门表.id HAVING AVG(职员表.工资)>SELECT AVG(工资)FROM 职员表
问:研发管理部中的女员工的平均工资是否比男员工的高?
分析:
为了提高了城市问答系统的可靠性、鲁棒性和可泛化性,在上述各实施例的基础上,在本申请实施例中,所述将问题语句填充到schema link模板中之前,所述方法还包括:
获取输入的语音信息,将所述语音信息输入到识别模型中,获取所述识别模型输出的所述问题语句。
在本申请实施例中,城市问答系统会接收输入的语音信息,并将该语音信息输入到识别模型中,该识别模型将语音信息转换为问题语句,并输出该问题语句。该城市问答系统获取识别模型输出的该问题语句。
在上述各实施例的基础上,在本申请实施例中,图8为本申请实施例提供的将文本转换为SQL语句的流程示意图,如该图8所示,以问题语句为“研发管理部谁的籍贯是山东?”为例,该过程包括:
S801:根据问题语句填充schema link模板。
填充好的schema link模板为:
## 表信息:
#部门表(id,机构名称,机构别名,职能,工作人员数量,办公电话)
#职员表(id,职员姓名,身份证号,出生日期,籍贯,性别,民族,政治面貌,文化程度,婚姻状况,职级,工资)
#雇佣关系表(部门id,职员id)
#外键(雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id)
##
##问题与回答:
问:“研发管理部中的员工,在十月份出生的人数有多少?”
答:让我们一步一步解决这个问题。根据问题“研发管理部中的员工,在十月份出生的人数有多少?”,用户提问“研发管理部中的员工”所以我们需要[部门表.*],用户提问“在十月份出生的人数有多少”所以我们需要[职员表.出生日期],根据得到的表名和列名,我们需要[外键=雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id]。根据得到的表名、列名和外键名,我们需要查询条件[研发管理部,10]。综上所述,我们得到schemalink=[部门表.*,职员表.出生日期;雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id;研发管理部,10]
问:“研发管理部谁的籍贯是山东?”
答:
S802:将填充好的schema link模板输入到语言大模型中,获取所述语言大模型输出的所述问题语句对应的schema link信息。
获取到的大模型的输出为:
让我们一步一步解决这个问题。根据问题“研发管理部谁的籍贯是山东?”,用户提问“研发管理部”所以我们需要[部门表.机构名称],用户提问“谁的籍贯是山东”所以我们需要[职员表.籍贯,职员表.姓名],根据得到的表名和列名,我们需要[外键=雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id]。根据得到的表名、列名和外键名,我们需要查询条件[研发管理部,山东]。综上所述,我们得到schema link=[部门表.机构名称,职员表.籍贯,职员表.姓名;雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id;研发管理部,山东]
基于此,城市问答系统确定schema link信息为schema link=[部门表.机构名称,职员表.籍贯,职员表.姓名;雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id;研发管理部,山东]。
S803:根据所述schema link信息以及所述问题语句,对问题难度分类模板进行填充。
填充好的问题难度分类模板为:
使用如下表信息回答问题。将该问题分为3类,分别为:简单问题,嵌套复杂问题,非嵌套复杂问题。
如果问题需要嵌套查询,则为嵌套复杂问题。如果问题不需要嵌套查询,但是需要多个表格信息,则为非嵌套复杂问题。如果问题不需要嵌套查询,也不需要多个表格信息,则为简单问题。
## 表信息:
#部门表(id,机构名称,机构别名,职能,工作人员数量,办公电话)
#职员表(id,职员姓名,身份证号,出生日期,籍贯,性别,民族,政治面貌,文化程度,婚姻状况,职级,工资)
#雇佣关系表(部门id,职员id)
#外键(雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id)
##
##问题与回答:
问: 研发管理部的办公电话是什么?
schema link: [部门表.机构名称,部门表.办公电话;null;研发管理部]
答:让我们一步一步解决这个问题。使用SQL查询如下问题:研发管理部的办公电话是什么,需要以下表格[部门表],所以我们不需要使用多个表格信息。另外,它不需要使用多个SELECT嵌套查询,所以问题不需要嵌套查询也不需要多个表格信息,这个问题的分类为[简单问题]。
问:哪个部门的员工平均工资大于所有员工的平均工资?
schema link: [部门表.机构名称,职员表.工资;雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id;null]
答:让我们一步一步解决这个问题。使用SQL查询如下问题:那个部门的员工平均工资大于所有员工的平均工资,需要以下表格【部门表,职员表】,所以我们需要使用多个表格信息。另外,它需要使用多个SELECT嵌套查询所有员工的平均工资,所以问题需要嵌套查询也需要多个表格信息,这个问题的分类为[嵌套复杂问题]。
问:研发管理部的女员工有谁?
schema link: 【部门表.机构名称,职员表.职员姓名,职员表.性别;雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id;研发管理部,女】
答:让我们一步一步解决这个问题。使用SQL查询如下问题:研发管理部的女员工有谁,需要一下表格【部门表,职员表】,所以我们需要使用多个表格信息。另外,它不需要使用多个SELECT嵌套查询,所以问题不需要嵌套查询,但是需要多个表格信息,这个问题的分类为[非嵌套复杂问题]。
问:研发管理部谁的籍贯是山东?
答:
S804:将填充好的问题难度分类模板输入到所述语言大模型中,获取所述语言大模型输出的所述问题语句对应的问题难度分类信息。
获取到的大模型的输出为:
让我们一步一步解决这个问题。使用SQL查询如下问题:研发管理部谁的籍贯是山东,需要一下表格【部门表,职员表】,所以我们需要使用多个表格信息。另外,它不需要使用多个SELECT嵌套查询,所以问题不需要嵌套查询,但是需要多个表格信息,这个问题的分类为[非嵌套复杂问题]
基于此,城市问答系统确定问题难度分类信息为非嵌套复杂问题。
S805:根据所述问题难度分类信息、所述schema link信息以及所述问题语句,对SQL语句生成模板进行填充。
填充好的SQL语句生成模板为:
使用schema links和表信息,为下面的每一个问题分析生成SQL语句的过程
## 表信息:
#部门表(id,机构名称,机构别名,职能,工作人员数量,办公电话)
#职员表(id,职员姓名,身份证号,出生日期,籍贯,性别,民族,政治面貌,文化程度,婚姻状况,职级,工资)
#雇佣关系表(部门id,职员id)
#外键(雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id)
##
问:研发管理部女性员工有谁?
schema link: 【部门表.机构名称,职员表.职员姓名,职员表.性别;雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id;研发管理部,女】
分析:让我们一步一步分析这个问题。首先根据schema link确定需要JOIN查询的多个表格【部门表,职员表】,再根据schema link确定外键信息【雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id】,根据这些信息生成SQL=SELECT 职员表.职员姓名FROM 部门表JOIN雇佣关系表 ON 部门表.id=雇佣关系表.部门id JOIN 职员表 ON 雇佣关系表.职员id=职员表.id WHERE 职员表.性别==女
问:研发管理部谁的籍贯是山东?
schema link: 【部门表.机构名称,职员表.职员姓名,职员表.籍贯;雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id;研发管理部,山东】
分析:
S806:将填充好的SQL语句生成模板输入到所述语言大模型中,获取所述语言大模型输出的SQL语句。
获取到的大模型的输出为:
让我们一步一步分析这个问题。首先根据schema link确定需要JOIN查询的多个表格【部门表,职员表】,再根据schema link确定外键信息【雇佣关系表.部门id=部门表.id,雇佣关系表.职员id=职员表.id】,根据这些信息生成SQL =SELECT 职员表.职员姓名FROM 部门表JOIN雇佣关系表 ON 部门表.id=雇佣关系表.部门id JOIN 职员表 ON 雇佣关系表.职员id=职员表.id WHERE 职员表.籍贯==山东
基于此,城市问答系统确定SQL语句为SQL=SELECT 职员表.职员姓名 FROM 部门表JOIN雇佣关系表 ON 部门表.id=雇佣关系表.部门id JOIN 职员表 ON 雇佣关系表.职员id=职员表.id WHERE 职员表.籍贯==山东。
为了实现对问题语句的答复,在上述各实施例的基础上,在本申请实施例中,所述方法还包括:
根据所述SQL语句,确定并输出所述问题语句对应的答复语句。
在本申请实施例中,城市问答系统在获取到大模型输出的SQL语句之后,该城市问答系统根据该SQL语句,在关系型数据库中查询该SQL语句对应的信息,并根据该信息生成并输出对应的答复语句。
图9为本申请实施例提供的一种将文本转换为SQL语句的装置结构示意图,该装置包括:
schema link信息确定模块901,用于将问题语句填充到schema link模板中,并将填充好的schema link模板输入到语言大模型中,获取所述语言大模型输出的所述问题语句对应的schema link信息;
分类模块902,用于根据所述schema link信息以及所述问题语句,对问题难度分类模板进行填充,并将填充好的问题难度分类模板输入到所述语言大模型中,获取所述语言大模型输出的所述问题语句对应的问题难度分类信息;
SQL语句生成模块903,用于根据所述问题难度分类信息、所述schema link信息以及所述问题语句,对结构化查询语言SQL语句生成模板进行填充,并将填充好的SQL语句生成模板输入到所述语言大模型中,获取所述语言大模型输出的SQL语句。
在一种可能的实施方式中,所述schema link模板包括:用于提示所述语言大模型进行schema link识别的第一提示词、预设的表信息、示例问题语句、示例问题语句对应的示例schema link信息以及待填充问题语句的第一字段。
在一种可能的实施方式中,所述schema link信息确定模块901,具体用于获取预先保存的所述schema link模板中所述待填充问题语句的第一字段对应的第一位置信息;根据所述第一位置信息,将所述问题语句写入到所述第一字段中。
在一种可能的实施方式中,所述问题难度分类模板包括:用于提示所述语言大模型进行问题难度分类的第二提示词、预设的表信息、问题难度分类信息分别对应的示例问题语句和示例schema link信息、待填充问题语句的第二字段以及待填充schema link信息的第三字段。
在一种可能的实施方式中,所述分类模块902,具体用于获取预先保存的所述问题难度分类模板中所述待填充问题语句的第二字段对应的第二位置信息,以及所述待填充schema link信息的第三字段对应的第三位置信息;根据所述第二位置信息,将所述问题语句写入到所述第二字段中;根据所述第三位置信息,将所述schema link信息写入到所述第三字段中。
在一种可能的实施方式中,所述问题难度分类信息包括:简单问题、非嵌套复杂问题或嵌套复杂问题。
在一种可能的实施方式中,所述SQL语句生成模板包括:简单问题对应的第一SQL语句生成模板、非嵌套复杂问题对应的第二SQL语句生成模板以及嵌套复杂问题对应的第三SQL语句生成模板;
其中,所述第一SQL语句生成模板包括用于提示所述语言大模型进行SQL语句生成的第三提示词、预设的表信息、难度分类信息为简单问题的第一示例问题语句、所述第一示例问题语句的第一示例schema link信息、所述第一示例问题语句的第一示例SQL语句、待填充问题语句的第四字段以及待填充问题语句的schema link信息的第五字段;
所述第二SQL语句生成模板包括用于提示所述语言大模型进行SQL语句生成的第三提示词、预设的表信息、难度分类信息为非嵌套复杂问题的第二示例问题语句、所述第二示例问题语句的第二示例schema link信息、所述第二示例问题语句的第二示例SQL语句、待填充问题语句的第六字段以及待填充问题语句的schema link信息的第七字段;
所述第三SQL语句生成模板包括用于提示所述语言大模型进行SQL生成的第三提示词、预设的表信息、难度分类信息为嵌套复杂的第三示例问题语句、所述第三示例问题语句的第三示例schema link信息、所述第三示例问题语句的第三示例SQL语句、待填充问题语句的第八字段以及待填充问题语句的schema link信息的第九字段。
在一种可能的实施方式中,所述SQL语句生成模块903,具体用于若所述问题难度分类信息为简单问题,则获取预先保存的所述第一SQL语句生成模板中所述第四字段对应的第四位置信息,以及所述第五字段对应的第五位置信息;根据所述第四位置信息,将所述问题语句写入到所述第四字段中;根据所述第五位置信息,将所述schema link信息写入到所述第五字段中;或,若所述问题难度分类信息为非嵌套复杂问题,则获取预先保存的所述第二SQL语句生成模板中所述第六字段对应的第六位置信息,以及所述第七字段对应的第七位置信息;根据所述第六位置信息,将所述问题语句写入到所述第六字段中;根据所述第七位置信息,将所述schema link信息写入到所述第七字段中;或,若所述问题难度分类信息为嵌套复杂问题,则获取预先保存的所述第三SQL语句生成模板中所述第八字段对应的第八位置信息,以及所述第九字段对应的第九位置信息;根据所述第八位置信息,将所述问题语句写入到所述第八字段中;根据所述第九位置信息,将所述schema link信息写入到所述第九字段中。
在一种可能的实施方式中,所述装置还包括:
识别模块904,用于获取输入的语音信息,将所述语音信息输入到识别模型中,获取所述识别模型输出的所述问题语句。
在一种可能的实施方式中,所述识别模块904,还用于根据所述SQL语句,确定并输出所述问题语句对应的答复语句。
在上述实施例的基础上,本申请实施例还提供了一种电子设备,图10为本申请实施例提供的一种电子设备结构示意图,如图10所示,包括:处理器1001、通信接口1002、存储器1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信;
存储器1003中存储有计算机程序,当程序被处理器1001执行时,使得处理器1001执行上述任一所述将文本转换为SQL语句的方法的步骤。
由于上述电子设备解决问题的原理与将文本转换为SQL语句的方法相似,因此上述电子设备的实施可以参见方法的实施例,重复之处不再赘述。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口1002用于上述电子设备与其他设备之间的通信。存储器可以包括随机存取存储器(RandomAccess Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
在上述各实施例的基础上,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有可由处理器执行的计算机程序,当程序在处理器上运行时,使得处理器执行上述任一所述将文本转换为SQL语句的方法的步骤。
由于上述计算机可读存储介质解决问题的原理与将文本转换为SQL语句的方法相似,因此上述计算机可读存储介质的实施可以参见方法的实施例,重复之处不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (17)

1.一种将文本转换为SQL语句的方法,其特征在于,所述方法包括:
将问题语句填充到schema link模板中,并将填充好的schema link模板输入到语言大模型中,获取所述语言大模型输出的所述问题语句对应的schema link信息;其中,所述schema link模板中至少包括用于提示所述语言大模型进行schema link识别的第一提示词、预设的表信息以及第一示例信息;
根据所述schema link信息以及所述问题语句,对问题难度分类模板进行填充,并将填充好的问题难度分类模板输入到所述语言大模型中,获取所述语言大模型输出的所述问题语句对应的问题难度分类信息;其中,所述问题难度分类模板至少包括用于提示所述语言大模型进行问题难度分类的第二提示词、预设的表信息以及第二示例信息;
根据所述问题难度分类信息、所述schema link信息以及所述问题语句,对结构化查询语言SQL语句生成模板进行填充,并将填充好的SQL语句生成模板输入到所述语言大模型中,获取所述语言大模型输出的SQL语句;其中,所述SQL语句生成模板包括用于提示所述语言大模型进行SQL语句生成的第三提示词、预设的表信息以及第三示例信息。
2.根据权利要求1所述的方法,其特征在于,所述第一示例信息包括示例问题语句以及所述示例问题语句对应的示例schema link信息;所述schema link模板还包括待填充问题语句的第一字段。
3.根据权利要求2所述的方法,其特征在于,所述将问题语句填充到schema link模板中包括:
获取预先保存的所述schema link模板中所述待填充问题语句的第一字段对应的第一位置信息;
根据所述第一位置信息,将所述问题语句写入到所述第一字段中。
4.根据权利要求1所述的方法,其特征在于,所述第二示例信息包括问题难度分类信息分别对应的示例问题语句和示例schema link信息;所述问题难度分类模板还包括待填充问题语句的第二字段以及待填充schema link信息的第三字段。
5.根据权利要求4所述的方法,其特征在于,所述根据所述schema link信息以及所述问题语句,对问题难度分类模板进行填充包括:
获取预先保存的所述问题难度分类模板中所述待填充问题语句的第二字段对应的第二位置信息,以及待填充schema link信息的所述第三字段对应的第三位置信息;
根据所述第二位置信息,将所述问题语句写入到所述第二字段中;
根据所述第三位置信息,将所述schema link信息写入到所述第三字段中。
6.根据权利要求1所述的方法,其特征在于,所述问题难度分类信息包括:简单问题、非嵌套复杂问题或嵌套复杂问题。
7.根据权利要求6所述的方法,其特征在于,所述SQL语句生成模板包括:简单问题对应的第一SQL语句生成模板;所述第三示例信息包括难度分类信息为简单问题的第一示例问题语句、所述第一示例问题语句的第一示例schema link信息、所述第一示例问题语句的第一示例SQL语句;所述第一SQL语句生成模板还包括待填充问题语句的第四字段以及待填充问题语句的schema link信息的第五字段。
8.根据权利要求7所述的方法,其特征在于,所述根据所述问题难度分类信息、所述schema link信息以及所述问题语句,对结构化查询语言SQL语句生成模板进行填充包括:
获取预先保存的所述第一SQL语句生成模板中所述第四字段对应的第四位置信息,以及所述第五字段对应的第五位置信息;
根据所述第四位置信息,将所述问题语句写入到所述第四字段中;根据所述第五位置信息,将所述schema link信息写入到所述第五字段中。
9.根据权利要求6所述的方法,其特征在于,所述SQL语句生成模板包括:非嵌套复杂问题对应的第二SQL语句生成模板;所述第三示例信息包括难度分类信息为非嵌套复杂问题的第二示例问题语句、所述第二示例问题语句的第二示例schema link信息、所述第二示例问题语句的第二示例SQL语句;所述第二SQL语句生成模板还包括待填充问题语句的第六字段以及待填充问题语句的schema link信息的第七字段。
10.根据权利要求9所述的方法,其特征在于,所述根据所述问题难度分类信息、所述schema link信息以及所述问题语句,对结构化查询语言SQL语句生成模板进行填充包括:
获取预先保存的所述第二SQL语句生成模板中所述第六字段对应的第六位置信息,以及所述第七字段对应的第七位置信息;
根据所述第六位置信息,将所述问题语句写入到所述第六字段中;根据所述第七位置信息,将所述schema link信息写入到所述第七字段中。
11.根据权利要求6所述的方法,其特征在于,所述SQL语句生成模板包括:嵌套复杂问题对应的第三SQL语句生成模板;所述第三示例信息包括难度分类信息为嵌套复杂的第三示例问题语句、所述第三示例问题语句的第三示例schema link信息、所述第三示例问题语句的第三示例SQL语句;所述第三SQL语句生成模板还包括待填充问题语句的第八字段以及待填充问题语句的schema link信息的第九字段。
12.根据权利要求11所述的方法,其特征在于,所述根据所述问题难度分类信息、所述schema link信息以及所述问题语句,对结构化查询语言SQL语句生成模板进行填充包括:
获取预先保存的所述第三SQL语句生成模板中所述第八字段对应的第八位置信息,以及所述第九字段对应的第九位置信息;
根据所述第八位置信息,将所述问题语句写入到所述第八字段中;根据所述第九位置信息,将所述schema link信息写入到所述第九字段中。
13.根据权利要求1所述的方法,其特征在于,所述将问题语句填充到schema link模板中之前,所述方法还包括:
获取输入的语音信息,将所述语音信息输入到识别模型中,获取所述识别模型输出的所述问题语句。
14.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述SQL语句,确定并输出所述问题语句对应的答复语句。
15.一种将文本转换为SQL语句的装置,其特征在于,所述装置包括:
schema link信息确定模块,用于将问题语句填充到schema link模板中,并将填充好的schema link模板输入到语言大模型中,获取所述语言大模型输出的所述问题语句对应的schema link信息;其中,所述schema link模板中至少包括用于提示所述语言大模型进行schema link识别的第一提示词、预设的表信息以及第一示例信息;
分类模块,用于根据所述schema link信息以及所述问题语句,对问题难度分类模板进行填充,并将填充好的问题难度分类模板输入到所述语言大模型中,获取所述语言大模型输出的所述问题语句对应的问题难度分类信息;其中,所述问题难度分类模板至少包括用于提示所述语言大模型进行问题难度分类的第二提示词、预设的表信息以及第二示例信息;
SQL语句生成模块,用于根据所述问题难度分类信息、所述schema link信息以及所述问题语句,对结构化查询语言SQL语句生成模板进行填充,并将填充好的SQL语句生成模板输入到所述语言大模型中,获取所述语言大模型输出的SQL语句;其中,所述SQL语句生成模板包括用于提示所述语言大模型进行SQL语句生成的第三提示词、预设的表信息以及第三示例信息。
16.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-14中任一所述将文本转换为SQL语句的方法的步骤。
17.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-14任一项所述的将文本转换为SQL语句的方法的步骤。
CN202310910377.XA 2023-07-24 2023-07-24 一种将文本转换为sql语句的方法及设备 Active CN116629227B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310910377.XA CN116629227B (zh) 2023-07-24 2023-07-24 一种将文本转换为sql语句的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310910377.XA CN116629227B (zh) 2023-07-24 2023-07-24 一种将文本转换为sql语句的方法及设备

Publications (2)

Publication Number Publication Date
CN116629227A CN116629227A (zh) 2023-08-22
CN116629227B true CN116629227B (zh) 2023-10-24

Family

ID=87603000

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310910377.XA Active CN116629227B (zh) 2023-07-24 2023-07-24 一种将文本转换为sql语句的方法及设备

Country Status (1)

Country Link
CN (1) CN116629227B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149985B (zh) * 2023-10-31 2024-03-19 海信集团控股股份有限公司 一种基于大模型的问答方法、装置、设备及介质
CN117251473B (zh) * 2023-11-20 2024-03-15 摩斯智联科技有限公司 车辆数据查询分析方法、系统、装置和存储介质
CN117271561B (zh) * 2023-11-20 2024-03-01 海信集团控股股份有限公司 一种基于大语言模型的sql语句生成方法、装置及设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112925794A (zh) * 2021-04-02 2021-06-08 中国人民解放军国防科技大学 基于桥接填充的复杂多表sql生成方法和装置
CN113254619A (zh) * 2021-06-21 2021-08-13 北京沃丰时代数据科技有限公司 针对用户询问的自动答复方法、装置和电子设备
CN113495900A (zh) * 2021-08-12 2021-10-12 国家电网有限公司大数据中心 基于自然语言的结构化查询语言语句获取方法及装置
CN113609158A (zh) * 2021-08-12 2021-11-05 国家电网有限公司大数据中心 一种sql语句的生成方法、装置、设备及介质
WO2022141880A1 (zh) * 2020-12-31 2022-07-07 平安科技(深圳)有限公司 Sql语句生成方法、装置、服务器及计算机可读存储介质
CN114780582A (zh) * 2022-05-10 2022-07-22 苏州科技大学 基于表格问答的自然答案生成系统及其方法
CN115827819A (zh) * 2022-10-12 2023-03-21 航天信息股份有限公司 一种智能问答处理方法、装置、电子设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10262062B2 (en) * 2015-12-21 2019-04-16 Adobe Inc. Natural language system question classifier, semantic representations, and logical form templates
US11789945B2 (en) * 2019-04-18 2023-10-17 Sap Se Clause-wise text-to-SQL generation

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022141880A1 (zh) * 2020-12-31 2022-07-07 平安科技(深圳)有限公司 Sql语句生成方法、装置、服务器及计算机可读存储介质
CN112925794A (zh) * 2021-04-02 2021-06-08 中国人民解放军国防科技大学 基于桥接填充的复杂多表sql生成方法和装置
CN113254619A (zh) * 2021-06-21 2021-08-13 北京沃丰时代数据科技有限公司 针对用户询问的自动答复方法、装置和电子设备
CN113495900A (zh) * 2021-08-12 2021-10-12 国家电网有限公司大数据中心 基于自然语言的结构化查询语言语句获取方法及装置
CN113609158A (zh) * 2021-08-12 2021-11-05 国家电网有限公司大数据中心 一种sql语句的生成方法、装置、设备及介质
CN114780582A (zh) * 2022-05-10 2022-07-22 苏州科技大学 基于表格问答的自然答案生成系统及其方法
CN115827819A (zh) * 2022-10-12 2023-03-21 航天信息股份有限公司 一种智能问答处理方法、装置、电子设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Expanding, Retrieving and Infilling: Diversifying Cross-Domain Question Generation with Flexible Templates;Yu, Xiaojing等;《 16TH CONFERENCE OF THE EUROPEAN CHAPTER OF THE ASSOCIATION FOR COMPUTATIONAL LINGUISTICS (EACL 2021)》;全文 *
基于模板和规则的声明式代码生成;冯俊辉;《中国优秀硕士学位论文全文数据库(信息科技辑)》(第1期);全文 *
自然语言生成多表SQL查询语句技术研究;曹金超;黄滔;陈刚;吴晓凡;陈珂;;计算机科学与探索(第07期);全文 *

Also Published As

Publication number Publication date
CN116629227A (zh) 2023-08-22

Similar Documents

Publication Publication Date Title
CN116629227B (zh) 一种将文本转换为sql语句的方法及设备
CN111813802B (zh) 一种基于自然语言生成结构化查询语句的方法
Génova et al. A framework to measure and improve the quality of textual requirements
Bazeley Issues in mixing qualitative and quantitative approaches to research
CN112527999B (zh) 引入农业领域知识的抽取式智能问答方法及系统
WO2021213314A1 (zh) 数据处理方法、装置及计算机可读存储介质
CN106649223A (zh) 基于自然语言处理的金融报告自动生成方法
US10824816B2 (en) Semantic parsing method and apparatus
CN111159220B (zh) 用于输出结构化查询语句的方法和装置
Noardo et al. Integrating expertises and ambitions for data-driven digital building permits–the EUNET4DBP
CN113889259A (zh) 一种知识图谱辅助下的自动诊断对话系统
CN114781402A (zh) 问诊意图识别方法、装置、电子设备及可读存储介质
KR20200145299A (ko) 온라인 면접 동영상 분석 및 소셜미디어 정보분석 기반 지능형 채용지원 플랫폼
CN117577254A (zh) 医疗领域语言模型构建及电子病历文本结构化方法、系统
CN114417012A (zh) 一种生成知识图谱的方法和电子设备
CN112395484A (zh) 一种面向自动驾驶汽车的用户满意度评价方法
US20220366135A1 (en) Extended open information extraction system
CN113050933B (zh) 脑图数据处理方法、装置、设备及存储介质
CN114970547A (zh) 多层级多类型的规划内容差异识别与冲突消除方法
CN112347121B (zh) 一种可配置的自然语言转sql的方法及系统
CN113468258A (zh) 一种异构数据的转换方法、装置及存储介质
CN117149985B (zh) 一种基于大模型的问答方法、装置、设备及介质
CN117131181B (zh) 一种异构知识问答模型的构建方法、信息提取方法及系统
Eckert et al. My facts are not your facts: data wrangling as a socially negotiated process, a case study in a multisite manufacturing company
Zavala-Rojas et al. The Multilingual Corpus of Survey Questionnaires: A tool for refining survey translation

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
GR01 Patent grant
GR01 Patent grant