一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于流程配置的低代码模型应用生成方法、设备及介质与流程

2022-11-13 13:26:34 来源:中国专利 TAG:


1.本技术涉及计算机领域,具体涉及一种基于流程配置的低代码模型应用生成方法、设备及介质。


背景技术:

2.随着科技的发展,低代码(low-code)的应用也越发广泛。比如,低代码开发平台(lcdp)为开发者提供了一个创建应用软件的开发环境,与传统代码ide不同的是,低代码开发平台提供的是更高维和易用的可视化ide。大多数情况下,开发者并不需要使用传统的手写代码方式进行编程,而是可以通过图形化拖拽、参数配置等更高效的方式完成开发工作。
3.然而传统的低代码模型生成过程中,不同领域之间存在屏障,对不同领域之间的基础模型难以进行组合,这就导致的模型应用开发效率较低。


技术实现要素:

4.为了解决上述问题,本技术提出了一种基于流程配置的低代码模型应用生成方法,包括:
5.确定属于不同领域的多个基础模型;
6.将所述多个基础模型分别封装成流程节点,所述流程节点包括流程属性和模型属性;
7.基于用户的操作,确定根据多个流程节点生成的流程图;
8.将所述流程图转换为搜索所需的数据结构,以根据所述数据结构生成所述流程图对应的流程表达式;
9.对所述流程表达式进行解析,得到对应的类树结构,并根据所述类树结构对所述流程图进行搜索,以根据搜索结果中出现的封装成流程节点的基础模型生成对应的代码,从而实现模型应用的生成。
10.在一个示例中,所述基础模型包括数据获取基本模型、数据处理基本模型、数据合并基本模型、机器学习基本模型、业务相关基本模型中的至少多个。
11.在一个示例中,所述流程属性指的是所述流程节点在所述流程图中和生成对应的代码时体现的属性,所述流程属性包括:所述基础模型接收和处理后输出dataframe类型数据的变量名、需要处理的数据所在列以及处理后的结果存放列;
12.所述模型数据指的是所述基础模型本身具有的属性。
13.在一个示例中,将所述流程图转换为搜索所需的数据结构,根据所述数据结构生成所述流程图对应的流程表达式,具体包括:
14.针对每个所述流程节点,将其转换为搜索所需的数据结构,且在该流程节点对应的数据结构中包含nodemap,用于存储该流程节点的后继节点,并为流程表达式的初始节点作初始标记;并将分支flag设为false,将initnode标记为唯一的无前驱节点,将endnode标记为空;
15.将initnode加入流程表达式,若该流程节点的后继节点不包含endnode且分支flag为false则结束;
16.若initnode仅有一个后继节点,则将initnode标记为后继节点,并跳转至将initnode加入流程表达式对应的步骤;
17.若initnode有多个后继节点,则设flag为true,并对每个分支搜索至endnode,以将非跳回分支的路径保存;
18.将所有路径中第一个共同节点赋值给endnode;
19.对每个分支,将initnode标记为分支初始节点,并在流程表达式中加入分支开始标记,并跳转至将initnode加入流程表达式对应的步骤;
20.在将所有非跳回分支加入流程表达式后,将flag设为false,并将endnode的后继节点赋值给initnode,将endnode赋值为空。
21.在一个示例中,对所述流程表达式进行解析,得到对应的类树结构,并根据所述类树结构对所述流程图进行搜索,具体包括:
22.对所述流程表达式进行解析,得到每个流程节点对应的nodemap,并根据所述nodemap得到对应的类树结构;
23.根据所述类树结构对所述流程图,从标记的所述初始节点开始进行深度优先搜索。
24.在一个示例中,根据搜索结果中出现的封装成流程节点的基础模型生成对应的代码,具体包括:
25.若当前节点为初始节点,则生成基础模型对应的初始化代码,所述初始化代码包括引入基础模型包、定义模型应用名称;
26.若当前节点为合并节点,且未被记录,则将当前节点记录下来并停止向后搜索,直至当前节点被重新搜索到时,生成合并节点对应的代码并向后搜索;
27.若当前节点为基础模型对应的模型节点,则直接生成模型节点对应的代码;
28.若当前节点的后继节点为空,则结束代码生成。
29.在一个示例中,所述生成的对应代码包括:参数dict、模型调用代码;所述参数dict包含所述流程节点的所述模型属性,所述模型调用代码能够使用所述模型属性。
30.在一个示例中,基于所述用户的操作,确定根据多个流程节点生成的流程图,具体包括:
31.向用户展示可视化操作界面,并基于所述用户在所述可视化操作界面中,对所述流程节点的拖拽操作,生成对应的流程图。
32.另一方面,本技术还提出了一种基于流程配置的低代码模型应用生成设备,包括:
33.至少一个处理器;以及,
34.与所述至少一个处理器通信连接的存储器;其中,
35.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如:
36.确定属于不同领域的多个基础模型;
37.将所述多个基础模型分别封装成流程节点,所述流程节点包括流程属性和模型属性;
38.基于用户的操作,确定根据多个流程节点生成的流程图;
39.将所述流程图转换为搜索所需的数据结构,以根据所述数据结构生成所述流程图对应的流程表达式;
40.对所述流程表达式进行解析,得到对应的类树结构,并根据所述类树结构对所述流程图进行搜索,以根据搜索结果中出现的封装成流程节点的基础模型生成对应的代码,从而实现模型应用的生成。
41.另一方面,本技术实施例还提出了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
42.确定属于不同领域的多个基础模型;
43.将所述多个基础模型分别封装成流程节点,所述流程节点包括流程属性和模型属性;
44.基于用户的操作,确定根据多个流程节点生成的流程图;
45.将所述流程图转换为搜索所需的数据结构,以根据所述数据结构生成所述流程图对应的流程表达式;
46.对所述流程表达式进行解析,得到对应的类树结构,并根据所述类树结构对所述流程图进行搜索,以根据搜索结果中出现的封装成流程节点的基础模型生成对应的代码,从而实现模型应用的生成。
47.通过本技术提出的方法能够带来如下有益效果:
48.对不同的模型进行整理和统一封装,使不同领域的开发人员可以轻松使用其他领域的模型,减少了开发人员之间的沟通成本以及模型的利用率,减少了重复开发,提高开发效率。
49.使用流程表达式来表示和生成模型应用流程,降低了后续模型应用迁移和修改的成本,并且直接生成模型应用的python代码,方便应用的直接运行及部署。
附图说明
50.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
51.图1为本技术实施例中一种基于流程配置的低代码模型应用生成方法的流程示意图;
52.图2为本技术实施例中基础模型封装示意图;
53.图3为本技术实施例中流程表达式的生成示意图;
54.图4为本技术实施例中一种基于流程配置的低代码模型应用生成设备的示意图。
具体实施方式
55.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
56.以下结合附图,详细说明本技术各实施例提供的技术方案。
57.如图1所示,本技术实施例提供一种基于流程配置的低代码模型应用生成方法,包括:
58.s101:确定属于不同领域的多个基础模型。
59.如图2所示,基础模型可以包括数据获取基本模型、数据处理基本模型、数据合并基本模型、机器学习基本模型、业务相关基本模型等,图2中用不同的形状表示不同类型的基础模型。
60.s102:将所述多个基础模型分别封装成流程节点,所述流程节点包括流程属性和模型属性。
61.如图2所示,流程属性指的是流程节点在流程图和生成对应的代码时体现的属性,流程属性包括:input_var、output_var、input_column、output_column。input_var和output_column,分别表示基础模型接收和处理后输出dataframe类型数据的变量名;input_column和output_column分别表示需要处理的数据所在列以及处理后的结果存放列;input_column若为空则表示所有列均需要处理。而模型数据指的是基础模型本身具有的属性,如数据处理的模式或机器学习的模型超参数等。
62.s103:基于用户的操作,确定根据多个流程节点生成的流程图。
63.可以向用户展示可视化操作界面,流程节点以模块的形式展示,基于用户在可视化操作界面中,对流程节点的拖拽操作,生成对应的流程图。通过可视化拖拽的方式生成模型应用,减少了代码量,使应用的开发效率提高,可读性增强。
64.s104:将所述流程图转换为搜索所需的数据结构,以根据所述数据结构生成所述流程图对应的流程表达式。
65.如图3所示,针对每个流程节点,将其转换为搜索所需的数据结构,且在该流程节点对应的数据结构中包含nodemap,用于存储该流程节点的后继节点,并为流程表达式的初始节点作初始标记;并将分支flag设为false,将initnode标记为唯一的无前驱节点,将endnode标记为空;
66.将initnode加入流程表达式,若该流程节点的后继节点不包含endnode且分支flag为false则结束;
67.若initnode仅有一个后继节点,则将initnode标记为后继节点,并跳转至将initnode加入流程表达式对应的步骤;
68.若initnode有多个后继节点,则设flag为true,并对每个分支搜索至endnode,以将非跳回分支的路径保存;
69.将所有路径中第一个共同节点赋值给endnode;
70.对每个分支,将initnode标记为分支初始节点,并在流程表达式中加入分支开始标记,并跳转至将initnode加入流程表达式对应的步骤;
71.在将所有非跳回分支加入流程表达式后,将flag设为false,并将endnode的后继节点赋值给initnode,将endnode赋值为空。
72.s105:对所述流程表达式进行解析,得到对应的类树结构,并根据所述类树结构对所述流程图进行搜索,以根据搜索结果中出现的封装成流程节点的基础模型生成对应的代码(比如,python代码),从而实现模型应用的生成。
73.具体地,对流程表达式进行解析,得到每个流程节点对应的nodemap,并根据
nodemap得到对应的类树结构;利用类树结构对流程图,从标记的初始节点开始进行深度优先搜索。
74.进一步地,在搜索时,若当前节点为初始节点,则生成基础模型对应的初始化代码,初始化代码包括引入基础模型包、定义模型应用名称等过程。若当前节点为合并节点,且未被记录,则将当前节点记录下来并停止向后搜索,直至当前节点被重新搜索到时,生成合并节点对应的代码并向后搜索。若当前节点为基础模型对应的模型节点,则直接生成模型节点对应的代码。若当前节点的后继节点为空,则结束代码生成。
75.生成的对应代码具体可以包括:参数dict,包含流程节点的所述模型属性,如:kmeans_dict={"n_clusters":"2"};模型调用代码,能够使用所述模型属性,如:
76.#{output_var}=
77.kmeans(#{input_var},#{input_column},#{output_column},**kmeans_dict)
78.其中#{}表示对应流程节点的流程属性值。
79.由于对模型进行了标准化的封装,且封装后的模型输入与输出均为dataframe数据类型,因此保证了任意模型之间的可以进行自由组合与连接。
80.对不同的模型进行整理和统一封装,使不同领域的开发人员可以轻松使用其他领域的模型,减少了开发人员之间的沟通成本以及模型的利用率,减少了重复开发,提高开发效率。
81.使用流程表达式来表示和生成模型应用流程,降低了后续模型应用迁移和修改的成本,并且直接生成模型应用的python代码,方便应用的直接运行及部署。
82.如图4所示,本技术实施例还提供了一种基于流程配置的低代码模型应用生成设备,包括:
83.至少一个处理器;以及,
84.与所述至少一个处理器通信连接的存储器;其中,
85.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如:
86.确定属于不同领域的多个基础模型;
87.将所述多个基础模型分别封装成流程节点,所述流程节点包括流程属性和模型属性;
88.基于用户的操作,确定根据多个流程节点生成的流程图;
89.将所述流程图转换为搜索所需的数据结构,以根据所述数据结构生成所述流程图对应的流程表达式;
90.对所述流程表达式进行解析,得到对应的类树结构,并根据所述类树结构对所述流程图进行搜索,以根据搜索结果中出现的封装成流程节点的基础模型生成对应的代码,从而实现模型应用的生成。
91.本技术实施例还提供了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
92.确定属于不同领域的多个基础模型;
93.将所述多个基础模型分别封装成流程节点,所述流程节点包括流程属性和模型属性;
94.基于用户的操作,确定根据多个流程节点生成的流程图;
95.将所述流程图转换为搜索所需的数据结构,以根据所述数据结构生成所述流程图对应的流程表达式;
96.对所述流程表达式进行解析,得到对应的类树结构,并根据所述类树结构对所述流程图进行搜索,以根据搜索结果中出现的封装成流程节点的基础模型生成对应的代码,从而实现模型应用的生成。
97.本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
98.本技术实施例提供的设备和介质与方法是一一对应的,因此,设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备和介质的有益技术效果。
99.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
100.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
101.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
102.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
103.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
104.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
105.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
106.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
107.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献