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

一种算法服务的调用方法、装置、服务器和存储介质与流程

2022-02-20 05:51:05 来源:中国专利 TAG:


1.本技术涉及数据处理技术领域,尤其涉及一种算法服务的调用方法、装置、服务器和存储介质。


背景技术:

2.目前,能够提供算法服务的算法厂家有很多,且各个算法厂家都具有各自对应的优势算法。在业务应用中,除了单算法服务的应用之外,将多个算法服务组合成一个新算法服务的应用也成为一种实际的业务需求。然而,由于各个算法厂家之间没有统一的接口标准,在将不同算法厂家提供的算法服务进行组合时,存在开发工作难度大的问题。


技术实现要素:

3.有鉴于此,本技术实施例提供了一种算法服务的调用方法、装置、服务器和存储介质,能够降低将不同算法厂家提供的算法服务进行组合时的开发工作难度。
4.本技术实施例的第一方面提供了一种算法服务的调用方法,应用于服务器,所述方法包括:
5.当检测到包含插件服务的插件容器的功能接口被调用时,根据所述插件服务的功能代码从预先构建的算法仓中调用一个以上的算法容器,每个所述算法容器都包含各自对应的算法服务;
6.基于所述一个以上的算法容器包含的算法服务对输入数据进行处理,得到输出数据;
7.其中,所述插件容器预先部署并注册到所述服务器,所述算法仓存储已部署并注册到所述服务器的所有算法容器。
8.本技术实施例预先将不同的算法服务封装到不同的算法容器中,然后将获得的各个算法容器部署和注册到平台服务器,并存储在算法仓中;之后,开发人员可以根据需要组合的算法服务编写相应的功能代码,将该功能代码以插件服务的形式封装到一个插件容器中,该插件容器同样部署并注册到平台服务器;当需要调用算法服务的时候,平台服务器会检测到该插件容器的功能接口被调用,此时运行该插件容器包含的插件服务,从该算法仓中调用一个以上的算法容器,并基于这些被调用的算法容器所包含的算法服务对输入数据进行处理,从而实现不同算法服务的组合。在这个过程中,插件服务和算法服务都是容器化的,平台服务器可以利用容器编排的方式实现容器的部署和调度,故开发人员只需根据要调用的算法服务编写插件化的功能代码即可,无需考虑不同算法服务接口标准不一致的问题,从而降低开发工作难度。
9.在本技术实施例的一种实现方式中,可以在平台服务器部署一个算法编排平台,各个算法厂家可以通过各自的客户端与该平台服务器对接,将各自提供的算法服务上传至该算法编排平台进行部署。而对于需要组合算法服务的开发人员,其可以根据发布到算法编排平台的算法服务编写插件化的算法组合功能代码,从而自由调用算法编排平台具有的
算法服务,实现算法服务的组合。
10.在本技术实施例的一种实现方式中,各个算法厂家可以将各自的算法服务封装到算法容器中,然后将算法容器部署和注册到平台服务器,从而发布至算法编排平台。另外,在平台服务器端还可以设置一个算法容器审核的流程节点,通过指定人员审核是否通过某个算法厂家发布算法容器的请求,只有通过审核的算法容器才会发布至算法编排平台,从而提高算法服务管理的规范性。
11.在本技术实施例的一种实现方式中,开发人员在编写好用于实现算法服务组合的功能代码之后,可以将该功能代码以插件服务的形式封装到插件容器中,然后将插件容器部署和注册到平台服务器,从而发布至算法编排平台。另外,在平台服务器端还可以设置一个插件容器审核的流程节点,通过指定人员审核是否通过某个开发人员发布插件容器的请求,只有通过审核的插件容器才会发布至算法编排平台,从而提高插件服务管理的规范性。
12.本技术实施例的第二方面提供了一种算法服务的调用装置,应用于服务器,所述装置包括:
13.算法容器调用模块,用于当检测到包含插件服务的插件容器的功能接口被调用时,根据所述插件服务的功能代码从预先构建的算法仓中调用一个以上的算法容器,每个所述算法容器都包含各自对应的算法服务;
14.算法服务处理模块,用于基于所述一个以上的算法容器包含的算法服务对输入数据进行处理,得到输出数据;
15.其中,所述插件容器预先部署并注册到所述服务器,所述算法仓存储已部署并注册到所述服务器的所有算法容器。
16.本技术实施例的第三方面提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本技术实施例的第一方面提供的算法服务的调用方法。
17.本技术实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本技术实施例的第一方面提供的算法服务的调用方法。
18.本技术实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在终端设备或服务器上运行时,使得终端设备或服务器执行本技术实施例的第一方面所述的算法服务的调用方法。
19.可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
20.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
21.图1是本技术实施例提出的算法服务的调用方法所适用的一种系统结构示意图;
22.图2是本技术实施例提出的一种算法服务的调用方法的一个实施例的流程图;
23.图3是本技术实施例提出的一种算法服务查询界面的示意图;
24.图4是本技术实施例提出的一种插件服务查询界面的示意图;
25.图5是本技术实施例提出的算法服务的调用方法在一个实际应用场景下的流程示意图;
26.图6是本技术实施例提出的一种算法服务的调用装置的结构示意图;
27.图7是本技术实施例提出的一种服务器的示意图。
具体实施方式
28.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
29.本技术实施例的目的在于提供一个能够用于组合算法服务的算法编排平台,该算法编排平台可以部署在一个平台服务器上,各个算法厂家可以通过各自的客户端与该平台服务器对接,将各自提供的算法服务上传至该算法编排平台进行部署。对于需要组合算法服务的开发人员,其可以根据发布到算法编排平台的算法服务编写插件化的算法组合功能代码,从而自由调用算法编排平台具有的算法服务,实现算法服务的组合。
30.如图1所示,为本技术实施例提出的算法服务的调用方法所适用的一种系统结构示意图。在图1中,平台服务器作为服务端,各个算法厂家的客户端和各个需要组合算法服务的开发人员的客户端均与该平台服务器对接。在该平台服务器上部署一个算法编排平台,算法厂家可以通过各自的客户端将提供的算法服务以算法容器的形式发布至该算法编排平台,已发布的算法容器可以存储于该算法编排平台设有的一个算法仓中。需要组合算法服务的开发人员可以通过各自的客户端上传包含插件服务的插件容器至该算法编排平台;当该插件容器运行时,能够从该算法仓中调用不同的算法容器,从而实现算法服务的编排和组合。关于本技术实施例更多的技术实现细节,请参照下文所述的方法实施例。
31.应当理解,本技术各个方法实施例的执行主体为各种类型的终端设备或服务器,例如可以是图1所示的平台服务器。
32.请参阅图2,示出了本技术实施例提出的一种算法服务的调用方法,包括:
33.201、当检测到包含插件服务的插件容器的功能接口被调用时,根据所述插件服务的功能代码从预先构建的算法仓中调用一个以上的算法容器,每个所述算法容器都包含各自对应的算法服务;
34.以图1所示的部署在平台服务器的算法编排平台为例,该算法编排平台需要对各个算法容器和插件容器进行部署和调度,故可以基于容器编排的方式完成该算法编排平台的开发,具体可以利用现有的各类容器编排工具,例如k8s、docker编排工具、微软的asf以及amazon的eks等。本技术实施例结合容器编排的方式,通过制定一套标准的容器调度、管理和衔接的协议,只需较少的开发工作即可实现任意算法厂家的算法服务组合。
35.在进行算法服务的组合调用之前,需要将待调用的算法服务发布至平台服务器的
算法编排平台。各个算法厂家可以将各自的算法服务封装到算法容器中,然后将算法容器部署和注册到平台服务器,从而发布至算法编排平台。另外,在平台服务器端还可以设置一个算法容器审核的流程节点,通过指定人员审核是否通过某个算法厂家发布算法容器的请求,只有通过审核的算法容器才会发布至算法编排平台,从而提高算法服务管理的规范性。
36.在本技术实施例的一种实现方式中,将任意的一个算法容器部署到平台服务器的步骤,可以包括:
37.(1)获取算法容器镜像,所述算法容器镜像包括所述算法容器和算法配置文件;
38.(2)根据所述算法配置文件将所述算法容器部署到所述平台服务器。
39.该算法编排平台支持算法容器镜像协议,算法厂家可以将算法服务封装到一个算法容器(例如一个docker标准文件包)中,然后基于该算法容器镜像协议将算法容器和对应的算法配置文件制作成对应的算法容器镜像(格式为一个文件压缩包),并将该算法容器镜像发布至算法编排平台。这里的算法配置文件可以包含算法服务的基本信息(例如算法名称、算法版本、算法厂家信息、算法镜像名称和镜像版本等信息)、环境依赖信息(例如操作系统依赖、驱动依赖、cpu核数依赖、内存依赖和存储依赖等信息)以及接口信息(例如接口说明和数据结构等信息)。算法编排平台在获取到算法厂家上传的算法容器镜像之后,可以通过解析算法容器镜像中的算法配置文件获取到前面所述的信息,并可以基于这些信息采用容器编排的方式,完成算法容器的部署工作。
40.进一步的,所述算法配置文件包括部署所述算法容器所需的环境依赖信息;所述根据所述算法配置文件将所述目标算法容器部署到所述平台服务器,可以包括:
41.通过容器编排工具从所述平台服务器的虚拟资源池中获取满足所述环境依赖信息的虚拟资源,并在所述虚拟资源的范围内部署所述算法容器。
42.算法编排平台在解析算法容器镜像之后可以获得其中的算法配置文件,根据算法配置文件中的环境依赖信息可以确定部署算法容器所需的环境资源,然后可以通过容器编排工具(例如k8s)在平台服务器管理的虚拟资源池中分配满足环境依赖信息要求的虚拟资源(例如cpu、内存、磁盘空间和显卡等虚拟机机制的资源),在该虚拟资源的范围内部署算法容器。通过这样设置,每个算法容器都可以分配到符合环境依赖要求的虚拟资源。而且,在各自分配的虚拟资源范围内部署算法容器,各个算法容器使用的虚拟资源是相互独立的,不存在相互干扰的问题。
43.在将算法容器部署到平台服务器之后,接下来需要完成算法容器的注册工作。在本技术实施例的一种实现方式中,将算法容器注册到平台服务器的步骤,可以包括:
44.(1)待算法容器部署并启动后,通过配置的环境变量将平台服务器的初始化信息发送至该算法容器,以指示该算法容器基于该初始化信息以及该算法容器包含的算法服务的属性信息注册到平台服务器;
45.(2)为注册后的算法容器分配唯一的算法标识。
46.在将一个算法容器部署到平台服务器之后,启动该算法容器,平台服务器可以将算法容器注册所需的一些初始化信息(例如平台服务器的名称和地址等信息)发送给该算法容器。这个过程的具体步骤为:算法容器通过配置的环境变量(例如http和tcp等方式)向平台服务器发送信息获取请求,平台服务器在接收到信息获取请求后,将相应的初始化信息通过该配置的环境变量发送至算法容器;算法容器在获取到初始化信息之后,可以基于
初始化信息以及算法容器包含的算法服务的属性信息(这部分信息可以保存在前面所述的算法配置文件中,具体可以包含算法服务的名称、版本、功能以及接口说明等信息)完成注册的操作。在算法容器完成注册之后,平台服务器可以为该算法容器分配一个唯一的算法标识,用于区分算法编排平台具有的各个算法服务。为算法容器分配的算法标识可以是包含算法相关信息的指定格式的算法编号,例如,算法编号的第一位字符可以指代算法厂家,算法编号的第二位字符可以指代算法处理的数据类型,算法编号的第三位字符可以指代算法适用的应用场景,等等。
47.在本技术实施例的一种实现方式中,在将算法容器注册到平台服务器的步骤之后,还可以包括:
48.若接收到算法容器周期性上报的心跳信号,则将该算法容器包含的算法服务的属性信息显示于平台服务器的指定显示界面。
49.为了获知已部署和注册的算法容器是否正常运行,即是否可以正常提供相应的算法服务,可以由算法容器主动上报心跳信号(该信号可以包含算法服务的健康状况以及运行负载状况等信息),平台服务器若能接收到算法容器周期性上报的心跳信号,则表示算法容器是正常运行的。另一方面,平台服务器可以将正常运行的算法容器能提供的算法服务的各类属性信息(可以包含算法服务名称、版本、功能以及接口说明,对应的算法编号等信息)显示于某个指定的显示界面,例如可以显示于该算法编排平台的算法服务查询界面。各个客户端的用户,例如需要组合算法服务的开发人员通过该算法服务查询界面即可获悉算法编排平台具有的各个算法服务以及这些算法服务的属性信息;基于这些信息,开发人员可以通过算法标识访问以及数据结构转换的思路编写插件化的算法组合功能代码。
50.如图3所示,为本技术实施例提出的一种算法服务查询界面的示意图。图3所示的查询界面中包含算法编排平台能提供的m个算法服务的属性信息,基于这些属性信息开发人员可以获知当前业务场景需要组合的算法服务是哪些,各个算法服务的调用顺序以及各个算法服务在组合时需要执行哪些数据结构转换等信息,从而能够方便地编写出相应的算法组合功能代码,该功能代码可以视作算法服务的编排算法。
51.开发人员在编写好用于实现算法服务组合的功能代码之后,将该功能代码以插件服务的形式封装到一个容器中,得到本技术所述的插件容器。在进行算法服务的组合调用之前,还需要将该插件容器部署和注册到平台服务器。另外,在平台服务器端还可以设置一个插件容器审核的流程节点,通过指定人员审核是否通过某个开发人员发布插件容器的请求,只有通过审核的插件容器才会发布至算法编排平台,从而提高插件服务管理的规范性。
52.在本技术实施例的一种实现方式中,将插件容器部署到平台服务器的步骤,可以包括:
53.(1)获取插件容器镜像,所述插件容器镜像包括所述插件容器和插件配置文件;
54.(2)根据所述插件配置文件将所述插件容器部署到所述服务器。
55.该算法编排平台支持插件容器镜像协议,开发人员可以将插件服务封装到一个插件容器(例如一个docker标准文件包)中,然后基于该插件容器镜像协议将插件容器和对应的插件配置文件制作成对应的插件容器镜像(格式为一个文件压缩包),并将该插件容器镜像发布至算法编排平台。这里的插件配置文件可以包含插件服务的基本信息(例如插件名称、插件开发者、插件版本、插件镜像名称和镜像版本等信息)、环境依赖信息(例如操作系
统依赖、驱动依赖、cpu核数依赖、内存依赖和存储依赖等信息)以及接口信息(例如包含的编排算法名称、编排算法接口说明和编排算法数据结构说明等信息)。算法编排平台在获取到开发人员上传的插件容器镜像之后,可以通过解析插件容器镜像中的插件配置文件获取到前面所述的信息,并可以基于这些信息采用容器编排的方式,完成插件容器的部署工作。
56.进一步的,所述插件配置文件包括部署所述插件容器所需的环境依赖信息;所述根据所述插件配置文件将所述插件容器部署到所述平台服务器,可以包括:
57.通过容器编排工具从所述平台服务器的虚拟资源池中获取满足所述环境依赖信息的虚拟资源,并在所述虚拟资源的范围内部署所述插件容器。
58.算法编排平台在解析插件容器镜像之后可以获得其中的插件配置文件,根据插件配置文件中的环境依赖信息可以确定部署插件容器所需的环境资源,然后可以通过容器编排工具(例如k8s)在平台服务器管理的虚拟资源池中分配满足环境依赖信息要求的虚拟资源(例如cpu、内存、磁盘空间和显卡等虚拟机机制的资源),在该虚拟资源的范围内部署插件容器。通过这样设置,每个插件容器都可以分配到符合环境依赖要求的虚拟资源。而且,在各自分配的虚拟资源范围内部署插件容器,由不同开发人员上传的各个插件容器使用的虚拟资源是相互独立的,不存在相互干扰的问题。
59.在将插件容器部署到平台服务器之后,接下来需要完成插件容器的注册工作。在本技术实施例的一种实现方式中,将插件容器注册到平台服务器的步骤,可以包括:
60.待插件容器部署并启动后,通过配置的环境变量将平台服务器的初始化信息发送至该插件容器,以指示该插件容器基于该初始化信息以及该插件容器包含的插件服务的属性信息注册到平台服务器。
61.在将一个插件容器部署到平台服务器之后,启动该插件容器,平台服务器可以将插件容器注册所需的一些初始化信息(例如平台服务器的名称和地址等信息)发送给该插件容器。这个过程的具体步骤为:插件容器通过配置的环境变量(例如http和tcp等方式)向平台服务器发送信息获取请求,平台服务器在接收到信息获取请求后,将相应的初始化信息通过该配置的环境变量发送至插件容器;插件容器在获取到初始化信息之后,可以基于初始化信息以及插件容器包含的插件服务的属性信息(这部分信息可以保存在前面所述的插件配置文件中,具体可以包含插件服务的名称、版本、编排算法功能以及编排算法接口说明等信息)完成注册的操作。
62.在本技术实施例的一种实现方式中,在将插件容器注册到平台服务器的步骤之后,还可以包括:
63.若接收到插件容器周期性上报的心跳信号,则将该插件容器包含的插件服务的属性信息显示于平台服务器的指定显示界面。
64.为了获知已部署和注册的插件容器是否正常运行,即是否可以正常提供相应的插件服务,可以由插件容器主动上报心跳信号(该信号可以包含插件服务的健康状况以及运行负载状况等信息),平台服务器若能接收到插件容器周期性上报的心跳信号,则表示插件容器是正常运行的。另一方面,平台服务器可以将正常运行的插件容器能提供的插件服务的各类属性信息(可以包含插件服务的名称、版本、编排算法功能以及编排算法接口说明等信息)显示于某个指定的显示界面,例如可以显示于该算法编排平台的插件服务查询界面。外界用户通过该插件服务查询界面即可获悉算法编排平台具有的各个插件服务以及这些
插件服务的属性信息;基于这些信息,外界用户可以获知算法编排平台已实现的编排算法的相关信息。
65.如图4所示,为本技术实施例提出的一种插件服务查询界面的示意图,图4所示的查询界面中包含算法编排平台能提供的n个插件服务的属性信息,基于这些属性信息外界用户可以获知算法编排平台已实现的编排算法,从而考虑是否选择这些编排算法以满足某个业务场景需求。
66.以上内容为将算法容器、插件容器部署和注册到平台服务器的相关说明。在完成算法容器和插件容器的部署工作以及注册工作之后,可以进行算法服务的组合调用。
67.需要进行算法服务组合调用的用户(该用户可以是对应插件容器的开发人员,也可以是其它想要使用算法编排平台已具有的编排算法的人员)可以通过客户端向平台服务器发起调用插件容器的请求。平台服务器在检测到某个插件容器的功能接口被调用时,会执行该插件容器的插件服务,并依据该插件服务的功能代码从算法仓中调用一个以上的算法容器,其中每个算法容器都包含各自对应的算法服务。
68.在本技术实施例的一种实现方式中,所述根据所述插件服务的功能代码从预先构建的算法仓中调用一个以上的算法容器,可以包括:
69.根据所述功能代码包含的各个算法标识以及算法调用顺序,从所述算法仓中依次调用所述各个算法标识分别对应的算法容器。
70.平台服务器的算法仓具有的每个算法容器都分别对应一个算法标识,因此,开发人员可以根据需要组合的算法服务所对应的算法容器的算法标识编写相应的功能代码。另外,在组合各个算法服务时通常也要考虑各个算法服务执行的前后顺序,也即开发人员需要按照一定的算法调用顺序编写该功能代码。如此之后,根据插件服务的功能代码能够确定待调用的算法容器是哪些,以及这些算法容器的调用顺序是怎样的,平台服务器即可从算法仓中依次调用这些算法容器。
71.202、基于所述一个以上的算法容器包含的算法服务对输入数据进行处理,得到输出数据。
72.平台服务器在调用各个算法容器时,会基于这些算法容器包含的算法服务对输入数据进行处理,从而得到输出数据,这个过程即实现了算法服务的组合功能。这里的输入数据可由发起算法服务组合任务的客户端上传至平台服务器,该输入数据首先进入插件服务,插件服务会依次调用各个算法服务对该输入数据进行处理,从而得到输出数据。最后,平台服务器将得到的输出数据返回至发起算法服务组合任务的客户端。
73.在本技术实施例的一种实现方式中,所述基于所述一个以上的算法容器包含的算法服务对输入数据进行处理,得到输出数据,可以包括:
74.依次调用所述各个算法标识分别对应的算法容器的功能接口对所述输入数据进行处理,得到所述输出数据。
75.平台服务器可以为已部署的每个算法容器分别分配对应的算法标识和功能接口,这样,在调用算法容器包含的算法服务对输入数据进行处理时,可以通过算法标识找到对应的算法容器,然后依次调用这些算法容器的功能接口对输入数据进行处理,从而得到输出数据。例如,通过插件服务的功能代码(包含算法容器a的算法标识以及算法容器b的算法标识,且设定算法调用顺序为先调用算法容器a,后调用算法容器b)可以确定需要依次调用
算法容器a和算法容器b,则平台服务器可以通过算法容器a的算法标识找到算法容器a的功能接口(具体可以在算法仓中定义一套基于算法标识访问算法服务的http协议,以实现这个效果),调用该功能接口对输入数据进行处理,得到中间数据;然后,平台服务器可以通过算法容器b的算法标识找到算法容器b的功能接口,调用该功能接口对中间数据进行处理,得到输出数据。
76.进一步的,所述依次调用所述各个算法标识分别对应的算法容器的功能接口对所述输入数据进行处理,可以包括:
77.(1)调用所述各个算法标识分别对应的算法容器中的第一个算法容器的功能接口对所述输入数据进行处理,得到第一中间数据;
78.(2)按照所述各个算法标识分别对应的算法容器中的第二个算法容器的数据协议要求,对所述第一中间数据执行数据转换处理,得到第二中间数据;
79.(3)调用所述第二个算法容器的功能接口对所述第二中间数据进行处理。
80.由于不同的算法容器对输入数据的数据协议要求可能是不一样的,因此在将一个算法服务的输出数据输入至下一个算法服务之前,可能需要先执行相应的数据转换处理。例如,首先将输入数据输入第一个算法容器进行处理,执行相应的算法服务,可以得到第一中间数据。由于第一中间数据的数据格式可能不符合第二个算法容器的数据协议要求,故需要对第一中间数据执行相应的数据转换处理,得到符合第二个算法容器的数据协议要求的第二中间数据。例如,假设第一中间数据的字段名称和字段数量等因素不符合要求,则需要根据插件服务的功能代码制定的数据转换流程对第一中间数据的字段名称和字段数量进行调整,使之符合第二个算法容器的数据协议要求。在获得符合第二个算法容器的数据协议要求的第二中间数据之后,可以将第二中间数据输入第二个算法容器进行处理,执行相应的算法服务,可以得到输出的第三中间数据。接下来,若第三中间数据不符合下一个算法容器的数据协议要求,同样需要对第三中间数据执行相应的数据转换处理,以此类推,直至获得最后一个算法容器输出的最终结果。
81.本技术实施例预先将不同的算法服务封装到不同的算法容器中,然后将获得的各个算法容器部署和注册到平台服务器,并存储在算法仓中;之后,开发人员可以根据需要组合的算法服务编写相应的功能代码,将该功能代码以插件服务的形式封装到一个插件容器中,该插件容器同样部署并注册到平台服务器;当需要调用算法服务的时候,平台服务器会检测到该插件容器的功能接口被调用,此时运行该插件容器包含的插件服务,从该算法仓中调用一个以上的算法容器,并基于这些被调用的算法容器所包含的算法服务对输入数据进行处理,从而实现不同算法服务的组合。在这个过程中,插件服务和算法服务都是容器化的,平台服务器可以利用容器编排的方式实现容器的部署和调度,故开发人员只需根据要调用的算法服务编写插件化的功能代码即可,无需考虑不同算法服务接口标准不一致的问题,从而降低开发工作难度。
82.为便于说明本技术实施例提出的算法服务的调用方法,以下列举一个实际的应用场景。
83.在该应用场景中,于平台服务器部署了一个基于容器编排而开发的算法编排平台,其对应的算法仓中包含各个算法厂家上传的具有各自对应算法服务的算法容器,且平台服务器已为每个算法容器分配对应的算法编号以及接口编号。假设算法仓中已具有以下
两个算法服务:第一个算法服务为“ocr识别算法服务”,其对应的算法编号为81001,对应的ocr文字识别接口编号为a1(用于识别图片中的文字);第二个算法服务为“nlp自然语言分析算法服务”,其对应的算法编号为53012,对应的敏感词分析接口编号为b1(用于识别文字中是否具有敏感词)。
84.若某个开发人员需要实现“识别图片中是否具有敏感词”的业务需求,则平台服务器可以通过如图5所示的流程示意图执行相应的处理步骤,以下详细说明图5所示的各个处理步骤:
85.s1:获取由开发人员编写的插件服务;
86.开发人员根据业务需求以及算法编排平台的算法服务查询界面,可以获知待调用的2个算法容器的算法编号分别为81001和53012,两个算法容器之间的调用顺序为先调用算法编号81001的算法容器,后调用算法编号53012的算法容器,以及在将第一个算法容器的输出数据输入第二个算法容器之前需要执行怎样的数据转换处理等信息,故可以基于这些信息编写出插件服务的功能代码,平台服务器可以获取由开发人员的客户端上传的相应的插件服务。
87.s2:将插件服务封装到插件容器中,并将该插件容器部署和注册到算法编排平台;
88.一方面,平台服务器可以获取到该插件服务,并将该插件服务封装到插件容器中,然后将该插件容器部署和注册到算法编排平台,将插件容器部署和注册到算法编排平台的具体说明可以参照前文所述的方法实施例,在此不再赘述。另一方面,开发人员也可以在客户端完成将插件服务封装到插件容器的步骤,然后将封装后的插件容器上传至平台服务器,之后平台服务器再执行将该插件容器部署和注册到算法编排平台的步骤。
89.s3:运行插件容器,并获取输入的待处理图片;
90.当插件容器运行后,会调用插件容器的功能接口,假设接口编号为c1(用于识别图片中的敏感词),此时相应的插件服务开始执行。开发人员可以通过客户端上传待处理图片至平台服务器,该待处理图片首先会输入c1接口。
91.s4:依次调用各个算法服务对待处理图片进行处理,得到待处理图片是否具有敏感词的输出结果。
92.在待处理图片输入插件容器的c1接口后,相应的插件服务会先调用算法编号为81001的算法容器,将待处理图片输入该算法容器的ocr文字识别接口a1,执行相应的算法服务处理后,输出待处理图片中的初始文字数据;然后,插件服务会按照算法编号为53012的算法容器的数据协议要求对该初始文字数据执行相应的数据转换处理,得到符合要求的文字数据;接着,插件服务调用算法编号为53012的算法容器,将符合要求的文字数据输入该算法容器的敏感词分析接口b1,执行相应的算法服务处理后,最终输出待处理图片是否具有敏感词的结果。
93.综上所述,本技术实施例提出的算法编排平台不限制任何算法本身的接口规范定义,只需定义少量标准的容器管理协议即可。算法服务的组合和编排过程都是插件式的,任何被允许的算法厂家都可以通过该算法编排平台发布自己的优势算法服务,任何被允许的开发人员都可以通过该算法编排平台获取已发布的算法服务信息,并通过简单的算法标识访问以及数据结构转换等处理,能够无任何衔接限制地选取所需的算法服务,完成新的算法服务组合或流程。
94.应理解,上述各个实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
95.上面主要描述了一种算法服务的调用方法,下面将对一种算法服务的调用装置进行描述。
96.请参阅图6,本技术实施例中一种应用于平台服务器的算法服务的调用装置的结构示意图包括:
97.算法容器调用模块601,用于当检测到包含插件服务的插件容器的功能接口被调用时,根据所述插件服务的功能代码从预先构建的算法仓中调用一个以上的算法容器,每个所述算法容器都包含各自对应的算法服务;
98.算法服务处理模块602,用于基于所述一个以上的算法容器包含的算法服务对输入数据进行处理,得到输出数据;其中,所述插件容器预先部署并注册到所述服务器,所述算法仓存储已部署并注册到所述服务器的所有算法容器。
99.在本技术实施例的一种实现方式中,所述算法服务的调用装置还可以包括:
100.插件容器镜像获取模块,用于获取插件容器镜像,所述插件容器镜像包括所述插件容器和插件配置文件;
101.插件容器部署模块,用于根据所述插件配置文件将所述插件容器部署到所述服务器;
102.算法容器镜像获取模块,用于获取算法容器镜像,所述算法容器镜像包括目标算法容器和算法配置文件,所述目标算法容器为所述算法仓存储的任意一个算法容器;
103.算法容器部署模块,用于根据所述算法配置文件将所述目标算法容器部署到所述服务器。
104.进一步的,所述插件配置文件包括部署所述插件容器所需的第一环境依赖信息,所述算法配置文件包括部署所述目标算法容器所需的第二环境依赖信息;
105.所述插件容器部署模块可以包括:
106.插件容器部署单元,用于通过容器编排工具从所述服务器的虚拟资源池中获取满足所述第一环境依赖信息的第一虚拟资源,并在所述第一虚拟资源的范围内部署所述插件容器;
107.所述算法容器部署模块可以包括:
108.算法容器部署单元,用于通过容器编排工具从所述服务器的虚拟资源池中获取满足所述第二环境依赖信息的第二虚拟资源,并在所述第二虚拟资源的范围内部署所述目标算法容器。
109.进一步的,所述插件配置文件包括所述插件服务的第一属性信息,所述算法配置文件包括所述目标算法容器包含的算法服务的第二属性信息;所述算法服务的调用装置还可以包括:
110.插件容器注册模块,用于待所述插件容器部署并启动后,通过配置的环境变量将所述服务器的初始化信息发送至所述插件容器,以指示所述插件容器基于所述初始化信息和所述第一属性信息注册到所述服务器;
111.算法容器注册模块,用于待所述目标算法容器部署并启动后,通过配置的环境变
量将所述服务器的初始化信息发送至所述目标算法容器,以指示所述目标算法容器基于所述初始化信息和所述第二属性信息注册到所述服务器;
112.算法标识分配模块,用于为注册后的所述目标算法容器分配唯一的算法标识。
113.更进一步的,所述算法服务的调用装置还可以包括:
114.第一心跳信号检测模块,用于若接收到所述插件容器周期性上报的心跳信号,则将所述第一属性信息显示于所述服务器的指定显示界面;
115.第二心跳信号检测模块,用于若接收到所述目标算法容器周期性上报的心跳信号,则将所述第二属性信息显示于所述指定显示界面。
116.在本技术实施例的一种实现方式中,所述算法容器调用模块可以包括:
117.算法容器调用单元,用于根据所述功能代码包含的各个算法标识以及算法调用顺序,从所述算法仓中依次调用所述各个算法标识分别对应的算法容器;
118.所述算法服务处理模块可以包括:
119.数据处理单元,用于依次调用所述各个算法标识分别对应的算法容器的功能接口对所述输入数据进行处理,得到所述输出数据。
120.进一步的,所述数据处理单元可以包括:
121.第一算法容器调用子单元,用于调用所述各个算法标识分别对应的算法容器中的第一个算法容器的功能接口对所述输入数据进行处理,得到第一中间数据;
122.数据转换处理子单元,用于按照所述各个算法标识分别对应的算法容器中的第二个算法容器的数据协议要求,对所述第一中间数据执行数据转换处理,得到第二中间数据;
123.第二算法容器调用子单元,用于调用所述第二个算法容器的功能接口对所述第二中间数据进行处理。
124.本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如图2表示的任意一种算法服务的调用方法。
125.本技术实施例还提供一种计算机程序产品,当该计算机程序产品在终端设备或服务器上运行时,使得终端设备或服务器实现如图2表示的任意一种算法服务的调用方法。
126.图7是本技术一实施例提供的服务器的示意图。如图7所示,该实施例的服务器7包括:处理器70、存储器71以及存储在所述存储器71中并可在所述处理器70上运行的计算机程序72。所述处理器70执行所述计算机程序72时实现上述各个算法服务的调用方法的步骤,例如图2所示的步骤201至202。或者,所述处理器70执行所述计算机程序72时实现上述各装置实施例中各模块/单元的功能,例如图6所示模块601至602的功能。
127.所述计算机程序72可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器71中,并由所述处理器70执行,以完成本技术。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序72在所述服务器7中的执行过程。
128.所称处理器70可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、
分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
129.所述存储器71可以是所述服务器7的内部存储单元,例如服务器7的硬盘或内存。所述存储器71也可以是所述服务器7的外部存储设备,例如所述服务器7上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器71还可以既包括所述服务器7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机程序以及所述服务器所需的其他程序和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
130.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
131.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
132.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
133.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
134.在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
135.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
136.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
137.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用
时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
138.以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

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

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

相关文献