本公开的实施方式涉及数据处理领域,更具体地,本公开的实施方式涉及一种数据处理方法、介质、装置和计算设备。
背景技术:
1、本部分旨在为本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
2、目前,商业智能(business intelligence,简称:bi)系统可以向用户提供自动取数操作、数据分析处理、数据可视化等功能。具体地,bi系统支持收集和转换多个来源的数据、数据建模处理、数据分析处理,以及可视化显示数据分析报告,以满足用户的数据请求需求。此外,近年来大语言模型凭借其较高的自然语言理解能力、翻译能力等数据处理能力,受到了广泛的关注。
3、如何准确理解用户的数据请求意图,提高数据请求结果的准确性,是一个亟需解决的问题。
技术实现思路
1、本公开提供一种数据处理方法、介质、装置和计算设备,以提高数据请求结果的准确性。
2、在本公开实施方式的第一方面中,提供了一种数据处理方法,应用于商业智能bi系统,该bi系统包括大语言模型,包括:
3、获取包含有数据请求信息的自然语言问句,以及目标视图的视图元信息,其中,所述目标视图是由所述bi系统所提供的数据模型,对数据库中的物理表进行建模获得的虚拟表,所述目标视图是基于所述自然语言问句的第一意图进行配置获得的;
4、基于数据增强信息,对所述自然语言问句以及所述视图元信息进行检索增强处理,以获得对应的目标提示词信息;
5、将所述目标提示词信息输入至所述大语言模型,以获得对应的结构化查询语言sql语句;
6、依据所述sql语句取得对应于所述数据请求信息的数据请求结果。
7、在一种可能的实现方式中,所述数据增强信息至少包括:
8、由所述bi系统所提供的数据模型所对应的虚拟表中所有字段的字段名称;
9、由所述bi系统所提供的数据模型所对应的虚拟表中各字段对应的字段类型;
10、由所述bi系统所提供的数据模型所对应的虚拟表中各字段下的第一预设数量个字段值。
11、在一种可能的实现方式中,基于数据增强信息,对所述自然语言问句以及所述视图元信息进行检索增强处理,包括:
12、提取所述自然语言问句中的关键词,将所述关键词与所述目标视图下相应字段的字段值进行匹配,以得到所命中的候选字段值;
13、基于所述候选字段值与所述自然语言问句之间的相似度结果,对所述候选字段值进行排序;
14、依据相似度结果由高到低的顺序,选取排名靠前的第二预设数量个候选字段值作为目标字段值,并确定与之对应的目标字段;
15、基于所述目标字段对所述数据增强信息进行缩减,以获得目标数据增强信息,该目标数据增强信息中不包括除所述目标字段以外的字段;
16、将所述自然语言问句、所述视图元信息以及所述目标数据增强信息确定为所述目标提示词信息。
17、在一种可能的实现方式中,所述目标提示词信息还包括:所述自然语言问句所对应的上文问答信息、所述上文问答信息对应的历史提示词信息、所述上文问答信息对应的历史视图的表元信息中的至少一项;所述上文问答信息为所述自然语言问句之前,同一用户发出的历史问句以及历史问句所对应的请求结果;所述表元信息是基于所述历史问句的第二意图进行配置获得的。
18、在一种可能的实现方式中,将所述目标提示词信息输入至所述大语言模型,以获得对应的结构化查询语言sql语句,包括:
19、由所述大语言模型输出第一查询语句;所述第一查询语句为基于伪sql代码形式编写的;
20、确定所述第一查询语句中的第一where条件子句;
21、若确定所述第一where条件子句包括赋值操作符,且所述第一where条件子句指示筛选的第一字段值命中了所述数据增强信息中的至少一个第二字段值,则根据like操作符以及通配符,对所述第一where条件子句进行改写,得到第二where条件子句;其中,所述第二字段值为以所述第一字段值开头的字段值,或者,所述第二字段值为以所述第一字段值结尾的字段值,或者,所述第二字段值为以所述第一字段值作为中间取值的字段值,或者,所述第二字段值为子序列中包括所述第一字段值的字段值;
22、将所述第一查询语句中的第一where条件子句,替换为第二where条件子句,得到第二查询语句;
23、根据所述第二查询语句,确定所述sql语句。
24、在一种可能的实现方式中,根据like操作符以及通配符,对所述第一where条件子句进行改写,得到第二where条件子句,包括:
25、将所述第一where条件子句中的赋值操作符替换为所述like操作符,得到第三where条件子句;
26、若所述第二字段值为以所述第一字段值开头的字段值,则在所述第三where条件子句中的第一字段值的结尾处添加通配符,得到第二where条件子语句;
27、若所述第二字段值为以所述第一字段值结尾的字段值,则在所述第三where条件子句中的第一字段值的开头处添加通配符,得到第二where条件子语句;
28、若所述第二字段值为以所述第一字段值作为中间取值的字段值,则在所述第三where条件子句中的第一字段值的结尾处以及所述第一字段值的开头处分别添加通配符;
29、若所述第二字段值为子序列中包括所述第一字段值的字段值,则在所述第三where条件子句中的第一字段值所包含的字符间隔之间添加通配符,得到第二where条件子语句。
30、在一种可能的实现方式中,所述方法还包括:
31、若确定所述第一where条件子句包括赋值操作符,且所述第一where条件子句指示筛选的第一字段值完全命中了所述数据增强信息中字段值,则确定所述第一查询语句为第二查询语句。
32、在一种可能的实现方式中,所述方法还包括:
33、若确定所述第一where条件子句表征匹配以第一字段值为结尾的字段值,且在所述数据增强信息中不包括以第一字段值为结尾的字段值,则在所述第一where条件子句中的第一字段值的结尾处添加通配符,得到第二where条件子句;
34、若确定所述第一where条件子句表征匹配以第一字段值为开头的字段值,且在所述数据增强信息中不包括以第一字段值为开头的字段值,则在所述第一where条件子句中的第一字段值的开头处添加通配符,得到第二where条件子句。
35、在一种可能的实现方式中,根据所述第二查询语句,确定所述sql语句,包括:
36、根据所述第二查询语句,确定第三查询语句;所述第三查询语句为用于表征所述第二查询语句的第三意图的通用数据查询结构;
37、根据所述第三查询语句,确定所述sql语句;所述sql语句为用于面向数据库中的物理表进行取数操作的查询语句。
38、在一种可能的实现方式中,根据所述第二查询语句,确定第三查询语句,包括:
39、识别所述第二查询语句中的select算子所对应的查询条件和第二where条件子句;所述查询条件包括select算子指示选择的待处理字段,所述待处理字段为大语言模型基于目标提示词信息所得到的;
40、确定所述查询条件所对应的语法树;
41、根据所述语法树,确定所述语法树所对应的第一计算字段;其中,所述第一计算字段包括:所述待处理字段在虚拟表中的字段标识、所述待处理字段的第一处理规则;
42、根据所述第一计算字段和所述第二where条件子句,确定第三查询语句。
43、在一种可能的实现方式中,根据所述第一计算字段和所述第二where条件子句,确定第三查询语句,包括:
44、确定所述第二where条件子句对应的至少一个第二计算字段;所述第二计算字段包括:第二where条件子句指示筛选的第一字段、指示筛选的第一字段所对应的字段值筛选范围;
45、若所述第二计算字段的数量为多个,则根据所述第二where条件子句,确定第二计算字段间的逻辑运算关系;所述逻辑运算关系包括:and运算关系、or运算关系、not运算关系;
46、根据所述第一计算字段、所述第二计算字段以及所述逻辑运算关系,确定第三查询语句。
47、在一种可能的实现方式中,根据所述第一计算字段、所述第二计算字段以及所述逻辑运算关系,确定第三查询语句,包括:
48、若确定在多个第二计算字段中包括多个第三计算字段,且所述多个第三计算字段各自包含的第一字段相同,所述多个第三计算字段两两间的逻辑运算关系为and运算关系,则对所述多个第三计算字段中的第一字段所对应的字段值筛选范围合并处理,得到合并后的第四计算字段;
49、根据所述第四计算字段、所述第二计算字段和所述第一计算字段确定第三查询语句。
50、在一种可能的实现方式中,所述方法还包括:
51、根据所述第三查询语句,输出自然语言形式的描述信息;其中,所述描述信息用于对所述第二查询语句的第三意图作出解释。
52、在一种可能的实现方式中,所述方法还包括:
53、响应于针对所述描述信息的第一调整请求,显示与所述描述信息所对应的多个筛选项;所述第一调整请求表征需要对第三意图进行调整;所述筛选项用于指示所述第二查询语句指示处理的字段以及所述字段的第二处理规则;所述第二处理规则包括以下至少一项:字段所对应的字段取值的排序规则、字段所对应的字段取值的分组规则、字段所对应的取值规则;
54、响应于针对所述筛选项的第二调整请求,调整所述第三查询语句,得到调整后的第三查询语句;所述第二调整请求用于指示调整所述筛选项所指示的内容;
55、基于所述调整后的第三查询语句,确定调整后的sql语句。
56、在一种可能的实现方式中,所述数据请求结果的输出形式包括以下中的至少一种:图表、报表以及数据值。
57、在本公开实施方式的第二方面中,提供了一种数据处理装置,应用于商业智能bi系统,该bi系统包括大语言模型,包括:
58、获取单元,用于获取包含有数据请求信息的自然语言问句,以及目标视图的视图元信息,其中,所述目标视图是由所述bi系统所提供的数据模型,对数据库中的物理表进行建模获得的虚拟表,所述目标视图是基于所述自然语言问句的第一意图进行配置获得的;
59、第一处理单元,用于基于数据增强信息,对所述自然语言问句以及所述视图元信息进行检索增强处理,以获得对应的目标提示词信息;
60、第二处理单元,用于将所述目标提示词信息输入至所述大语言模型,以获得对应的结构化查询语言sql语句;
61、第三处理单元,用于依据所述sql语句取得对应于所述数据请求信息的数据请求结果。
62、在一种可能的实现方式中,所述数据增强信息至少包括:
63、由所述bi系统所提供的数据模型所对应的虚拟表中所有字段的字段名称;
64、由所述bi系统所提供的数据模型所对应的虚拟表中各字段对应的字段类型;
65、由所述bi系统所提供的数据模型所对应的虚拟表中各字段下的第一预设数量个字段值。
66、在一种可能的实现方式中,第一处理单元,包括:
67、提取模块,用于提取所述自然语言问句中的关键词;
68、匹配模块,用于将所述关键词与所述目标视图下相应字段的字段值进行匹配,以得到所命中的候选字段值;
69、排序模块,用于基于所述候选字段值与所述自然语言问句之间的相似度结果,对所述候选字段值进行排序;
70、第一确定模块,用于依据相似度结果由高到低的顺序,选取排名靠前的第二预设数量个候选字段值作为目标字段值,并确定与之对应的目标字段;
71、处理模块,用于基于所述目标字段对所述数据增强信息进行缩减,以获得目标数据增强信息,该目标数据增强信息中不包括除所述目标字段以外的字段;
72、第二确定模块,用于将所述自然语言问句、所述视图元信息以及所述目标数据增强信息确定为所述目标提示词信息。
73、在一种可能的实现方式中,所述目标提示词信息还包括:所述自然语言问句所对应的上文问答信息、所述上文问答信息对应的历史提示词信息、所述上文问答信息对应的历史视图的表元信息中的至少一项;所述上文问答信息为所述自然语言问句之前,同一用户发出的历史问句以及历史问句所对应的请求结果;所述表元信息是基于所述历史问句的第二意图进行配置获得的。
74、在一种可能的实现方式中,第二处理单元,包括:
75、输出模块,用于由所述大语言模型输出第一查询语句;所述第一查询语句为基于伪sql代码形式编写的;
76、第三确定模块,用于确定所述第一查询语句中的第一where条件子句;
77、第一改写模块,用于若确定所述第一where条件子句包括赋值操作符,且所述第一where条件子句指示筛选的第一字段值命中了所述数据增强信息中的至少一个第二字段值,则根据like操作符以及通配符,对所述第一where条件子句进行改写,得到第二where条件子句;其中,所述第二字段值为以所述第一字段值开头的字段值,或者,所述第二字段值为以所述第一字段值结尾的字段值,或者,所述第二字段值为以所述第一字段值作为中间取值的字段值,或者,所述第二字段值为子序列中包括所述第一字段值的字段值;
78、替换模块,用于将所述第一查询语句中的第一where条件子句,替换为第二where条件子句,得到第二查询语句;
79、第四确定模块,用于根据所述第二查询语句,确定所述sql语句。
80、在一种可能的实现方式中,第一改写模块,具体用于:
81、将所述第一where条件子句中的赋值操作符替换为所述like操作符,得到第三where条件子句;
82、若所述第二字段值为以所述第一字段值开头的字段值,则在所述第三where条件子句中的第一字段值的结尾处添加通配符,得到第二where条件子语句;
83、若所述第二字段值为以所述第一字段值结尾的字段值,则在所述第三where条件子句中的第一字段值的开头处添加通配符,得到第二where条件子语句;
84、若所述第二字段值为以所述第一字段值作为中间取值的字段值,则在所述第三where条件子句中的第一字段值的结尾处以及所述第一字段值的开头处分别添加通配符;
85、若所述第二字段值为子序列中包括所述第一字段值的字段值,则在所述第三where条件子句中的第一字段值所包含的字符间隔之间添加通配符,得到第二where条件子语句。
86、在一种可能的实现方式中,所述装置还包括:
87、第五确定模块,用于若确定所述第一where条件子句包括赋值操作符,且所述第一where条件子句指示筛选的第一字段值完全命中了所述数据增强信息中字段值,则确定所述第一查询语句为第二查询语句。
88、在一种可能的实现方式中,所述装置还包括:
89、第二改写模块,用于若确定所述第一where条件子句表征匹配以第一字段值为结尾的字段值,且在所述数据增强信息中不包括以第一字段值为结尾的字段值,则在所述第一where条件子句中的第一字段值的结尾处添加通配符,得到第二where条件子句;
90、第三改写模块,用于若确定所述第一where条件子句表征匹配以第一字段值为开头的字段值,且在所述数据增强信息中不包括以第一字段值为开头的字段值,则在所述第一where条件子句中的第一字段值的开头处添加通配符,得到第二where条件子句。
91、在一种可能的实现方式中,第四确定模块,具体用于:
92、根据所述第二查询语句,确定第三查询语句;所述第三查询语句为用于表征所述第二查询语句的第三意图的通用数据查询结构;
93、根据所述第三查询语句,确定所述sql语句;所述sql语句为用于面向数据库中的物理表进行取数操作的查询语句。
94、在一种可能的实现方式中,第四确定模块,具体用于:
95、识别所述第二查询语句中的select算子所对应的查询条件和第二where条件子句;所述查询条件包括select算子指示选择的待处理字段,所述待处理字段为大语言模型基于目标提示词信息所得到的;
96、确定所述查询条件所对应的语法树;
97、根据所述语法树,确定所述语法树所对应的第一计算字段;其中,所述第一计算字段包括:所述待处理字段在虚拟表中的字段标识、所述待处理字段的第一处理规则;
98、根据所述第一计算字段和所述第二where条件子句,确定第三查询语句。
99、在一种可能的实现方式中,第四确定模块,具体用于:
100、确定所述第二where条件子句对应的至少一个第二计算字段;所述第二计算字段包括:第二where条件子句指示筛选的第一字段、指示筛选的第一字段所对应的字段值筛选范围;
101、若所述第二计算字段的数量为多个,则根据所述第二where条件子句,确定第二计算字段间的逻辑运算关系;所述逻辑运算关系包括:and运算关系、or运算关系、not运算关系;
102、根据所述第一计算字段、所述第二计算字段以及所述逻辑运算关系,确定第三查询语句。
103、在一种可能的实现方式中,第四确定模块,具体用于:
104、若确定在多个第二计算字段中包括多个第三计算字段,且所述多个第三计算字段各自包含的第一字段相同,所述多个第三计算字段两两间的逻辑运算关系为and运算关系,则对所述多个第三计算字段中的第一字段所对应的字段值筛选范围合并处理,得到合并后的第四计算字段;
105、根据所述第四计算字段、所述第二计算字段和所述第一计算字段确定第三查询语句。
106、在一种可能的实现方式中,第四确定模块,还用于:
107、根据所述第三查询语句,输出自然语言形式的描述信息;其中,所述描述信息用于对所述第二查询语句的第三意图作出解释。
108、在一种可能的实现方式中,所述装置还包括:
109、第一显示模块,用于响应于针对所述描述信息的第一调整请求,显示与所述描述信息所对应的多个筛选项;所述第一调整请求表征需要对第三意图进行调整;所述筛选项用于指示所述第二查询语句指示处理的字段以及所述字段的第二处理规则;所述第二处理规则包括以下至少一项:字段所对应的字段取值的排序规则、字段所对应的字段取值的分组规则、字段所对应的取值规则;
110、调整模块,用于响应于针对所述筛选项的第二调整请求,调整所述第三查询语句,得到调整后的第三查询语句;所述第二调整请求用于指示调整所述筛选项所指示的内容;
111、第六确定模块,用于基于所述调整后的第三查询语句,确定调整后的sql语句。
112、在一种可能的实现方式中,所述数据请求结果的输出形式包括以下中的至少一种:图表、报表以及数据值。
113、在本公开实施方式的第三方面中,提供了一种计算机可读存储介质,包括:所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如第一方面任一项所述的方法。
114、在本公开实施方式的第四方面中,提供了一种计算设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述计算设备执行第一方面中任一项所述的方法。
115、根据本公开实施方式的数据处理方法、介质、装置和计算设备,通过所接收到的自然语言问句以及视图元信息进行检索增强处理,提高了输入至大语言模型的输入数据与用户的意图(即,自然语言问句所第一意图)的相关性,以提高模型输出结果的准确性,进一步确保所获取到的数据请求结果符合用户的意图。