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

基于PMML模型及配置自动生成dubbo服务的方法与流程

2021-10-19 23:56:00 来源:中国专利 TAG:模型 自动生成 配置 方法 服务

基于pmml模型及配置自动生成dubbo服务的方法
技术领域
1.本技术涉及pmml模型应用技术领域,尤其涉及一种基于pmml模型及配置自动生成dubbo服务的方法。


背景技术:

2.pmml模型文件是一种机器学习模型的文件格式,可被java读取并用于线上预测。机器学习模型一般由数据分析师用python语言,经过对离线数据多次迭代来生成,这种迭代用python语言非常适合,但java无法读取。之后再通过转换工具将模型文件转换为pmml格式,再放至java环境中,部署到生产环境用于线上预测。而dubbo是阿里开源的一款高性能的、轻量级的javarpc服务框架,具有远程方法调用、负载均衡和服务容错、服务自动注册和发现等功能。在开发dubbo服务接口的时候,需要定义接口方法签名,发布接口jar包文件,然后编写接口实现代码,并添加相关的配置,然后部署到生产环境供其他消费者调用。
3.现有技术中,在基于pmml模型开发dubbo服务时,首先需要新建springboot工程,然后编写模型加载方法、定义dubbo接口、编写接口实现等,过程复杂繁琐,并且大部分是重复的样板代码,耗费不必要的人力。


技术实现要素:

4.本技术提供一种基于pmml模型及配置自动生成dubbo服务的方法,以解决现有技术在进行基于pmml模型开发dubbo服务过程中,开发过程复杂繁琐,并且大部分是重复的样板代码,耗费不必要人力的问题。
5.本技术的上述目的是通过以下技术方案实现的:
6.本技术实施例提供一种基于pmml模型及配置自动生成dubbo服务的方法,包括:
7.接收用户上传的pmml模型文件和模型配置信息;其中,所述模型配置文件为用于描述pmml模型输入输出信息的json格式文件;
8.将所述pmml模型文件和所述模型配置信息,填充至预设通用模板文件中,生成springboot工程文件;
9.将所述springboot工程文件使用预设maven构建打包,并部署到生产环境中。
10.进一步的,所述模型配置信息包括:
11.与所述pmml模型文件对应的输入输出信息。
12.进一步的,所述预设通用模板文件为基于dubbo服务抽象可通用模板代码,并将可变部分用占位符表示后得到的模板文件。
13.进一步的,所述预设通用模板文件包括:
14.模型输入代码模块、模型输出代码模块、接口定义代码模板和接口定义实现代码模板。
15.进一步的,所述将所述springboot工程文件使用预设maven构建打包,并部署到生产环境中,包括:
16.将所述springboot工程文件解压;
17.将解解压后的springboot工程文件使用maven构建打包;
18.将打包好的文件部署到线上环境,供消费者调用。本技术的实施例提供的技术方案可以包括以下有益效果:
19.本技术的实施例提供的技术方案中,通过将springboot工程、dubbo服务和载模型所需的代码用通用模板进行抽象,可变部分用占位符进行表示,生成通用模板文件,在需要进行开发时,只需要将pmml模型文件及配置文件上传输入,对占位符进行填充,就可以自动生成带dubbo服务的springboot工程,不需要相关工作人员建立springboot工程、加入dubbo依赖、编写模型加载代码等重复代码,从而简化开发过程,节省人力,大大提高开发效率。
20.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
21.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
22.图1为本技术实施例提供的一种基于pmml模型及配置自动生成dubbo服务的方法的流程示意图;
23.图2为本技术另一实施例提供的一种基于pmml模型及配置自动生成dubbo服务的方法的流程示意图。
具体实施方式
24.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
25.现有技术中,在拿到pmml模型文件后,需要先创建springboot工程,并引入dubbo服务的依赖,然后根据模型文件预测时需要的变量定义dubbo接口,再根据接口编写接口实现代码。在做接口实现的时候,要先加载模型文件至内存中,然后根据接口输入信息经过模型运算后,输出预测结果。整个过程,需要工作人员自行建立springboot工程、加入dubbo依赖、编写模型加载代码等,而这些代码基本上是重复的样板代码,耗费开发人员不必要的时间和精力,并且开发效力低。
26.为了解决上述问题,本技术提供一种基于pmml模型及配置自动生成dubbo服务的方法,上述技术问题进行解决。具体实现方案通过以下实施例进行详细说明。
27.实施例
28.参照图1,图1为本技术实施例提供的一种基于pmml模型及配置自动生成dubbo服务的方法的流程示意图,如图1所示,该方法至少包括以下步骤:
29.s101、接收用户上传的pmml模型文件和模型配置信息。
30.s102、将所述pmml模型文件和所述模型配置信息,填充至预设通用模板文件中,生
成springboot工程文件。
31.具体的,在开发过程中,首先接收相关工作人员上传的pmml模型文件及配置文件,用于对预设通用模板文件进行填充,包括模型文件即相应的输入输出信息。
32.在实际应用中,本技术实施例提供的基于pmml模型及配置自动生成dubbo服务的方法不需要编写板式代码,只要在获取模型文件后,将模型文件对应的输入输出变量、定义的接口名称信息等用json文件表示清楚,在上传输入后,就可以对预设框架通用模板进行填充,一键生成springboot工程,省时省力。
33.本技术实施例提供的基于pmml模型及配置自动生成dubbo服务的方法,通过spring initializr来开发,在spring initializr中,用mustache模板文件将要生成的代码文件框架先进行准备,再根据实际生成工程时提供的数据来填充通用模板文件中的占位符来形成最后的工程文件。具体的,将生成dubbo服务中可通用模板代码尽可能的抽象出来,将可变部分用占位符表示,运行的时候,再根据模型配置信息填充占位符,最终形成springboot工程。主要抽象出的模板内容包括:模型输入代码模板,即pmmreqdto接口输入文件,包含模型预测所需要的输入值;模型输出代码模板,即pmmlresdto接口输出文件,包含模型预测结果值。接口定义代码模板,即pmmlservice dubbo服务接口文件,包含dubbo服务的接口定义,最后会形成jar包给到服务消费方。接口定义实现代码模板,即pmmlserviceimpl dubbo服务接口文件,包含dubbo服务的实现,其中有模型文件的加载代码以及模型预测计算的代码。
34.s103、将所述springboot工程文件使用预设maven构建打包,并部署到生产环境中。
35.具体的,本技术提供的基于pmml模型及配置自动生成dubbo服务的方法,在实现过程中,实际上,与spring initializr工程原理一致,可直接部署,其中,有一个web页面,页面用于供相关人员上传模型文件和配置信息,点击运行后可生成一个zip压缩包,压缩包中的文件即是一个完整的和包含dubbo服务接口的springboot工程。在解压后,使用maven构建打包,部署到线上环境后供消费者调用。
36.本技术实施例提供的基于pmml模型及配置自动生成dubbo服务,将生成dubbo服务中可通用模板代码尽可能的抽象出来,将可变部分用占位符表示,需要开发时,再根据上传的用来描述pmml模型输入输出信息的json格式文件即模型配置信息等填充占位符,生成dubbo接口,完成一键生成带dubbo服务的springboot工程。从而在已有pmml模型文件和相应配置的情况下,自动生成含对应dubbo服务的springboot工程代码,基本无需改动即可部署,开发过程简单高效,节省人力的同时大大提高效率。
37.可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
38.需要说明的是,在本技术的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本技术的描述中,除非另有说明,“多个”的含义是指至少两个。
39.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺
序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
40.应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
41.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
42.此外,在本技术各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
43.上述提到的存储介质可以是只读存储器,磁盘或光盘等。
44.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
45.尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献

  • 日榜
  • 周榜
  • 月榜