CN113515925A - 基于PMML模型及配置自动生成dubbo服务的方法 - Google Patents

基于PMML模型及配置自动生成dubbo服务的方法 Download PDF

Info

Publication number
CN113515925A
CN113515925A CN202110899233.XA CN202110899233A CN113515925A CN 113515925 A CN113515925 A CN 113515925A CN 202110899233 A CN202110899233 A CN 202110899233A CN 113515925 A CN113515925 A CN 113515925A
Authority
CN
China
Prior art keywords
model
file
pmml
configuration
springboot
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.)
Pending
Application number
CN202110899233.XA
Other languages
English (en)
Inventor
张凯歌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhongtongji Network Technology Co Ltd
Original Assignee
Shanghai Zhongtongji Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Zhongtongji Network Technology Co Ltd filed Critical Shanghai Zhongtongji Network Technology Co Ltd
Priority to CN202110899233.XA priority Critical patent/CN113515925A/zh
Publication of CN113515925A publication Critical patent/CN113515925A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及一种基于PMML模型及配置自动生成dubbo服务的方法,该方法通过将springboot工程、dubbo服务和加载模型所需的代码用通用模板进行抽象,将可变部分用占位符进行表示,生成模板文件,在需要进行开发时,只需要将PMML模型文件及配置文件上传输入,对占位符进行填充,就可以自动生成带dubbo服务的springboot工程,不需要相关工作人员建立springboot工程、加入dubbo依赖、编写模型加载代码等重复代码,从而简化开发过程,节省人力,大大提高开发效率。

Description

基于PMML模型及配置自动生成dubbo服务的方法
技术领域
本申请涉及PMML模型应用技术领域,尤其涉及一种基于PMML模型及配置自动生成dubbo服务的方法。
背景技术
PMML模型文件是一种机器学习模型的文件格式,可被java读取并用于线上预测。机器学习模型一般由数据分析师用python语言,经过对离线数据多次迭代来生成,这种迭代用python语言非常适合,但java无法读取。之后再通过转换工具将模型文件转换为pmml格式,再放至java环境中,部署到生产环境用于线上预测。而dubbo是阿里开源的一款高性能的、轻量级的JavaRPC服务框架,具有远程方法调用、负载均衡和服务容错、服务自动注册和发现等功能。在开发dubbo服务接口的时候,需要定义接口方法签名,发布接口jar包文件,然后编写接口实现代码,并添加相关的配置,然后部署到生产环境供其他消费者调用。
现有技术中,在基于PMML模型开发dubbo服务时,首先需要新建springboot工程,然后编写模型加载方法、定义dubbo接口、编写接口实现等,过程复杂繁琐,并且大部分是重复的样板代码,耗费不必要的人力。
发明内容
本申请提供一种基于PMML模型及配置自动生成dubbo服务的方法,以解决现有技术在进行基于PMML模型开发dubbo服务过程中,开发过程复杂繁琐,并且大部分是重复的样板代码,耗费不必要人力的问题。
本申请的上述目的是通过以下技术方案实现的:
本申请实施例提供一种基于PMML模型及配置自动生成dubbo服务的方法,包括:
接收用户上传的PMML模型文件和模型配置信息;其中,所述模型配置文件为用于描述PMML模型输入输出信息的json格式文件;
将所述PMML模型文件和所述模型配置信息,填充至预设通用模板文件中,生成springboot工程文件;
将所述springboot工程文件使用预设maven构建打包,并部署到生产环境中。
进一步的,所述模型配置信息包括:
与所述PMML模型文件对应的输入输出信息。
进一步的,所述预设通用模板文件为基于dubbo服务抽象可通用模板代码,并将可变部分用占位符表示后得到的模板文件。
进一步的,所述预设通用模板文件包括:
模型输入代码模块、模型输出代码模块、接口定义代码模板和接口定义实现代码模板。
进一步的,所述将所述springboot工程文件使用预设maven构建打包,并部署到生产环境中,包括:
将所述springboot工程文件解压;
将解解压后的springboot工程文件使用maven构建打包;
将打包好的文件部署到线上环境,供消费者调用。本申请的实施例提供的技术方案可以包括以下有益效果:
本申请的实施例提供的技术方案中,通过将springboot工程、dubbo服务和载模型所需的代码用通用模板进行抽象,可变部分用占位符进行表示,生成通用模板文件,在需要进行开发时,只需要将PMML模型文件及配置文件上传输入,对占位符进行填充,就可以自动生成带dubbo服务的springboot工程,不需要相关工作人员建立springboot工程、加入dubbo依赖、编写模型加载代码等重复代码,从而简化开发过程,节省人力,大大提高开发效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种基于PMML模型及配置自动生成dubbo服务的方法的流程示意图;
图2为本申请另一实施例提供的一种基于PMML模型及配置自动生成dubbo服务的方法的流程示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
现有技术中,在拿到PMML模型文件后,需要先创建springboot工程,并引入dubbo服务的依赖,然后根据模型文件预测时需要的变量定义dubbo接口,再根据接口编写接口实现代码。在做接口实现的时候,要先加载模型文件至内存中,然后根据接口输入信息经过模型运算后,输出预测结果。整个过程,需要工作人员自行建立springboot工程、加入dubbo依赖、编写模型加载代码等,而这些代码基本上是重复的样板代码,耗费开发人员不必要的时间和精力,并且开发效力低。
为了解决上述问题,本申请提供一种基于PMML模型及配置自动生成dubbo服务的方法,上述技术问题进行解决。具体实现方案通过以下实施例进行详细说明。
实施例
参照图1,图1为本申请实施例提供的一种基于PMML模型及配置自动生成dubbo服务的方法的流程示意图,如图1所示,该方法至少包括以下步骤:
S101、接收用户上传的PMML模型文件和模型配置信息。
S102、将所述PMML模型文件和所述模型配置信息,填充至预设通用模板文件中,生成springboot工程文件。
具体的,在开发过程中,首先接收相关工作人员上传的PMML模型文件及配置文件,用于对预设通用模板文件进行填充,包括模型文件即相应的输入输出信息。
在实际应用中,本申请实施例提供的基于PMML模型及配置自动生成dubbo服务的方法不需要编写板式代码,只要在获取模型文件后,将模型文件对应的输入输出变量、定义的接口名称信息等用json文件表示清楚,在上传输入后,就可以对预设框架通用模板进行填充,一键生成springboot工程,省时省力。
本申请实施例提供的基于PMML模型及配置自动生成dubbo服务的方法,通过spring initializr来开发,在spring initializr中,用mustache模板文件将要生成的代码文件框架先进行准备,再根据实际生成工程时提供的数据来填充通用模板文件中的占位符来形成最后的工程文件。具体的,将生成dubbo服务中可通用模板代码尽可能的抽象出来,将可变部分用占位符表示,运行的时候,再根据模型配置信息填充占位符,最终形成springboot工程。主要抽象出的模板内容包括:模型输入代码模板,即PmmReqDTO接口输入文件,包含模型预测所需要的输入值;模型输出代码模板,即PmmlResDTO接口输出文件,包含模型预测结果值。接口定义代码模板,即PmmlService dubbo服务接口文件,包含dubbo服务的接口定义,最后会形成jar包给到服务消费方。接口定义实现代码模板,即PmmlServiceImpl dubbo服务接口文件,包含dubbo服务的实现,其中有模型文件的加载代码以及模型预测计算的代码。
S103、将所述springboot工程文件使用预设maven构建打包,并部署到生产环境中。
具体的,本申请提供的基于PMML模型及配置自动生成dubbo服务的方法,在实现过程中,实际上,与spring initializr工程原理一致,可直接部署,其中,有一个web页面,页面用于供相关人员上传模型文件和配置信息,点击运行后可生成一个zip压缩包,压缩包中的文件即是一个完整的和包含dubbo服务接口的springboot工程。在解压后,使用maven构建打包,部署到线上环境后供消费者调用。
本申请实施例提供的基于PMML模型及配置自动生成dubbo服务,将生成dubbo服务中可通用模板代码尽可能的抽象出来,将可变部分用占位符表示,需要开发时,再根据上传的用来描述PMML模型输入输出信息的json格式文件即模型配置信息等填充占位符,生成dubbo接口,完成一键生成带dubbo服务的springboot工程。从而在已有PMML模型文件和相应配置的情况下,自动生成含对应dubbo服务的springboot工程代码,基本无需改动即可部署,开发过程简单高效,节省人力的同时大大提高效率。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (5)

1.一种基于PMML模型及配置自动生成dubbo服务的方法,其特征在于,包括:
接收用户上传的PMML模型文件和模型配置信息;其中,所述模型配置文件为用于描述PMML模型输入输出信息的json格式文件;
将所述PMML模型文件和所述模型配置信息,填充至预设通用模板文件中,生成springboot工程文件;
将所述springboot工程文件使用预设maven构建打包,并部署到生产环境中。
2.根据权利要求1所述的基于PMML模型及配置自动生成dubbo服务的方法,其特征在于,所述模型配置信息包括:
与所述PMML模型文件对应的输入输出信息。
3.根据权利要求1所述的基于PMML模型及配置自动生成dubbo服务的方法,其特征在于,所述预设通用模板文件为基于dubbo服务抽象可通用模板代码,并将可变部分用占位符表示后得到的模板文件。
4.根据权利要求3所述的基于PMML模型及配置自动生成dubbo服务的方法,其特征在于,所述预设通用模板文件包括:
模型输入代码模块、模型输出代码模块、接口定义代码模板和接口定义实现代码模板。
5.根据权利要求3所述的基于PMML模型及配置自动生成dubbo服务的方法,其特征在于,所述将所述springboot工程文件使用预设maven构建打包,并部署到生产环境中,包括:
将所述springboot工程文件解压;
将解解压后的springboot工程文件使用maven构建打包;
将打包好的文件部署到线上环境,供消费者调用。
CN202110899233.XA 2021-08-06 2021-08-06 基于PMML模型及配置自动生成dubbo服务的方法 Pending CN113515925A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110899233.XA CN113515925A (zh) 2021-08-06 2021-08-06 基于PMML模型及配置自动生成dubbo服务的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110899233.XA CN113515925A (zh) 2021-08-06 2021-08-06 基于PMML模型及配置自动生成dubbo服务的方法

Publications (1)

Publication Number Publication Date
CN113515925A true CN113515925A (zh) 2021-10-19

Family

ID=78068355

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110899233.XA Pending CN113515925A (zh) 2021-08-06 2021-08-06 基于PMML模型及配置自动生成dubbo服务的方法

Country Status (1)

Country Link
CN (1) CN113515925A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080320441A1 (en) * 2007-06-23 2008-12-25 Azadeh Ahadian Extensible rapid application development for disparate data sources
CN107291450A (zh) * 2017-05-25 2017-10-24 深圳市彬讯科技有限公司 一种编程友好型的敏捷代码自动生成方法
CN110688142A (zh) * 2019-10-10 2020-01-14 星环信息科技(上海)有限公司 应用程序编程接口的发布方法、设备及存储介质
CN111399853A (zh) * 2020-02-20 2020-07-10 四川新网银行股份有限公司 机器学习模型与自定义算子的模板化部署方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080320441A1 (en) * 2007-06-23 2008-12-25 Azadeh Ahadian Extensible rapid application development for disparate data sources
CN107291450A (zh) * 2017-05-25 2017-10-24 深圳市彬讯科技有限公司 一种编程友好型的敏捷代码自动生成方法
CN110688142A (zh) * 2019-10-10 2020-01-14 星环信息科技(上海)有限公司 应用程序编程接口的发布方法、设备及存储介质
CN111399853A (zh) * 2020-02-20 2020-07-10 四川新网银行股份有限公司 机器学习模型与自定义算子的模板化部署方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MASTER苏: "使用pmml和springboot部署算法模型", pages 1 - 9, Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/53729084> *
敲代码的阿克: "全网最透彻!Dubbo整合SpringBoot详解,又通宵了", pages 1 - 7, Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/360776448> *

Similar Documents

Publication Publication Date Title
CN110825362B (zh) 低代码应用软件开发系统及方法
US20210004642A1 (en) Ai capability research and development platform and data processing method
CN111399853B (zh) 机器学习模型与自定义算子的模板化部署方法
CN114115857B (zh) 一种机器学习模型自动化生产线构建方法及系统
JP5197688B2 (ja) 統合環境生成器
Hästbacka et al. Model-driven development of industrial process control applications
JP5965080B2 (ja) コンパイル及び配備サービスを用いたソフトウェアのビルド及びロード処理のためのシステム、方法及びコンピュータプログラムプロダクト
CN101482817B (zh) 基于黑盒的大粒度Java构件组装方法
CN110992100A (zh) 一种电力营销系统构建方法及装置
CN111309734B (zh) 自动生成表数据的方法及系统
CN111813814A (zh) 一种支持多种机器学习框架的通用模型管理方法和装置
CN109144511B (zh) 数值模拟图形用户界面自动生成方法及系统
CN111158651A (zh) 构建人工智能应用的方法、装置及系统
CN103455643A (zh) 一种通用仿真组件的描述及建模方法
US11586916B2 (en) Automated ML microservice and function generation for cloud native platforms
CN103425469A (zh) 基于mda技术的手机游戏代码生成方法
US20100088671A1 (en) Project scopes for configuration based computer application projects
CN113515925A (zh) 基于PMML模型及配置自动生成dubbo服务的方法
CN115392443B (zh) 类脑计算机操作系统的脉冲神经网络应用表示方法及装置
CN112100984A (zh) 一种由ebom到sbom的数据转换方法及系统
CN109388406A (zh) 转换java代码的方法及装置、存储介质、电子装置
CN115390846A (zh) 编译构建方法、装置、电子设备和存储介质
CN114895880A (zh) 代码生成方法、装置及计算机可读介质
CN114489675A (zh) 自动驾驶系统的处理方法、装置和电子设备
CN111176912A (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