本公开涉及计算机,特别是涉及一种组件调用方法、装置、设备及存储介质。
背景技术:
1、随着大语言模型(large language model,llm)技术的不断发展,如何在工程化场景下自动应用大语言模型来解决问题成为技术焦点。大语言模型本身缺乏执行动作或主动获取信息的能力,因此需要借助插件(plugins)来执行标准化的工程任务,如天气查询任务、酒店预定任务。在这一背景下,openai chatgpt推出了插件机制。
2、在实际工程化场景中,往往需要同时启用多个可能具有相似功能的插件。准确识别用户意图并提取相应任务的执行参数信息是一项具有挑战性的技术任务。目前较为成熟产品的技术主要依赖通过llm来识别用户的意图。受到llm模型的意图理解能力,专业场景理解能力和上下文处理长度等因素限制,相关产品难以有效解决多插件场景下的精确插件分发和参数抽取任务,例如,chatgpt目前仅支持同时启用三个插件。
3、因此,针对多插件场景,需要一种更为准确的插件调用方案。
技术实现思路
1、本公开要解决的一个技术问题是,如何设计一种更为准确的插件调用方案。
2、根据本公开的第一个方面,提供了一种组件调用方法,包括:获取组件调用请求和组件集中各个组件的组件信息;针对所述组件调用请求,基于所述组件信息中的至少部分第一组件信息所描述的所述组件是否适于作为分发对象的分发规则进行组件分发,得到第一组件分发结果;若所述第一组件分发结果为所述组件集中不存在命中所述组件调用请求的目标组件,则针对所述组件调用请求,基于所述组件信息中的至少部分第二组件信息通过语义处理进行组件分发,得到第二组件分发结果,所述第二组件信息为与所述组件相关的描述信息。
3、可选地,基于所述组件信息中的至少部分第一组件信息所描述的分发规则进行组件分发,包括:针对所述组件集中的各个组件,若所述组件的组件信息中包括所述第一组件信息,且所述第一组件信息包括优先匹配规则信息,则判断所述组件调用请求在句式上是否与所述组件的优先匹配规则信息中的优先匹配句式匹配,所述优先匹配句式用于表征适于调用所述组件的组件调用请求句式;将所述组件调用请求所匹配的优先匹配句式所对应的组件作为命中所述组件调用请求的目标组件。
4、可选地,在基于至少部分第二组件信息通过语义处理进行组件分发之前,所述方法还包括:若第一组件分发结果为所述组件集不存在命中所述组件调用请求的目标组件,则针对所述组件集中的各个组件,若所述组件的组件信息中包括所述第一组件信息,且所述第一组件信息包括避免匹配规则信息,则判断所述组件调用请求在句式上是否与所述组件的避免匹配规则信息中的避免匹配句式匹配,所述避免匹配句式用于表征不适于调用所述组件的组件调用请求句式;将所述组件调用请求所匹配的避免匹配句式所对应的组件从所述组件集中删除。
5、可选地,所述第二组件信息包括一条或多条第一语句,基于所述组件信息中的至少部分第二组件信息通过语义处理进行组件分发,包括:针对所述组件集中的各个组件,若所述组件的组件信息中包括所述第二组件信息,则计算所述组件的各条所述第一语句与所述组件调用请求的语义相似度;将语义相似度大于或等于第一阈值的第一语句所对应的组件作为命中所述组件调用请求的目标组件。
6、可选地,若多个组件的所述第一语句与所述组件调用请求的语义相似度均大于或等于第一阈值,则将语义相似度最高的一条第一语句所对应的组件作为所述目标组件。
7、可选地,所述方法还包括:若所述组件的任意一条所述第一语句与所述组件调用请求的语义相似度均小于或等于第二阈值,则将所述组件从所述组件集中删除。
8、可选地,所述第一语句为组件调用请求示例或者组件描述语句。
9、可选地,计算所述组件的各条所述第一语句与所述组件调用请求的语义相似度,包括:利用嵌入技术获取所述组件调用请求的第一语义向量;计算所述第一语义向量与向量数据库中各条所述第一语句的第二语义向量之间的相似度,得到所述语义相似度。
10、可选地,所述方法还包括:若所述第二组件分发结果为所述组件集中不存在命中所述组件调用请求的目标组件,则针对所述组件调用请求,利用生成式模型进行组件分发,得到第三组件分发结果。
11、可选地,利用生成式模型进行组件分发,包括:将所述组件集划分为多组第一组件集;针对每组所述第一组件集生成一个第一输入提示,所述第一输入提示用于指示生成式模型针对所述第一组件集进行组件分发以得到第四组件分发结果,所述第四组件分发结果用于表征所述第一组件集中命中所述组件调用请求的候选组件;基于所有候选组件生成第二输入提示,所述第二输入提示用于指示生成式模型针对所有候选组件进行组件分发以得到所述第三组件分发结果。
12、可选地,所述组件为插件中的应用编程接口,将所述组件集划分为多组第一组件集,包括:将属于同一插件的应用编程接口划分到同一组第一组件集。
13、可选地,针对每组所述第一组件集生成一个第一输入提示,包括:基于所述组件调用请求和所述第一组件集中各个组件的组件信息中的至少部分组件描述信息生成所述第一输入提示;以及/或者基于所有候选组件生成第二输入提示,包括:基于所述组件调用请求和所有候选组件的组件信息中的至少部分组件描述信息生成所述第二输入提示。
14、可选地,所述方法还包括:对所述第三组件分发结果进行校准处理,得到第五组件分发结果。
15、可选地,对所述第三组件分发结果进行校准处理,包括:若所述第三组件分发结果为所述组件集中存在命中所述组件调用请求的目标组件,则基于预先设定的二次确认策略判断是否拒绝调用所述目标组件;若所述第三组件分发结果为所述组件集中不存在命中所述组件调用请求的目标组件,则基于预先设定的强制分发策略从所述组件集中选择一个组件作为所述目标组件。
16、可选地,所述方法还包括:基于所述目标组件的组件信息中的至少部分第三组件信息所描述的参数抽取规则进行参数抽取,得到第一抽参结果;若所述第一抽参结果表明存在待抽取参数,则基于所述目标组件的组件信息中的至少部分第四组件信息通过语义处理进行参数抽取,得到第二抽参结果,所述第四组件信息为与所述目标组件的参数相关的描述信息。
17、可选地,所述第三组件信息包括参数抽取规则信息,所述参数抽取规则信息用于定义至少部分待抽取参数的参数值获取规则,基于所述目标组件的至少部分第三组件信息通过抽参规则处理进行参数抽取,包括:基于所述目标组件的参数抽取规则信息所定义的待抽取参数的参数值获取规则,确定所述待抽取参数的参数值。
18、可选地,所述参数抽取规则信息包括默认值获取规则信息,所述默认值获取规则信息包括一个或多个默认值获取规则,每个所述默认值获取规则对应一个第一参数,所述默认值获取规则用于表征所述第一参数的参数值为默认值。
19、可选地,所述参数抽取规则信息包括流程值获取规则信息,所述流程值获取规则信息包括一个或多个流程值获取规则,每个所述流程值获取规则对应一个第二参数,所述流程值获取规则用于表征所述第二参数的参数值为特定流程中的固定片段。
20、可选地,所述参数抽取规则信息包括枚举值获取规则信息,所述枚举值获取规则信息包括一个或多个枚举值获取规则,每个所述枚举值获取规则对应一个第三参数,所述枚举值获取规则用于表征所述第三参数所声明的各个枚举值所对应的组件调用请求中的展示值。
21、可选地,所述第四组件信息包括一个或多个参数描述信息,每个所述参数描述信息对应一个第四参数,所述参数描述信息用于描述所述第四参数,基于所述目标组件的至少部分第四组件信息通过语义处理进行参数抽取,包括:确定所述参数描述信息所描述的第四参数的参数类型;从所述组件调用请求中提取出与所述参数类型相匹配的文本部分;基于所提取的文本部分确定所述第四参数的参数值。
22、可选地,所述第四参数包括时间类型参数和/或实体类型参数。
23、可选地,所述方法还包括:若所述第二抽参结果表明仍存在待抽取参数,则利用生成式模型对所述待抽取参数进行参数抽取,得到第三抽参结果。
24、可选地,利用生成式模型对所述待抽取参数进行参数抽取,包括:基于所述组件调用请求和待抽取参数的描述信息,生成第三输入提示,所述第三输入提示用于指示生成式模型基于所述待抽取参数的描述信息从所述组件调用请求中抽取出所述待抽取参数的参数值;将所述第三输入提示输入生成式模型,得到生成式模型输出的所述待抽取参数的抽参结果。
25、可选地,所述方法还包括:对抽取得到的参数值是否符合格式要求进行校验;对不符合格式要求的参数值进行校准。
26、可选地,所述方法还包括:基于所述目标组件的参数抽取结果生成组件调用信息;基于所述组件调用信息调用所述目标组件。
27、可选地,所述组件调用请求为用户输入的提问信息,所述方法还包括:基于所述目标组件的调用结果生成针对所述提问信息的应答信息。
28、可选地,所述组件为插件,所述组件信息包括插件定义文件;或者所述组件为插件中的应用编程接口,所述组件信息包括接口定义文档。
29、可选地,所述组件信息包括基于拓展后的接口规范对所述组件进行定义得到的定义信息。
30、根据本公开的第二个方面,提供了一种组件调用装置,包括:获取模块,用于获取组件调用请求和组件集中各个组件的组件信息;第一分发模块,用于针对所述组件调用请求,基于所述组件信息中的至少部分第一组件信息所描述的所述组件是否适于作为分发对象的分发规则进行组件分发,得到第一组件分发结果;第二分发模块,用于若所述第一组件分发结果为所述组件集中不存在命中所述组件调用请求的目标组件,则针对所述组件调用请求,基于所述组件信息中的至少部分第二组件信息通过语义处理进行组件分发,得到第二组件分发结果,所述第二组件信息为与所述组件相关的描述信息。
31、可选地,针对所述组件集中的各个组件,若所述组件的组件信息中包括所述第一组件信息,且所述第一组件信息包括优先匹配规则信息,则所述第一分发模块判断所述组件调用请求在句式上是否与所述组件的优先匹配规则信息中的优先匹配句式匹配,并将所述组件调用请求所匹配的优先匹配句式所对应的组件作为命中所述组件调用请求的目标组件,所述优先匹配句式用于表征适于调用所述组件的组件调用请求句式。
32、可选地,所述装置还包括:第一删除模块,在所述第一分发模块基于至少部分第二组件信息通过语义处理进行组件分发之前,若第一组件分发结果为所述组件集不存在命中所述组件调用请求的目标组件,则针对所述组件集中的各个组件,若所述组件的组件信息中包括所述第一组件信息,且所述第一组件信息包括避免匹配规则信息,则所述第一删除模块判断所述组件调用请求在句式上是否与所述组件的避免匹配规则信息中的避免匹配句式匹配,并将所述组件调用请求所匹配的避免匹配句式所对应的组件从所述组件集中删除,所述避免匹配句式用于表征不适于调用所述组件的组件调用请求句式。
33、可选地,所述第二组件信息包括一条或多条第一语句,所述第二分发模块针对所述组件集中的各个组件,若所述组件的组件信息中包括所述第二组件信息,则计算所述组件的各条所述第一语句与所述组件调用请求的语义相似度,并将语义相似度大于或等于第一阈值的第一语句所对应的组件作为命中所述组件调用请求的目标组件。
34、可选地,若多个组件的所述第一语句与所述组件调用请求的语义相似度均大于或等于第一阈值,则所述第二分发模块将语义相似度最高的一条第一语句所对应的组件作为所述目标组件。
35、可选地,所述装置还包括:第二删除模块,用于若所述组件的任意一条所述第一语句与所述组件调用请求的语义相似度均小于或等于第二阈值,则将所述组件从所述组件集中删除。
36、可选地,所述第一语句为组件调用请求示例或者组件描述语句。
37、可选地,所述第二分发模块利用嵌入技术获取所述组件调用请求的第一语义向量,计算所述第一语义向量与向量数据库中各条所述第一语句的第二语义向量之间的相似度,得到所述语义相似度。
38、可选地,所述装置还包括:第三分发模块,用于若所述第二组件分发结果为所述组件集中不存在命中所述组件调用请求的目标组件,则针对所述组件调用请求,利用生成式模型进行组件分发,得到第三组件分发结果。
39、可选地,所述第三分发模块具体用于:将所述组件集划分为多组第一组件集,针对每组所述第一组件集生成一个第一输入提示,所述第一输入提示用于指示生成式模型针对所述第一组件集进行组件分发以得到第四组件分发结果,所述第四组件分发结果用于表征所述第一组件集中命中所述组件调用请求的候选组件;基于所有候选组件生成第二输入提示,所述第二输入提示用于指示生成式模型针对所有候选组件进行组件分发以得到所述第三组件分发结果。
40、可选地,所述组件为插件中的应用编程接口,所述第三分发模块将属于同一插件的应用编程接口划分到同一组第一组件集。
41、可选地,所述第三分发模块基于所述组件调用请求和所述第一组件集中各个组件的组件信息中的至少部分描述信息生成所述第一输入提示;以及/或者所述第三分发模块基于所述组件调用请求和所有候选组件的组件信息中的至少部分组件描述信息生成所述第二输入提示。
42、可选地,所述装置还包括:第一校准模块,用于对所述第三组件分发结果进行校准处理,得到第五组件分发结果。
43、可选地,若所述第三组件分发结果为所述组件集中存在命中所述组件调用请求的目标组件,则所述第一校准模块基于预先设定的二次确认策略判断是否拒绝调用所述目标组件;若所述第三组件分发结果为所述组件集中不存在命中所述组件调用请求的目标组件,则所述第一校准模块基于预先设定的强制分发策略从所述组件集中选择一个组件作为所述目标组件。
44、可选地,所述装置还包括:第一抽取模块,用于基于所述目标组件的组件信息中的至少部分第三组件信息所描述的参数抽取规则进行参数抽取,得到第一抽参结果;第二抽取模块,用于若所述第一抽参结果表明存在待抽取参数,则基于所述目标组件的组件信息中的至少部分第四组件信息通过语义处理进行参数抽取,得到第二抽参结果,所述第四组件信息为与所述目标组件的参数相关的描述信息。
45、可选地,所述第三组件信息包括参数抽取规则信息,所述参数抽取规则信息用于定义至少部分待抽取参数的参数值获取规则,所述第一抽取模块基于所述目标组件的参数抽取规则信息所定义的待抽取参数的参数值获取规则,确定所述待抽取参数的参数值。
46、可选地,所述参数抽取规则信息包括默认值获取规则信息,所述默认值获取规则信息包括一个或多个默认值获取规则,每个所述默认值获取规则对应一个第一参数,所述默认值获取规则用于表征所述第一参数的参数值为默认值。
47、可选地,所述参数抽取规则信息包括流程值获取规则信息,所述流程值获取规则信息包括一个或多个流程值获取规则,每个所述流程值获取规则对应一个第二参数,所述流程值获取规则用于表征所述第二参数的参数值为特定流程中的固定片段。
48、可选地,所述参数抽取规则信息包括枚举值获取规则信息,所述枚举值获取规则信息包括一个或多个枚举值获取规则,每个所述枚举值获取规则对应一个第三参数,所述枚举值获取规则用于表征所述第三参数所声明的各个枚举值所对应的组件调用请求中的展示值。
49、可选地,所述第四组件信息包括一个或多个参数描述信息,每个所述参数描述信息对应一个第四参数,所述参数描述信息用于描述所述第四参数,所述第二抽取模块确定所述参数描述信息所描述的第四参数的参数类型,从所述组件调用请求中提取出与所述参数类型相匹配的文本部分,基于所提取的文本部分确定所述第四参数的参数值。
50、可选地,所述参数类型为时间类型和/或实体类型。
51、可选地,所述装置还包括:第三抽取模块,用于若所述第二抽参结果表明仍存在待抽取参数,则利用生成式模型对所述待抽取参数进行参数抽取,得到第三抽参结果。
52、可选地,所述第三抽取模块基于所述组件调用请求和待抽取参数的描述信息,生成第三输入提示,将所述第三输入提示输入生成式模型,得到生成式模型输出的所述待抽取参数的抽参结果,所述第三输入提示用于指示生成式模型基于所述待抽取参数的描述信息从所述组件调用请求中抽取出所述待抽取参数的参数值。
53、可选地,所述装置还包括:第二校准模块,用于对抽取得到的参数值是否符合格式要求进行校验,并对不符合格式要求的参数值进行校准。
54、可选地,所述装置还包括:调用模块,用于基于所述目标组件的参数抽取结果生成组件调用信息,基于所述组件调用信息调用所述目标组件。
55、可选地,所述组件调用请求为用户输入的提问信息,所述装置还包括:应答模块,用于基于所述目标组件的调用结果生成针对所述提问信息的应答信息。
56、可选地,所述组件为插件,所述组件信息包括插件定义文件;或者所述组件为插件中的应用编程接口,所述组件信息包括接口定义文档。
57、可选地,所述组件信息包括基于拓展后的接口规范对所述组件进行定义得到的定义信息。
58、根据本公开的第三个方面,提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上述第一方面所述的方法。
59、根据本公开的第四个方面,提供了一种计算机程序产品,包括可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上述第一方面所述的方法。
60、根据本公开的第五个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上述第一方面所述的方法。
61、针对多组件应用场景,本公开通过针对组件调用过程中的组件分发阶段(可选地还包括参数抽取阶段)提出一种多步骤的处理方式,以利用多技术手段实现组件分发(可选地还包括参数抽取),进而提升组件分发(可选地还包括参数抽取)的准确性。
1.一种组件调用方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,基于所述组件信息中的至少部分第一组件信息所描述的分发规则进行组件分发,包括:
3.根据权利要求2所述的方法,其特征在于,在基于至少部分第二组件信息通过语义处理进行组件分发之前,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述第二组件信息包括一条或多条第一语句,基于所述组件信息中的至少部分第二组件信息通过语义处理进行组件分发,包括:
5.根据权利要求4所述的方法,其特征在于,
6.根据权利要求1所述的方法,其特征在于,还包括:
7.根据权利要求6所述的方法,其特征在于,利用生成式模型进行组件分发,包括:
8.根据权利要求1所述的方法,其特征在于,还包括:
9.根据权利要求8所述的方法,其特征在于,所述第三组件信息包括参数抽取规则信息,所述参数抽取规则信息用于定义至少部分待抽取参数的参数值获取规则,
10.根据权利要求8所述的方法,其特征在于,
