CN112351076A - 推荐系统api的生成方法、装置、电子设备及存储介质 - Google Patents
推荐系统api的生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112351076A CN112351076A CN202011131816.XA CN202011131816A CN112351076A CN 112351076 A CN112351076 A CN 112351076A CN 202011131816 A CN202011131816 A CN 202011131816A CN 112351076 A CN112351076 A CN 112351076A
- Authority
- CN
- China
- Prior art keywords
- recommendation
- service
- recommendation system
- api
- target
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000012545 processing Methods 0.000 claims description 17
- 230000008859 change Effects 0.000 claims description 16
- 238000012163 sequencing technique Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 8
- 239000012634 fragment Substances 0.000 claims description 6
- 230000008569 process Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 238000001914 filtration Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 125000002015 acyclic group Chemical group 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供的一种推荐系统API的生成方法、装置、电子设备及存储介质,方法包括:根据目标推荐系统API的业务流程,确定所述目标推荐系统API的领域特定语言文件;其中,所述领域特定语言文件按照预设的格式描述所述目标推荐系统API中的推荐服务的信息;根据所述目标推荐系统API的领域特定语言文件,确定所述目标推荐系统API中的推荐服务以及推荐服务的调用关系信息;根据所述推荐服务以及推荐服务的调用关系信息,生成所述目标推荐系统API。本发明实施例实现了实施轻量化,提高了生成的推荐API的整体规范性和复用性,并且提高了系统性能。
Description
技术领域
本发明涉及推荐系统领域,尤其涉及一种推荐系统API的生成方法、装置、电子设备及存储介质。
背景技术
推荐系统是根据用户的信息需求与兴趣,将用户感兴趣的信息、产品等推荐给用户的计算机辅助系统。
目前,互联网行业的主流推荐系统主要包括四个模块:用户和内容画像、特征工程、推荐算法和推荐系统API(Application Programming Interface,应用程序接口)。
推荐系统API与推荐系统与用户之间的交互接口,其输入和输出直接面向用户,为用户提供推荐结果。推荐系统API的业务流程会串联其他模块处理的结果,因此具有业务流程较长且逻辑相对复杂的特点。
在现有技术中,推荐系统API的开发,普遍按照画像处理,召回算法处理,排序算法处理,以及相关结果编排和过滤这一主要流程进行;相关项目的核心代码采用自上而下,硬编码的方式实现。一旦需求发生变化或调整,其整体代码结构往往需要人工进行大量调整;并且由于推荐逻辑复杂,调整后遗留下大量重复代码,不利于项目维护和后期迭代;项目的整体复用性较差。
发明内容
针对现有技术存在的问题,本发明实施例提供一种推荐系统API的生成方法、装置、电子设备及存储介质。
本发明第一方面实施例提供一种推荐系统API的生成方法,包括:
根据目标推荐系统API的业务流程,确定所述目标推荐系统API的领域特定语言文件;其中,所述领域特定语言文件按照预设的格式描述所述目标推荐系统API中的推荐服务的信息;
根据所述目标推荐系统API的领域特定语言文件,确定所述目标推荐系统API中的推荐服务以及推荐服务的调用关系信息;
根据所述推荐服务以及推荐服务的调用关系信息,生成所述目标推荐系统API。
上述技术方案中,所述根据所述目标推荐系统API的领域特定语言文件,确定所述目标推荐系统API中的推荐服务以及推荐服务的调用关系信息,包括:
对所述目标推荐系统API的领域特定语言文件进行解析,得到解析结果;其中,所述解析结果包括所述目标推荐系统API中的推荐服务的信息,所述推荐服务的信息包括:所述推荐服务与所述推荐服务被调用前必须完成的其他推荐服务之间的关联信息;
将所述目标推荐系统API中的推荐服务作为有向无环图中的节点,将所述推荐服务与所述推荐服务被调用前必须完成的另一推荐服务之间的关联作为有向无环图的边;
对所述有向无环图中的各个节点进行拓扑排序,得到所述目标推荐系统API中的推荐服务以及推荐服务的调用关系信息。
上述技术方案中,所述根据所述目标推荐系统API的领域特定语言文件,确定所述目标推荐系统API中的推荐服务以及推荐服务的调用关系信息,还包括:
根据所述推荐服务的调用关系信息,确定具有相同调用顺序的推荐服务;
根据具有相同调用顺序的推荐服务,得到推荐服务的并行处理信息。
上述技术方案中,所述解析结果还包括:服务接口信息,所述服务接口信息用于生成所述目标推荐系统API。
上述技术方案中,所述根据所述推荐服务以及推荐服务的调用关系信息,生成所述目标推荐系统API,包括:
通过模板引擎将所述推荐服务的调用关系信息映射到对应的模板语言FTL文件中,得到所述目标推荐系统API。
上述技术方案中,所述通过模板引擎将所述推荐服务的调用关系信息映射到对应的模板语言FTL文件中,得到所述目标推荐系统API,包括:
根据所述推荐服务的调用关系信息,生成推荐服务的并行执行和/或串行执行的代码片段;
将所述代码片段映射到基于Hash散列的数据结构中;
模板引擎将所述基于Hash散列的数据结构中的键值映射到模板语言FTL文件的占位符,得到所述目标推荐系统API。
上述技术方案中,还包括:
接收目标推荐系统的需求变更信息;
根据所述需求变更信息,更新所述目标推荐系统API的领域特定语言文件。
本发明第二方面实施例提供一种推荐系统API的生成装置,包括:
领域特定语言文件确定模块,用于根据目标推荐系统API的业务流程,确定所述目标推荐系统API的领域特定语言文件;其中,所述领域特定语言文件按照预设的格式描述所述目标推荐系统API中的推荐服务的信息;
推荐服务确定模块,用于根据所述目标推荐系统API的领域特定语言文件,确定所述目标推荐系统API中的推荐服务以及推荐服务的调用关系信息;
生成模块,用于根据所述推荐服务以及推荐服务的调用关系信息,生成所述目标推荐系统API。
本发明第三方面实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明第一方面实施例所述推荐系统API的生成方法的步骤。
本发明第四方面实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本发明第一方面实施例所述推荐系统API的生成方法的步骤。
本发明实施例提供的一种推荐系统API的生成方法、装置、电子设备及存储介质,通过确定用于描述推荐业务结构的领域特定语言DSL文件;根据所述DSL文件构建有向无环图DAG,得到所述DSL文件中包括的一个或多个推荐服务节点之间的调用关系信息;根据所述调用关系信息生成所述推荐系统API,实现实施轻量化,提高了生成的推荐系统API的整体规范性、复用性以及提高了系统性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示例了本发明实施例提供的一种推荐系统API的生成方法的流程示意图;
图2示例了本发明实施例提供的一种推荐系统API业务流程的DSL抽象描述总体结构示意图;
图3示例了本发明实施例提供的一种解析DSL+DAG得到的服务调用顺序和并行处理模块提取示意图;
图4示例了本发明实施例提供的一种基于DSL和有向图模型的推荐系统API代码结构自动生成的整体方案示意图;
图5示例了本发明实施例提供的一种推荐系统API的生成装置的结构示意图;
图6示例了本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的一种推荐系统API的生成方法的流程示意图,该推荐系统API的生成方法可以用于推荐系统中;如图1所示,该推荐系统API(ApplicationProgramming Interface,应用程序接口)的生成方法可以包括以下步骤:
步骤101、根据目标推荐系统API的业务流程,确定所述目标推荐系统API的领域特定语言文件。
在本发明实施例中,领域特定语言文件(Domain-Specific Language,简称DSL)按照预设的格式描述所述目标推荐系统API中的推荐服务的信息。
DSL是专注于某个应用程序领域的计算机语言;其设计更符合自然语言的描述方式;本方案中采用JSON(JavaScript Object Notation,是一种轻量级的数据交换格式)方式作为DSL的输出。
目标推荐系统API中的推荐服务的信息包括:目标推荐系统API中包含有哪些推荐服务,某一推荐服务被调用前必须完成的其他推荐服务有哪些(即beforecall属性信息)。
在现有技术中,缺少对推荐系统API的业务流程的共性进行提炼,进而规范化定义和抽象描述的模型。因此,在本发明实施例中,DSL文件按照预设的格式描述所述目标推荐系统API中的推荐服务的信息,以达到规范化定义和抽象描述的目的。
具体的说,如图2所示,推荐系统API业务流程的DSL抽象描述,包括:
(1)推荐系统API对应的REST(Representational State Transfer,表述性状态传递)接口调用;
(2)推荐系统API对应的推荐前预处理服务;
(3)推荐系统API对应的主服务;
(4)推荐系统API对应的主服务引用的核心推荐服务。
具体的,每一部分的详细设计如下:
第一、针对上述(1)中推荐系统API对应的REST接口调用。
推荐系统API对应的REST接口是整个推荐系统API的最外层,接收用户的http请求,并返回推荐结果给客户端;该接口会调用推荐前预处理服务;推荐前预处理服务负责诸如客户端token(令牌,标记)验证和请求参数验证;只有验证通过,推荐系统API对应的REST接口才开始往下调用推荐系统API主服务;推荐系统API主服务是整个推荐业务流程的重点;它引用到若干核心推荐相关服务;核心推荐服务包括算法实时召回服务,算法离线召回服务,ALS算法召回服务,在线排序服务,返回结果的编排和过滤服务等。
主服务将核心推荐服务的功能集成在一起,对外提供统一的接口,供API REST(Representational State Transfer,表述性状态传递)调用。
第二、针对上述(2)中推荐系统API对应的推荐前预处理服务。
第三、针对上述(3)中推荐系统API对应的主服务。
第四、针对上述(4)中推荐系统API对应的主服务引用的核心推荐相关服务。
以上自定义DSL描述了推荐系统API相应的核心服务模块,做到了对其业务处理流程的高度抽象和规范定义,并可以结合实际情况更新DSL内容。
从对推荐系统API业务流程的上述DSL抽象描述可以看出,DSL文件本质上描述了推荐系统所应包含的推荐服务,以及推荐服务被调用前必须完成的其他推荐服务的信息。而目标推荐系统中所应包含的推荐服务以及推荐服务被调用前必须完成的其他推荐服务的信息,又取决于目标推荐系统的业务流程。因此,目标推荐系统API的DSL文件的内容根据目标推荐系统API的业务流程确定。如果目标推荐系统的业务流程发生变化,那么目标推荐系统中所应包含的推荐服务以及推荐服务被调用前必须完成的其他推荐服务的信息就有可能会发生变化,即DSL文件的内容会相应发生变化。
步骤102、根据所述目标推荐系统API的领域特定语言文件,确定所述目标推荐系统API中的推荐服务以及推荐服务的调用关系信息。
目标推荐系统API的DSL文件以预设的格式描述了目标推荐系统API中的推荐服务的信息。在本步骤中,对DSL文件做进一步处理,得到目标推荐系统API中的推荐服务以及推荐服务的调用关系信息。
具体的说,本步骤包括:
步骤1021、对所述目标推荐系统API的领域特定语言文件进行解析,得到解析结果。
对DSL文件进行解析的解析结果包括所述目标推荐系统API中的推荐服务的信息,所述推荐服务的信息包括:所述推荐服务与所述推荐服务被调用前必须完成的其他推荐服务之间的关联信息。
例如,对某一推荐系统API的DSL文件进行解析,可以知道该推荐系统API的业务流程中包含:算法实时召回服务,算法离线召回服务,ALS算法召回服务,在线排序服务,返回结果的编排和过滤服务。根据各个推荐服务的beforecall属性信息,可以知道某一推荐服务在被调用前所必须完成的推荐服务有哪些。例如,在调用在线排序服务前,必须完成的推荐服务有算法实时召回服务,算法离线召回服务,ALS算法召回服务。
步骤1022、将所述目标推荐系统API中的推荐服务作为有向无环图中的节点,将所述推荐服务与所述推荐服务被调用前必须完成的另一推荐服务之间的关联作为有向无环图的边。
对DSL文件进行解析的解析结果仅能反映目标推荐系统API的业务流程中的局部关系(如前后两个推荐服务之间的调用关系),并不能够反映目标推荐系统API的业务流程中的完整关系(如整个业务流程中各个推荐服务之间的调用关系)。因此在本发明实施例中,为目标推荐系统API中的各个推荐服务创建有向无环图。
以推荐系统API主服务为例,在解析时会将enabled(能启用的)为true(正确)的服务先筛选出来;然后根据DSL中各个推荐服务的beforecall构建有向图。在构建时,将各个推荐服务作为有向图的节点,其中beforecall为空的服务节点入度为0,不为空的服务节点x与beforecall的每个节点yi之间的关联作为有向图的边,边的源点是yi,终点是x。
步骤1023、对所述有向无环图中的各个节点进行拓扑排序,得到所述目标推荐系统API中的推荐服务以及推荐服务的调用关系信息。
拓扑排序的过程是不断的寻找当前有向图中入度为0的节点,将其从图上连带其关联的边一起删除,有多个入度为0的节点可以任选其一;然后将图上对应的边关联的剩余节点的入度减一;直到所有入度为0的节点全部找到。
对有向无环图中的各个节点拓扑排序结束后,可以得到目标推荐系统API中的推荐服务(即有向图中的节点)以及推荐服务的调用关系信息(有向图中的边)。
步骤103、根据所述推荐服务以及推荐服务的调用关系信息,生成所述目标推荐系统API。
在本发明实施例中,可通过模板引擎将推荐服务以及推荐服务的调用关系信息映射到对应的FTL(FreeMarker Template Language,FreeMarker模板语言)文件中,得到所述推荐系统API。
具体包括:
根据所述推荐服务的调用关系信息,生成推荐服务的并行执行和/或串行执行的代码片段;
将所述代码片段映射到基于Hash散列的数据结构中;
模板引擎将所述基于Hash散列的数据结构中的键值映射到模板语言FTL文件的占位符,得到所述目标推荐系统API。
具体的,为了自动生成推荐系统API高度抽象的框架代码,这里需要定义相关服务的基础代码模板,本方案所采用的模板引擎可以是freemarker(一种模板引擎的名称)模板引擎,还可以是Velocity(一种模板引擎的名称)模板引擎等。
以推荐系统API主服务为例,定义相关FLT文件main_service.ftl,内容如下:
将解析程序解析DSL JSON文件得到的结果,通过模板引擎映射到对应的FTL文件中,自动化的生成规范且可复用的框架代码。例如针对生成推荐API主服务Java框架代码的过程:
解析程序会将DSL"strategy_service"部分的JSON做解析,根据DSL中每个服务节点的属性,做相应的处理,生成代码片段,放入一个Map(计算机术语:基于Hash散列的数据结构)中(模板引擎程序处理需要的输入参数之一);其中Map的key对应着FTL文件的各个占位符($或#开始的字符串);
例如解析程序解析DSL中服务节点的beforecall(在此之前调用的服务),利用DAG拓扑排序得到服务间的调用顺序,生成可并行和串行执行的代码片段,并放入名为RecommendProcessCode的key中,
这个key对应了main_service.ftl的
<#if RecommendProcessCode?exists>
${RecommendProcessCode}
</#if>
部分;
后续模板引擎程序会将解析程序生成的Map映射到对应的FTL文件,自动生成最终的代码。
由上述实施例可见,本发明实施例提供的推荐系统API的生成方法通过确定用于描述目标推荐系统API中的推荐服务的信息的DSL文件;根据所述DSL文件构建DAG,得到目标推荐系统API中的推荐服务以及推荐服务的调用关系信息;根据调用关系信息生成推荐系统API,实现实施轻量化,提高了生成的推荐API的整体规范性和复用性,并且提高了系统性能。
基于上述任一实施例,在本发明实施例中,所述根据所述目标推荐系统API的领域特定语言文件,确定所述目标推荐系统API中的推荐服务以及推荐服务的调用关系信息,还包括:
根据所述推荐服务的调用关系信息,确定具有相同调用顺序的推荐服务;
根据具有相同调用顺序的推荐服务,得到推荐服务的并行处理信息。
具体的,若根据调用关系信息确定目标推荐系统API中存在调用顺序相同的推荐服务,则确定对调用顺序相同的所有推荐服务节点进行并行处理,得到对应的并行处理信息。
在一个可选的实施例中,如图3所示,以描述的推荐API主服务为例,解析程序会将enabled(能启用的)为true(正确)的服务先筛选出来;然后根据DSL中各个服务的beforecall构建有向图;各个服务作为有向图的顶点,其中beforecall为空的服务节点入度为0,不为空的服务节点x,与beforecall的每个节点yi之间的关联作为有向图的边,边的源点是yi,终点是x;然后利用DAG有向无环图的拓扑排序算法得到服务节点间的拓扑排序,即服务内的调用关系。拓扑排序的过程是不断的寻找当前有向图中入度为0的节点,将其从图上连带其关联的边一起删除,有多个入度为0的节点可以任选其一;然后将图上对应的边关联的剩余节点的入度减一;直到所有入度为0的节点全部找到。
对应到DSL中的推荐服务,一个目标推荐系统包括以下推荐服务:算法实时召回服务,算法离线召回服务,ALS算法召回服务,在线排序服务,返回结果的编排和过滤服务。这些推荐服务的调用顺序在大方向上,按照业界推荐系统的业务流程进行,比如先算法召回,再排序,再对结果进行编排和过滤。
为这些推荐服务生成有向无环图后,对有向无环图做拓扑排序,拓扑排序结果依次为(排序结果不唯一但不影响后续的代码生成):算法实时召回—算法离线召回—ALS算法召回—在线排序—返回结果的编排和过滤。其中,调用顺序步骤相同的服务可以在一起并行处理。
其中:
步骤1是可以并行的部分,包含算法实时召回服务(id:4);算法离线召回服务(id:5);ALS算法召回服务(id:6);
步骤2是在线排序服务(id:7);
步骤3是返回结果的编排和过滤服务(id:8).
由上述实施例可见,本发明实施例提供的推荐系统API的生成方法根据推荐服务的调用关系信息可以确定目标推荐系统API中的哪些推荐服务可以并行执行,这有助于提高系统的整体性能。
基于上述任一实施例,在本发明实施例中,所述解析结果还包括:
服务接口信息,所述服务接口信息用于生成所述目标推荐系统API。
在本发明实施例中,服务接口信息主要是待生成的java类代码的基础信息,比如java类名,包路径,实现的接口名,引入的第三方类,方法名,代码作者等信息。
例如:
dsl的主服务main_service描述中,
"interface":"RecommendService",
"implementation":"RecommendServiceImpl",
这2个信息就是主服务对应的java代码的类名(implementation部分)和类实现的接口名(interface部分)。
要生成完整的代码,服务接口信息是必须的部分。将服务接口信息与推荐服务的代码相结合,可以生成所述目标推荐系统API的代码。
由上述实施例可见,本发明实施例提供的推荐系统API的生成方法通过将一些代码的基础信息集成为服务接口信息,可以避免对基础代码的重复编写,有助于减轻工作人员的负荷。
基于上述任一实施例,在本发明实施例中,方法还包括:
接收目标推荐系统的需求变更信息;
根据所述需求变更信息,更新所述目标推荐系统API的领域特定语言文件。
在之前的描述中已经提到,当目标推荐系统API的业务流程发生变化时,目标推荐系统API所对应的领域特定语言文件也要发生相应的变化。
在本发明实施例中,当目标推荐系统的需求发生变更,如目前版本的推荐系统不具有人工运营的功能,在下个版本中要添加人工运营功能,或者添加其他新的推荐算法处理服务,此时就需要根据需求变更信息,更新所述目标推荐系统API的领域特定语言文件。
更新后的目标推荐系统API的领域特定语言文件中,所包含的推荐服务以及推荐服务之间的调用关系信息有可能会发生变化。
本发明实施例提供的推荐系统API的生成方法可以根据目标推荐系统的需求变更,对目标推荐系统API所对应的领域特定语言文件进行更新,进而使得最终所得到的目标推荐系统API发生改变。
下面通过一个示例详细描述上述用于推荐系统中的推荐系统API的生成方法。
如图4所示,描述了一种基于DSL和有向图模型的推荐系统API代码结构自动生成的整体方案。
其中,“DSL解析”输入的是上述JSON文件,并解析该文件。
DSL解析后输出的内容是代码片段。例如:解析程序会将DSL"strategy_service"部分的JSON做解析,根据DSL中每个服务节点的属性,做相应的处理,生成代码片段,放入一个Map中。其中,Map为一计算机术语,具体为基于Hash散列的数据结构。
“构建DAG得到服务调用顺序和并行处理信息”是根据上述DSL解析文件构建DAG,得到一个或多个推荐服务点之间的调用关系信息,若该调用关系信息中存在调用顺序相同的推荐服务节点,则确定对调用顺序相同的所有推荐服务节点进行并行处理,得到对应的并行处理信息。
“服务接口信息”主要可以包括待生成的java类代码的基础信息。比如:java类名,包路径,实现的接口名,引入的第三方类,方法名,代码作者等信息;
例如:
DSL的主服务main_service描述中,
"interface":"RecommendService",
"implementation":"RecommendServiceImpl",
这2个信息就是主服务对应的java代码的类名(implementation部分)和类实现的接口名(interface部分)。
“定义服务的基础代码模板”是为了自动生成推荐系统API高度抽象的框架代码,这里需要定义相关服务的基础代码模板,使用的模板引擎可以是freemarker模板引擎、Velocity模板引擎等。
本方案用到freemarker模板引擎,以推荐API主服务为例,定义相关FTL文件main_service.ftl,内容如下:
“模板引擎”可以是freemarker模板引擎、Velocity模板引擎等。
“推荐系统API代码结构自动化生成”是模板引擎程序会将解析程序生成的Map映射到对应的FTL文件,自动生成最终的代码。
“推荐需求变更”的作用是:比如,若当前版本的推荐系统没有上人工运营,下个版本要上人工运营,或者添加新的推荐算法处理服务,此时就需要更新之前定义的DSL文件。针对推荐需求的变更,因为软件开发不会一次就完成,需求随时会改变,例如一旦加入新的推荐服务模块,就需要更新之前版本的DSL JSON描述。
“推荐系统API DSL自定义或更新”是指DSL可以进行自定义,也可以根据推荐需求变更进行更新。
由上述实施例可见,通过接收推荐需求变更信息;根据所述推荐需求变更信息,更新所述DSL文件,可以对DSL文件信息进行不断更新,以达到最佳效果,可以实现实施轻量化,提高了推荐系统API的生成的灵活性,还提高了系统性能。
图5示例了本发明实施例提供的一种推荐系统API的生成装置的结构示意图,该推荐系统API的生成装置可以用于推荐系统中;如图5所示,该推荐系统API的生成装置包括:
领域特定语言文件确定模块501,用于根据目标推荐系统API的业务流程,确定所述目标推荐系统API的领域特定语言文件;其中,所述领域特定语言文件按照预设的格式描述所述目标推荐系统API中的推荐服务的信息;
推荐服务确定模块502,用于根据所述目标推荐系统API的领域特定语言文件,确定所述目标推荐系统API中的推荐服务以及推荐服务的调用关系信息;
生成模块503,用于根据所述推荐服务以及推荐服务的调用关系信息,生成所述目标推荐系统API。
本实施例所述的推荐API的生成装置通过确定用于描述目标推荐系统API中的推荐服务的信息的DSL文件;根据所述DSL文件构建DAG,得到目标推荐系统API中的推荐服务以及推荐服务的调用关系信息;根据调用关系信息生成推荐系统API,实现实施轻量化,提高了生成的推荐API的整体规范性和复用性,并且提高了系统性能。
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)601、通信接口(Communications Interface)602、存储器(memory)603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信。
在一实施例中,图6中的电子设备中,具体地,处理器601可以调用存储器603中的逻辑指令,以执行如下方法:
根据目标推荐系统API的业务流程,确定所述目标推荐系统API的领域特定语言文件;其中,所述领域特定语言文件按照预设的格式描述所述目标推荐系统API中的推荐服务的信息;
根据所述目标推荐系统API的领域特定语言文件,确定所述目标推荐系统API中的推荐服务以及推荐服务的调用关系信息;
根据所述推荐服务以及推荐服务的调用关系信息,生成所述目标推荐系统API。
需要说明的是,本实施例中的电子设备在具体实现时可以为服务器,也可以为PC机,还可以为其他设备,只要其结构中包括如图6所示的处理器610、通信接口620、存储器630和通信总线640,其中处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信,且处理器610可以调用存储器630中的逻辑指令以执行上述方法即可。本实施例不对电子设备的具体实现形式进行限定。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:
根据目标推荐系统API的业务流程,确定所述目标推荐系统API的领域特定语言文件;其中,所述领域特定语言文件按照预设的格式描述所述目标推荐系统API中的推荐服务的信息;
根据所述目标推荐系统API的领域特定语言文件,确定所述目标推荐系统API中的推荐服务以及推荐服务的调用关系信息;
根据所述推荐服务以及推荐服务的调用关系信息,生成所述目标推荐系统API。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:
根据目标推荐系统API的业务流程,确定所述目标推荐系统API的领域特定语言文件;其中,所述领域特定语言文件按照预设的格式描述所述目标推荐系统API中的推荐服务的信息;
根据所述目标推荐系统API的领域特定语言文件,确定所述目标推荐系统API中的推荐服务以及推荐服务的调用关系信息;
根据所述推荐服务以及推荐服务的调用关系信息,生成所述目标推荐系统API。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种推荐系统API的生成方法,其特征在于,包括:
根据目标推荐系统API的业务流程,确定所述目标推荐系统API的领域特定语言文件;其中,所述领域特定语言文件按照预设的格式描述所述目标推荐系统API中的推荐服务的信息;
根据所述目标推荐系统API的领域特定语言文件,确定所述目标推荐系统API中的推荐服务以及推荐服务的调用关系信息;
根据所述推荐服务以及推荐服务的调用关系信息,生成所述目标推荐系统API。
2.根据权利要求1所述的推荐系统API的生成方法,其特征在于,所述根据所述目标推荐系统API的领域特定语言文件,确定所述目标推荐系统API中的推荐服务以及推荐服务的调用关系信息,包括:
对所述目标推荐系统API的领域特定语言文件进行解析,得到解析结果;其中,所述解析结果包括所述目标推荐系统API中的推荐服务的信息,所述推荐服务的信息包括:所述推荐服务与所述推荐服务被调用前必须完成的其他推荐服务之间的关联信息;
将所述目标推荐系统API中的推荐服务作为有向无环图中的节点,将所述推荐服务与所述推荐服务被调用前必须完成的另一推荐服务之间的关联作为有向无环图的边;
对所述有向无环图中的各个节点进行拓扑排序,得到所述目标推荐系统API中的推荐服务以及推荐服务的调用关系信息。
3.根据权利要求2所述的推荐系统API的生成方法,其特征在于,所述根据所述目标推荐系统API的领域特定语言文件,确定所述目标推荐系统API中的推荐服务以及推荐服务的调用关系信息,还包括:
根据所述推荐服务的调用关系信息,确定具有相同调用顺序的推荐服务;
根据具有相同调用顺序的推荐服务,得到推荐服务的并行处理信息。
4.根据权利要求2所述的推荐系统API的生成方法,其特征在于,所述解析结果还包括:服务接口信息,所述服务接口信息用于生成所述目标推荐系统API。
5.根据权利要求3所述的推荐系统API的生成方法,其特征在于,所述根据所述推荐服务以及推荐服务的调用关系信息,生成所述目标推荐系统API,包括:
通过模板引擎将所述推荐服务的调用关系信息映射到对应的模板语言FTL文件中,得到所述目标推荐系统API。
6.根据权利要求5所述的推荐系统API的生成方法,其特征在于,所述通过模板引擎将所述推荐服务的调用关系信息映射到对应的模板语言FTL文件中,得到所述目标推荐系统API,包括:
根据所述推荐服务的调用关系信息,生成推荐服务的并行执行和/或串行执行的代码片段;
将所述代码片段映射到基于Hash散列的数据结构中;
模板引擎将所述基于Hash散列的数据结构中的键值映射到模板语言FTL文件的占位符,得到所述目标推荐系统API。
7.根据权利要求1所述的推荐系统API的生成方法,其特征在于,还包括:
接收目标推荐系统的需求变更信息;
根据所述需求变更信息,更新所述目标推荐系统API的领域特定语言文件。
8.一种推荐系统API的生成装置,其特征在于,包括:
领域特定语言文件确定模块,用于根据目标推荐系统API的业务流程,确定所述目标推荐系统API的领域特定语言文件;其中,所述领域特定语言文件按照预设的格式描述所述目标推荐系统API中的推荐服务的信息;
推荐服务确定模块,用于根据所述目标推荐系统API的领域特定语言文件,确定所述目标推荐系统API中的推荐服务以及推荐服务的调用关系信息;
生成模块,用于根据所述推荐服务以及推荐服务的调用关系信息,生成所述目标推荐系统API。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7任一项所述推荐系统API的生成方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7任一项所述推荐系统API的生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011131816.XA CN112351076B (zh) | 2020-10-21 | 2020-10-21 | 推荐系统api的生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011131816.XA CN112351076B (zh) | 2020-10-21 | 2020-10-21 | 推荐系统api的生成方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112351076A true CN112351076A (zh) | 2021-02-09 |
CN112351076B CN112351076B (zh) | 2023-07-18 |
Family
ID=74359474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011131816.XA Active CN112351076B (zh) | 2020-10-21 | 2020-10-21 | 推荐系统api的生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112351076B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113741864A (zh) * | 2021-08-16 | 2021-12-03 | 广州木链云科技有限公司 | 基于自然语言处理的语义化服务接口自动设计方法与系统 |
CN114780265A (zh) * | 2022-05-18 | 2022-07-22 | 壹沓科技(上海)有限公司 | 一种基于dsl的跨系统服务调用方法、装置及相关设备 |
CN116301734A (zh) * | 2023-05-17 | 2023-06-23 | 安徽思高智能科技有限公司 | Rpa流程资产库中流程推荐方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491777A (zh) * | 2018-11-12 | 2019-03-19 | 北京字节跳动网络技术有限公司 | 任务执行方法、装置、设备及存储介质 |
US20190188319A1 (en) * | 2017-12-20 | 2019-06-20 | International Business Machines Corporation | Facilitation of domain and client-specific application program interface recommendations |
CN110032369A (zh) * | 2019-04-24 | 2019-07-19 | 成都市映潮科技股份有限公司 | 一种代码自动生成方法、装置及介质 |
CN110704749A (zh) * | 2019-10-16 | 2020-01-17 | 网易(杭州)网络有限公司 | 推荐引擎定制系统、推荐方法及推荐系统、电子设备 |
CN111580793A (zh) * | 2020-04-30 | 2020-08-25 | 微民保险代理有限公司 | 执行服务的方法、装置、计算机设备和存储介质 |
CN111782207A (zh) * | 2020-06-23 | 2020-10-16 | 北京青云科技股份有限公司 | 任务流代码生成方法、装置、设备及存储介质 |
-
2020
- 2020-10-21 CN CN202011131816.XA patent/CN112351076B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190188319A1 (en) * | 2017-12-20 | 2019-06-20 | International Business Machines Corporation | Facilitation of domain and client-specific application program interface recommendations |
CN109491777A (zh) * | 2018-11-12 | 2019-03-19 | 北京字节跳动网络技术有限公司 | 任务执行方法、装置、设备及存储介质 |
CN110032369A (zh) * | 2019-04-24 | 2019-07-19 | 成都市映潮科技股份有限公司 | 一种代码自动生成方法、装置及介质 |
CN110704749A (zh) * | 2019-10-16 | 2020-01-17 | 网易(杭州)网络有限公司 | 推荐引擎定制系统、推荐方法及推荐系统、电子设备 |
CN111580793A (zh) * | 2020-04-30 | 2020-08-25 | 微民保险代理有限公司 | 执行服务的方法、装置、计算机设备和存储介质 |
CN111782207A (zh) * | 2020-06-23 | 2020-10-16 | 北京青云科技股份有限公司 | 任务流代码生成方法、装置、设备及存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113741864A (zh) * | 2021-08-16 | 2021-12-03 | 广州木链云科技有限公司 | 基于自然语言处理的语义化服务接口自动设计方法与系统 |
CN113741864B (zh) * | 2021-08-16 | 2024-04-05 | 广州木链云科技有限公司 | 基于自然语言处理的语义化服务接口自动设计方法与系统 |
CN114780265A (zh) * | 2022-05-18 | 2022-07-22 | 壹沓科技(上海)有限公司 | 一种基于dsl的跨系统服务调用方法、装置及相关设备 |
CN116301734A (zh) * | 2023-05-17 | 2023-06-23 | 安徽思高智能科技有限公司 | Rpa流程资产库中流程推荐方法、装置及电子设备 |
CN116301734B (zh) * | 2023-05-17 | 2023-07-28 | 安徽思高智能科技有限公司 | Rpa流程资产库中流程推荐方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112351076B (zh) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112351076A (zh) | 推荐系统api的生成方法、装置、电子设备及存储介质 | |
US20230057335A1 (en) | Deployment of self-contained decision logic | |
US11531914B2 (en) | Artificial intelligence (AI) based automatic rule generation | |
US20190171553A1 (en) | Intelligent batch job testing | |
WO2009072145A1 (en) | Templating system and method for updating content in real time | |
CN112001500A (zh) | 基于纵向联邦学习系统的模型训练方法、设备及存储介质 | |
CN113238740B (zh) | 代码生成方法、代码生成装置、存储介质及电子设备 | |
CN115358401A (zh) | 一种推理服务的处理方法、装置、计算机设备及存储介质 | |
CN109299913B (zh) | 员工薪资方案生成方法及装置 | |
CN113377372A (zh) | 业务规则的解析方法、装置、计算机设备及存储介质 | |
CN111104214B (zh) | 一种工作流应用方法及装置 | |
CN114462582A (zh) | 基于卷积神经网络模型的数据处理方法及装置、设备 | |
CN112699042B (zh) | 一种单元测试案例的生成方法及装置 | |
CN108170404B (zh) | 一种基于参数化模型的Web服务组合验证方法 | |
CN117750050A (zh) | 基于大语言模型的信息处理方法、装置以及电子设备 | |
CN117492743A (zh) | 基于大语言模型的目标应用生成方法、装置及存储介质 | |
US6868297B1 (en) | Method and system for designing objects using functional modeling | |
CN111209463A (zh) | 互联网数据采集方法及装置 | |
CN110083351A (zh) | 用于生成代码的方法和装置 | |
CN114153491A (zh) | 应用程序接口的编排方法、装置、设备以及存储介质 | |
CN113407598A (zh) | 需求文档的生成方法、装置、存储介质及电子设备 | |
CN114691111A (zh) | 基于可视化的代码识别模型训练方法及装置 | |
CN112508501A (zh) | 一种多级流程配置的方法、装置、设备和介质 | |
CN117251231B (zh) | 一种动画资源处理方法、装置、系统及电子设备 | |
CN111208980B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |