CN117708304A - 数据库问答方法、设备及存储介质 - Google Patents
数据库问答方法、设备及存储介质 Download PDFInfo
- Publication number
- CN117708304A CN117708304A CN202410143425.1A CN202410143425A CN117708304A CN 117708304 A CN117708304 A CN 117708304A CN 202410143425 A CN202410143425 A CN 202410143425A CN 117708304 A CN117708304 A CN 117708304A
- Authority
- CN
- China
- Prior art keywords
- question
- database
- operator
- request
- sample
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000006870 function Effects 0.000 claims description 48
- 239000013598 vector Substances 0.000 claims description 26
- 238000012549 training Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 abstract description 10
- 230000003993 interaction Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000002372 labelling Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 101100481876 Danio rerio pbk gene Proteins 0.000 description 1
- 102100038367 Gremlin-1 Human genes 0.000 description 1
- 101001032872 Homo sapiens Gremlin-1 Proteins 0.000 description 1
- 101100481878 Mus musculus Pbk gene Proteins 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003287 optical 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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据库问答方法、设备及存储介质,该数据库问答方法包括:响应于接收到的提问请求,确定提问请求对应的待查询数据库;获取待查询数据库的算子集合;其中,算子集合中的每个算子分别与待查询数据库的数据查询功能对应;从算子集合选取出与提问请求匹配的算子,并对每个匹配的算子进行组合,得到数据库查询语句;利用数据库查询语句对待查询数据库进行查询,得到提问请求对应的回复结果。通过将算子集合中的多个算子进行组合使用,可以完成更多的数据库查询业务,提高了数据库查询过程中的可拓展性和灵活性,可以满足不同需求场景的要求,并使得数据库交互的过程更可控、更准确、更安全。
Description
技术领域
本申请涉及数据检索技术领域,特别是涉及一种数据库问答方法、设备及存储介质。
背景技术
基于数据库进行问答,是通过自然语言语句实现数据库的查询、计算,并根据结果总结回答的过程。通常涉及使用特定查询语言(如SQL、Gremlin)来对数据库中的数据执行检索、过滤、排序、计算等,然后根据数据库返回的结果回答用户问题。数据库问答可以协助办公人员完成数据库查询、数据分析、决策支持、问题解答等。与用查询语言操作数据库的最大差别在于,用户可以通过提问来获得所需的信息,而无需了解数据库的具体设计和细节,显著降低了数据库的使用门槛。
相关技术中,通过收集大量用户输入并对这些用户问题进行分类、清洗,再人工标注对应的数据库查询语句得到构造的样本数据,用这些构造的样本数据来训练神经网络模型,从而使其能根据用户问题输出相应的查询语句,用于执行数据库查询。但这个过程需要大量人力成本进行样本标注,且最终训练得到的模型性能受到标注质量、标注样本的数量等限制,存在场景适用性较差、问答结果不准确等问题。
发明内容
本申请至少提供一种数据库问答方法、设备及存储介质。
本申请第一方面提供了一种数据库问答方法,方法包括:响应于接收到的提问请求,确定提问请求对应的待查询数据库;获取待查询数据库的算子集合;其中,算子集合中的每个算子分别与待查询数据库的数据查询功能对应;从算子集合选取出与提问请求匹配的算子,并对每个匹配的算子进行组合,得到数据库查询语句;利用数据库查询语句对待查询数据库进行查询,得到提问请求对应的回复结果。
在一实施例中,从算子集合选取出与提问请求匹配的算子,对每个匹配的算子进行组合,得到数据库查询语句,包括:获取算子集合对应的算子功能描述;将提问请求和算子功能描述填充至预设的提问指令模板中,得到算子调用指令;将算子调用指令输入至训练完成的数据库查询模型中确定与提问请求匹配的算子,并对每个匹配的算子进行组合,得到数据库查询模型输出的数据库查询语句。
在一实施例中,方法还包括:获取待查询数据库中数据表信息;将提问请求和算子功能描述填充至预设的提问指令模板中,得到算子调用指令,包括:将数据表信息、提问请求和算子功能描述填充至预设的提问指令模板中,得到算子调用指令。
在一实施例中,获取待查询数据库中数据表信息,包括:针对待查询数据库中的每一数据表,提取数据表的字段名称及字段功能描述,得到数据表的字段信息;结合每个字段信息,得到待查询数据库中数据表信息。
在一实施例中,方法还包括:查询与提问请求匹配的问答示例样本;其中,问答示例样本含有提问示例和提问示例对应的输出示例;将提问请求和算子功能描述填充至预设的提问指令模板中,得到算子调用指令,包括:将问答示例样本、提问请求和算子功能描述填充至预设的提问指令模板中,得到算子调用指令。
在一实施例中,查询提问请求匹配的问答示例样本,包括:对提问请求进行编码处理,得到提问请求对应的请求向量;以及,获取示例样本集合,示例样本集合中含有多个问答示例样本和每个问答示例样本分别对应的样本向量;计算请求向量与样本向量之间的向量距离;将向量距离满足预设条件的问答示例样本作为与提问请求匹配的问答示例样本。
在一实施例中,数据库查询模型是对大语言模型进行训练后得到的,数据库查询模型的训练步骤包括:获取指令样本;其中,指令样本含有提问请求样本和提问请求样本对应的算子集合样本,且指令样本对应有样本标签,样本标签用于标记提问请求样本对应的数据库查询语句;将指令样本输入至待训练的大语言模型中,得到大语言模型输出的查询语句预测结果;利用查询语句预测结果和指令样本对应的样本标签,计算模型训练损失值;基于训练损失值调整待训练的大语言模型,得到训练完成的数据库查询模型。
在一实施例中,利用数据库查询语句对待查询数据库进行查询,得到提问请求对应的回复结果,包括:利用数据库查询语句对待查询数据库进行查询,得到初始查询结果;将初始查询结果和提问请求填充至预设的回复模板中,得到回复结果。
本申请第二方面提供了一种数据库问答装置,装置包括:请求响应模块,用于响应于接收到的提问请求,确定提问请求对应的待查询数据库;算子获取模块,用于获取待查询数据库的算子集合;其中,算子集合中的每个算子分别与待查询数据库的数据查询功能对应;算子组合模块,用于从算子集合选取出与提问请求匹配的算子,并对每个匹配的算子进行组合,得到数据库查询语句;查询模块,用于利用数据库查询语句对待查询数据库进行查询,得到提问请求对应的回复结果。
本申请第三方面提供了一种电子设备,包括存储器和处理器,处理器用于执行存储器中存储的程序指令,以实现上述数据库问答方法。
本申请第四方面提供了一种计算机可读存储介质,其上存储有程序指令,程序指令被处理器执行时实现上述数据库问答方法。
上述方案,通过响应于接收到的提问请求,确定提问请求对应的待查询数据库;获取待查询数据库的算子集合;其中,算子集合中的每个算子分别与待查询数据库的数据查询功能对应;从算子集合选取出与提问请求匹配的算子,并对每个匹配的算子进行组合,得到数据库查询语句;利用数据库查询语句对待查询数据库进行查询,得到提问请求对应的回复结果,将算子集合中的多个算子进行组合使用,以完成更多的数据库查询业务,提高了数据库查询过程中的可拓展性和灵活性,可以满足不同需求场景的要求,并使得数据库交互的过程更可控、更准确、更安全。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1是本申请的一示例性实施例示出的数据库问答方法涉及的一种实施环境的示意图;
图2是本申请的一示例性实施例示出的数据库问答方法的流程图;
图3是本申请的一示例性实施例示出的对提问指令模板进行填充的示意图;
图4是本申请的一示例性实施例示出的对回复模板进行填充的示意图;
图5是本申请的一示例性实施例示出的数据库问答的示意图;
图6是本申请的一示例性实施例示出的数据库问答装置的框图;
图7是本申请的一示例性实施例示出的电子设备的结构示意图;
图8是本申请的一示例性实施例示出的计算机可读存储介质的结构示意图。
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。
本文中术语“和/或”,仅仅是一种描述关联对象的关联信息,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
下面对本申请实施例所提供的数据库问答方法进行说明。
请参考图1,其示出了本申请一个实施例提供的方案实施环境的示意图。该方案实施环境可以包括终端110和服务器120,终端110和服务器120之间相互通信连接。
终端110的数量可以是一个或多个。终端110可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。
服务器120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一个示例中,服务器120连接有一个或多个数据库130,用户通过控制终端110向服务器120发送提问请求,服务器120在接收到提问请求后,从数据库130中查询对应的数据,得到回复结果,并将回复结果回传至终端110。其中,数据库130可以是和服务器120集成设置的,也可以是和服务器120分离设置的,本申请对此不进行限定。
需要说明的是,本申请实施例提供的数据库问答方法,各步骤的执行主体可以是终端110,如终端110中安装运行的应用程序的客户端,也可以是服务器120,或者由终端110和服务器120交互配合执行,即将方法的一部分步骤交由终端110执行而另一部分步骤则交由服务器120执行。
请参阅图2,图2是本申请的一示例性实施例示出的数据库问答方法的流程图。该数据库问答方法可以应用于图1所示的实施环境,并由该实施环境中的服务器具体执行。应理解的是,该方法也可以适用于其它的示例性实施环境,并由其它实施环境中的设备具体执行,本实施例不对该方法所适用的实施环境进行限制。
如图2所示,数据库问答方法至少包括步骤S210至步骤S240,详细介绍如下:
步骤S210:响应于接收到的提问请求,确定提问请求对应的待查询数据库。
其中,提问请求可以是终端向服务器发送的。
例如,服务器控制终端向用户展示问答页面,用户在问答页面输入对应的提问内容,终端根据用户输入的提问内容,生成含有该提问内容的提问请求,并将提问请求发送给服务器。
需要说明的是,若用户输入的提问内容为文本,则直接生成含有提问内容的提问请求;若用户输入的提问内容不是文本,如图像、音频等非文本数据,则可以将非文本数据转换为文本数据,如图像语义识别、音频转文本等处理,得到文本数据,再生成含有这些文本数据的提问请求。
确定提问请求对应的待查询数据库,其中,待查询数据库的数量可以是一个或多个。
示例性地,可以是预先设定的待查询数据库,即所有提问请求对应相同的待查询数据库。
示例性地,还可以是根据具体应用场景灵活确定提问请求对应的待查询数据库。
例如,对提问请求进行关键词提取,得到提问关键词,根据提问关键词确定提问请求与各个候选数据库之间的匹配度,将匹配度大于匹配度阈值的候选数据库作为待查询数据库。其中,可以是每个候选数据库对应标记有数据库描述文本,该数据库描述文本用于说明候选数据库存储的数据的特征,通过计算提问关键词和数据库描述文本之间的相似度,得到提问请求与候选数据库之间的匹配度。
又例如,还可以通过获取发起提问请求对应的问答页面的页面类型,查询与页面类型匹配的候选数据库,得到待查询数据库。本申请不对待查询数据库的确定方式进行限定。
步骤S220:获取待查询数据库的算子集合;其中,算子集合中的每个算子分别与待查询数据库的数据查询功能对应。
每个数据库对应有算子集合,算子集合含有多个算子,每个算子分别与数据库的数据查询功能对应。
需要说明的是,本申请中的数据库均为结构化数据库,其用于存储结构化数据。
示例性地,获取待查询数据库的数据查询功能,然后对数据查询功能进行功能拆分,得到多个子功能,每个子功能对应一个算子。
其中,数据查询功能可以是根据待查询数据库含有的表格数据确定的,不同的表格数据在实际应用中对应不同的数据查询功能。对数据查询功能进行功能拆分时,可以案子最小功能进行拆分,如拆分得到的子功能包括:过滤、计数、排序、找出前k大数据(topk)、聚合、分组运算等,每个子功能对应不同的算子,该算子即为实现该子功能的数据库查询语句。
需要说明的是,除了上述举例的子功能对应的算子之外,用户还可以自定义算子以满足特征场景的需求,保证数据库查询的可拓展性。
步骤S230:从算子集合选取出与提问请求匹配的算子,并对每个匹配的算子进行组合,得到数据库查询语句。
不同的提问请求存在不同的数据库查询需求,通过对提问请求进行分析确定数据库查询需求,然后从算子集合中选取出与数据库查询需求对应的算子,得到与提问请求匹配的算子,然后再根据数据库查询需求确定各个匹配的算子之间的组合方式,以对每个匹配的算子进行组合,得到数据库查询语句。
其中,数据库查询需求的分析可以通过关键词提取、语义分析等,且可以通过为各个算子标注对应的算子功能描述的方式,计算得到各个算子与数据库查询需求之间的匹配程度,算子功能描述用于说明算子的功能、使用方法等。
通过从算子集合选取出与所述提问请求匹配的算子,并对每个匹配的算子进行组合,得到数据库查询语句。
需要强调的是,相较于相关技术中直接生成数据库查询语句,本申请中算子集合中的多个算子之间可以组合使用,以完成更多的数据库查询业务,提高了数据库查询过程中的可拓展性和灵活性,可以满足不同需求场景的要求,且生成的数据库查询语句指令清晰、目标明确,可以提高查询结果的准确性,降低了缺少关键字、拼写错误等语法错误现象的发生。
步骤S240:利用数据库查询语句对待查询数据库进行查询,得到提问请求对应的回复结果。
调用组合得到的数据库查询语句对待查询数据库进行查询,得到待查询数据库反馈的查询结果,然后基于查询结果生成提问请求对应的回复结果。
接下来对本申请的部分实施例进行详细说明。
在一些实施方式中,步骤S230中从算子集合选取出与提问请求匹配的算子,对每个匹配的算子进行组合,得到数据库查询语句,包括:获取算子集合对应的算子功能描述;将提问请求和算子功能描述填充至预设的提问指令模板中,得到算子调用指令;将算子调用指令输入至训练完成的数据库查询模型中确定与提问请求匹配的算子,并对每个匹配的算子进行组合,得到数据库查询模型输出的数据库查询语句。
对部分算子的算子功能描述进行举例,括号内的为算子功能描述:
1. filter_value(df: pd.DataFrame, column: str, operation: str, value:Any) ->pd.DataFrame;
2. filter_between(df: pd.DataFrame, column: str, start: Any, end:Any) ->pd.DataFrame;
3. filter_date_between(df: pd.DataFrame, time_column: str, start:str, end: str) ->pd.DataFrame;
4. count(df: pd.DataFrame) ->pd.DataFrame;
5. value_counts(df: pd.DataFrame, column: str) ->pd.DataFrame;
6. value_percentage(df: pd.DataFrame, column: str) ->pd.DataFrame;
7. period_value_counts(df: pd.DataFrame, time_column: str, time_freq:str, column: str) ->pd.DataFrame;
8. sort(df: pd.DataFrame, column: str, ascending: bool = True) ->pd.DataFrame;
9. aggregate(df: pd.DataFrame, column: str, aggregate_type: str) ->pd.DataFrame;
10. top_k(df: pd.DataFrame, column: str, k: int) ->pd.DataFrame。
上述各个算子的详细说明请参见下述表格1:
表格1
然后,将提问请求以及算子功能描述均填充至预设的提问指令模板中,以得到算子调用指令,再将算子调用指令输入至训练完成的数据库查询模型中,数据库查询模型基于输入的算子调用指令确定与提问请求匹配的算子,以及确定各个匹配的算子之间的组合方式,按照组合方式对每个匹配的算子进行组合,得到数据库查询模型输出的数据库查询语句。
在一些实施方式中,数据库查询模型是对大语言模型进行训练后得到的,数据库查询模型的训练步骤包括:获取指令样本;其中,指令样本含有提问请求样本和提问请求样本对应的算子集合样本,且指令样本对应有样本标签,样本标签用于标记提问请求样本对应的数据库查询语句;将指令样本输入至待训练的大语言模型中,得到大语言模型输出的查询语句预测结果;利用查询语句预测结果和指令样本对应的样本标签,计算模型训练损失值;基于训练损失值调整待训练的大语言模型,得到训练完成的数据库查询模型。
通过对大语言模型进行训练,可以使得训练完成的数据库查询模型具备较强的语言建模能力。
举例说明,大语言模型的模型结构参数可以参见表格2:
表格2
需要说明的是,表格2中的模型结构参数仅是举例说明,实际应用场景中可以根据具体情况进行灵活调整,本申请对此不进行限定。
在一些实施方式中,还可以获取待查询数据库中数据表信息;将数据表信息、提问请求和算子功能描述填充至预设的提问指令模板中,得到算子调用指令。
其中,数据表信息是指待查询数据库中的各个数据表的信息。
示例性地,获取待查询数据库中数据表信息,包括:针对待查询数据库中的每一数据表,提取数据表的字段名称及字段功能描述,得到数据表的字段信息;结合每个字段信息,得到待查询数据库中数据表信息。
以事件识别场景进行举例说明,待查询数据库中的事件记录数据表可以参见下述表格3:
表格3
根据表格3中各个字段的字段名称和字段功能描述,将事件记录数据表转换为对应的字段信息,再根据每个字段信息得到该事件记录数据表的数据表信息,其可以包括:
字段1:event_receipt_no,每个事件对应一个事件编号;
字段2:event_status,事件的处理状态;
字段3:event_type,事件的类型;
字段4:event_time,检测到事件的时间;
字段5:event_address,事件发生的地址信息;
字段6:is_valid,事件是否真实发生。
需要说明的是,上述数据表信息的具体内容仅是示例性说明,在实际应用过程中数据表可以含有更多或更少的字段,且数据表的数量可以是一个或多个,本申请对此不进行限定。
在一些实施方式中,还可以查询与提问请求匹配的问答示例样本;其中,问答示例样本含有提问示例和提问示例对应的输出示例;将问答示例样本、提问请求和算子功能描述填充至预设的提问指令模板中,得到算子调用指令。
其中,问答示例样本含有提问示例和提问示例对应的输出示例,其用于引导和约束数据库查询模型的输出,提高输出的数据库查询语句的准确性。
示例性地,问答示例样本中的提问示例可以是具体的问题、问题的上下文、问题相关的背景信息等,输出示例可以是对应的数据库查询语句、匹配的算子等。以事件查询场景为例,对问答示例样本进行举例说明,具体参见表格4:
表格4
需要说明的是,问答示例样本可以是预设设定的,也可以是对历史数据库问答数据进行记录得到的,本申请对此不进行限定。
问答示例样本与提问请求中的用户问题越相似,则数据库查询模型输出的结果越准确,因此问答示例样本通过相似匹配的方式得到。
示例性地,查询提问请求匹配的问答示例样本,包括:对提问请求进行编码处理,得到提问请求对应的请求向量;以及,获取示例样本集合,示例样本集合中含有多个问答示例样本和每个问答示例样本分别对应的样本向量;计算请求向量与样本向量之间的向量距离;将向量距离满足预设条件的问答示例样本作为与提问请求匹配的问答示例样本。
具体地,将提问请求、问答示例样本库中的问答示例样本编码为向量后,计算提问请求对应的请求向量与各问答示例样本对应的样本向量间的向量距离(如余弦距离、欧式距离等),将向量距离满足预设条件的问答示例样本作为与提问请求匹配的问答示例样本。
示例性地,满足预设条件的问答示例样本可以为:向量距离小于距离阈值的问答示例样本;按照向量距离的大小对问答示例样本进行排序后,序号靠前的若干个问答示例样本,本如使用KDTree算法求取提问请求的最近邻向量,得到与提问请求匹配的问答示例样本。
可选地,距离阈值可以根据问答示例样本的数量、提问请求对应的用户设定的答复准确等级等确定。例如,问答示例样本的数量越多,则距离阈值越高;问答示例样本的数量越少,则距离阈值越低,以提高问答示例样本的选取准确性。
通过问答示例样本指导模型输出,降低模型对人力标注的依赖,可以使回复结果确定性更改高,从而控制模型输出更符合预期,具有良好的可控性。
在一些实施方式中,还可以将问答示例样本、数据表信息、提问请求和算子功能描述均填充至预设的提问指令模板中,得到算子调用指令。
例如,请参阅图3,图3为本申请一示例性实施例示出的对提问指令模板进行填充的示意图,如图3所示,该提问指令模板含有数据表信息填充区域、算子功能描述填充区域、问答示例样本填充区域和提问请求填充区域,对各个区域进行填充后,得到算子调用指令。
通过将算子调用指令输入至训练完成的数据库查询模型,使得数据库查询模型基于算子调用指令确定当前的提问请求匹配的算子、各个算子的组合方式、各个算子的具体参数等,最终得到数据库查询模型输出的数据库查询语句。
得到数据库查询语句后,按照数据库查询语句对待查询数据库进行查询,可以直接将初始查询结果作为回复结果进行显示,也可以对初始查询结果进一步进行处理,以得到用户便于阅读理解的回复结果,提高用户体验。
在一些实施方式中,步骤S240中利用数据库查询语句对待查询数据库进行查询,得到提问请求对应的回复结果,包括:利用数据库查询语句对待查询数据库进行查询,得到初始查询结果;将初始查询结果和提问请求填充至预设的回复模板中,得到回复结果。
具体地,可以将回复模板输入至训练完成的回复生成模型中,回复生成模型基于回复模板输出对应的回复结果。其中,回复生成模型可以和数据库查询模型,均是由大语言模型训练得到,回复生成模型和数据库查询模型可以聚合为一个模型,也可以分离为两个模型,本申请对此不进行限定。
例如,请参阅图4,图4为本申请一示例性实施例示出的对回复模板进行填充的示意图,如图4所示,回复模板含有初始查询结果填充区域和提问请求填充区域,对各个区域进行填充后,得到填充结果,将填充结果输入至回复生成模型,得到回复生成模型输出的回复结果。
以一具体应用场景进行举例说明:
请参阅图5,图5为本申请一示例性实施例示出的数据库问答的示意图,如图5所示,用户侧的终端显示有问答页面,用户向该问答页面输入问题并点击发送,终端基于用户输入的问题向服务器发送对应的提问请求。服务器部署有基于大语言模型训练得到的数据库查询模型,数据库查询模型从问答示例样本库中选取出与提问请求中的用户问题匹配的问答示例样本,然后结合问答示例样本、待查询数据库的算子集合的算子功能描述、待查询数据库的数据表信息和提问请求填充至提问指令模板中,得到算子调用指令,数据库查询模型根据输入的算子调用指令选取出与提问请求匹配的算子,并对每个匹配的算子进行组合,得到数据库查询语句,确定数据库查询语句。然后,根据数据库查询语句对待查询数据库进行查询,得到初始查询结果。最后将初始查询结果再次输入至数据库查询模型中,得到最终的回复结果。终端接收到服务器反馈的回复结果,在问答页面中对回复结果进行显示。
本申请提供的数据库问答方法,通过响应于接收到的提问请求,确定提问请求对应的待查询数据库;获取待查询数据库的算子集合;其中,算子集合中的每个算子分别与待查询数据库的数据查询功能对应;从算子集合选取出与提问请求匹配的算子,并对每个匹配的算子进行组合,得到数据库查询语句;利用数据库查询语句对待查询数据库进行查询,得到提问请求对应的回复结果,将算子集合中的多个算子进行组合使用,以完成更多的数据库查询业务,提高了数据库查询过程中的可拓展性和灵活性,可以满足不同需求场景的要求,并使得数据库交互的过程更可控、更准确、更安全。
图6是本申请的一示例性实施例示出的数据库问答装置的框图。如图6所示,该示例性的数据库问答装置600包括:请求响应模块610、算子获取模块620、算子组合模块630和查询模块640。具体地:
请求响应模块610,用于响应于接收到的提问请求,确定提问请求对应的待查询数据库;
算子获取模块620,用于获取待查询数据库的算子集合;其中,算子集合中的每个算子分别与待查询数据库的数据查询功能对应;
算子组合模块630,用于从算子集合选取出与提问请求匹配的算子,并对每个匹配的算子进行组合,得到数据库查询语句;
查询模块640,用于利用数据库查询语句对待查询数据库进行查询,得到提问请求对应的回复结果。
需要说明的是,上述实施例所提供的数据库问答装置与上述实施例所提供的数据库问答方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的数据库问答装置在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处不对此进行限制。
请参阅图7,图7是本申请电子设备一实施例的结构示意图。电子设备700包括存储器701和处理器702,处理器702用于执行存储器701中存储的程序指令,以实现上述任一数据库问答方法实施例中的步骤。在一个具体的实施场景中,电子设备700可以包括但不限于:微型计算机、服务器,此外,电子设备700还可以包括笔记本电脑、平板电脑等移动设备,在此不做限定。
具体而言,处理器702用于控制其自身以及存储器701以实现上述任一数据库问答方法实施例中的步骤。处理器702还可以称为中央处理单元(Central Processing Unit,CPU)。处理器702可能是一种集成电路芯片,具有信号的处理能力。处理器702还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器702可以由集成电路芯片共同实现。
请参阅图8,图8是本申请计算机可读存储介质一实施例的结构示意图。计算机可读存储介质800存储有能够被处理器运行的程序指令810,程序指令810用于实现上述任一数据库问答方法实施例中的步骤。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (10)
1.一种数据库问答方法,其特征在于,所述方法包括:
响应于接收到的提问请求,确定所述提问请求对应的待查询数据库;
获取所述待查询数据库的算子集合;其中,所述算子集合中的每个算子分别与所述待查询数据库的数据查询功能对应;
从所述算子集合选取出与所述提问请求匹配的算子,并对每个匹配的算子进行组合,得到数据库查询语句;
利用所述数据库查询语句对所述待查询数据库进行查询,得到所述提问请求对应的回复结果。
2.根据权利要求1所述的方法,其特征在于,所述从所述算子集合选取出与所述提问请求匹配的算子,并对每个匹配的算子进行组合,得到数据库查询语句,包括:
获取所述算子集合对应的算子功能描述;
将所述提问请求和所述算子功能描述填充至预设的提问指令模板中,得到算子调用指令;
将所述算子调用指令输入至训练完成的数据库查询模型中确定与所述提问请求匹配的算子,并对每个匹配的算子进行组合,得到所述数据库查询模型输出的数据库查询语句。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取所述待查询数据库中数据表信息;
所述将所述提问请求和所述算子功能描述填充至预设的提问指令模板中,得到算子调用指令,包括:
将所述数据表信息、所述提问请求和所述算子功能描述填充至预设的提问指令模板中,得到算子调用指令。
4.根据权利要求3所述的方法,其特征在于,所述获取所述待查询数据库中数据表信息,包括:
针对所述待查询数据库中的每一数据表,提取所述数据表的字段名称及字段功能描述,得到所述数据表的字段信息;
结合每个字段信息,得到所述待查询数据库中数据表信息。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
查询与所述提问请求匹配的问答示例样本;其中,所述问答示例样本含有提问示例和所述提问示例对应的输出示例;
所述将所述提问请求和所述算子功能描述填充至预设的提问指令模板中,得到算子调用指令,包括:
将所述问答示例样本、所述提问请求和所述算子功能描述填充至预设的提问指令模板中,得到算子调用指令。
6.根据权利要求5所述的方法,其特征在于,所述查询与所述提问请求匹配的问答示例样本,包括:
对所述提问请求进行编码处理,得到所述提问请求对应的请求向量;以及,获取示例样本集合,所述示例样本集合中含有多个问答示例样本和每个问答示例样本分别对应的样本向量;
计算所述请求向量与所述样本向量之间的向量距离;
将向量距离满足预设条件的问答示例样本作为与所述提问请求匹配的问答示例样本。
7.根据权利要求2所述的方法,其特征在于,所述数据库查询模型是对大语言模型进行训练后得到的,所述数据库查询模型的训练步骤包括:
获取指令样本;其中,所述指令样本含有提问请求样本和所述提问请求样本对应的算子集合样本,且所述指令样本对应有样本标签,所述样本标签用于标记所述提问请求样本对应的数据库查询语句;
将所述指令样本输入至待训练的大语言模型中,得到所述大语言模型输出的查询语句预测结果;
利用所述查询语句预测结果和所述指令样本对应的样本标签,计算模型训练损失值;
基于所述训练损失值调整所述待训练的大语言模型,得到所述训练完成的数据库查询模型。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述利用所述数据库查询语句对所述待查询数据库进行查询,得到所述提问请求对应的回复结果,包括:
利用所述数据库查询语句对所述待查询数据库进行查询,得到初始查询结果;
将所述初始查询结果和所述提问请求填充至预设的回复模板中,得到回复结果。
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,处理器用于执行存储器中存储的程序指令,以实现如权利要求1-8任一项所述方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序指令,所述程序指令能够被处理器执行以实现如权利要求1-8任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410143425.1A CN117708304B (zh) | 2024-02-01 | 2024-02-01 | 数据库问答方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410143425.1A CN117708304B (zh) | 2024-02-01 | 2024-02-01 | 数据库问答方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117708304A true CN117708304A (zh) | 2024-03-15 |
CN117708304B CN117708304B (zh) | 2024-05-28 |
Family
ID=90162715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410143425.1A Active CN117708304B (zh) | 2024-02-01 | 2024-02-01 | 数据库问答方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117708304B (zh) |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101044479A (zh) * | 2004-08-11 | 2007-09-26 | 甲骨文国际有限公司 | 用于关系数据库系统中基于本体的语义匹配的系统 |
CN102073644A (zh) * | 2009-11-19 | 2011-05-25 | 华为技术有限公司 | 一种查询数据库的方法、服务器及系统 |
JP2016001242A (ja) * | 2014-06-11 | 2016-01-07 | 日本電信電話株式会社 | 質問文生成方法、装置、及びプログラム |
CN111339246A (zh) * | 2020-02-10 | 2020-06-26 | 腾讯云计算(北京)有限责任公司 | 查询语句模板的生成方法、装置、设备及介质 |
WO2021017721A1 (zh) * | 2019-08-01 | 2021-02-04 | 平安科技(深圳)有限公司 | 智能问答方法、装置、介质及电子设备 |
CN112437917A (zh) * | 2018-07-25 | 2021-03-02 | 甲骨文国际公司 | 使用自主代理和词库的数据库的自然语言接口 |
CN113254619A (zh) * | 2021-06-21 | 2021-08-13 | 北京沃丰时代数据科技有限公司 | 针对用户询问的自动答复方法、装置和电子设备 |
CN113867953A (zh) * | 2021-09-27 | 2021-12-31 | 浙江大华技术股份有限公司 | 一种资源分配方法、装置、存储介质和电子设备 |
WO2022003762A1 (ja) * | 2020-06-29 | 2022-01-06 | 日本電信電話株式会社 | 質問応答装置、質問応答方法及び質問応答プログラム |
WO2022105122A1 (zh) * | 2020-11-17 | 2022-05-27 | 平安科技(深圳)有限公司 | 基于人工智能的答案生成方法、装置、计算机设备及介质 |
CN114579606A (zh) * | 2022-05-05 | 2022-06-03 | 阿里巴巴达摩院(杭州)科技有限公司 | 预训练模型数据处理方法、电子设备及计算机存储介质 |
CN114996554A (zh) * | 2022-06-07 | 2022-09-02 | 北京金堤科技有限公司 | 数据库的查询方法、装置、存储介质及电子设备 |
CN115934097A (zh) * | 2022-12-08 | 2023-04-07 | 浙江大华技术股份有限公司 | 生成可执行语句的方法、装置、存储介质及电子装置 |
CN116089578A (zh) * | 2022-12-20 | 2023-05-09 | 长城信息股份有限公司 | 智能问答数据自动标注方法、系统及存储介质 |
CN116595026A (zh) * | 2023-04-17 | 2023-08-15 | 阿里巴巴(中国)有限公司 | 信息查询方法 |
CN116991869A (zh) * | 2023-07-24 | 2023-11-03 | 北京泰策科技有限公司 | 一种基于nlp语言模型自动生成数据库查询语句的方法 |
US20230359615A1 (en) * | 2022-05-09 | 2023-11-09 | Data.World, Inc. | Auxiliary query commands to deploy predictive data models for queries in a networked computing platform |
-
2024
- 2024-02-01 CN CN202410143425.1A patent/CN117708304B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101044479A (zh) * | 2004-08-11 | 2007-09-26 | 甲骨文国际有限公司 | 用于关系数据库系统中基于本体的语义匹配的系统 |
CN102073644A (zh) * | 2009-11-19 | 2011-05-25 | 华为技术有限公司 | 一种查询数据库的方法、服务器及系统 |
JP2016001242A (ja) * | 2014-06-11 | 2016-01-07 | 日本電信電話株式会社 | 質問文生成方法、装置、及びプログラム |
CN112437917A (zh) * | 2018-07-25 | 2021-03-02 | 甲骨文国际公司 | 使用自主代理和词库的数据库的自然语言接口 |
WO2021017721A1 (zh) * | 2019-08-01 | 2021-02-04 | 平安科技(深圳)有限公司 | 智能问答方法、装置、介质及电子设备 |
CN111339246A (zh) * | 2020-02-10 | 2020-06-26 | 腾讯云计算(北京)有限责任公司 | 查询语句模板的生成方法、装置、设备及介质 |
WO2022003762A1 (ja) * | 2020-06-29 | 2022-01-06 | 日本電信電話株式会社 | 質問応答装置、質問応答方法及び質問応答プログラム |
WO2022105122A1 (zh) * | 2020-11-17 | 2022-05-27 | 平安科技(深圳)有限公司 | 基于人工智能的答案生成方法、装置、计算机设备及介质 |
CN113254619A (zh) * | 2021-06-21 | 2021-08-13 | 北京沃丰时代数据科技有限公司 | 针对用户询问的自动答复方法、装置和电子设备 |
CN113867953A (zh) * | 2021-09-27 | 2021-12-31 | 浙江大华技术股份有限公司 | 一种资源分配方法、装置、存储介质和电子设备 |
CN114579606A (zh) * | 2022-05-05 | 2022-06-03 | 阿里巴巴达摩院(杭州)科技有限公司 | 预训练模型数据处理方法、电子设备及计算机存储介质 |
US20230359615A1 (en) * | 2022-05-09 | 2023-11-09 | Data.World, Inc. | Auxiliary query commands to deploy predictive data models for queries in a networked computing platform |
CN114996554A (zh) * | 2022-06-07 | 2022-09-02 | 北京金堤科技有限公司 | 数据库的查询方法、装置、存储介质及电子设备 |
CN115934097A (zh) * | 2022-12-08 | 2023-04-07 | 浙江大华技术股份有限公司 | 生成可执行语句的方法、装置、存储介质及电子装置 |
CN116089578A (zh) * | 2022-12-20 | 2023-05-09 | 长城信息股份有限公司 | 智能问答数据自动标注方法、系统及存储介质 |
CN116595026A (zh) * | 2023-04-17 | 2023-08-15 | 阿里巴巴(中国)有限公司 | 信息查询方法 |
CN116991869A (zh) * | 2023-07-24 | 2023-11-03 | 北京泰策科技有限公司 | 一种基于nlp语言模型自动生成数据库查询语句的方法 |
Non-Patent Citations (3)
Title |
---|
吴友政;赵军;徐波;: "基于无监督学习的问答模式抽取技术", 中文信息学报, no. 02, 25 March 2007 (2007-03-25) * |
周泓, 徐小良, 汪乐宇: "基于模糊算法的数据库查询工具的设计", 计算机应用研究, no. 05, 28 May 2001 (2001-05-28) * |
梁正平;纪震;刘小丽;: "基于语义模板的问答系统研究", 深圳大学学报(理工版), no. 03, 31 July 2007 (2007-07-31) * |
Also Published As
Publication number | Publication date |
---|---|
CN117708304B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162593B (zh) | 一种搜索结果处理、相似度模型训练方法及装置 | |
CN112035599B (zh) | 基于垂直搜索的查询方法、装置、计算机设备及存储介质 | |
CN111324713B (zh) | 对话自动回复方法、装置、存储介质和计算机设备 | |
CN110874401A (zh) | 信息处理方法、模型训练方法、装置、终端及计算设备 | |
CN110543484A (zh) | 提示词的推荐方法及装置、存储介质和处理器 | |
CN115470318A (zh) | 客服问题处理方法及装置 | |
CN110633410A (zh) | 信息处理方法及装置、存储介质、电子装置 | |
CN109033082B (zh) | 语义模型的学习训练方法、装置及计算机可读存储介质 | |
CN110209780B (zh) | 一种问题模板生成方法、装置、服务器及存储介质 | |
CN117609475A (zh) | 基于大模型的问答回复方法、系统、终端及存储介质 | |
CN113626638A (zh) | 短视频推荐处理方法、装置、智能终端及存储介质 | |
CN111104422B (zh) | 一种数据推荐模型的训练方法、装置、设备及存储介质 | |
CN110377721B (zh) | 自动问答方法、装置、存储介质及电子设备 | |
CN117708304B (zh) | 数据库问答方法、设备及存储介质 | |
CN116361428A (zh) | 一种问答召回方法、装置和存储介质 | |
CN112711678A (zh) | 数据解析方法、装置、设备及存储介质 | |
CN113010664B (zh) | 一种数据处理方法、装置及计算机设备 | |
CN110895538A (zh) | 数据检索方法、装置、存储介质和处理器 | |
CN116016421A (zh) | 促进在计算装置中执行的基于媒体的内容共享的方法、计算装置可读存储介质以及计算装置 | |
CN113449094A (zh) | 语料获取方法、装置、电子设备及存储介质 | |
CN113672700A (zh) | 内容项的搜索方法、装置、电子设备以及存储介质 | |
CN111708862A (zh) | 文本匹配方法、装置及电子设备 | |
CN110688472A (zh) | 一种自动筛选问题答案的方法、终端设备及存储介质 | |
CN116578693B (zh) | 一种文本检索方法及装置 | |
CN114756901B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |