CN110245031B - 一种ai服务开放中台及方法 - Google Patents
一种ai服务开放中台及方法 Download PDFInfo
- Publication number
- CN110245031B CN110245031B CN201910477808.1A CN201910477808A CN110245031B CN 110245031 B CN110245031 B CN 110245031B CN 201910477808 A CN201910477808 A CN 201910477808A CN 110245031 B CN110245031 B CN 110245031B
- Authority
- CN
- China
- Prior art keywords
- service
- layer module
- access
- submodule
- calling request
- 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.)
- Active
Links
Images
Classifications
-
- 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/951—Indexing; Web crawling techniques
-
- 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/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0283—Price estimation or determination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- 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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
Abstract
本发明涉及信息技术领域,具体地涉及一种AI服务开放中台,所述中台包括:接入层模块,用于管理用户端的接入,并提供服务调用的接口;业务层模块,用于对所述接入层模块的服务调用请求进行预处理后,发送至所述服务层模块,以及对所述服务层模块返回服务调用结果进行后处理后,返回至所述接入层模块;稳定层模块,用于监控所述业务层模块与服务层模块之间互交,根据设定规则对所述满足条件的互交进行干预;服务层模块,用于执行对应的AI服务,以及对所述AI服务进行容器化管理。同时还提供了一种AI服务开放方法。本发明实施例适用于AI服务的标准化调用,能够解决现有AI服务开放的安全性、稳定性、扩展性和易用性等问题。
Description
技术领域
本发明涉及信息技术领域,具体地涉及一种AI服务开放中台,以及一种AI服务开放方法。
背景技术
随着人工智能(AI)技术的不断普及和在各行各业的应用落地,具有 AI 技术能力的公司也从原有的服务公司内自有业务不断转向开放,通过 AI 开放平台将积累的 AI 技术能力开放给开发者,赋能各个业务场景,帮助开发者实现自有的 AI 业务需求。从对内提供服务转向对外开放服务,需要提供更加统一的服务接口规范、更高的服务稳定性与安全性、更强的服务兼容性和更好的服务效果与性能。
现有的 AI 服务开放主要有以下几种方案:
1)将原有内部的 AI 服务通过简单接口封装,生成外部 API服务,直接提供给外部开发者;但是其存在以下缺点:当服务正式上线时,没有完善的服务鉴权、流控机制,存在较大的安全漏洞,并且不同开发者抢占服务资源互相影响,没有很好的控制;没有考虑参数校验,返回结果封装,错误码封装等。一方面对于开发者不够友好,容易引发调用错误,并且很难定位问题;另一方面,对于平台可能会把一些内部的结果、错误信息等直接暴露给开发者,存在安全漏洞,容易被非正常使用者攻击;
2)根据各个AI 服务的特性以及外部开发者业务需求,对已有的内部 AI服务分别进行协议封装、参数处理、错误码处理等,同时也考虑服务的权限控制等。但是其存在以下缺点:不同类型的服务在内部使用时可能存在较大差异,这些差异性使得开发者在使用平台不同的 AI 能力时得不到一致的体验,容易产生困扰。其内部服务的单独业务封装格式不仅增加了工作量、延长了服务开放周期,也使得一些通用功能在处理上存在不统一性。
发明内容
本发明的目的是提出一种AI服务开放中台,通过设计一种分层架构的AI服务开放模块的集合,以至少解决现有AI服务开放存在的安全性、稳定性、扩展性和易用性等问题。
在本发明的第一方面,提供了一种AI服务开放中台,所述AI服务开放中台包括:
接入层模块,用于管理用户端的接入,并提供服务调用的接口;接收用户端的服务调用请求转发至业务层模块,并向所述用户端返回服务调用结果;
业务层模块,用于对所述接入层模块的服务调用请求进行预处理,并将预处理后的服务调用请求发送至所述服务层模块,以及对所述服务层模块返回服务调用结果进行后处理,并将后处理后的服务调用结果返回至所述接入层模块;
所述业务层模块包括若干子模块,每个子模块用于执行特定的预处理或后处理功能;
稳定层模块,用于监控所述业务层模块与服务层模块之间互交,根据设定规则对所述满足条件的互交进行干预;以及
服务层模块,用于响应所述业务层模块的服务调用请求,执行对应的AI服务,并向所述业务层模块返回服务调用结果;同时还对所述AI 服务进行容器化管理。
可选的,所述接入层模块包括以下子模块:
鉴权子模块,用于验证所述用户端的接入合法性,屏蔽未通过鉴权的用户端;
流控子模块,用于对不同的用户端实行流量控制;
计费子模块,用于根据计费策略对使用本AI服务开放中台的用户端进行计费。
可选的,所述业务层模块包括以下子模块:
图像预处理子模块,用于对输入的图像进行处理,对图像的处理包括转码和压缩;
文本预处理子模块,用于对输入的文本数据进行处理,对文本数据的处理包括转码和字符过滤;
音频预处理子模块,用于对输入的音频进行处理,对音频的处理包括转码、去噪和切割;
抓取服务子模块,用于当输入对象包含URL时,自动向URL位置抓取URL目标;
通用缓存子模块,用于缓存预设时间段内重复的服务调用;
接口规范化子模块,用于将AI 服务规范为统一的协议格式和命名规范;
参数校验与字段屏蔽子模块,用于检出参数不合法的服务调用请求,以及屏蔽所述服务调用请求的预设字段;
错误码封装子模块,用于将AI 服务返回的错误码或错误信息处理为统一的error_code或error_message格式;对错误码或错误信息的处理包括合并、拆分、映射和转换。
可选的,所述业务层模块通过插件方式增加子模块,以增加所述子模块对应的预处理或后处理功能。
可选的,所述稳定层模块包括:
服务分级子模块,用于根据服务调用请求的属性确定服务调用请求的优先级,根据所述优先级,将服务调用请求下发至不同的多级集群,分别满足不同的 SLA 需求;
流控降级子模块,用于当AI服务开放中台的服务后台流量过载之后,所述流控降级子模块与所述接入层模块中的流控子模块相配合,对不同优先级的用户进行流控降级;
异常监控子模块,用于当业务层模块的服务调用请求异常时,通知所述接入层模块中的流控子模块进行流控;以及当服务层模块中的AI服务异常时,通知所述服务层模块中的服务维护子模块进行修复;
服务探活子模块,用于定期模拟业务层模块向服务层模块发送服务调用请求,调用AI 服务以监测服务层模块的稳定性和结果一致性。
可选的,所述服务层模块包括:
服务部署子模块,用于对AI服务进行部署;
服务更新子模块,用于对AI服务进行更新;
服务伸缩子模块,用于根据业务需求和系统现状对AI服务进行弹性伸缩;以及
服务维护子模块,用于对异常的AI服务实例进行下线和替换。
可选的,所述服务层模块采用kubernetes、Docker Swarm、Mesos和AWS ECS中的任一种对所述AI服务进行容器化管理。
在本发明的第二方面,还提供一种AI服务开放方法,应用于AI服务开放中台,所述方法包括:
接入层模块接收到用户端的接入请求,判断是否允许接入,并对允许接入的用户端配置接入规则;
所述接入层模块接收用户端的服务调用请求转发至业务层模块;
业务层模块对所述接入层模块的服务调用请求进行预处理,并将预处理后的服务调用请求发送至所述服务层模块;
服务层模块响应所述业务层模块的服务调用请求,执行对应的AI服务,并向所述业务层模块返回服务调用结果;
所述业务层模块对所述服务层模块返回服务调用结果进行后处理,并将后处理后的服务调用结果返回至所述接入层模块;
所述接入层模块接收所述处理后的服务调用结果,并将其返回至所述用户端;
稳定层模块,监控所述业务层模块与服务层模块之间互交,根据设定规则对所述满足条件的互交进行干预;
其中,所述业务层模块中所述预处理或后处理是通过对应的子模块来实现的。
可选的,所述判断是否允许接入,包括:验证所述用户端的接入合法性,屏蔽未通过鉴权的用户端;
所述对允许接入的用户端配置接入规则,其中所述接入规则包括:流控规则和计费规则。
可选的,所述业务层模块根据对应的指令实现以下操作:
图像预处理:对输入的图像进行处理,对图像的处理包括转码和压缩;
文本预处理:对输入的文本数据进行处理,对文本数据的处理包括转码和字符过滤;
音频预处理:对输入的音频进行处理,对音频的处理包括转码、去噪和切割;
抓取服务:当输入对象包含URL时,自动向URL位置抓取URL目标;
通用缓存:缓存预设时间段内重复的服务调用;
接口规范化:将AI 服务规范为统一的协议格式和命名规范;
参数校验与字段屏蔽:检出参数不合法的服务调用请求,以及屏蔽所述服务调用请求的预设字段;
错误码封装:将AI 服务返回的错误码或错误信息处理为统一的error_code或error_message格式;对错误码或错误信息的处理包括合并、拆分、映射和转换。
可选的,所述业务层模块通过插件方式,以增加该子模块对应的预处理或后处理功能。
可选的,所述稳定层模块根据对应的指令实现以下操作:
服务分级:根据服务调用请求的属性确定服务调用请求的优先级,根据所述优先级,将服务调用请求下发至不同的多级集群,分别满足不同的 SLA 需求;
流控降级:当AI服务开放中台的服务后台流量过载之后,所述流控降级子模块与所述接入层模块中的流控规则相配合,对不同优先级的用户进行流控降级;
异常监控:当业务层模块的服务调用请求异常时,通知所述接入层模块中的流控规则进行流控;以及当服务层模块中的AI服务异常时,通知所述服务层模块进行服务维护;
服务探活:定期模拟业务层模块向服务层模块发送服务调用请求,调用AI 服务以监测服务层模块的稳定性和结果一致性。
可选的,所述服务层模块根据对应的指令实现以下操作:
服务部署:对AI服务进行部署;
服务更新:对AI服务进行更新;
服务伸缩:根据业务需求和系统现状对AI服务进行弹性伸缩;
服务维护:对异常的AI服务实例进行下线和替换。
可选的,所述服务层模块采用kubernetes、Docker Swarm、Mesos和AWS ECS中的任一种对所述AI服务进行容器化管理。
在本发明的第三方面,还提供了一种数据服务器,所述数据服务器加载有前述的AI服务开放中台。
在本发明的第四方面,还提供一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行前述的AI服务开放方法。
通过上述技术方案,本发明提供了一种AI服务开放中台及对应的操作方法,通过抽象、统一和子模块化的方式解决了 AI服务开放过程中所需要面临的安全性、稳定性和扩展性问题。有了 AI服务开放中台,新的 AI 服务开放只需要根据服务特性与业务需求,选择性地配置各类通用子模块,扩展必须的专用子模块即可完成快速开放,并且服务的各方面标准能够与平台整体要求保持一致。
附图说明
图1是本发明一种实施方式提供的AI服务开放中台的系统结构示意图;
图2是本发明一种实施方式提供的AI服务开放中台的接入层模块结构示意图;
图3为本发明一种实施方式提供的AI服务开放中台的业务层模块结构示意图;
图4为本发明一种实施方式提供的AI服务开放中台的稳定层模块结构示意图;
图5为本发明一种实施方式提供的AI服务开放中台的服务层模块结构示意图;
图6为本发明一种实施方式提供的AI服务开放方法的流程示意图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
图1是本发明一种实施方式提供的AI服务开放中台的系统结构示意图,如图1所示:一种AI服务开放中台:包括:
接入层模块,用于管理用户端的接入,并提供服务调用的接口;接收用户端的服务调用请求转发至业务层模块,并向所述用户端返回服务调用结果;
业务层模块,用于对所述接入层模块的服务调用请求进行预处理,并将预处理后的服务调用请求发送至服务层模块,以及对所述服务层模块返回服务调用结果进行后处理,并将后处理后的服务调用结果返回至所述接入层模块;
所述业务层模块包括若干子模块,每个子模块用于执行特定的预处理或后处理功能;
稳定层模块,用于监控所述业务层模块与服务层模块之间互交,根据设定规则对满足条件的互交进行干预;以及
服务层模块,用于响应所述业务层模块的服务调用请求,执行对应的AI服务,并向所述业务层模块返回服务调用结果;同时还对所述AI 服务进行容器化管理。
如此,通过服务层模块提供容器级的AI 服务,稳定层模块提供系统的稳定性管理,业务层模块提供规范性的处理功能,接入层模块提供接入控制,使整个AI服务开放中台的结构明晰,简化了模块之间的数据互交,同时提升了对外开放的AI服务的灵活性和稳定性。
具体的,系统包括接入层模块、业务层模块、稳定层模块和服务层模块。
所述接入层模块主要负责 AI 服务开放通用的鉴权、流控、计费的功能。接入层模块也是服务调用的入口,通过完善的鉴权机制与灵活的流控策略,不仅保障了使用者在调用服务时的安全性,也有效地保护了整个 AI 服务平台,避免个别不合法或者超额的调用影响平台整体开发者。
业务层模块主要解决 AI 服务在开放过程中所需要进行的特定业务处理。比如:对于图像类服务,原有服务可能只支持特定几种格式的图片,为了提供易用性需要扩展对更多常见图片类型的支持,可以在业务层模块选择图像转码子模块,将输入的图片类型转化成后台 AI 服务支持的特定图片类型。
稳定层模块负责整个 AI服务开放中台的稳定性保障,确保整个开放平台的稳定性。
服务层模块负责AI 服务的具体管理。
在本发明的一个可选实施方式中,所述接入层模块包括以下子模块;图2是本发明一种实施方式提供的AI服务开放中台的接入层模块结构示意图,如图2所示:
鉴权子模块,用于验证所述用户端的接入合法性,屏蔽未通过鉴权的用户端;具体的,开发者(即用户)通过相关申请后可以获得平台分配的 Access Key(AK)和Secret Key(SK),通过 AK+SK 获取服务调用的准入 token,AI服务开放中台的接入层模块,具体的是接入层模块中的鉴权子模块会验证 token 的合法性来进行鉴权,通过鉴权就可以正常调用平台的服务,而不合法的调用(无 token 或者 token 无效)会被接入层模块所屏蔽,不会影响AI服务开放中台的其他模块。
流控子模块,用于对不同的用户端实行流量控制;该子模块提供了灵活的流控机制,可以结合不同 AI 服务的需要进行不同维度+不同粒度的流控机制。维度包括但不限于:服务调用次数、服务调用 QPS、服务调用时长;粒度包括但不限于:账号、应用。流控策略也可以与服务计费、服务分级等进行有效配合。
计费子模块,用于根据计费策略对使用本AI服务开放中台的用户端进行计费。与流控机制对应,通过接入层模块可以实现灵活多样的计费策略,可以支持不同维度的预付费、后付费、包月等功能,为 AI服务开放中台各类运营活动提供系统支持。
在本发明的一个可选实施方式中,所述业务层模块包括以下子模块:图3是本发明一种实施方式提供的AI服务开放中台的业务层模块结构示意图,如图3所示:
图像预处理子模块,用于对输入的图像进行处理,此处的处理包括转码和压缩;对原本不满足要求的(格式、尺寸等)图片进行处理,以尽可能满足后台 AI 服务的输入要求,尽可能提高服务容错性,提高服务调用成功率;
文本预处理子模块,用于对输入的文本数据进行处理,此处的处理包括转码和字符过滤;此预处理能提高服务容错能力,提高服务调用成功率;
音频预处理子模块,用于对输入的音频进行处理,此处的处理包括转码、去噪和切割;此预处理能提高对应 AI服务的效果;
抓取服务子模块,用于当输入对象包含URL时,自动向URL位置抓取URL目标;使用业务层模块提供的抓取服务子模块自动获取服务输入对象,避免开发者自己下载后再发送,降低开发者使用成本。
通用缓存子模块,用于缓存预设时间段内重复的服务调用;通过缓存服务缩短响应时长,节约计算处理资源;
接口规范化子模块,用于将AI 服务规范为统一的协议格式和命名规范;各类不同的 AI 服务本身可能采用了不同的协议格式与命名规范,通过接口规范化使得通过 AI 服务开放中台开放的各类 AI 服务具有统一的协议格式与命名规范;
参数校验与字段屏蔽子模块,用于校验所述服务调用请求的参数是否合法,可以提早发现参数不合法的服务调用请求,降低不合法请求的响应时长,也节约计算资源;以及屏蔽所述服务调用请求的预设字段;字段屏蔽可以将系统内部的字段进行过滤,避免给开发者带来困扰,也保护了内部系统安全与隐私性;
错误码封装子模块,用于将AI 服务返回的错误码或错误信息处理为统一的error_code或error_message格式;此处的处理包括合并、拆分、映射和转换。此处理能够方便调用者理解,同时也屏蔽系统内部信息。
以上子模块可以称为通用子模块,当现有的通用子模块无法满足特定业务需求时,可以通过插件的方式新增扩展子模块,而当某个扩展子模块后续应用到多个AI 服务时可以转化为通用子模块。所述业务层模块通过插件方式增加子模块,以增加子模块对应的预处理或后处理功能。
在本发明的一种可选实施方式中,所述稳定层模块包括:图4是本发明一种实施方式提供的AI服务开放中台的稳定层模块结构示意图,如图4所示:
服务分级子模块,用于根据服务调用请求的属性确定服务调用请求的优先级,根据所述优先级,将服务调用请求下发至不同的多级集群,分别满足不同的 SLA 需求;服务分级针对服务调用者的不同属性,包括计费与非计费、在线与离线等确定服务的优先级,将服务下发到不同的多级集群。使得低优先级的服务不会占用高优先级服务的资源,分别满足不同的 SLA 需求
流控降级子模块,用于当AI服务开放中台的服务后台流量过载之后,所述流控降级子模块与所述接入层模块中的流控子模块相配合,对不同优先级的用户进行流控降级;接入层模块往往是在用户粒度/应用粒度进行流控,当大量用户流控之后的叠加需求超过服务后台整体承载之后,稳定层模块会与接入层模块配合,对不同优先级的用户进行流控降级,以保障 AI 服务后台整体的稳定性
异常监控子模块,用于当业务层模块的服务调用请求异常时,通知所述接入层模块中的流控子模块进行流控;以及当服务层模块中的AI服务异常时,通知所述服务层模块中的服务维护子模块进行修复;一方面是针对服务调用,监控异常的调用行为,发现之后可以与接入层模块流控配合,防止异常行为影响整个平台;另一方面是对于下游AI服务的异常监控,当发现异常后稳定层模块会通知服务部署与维护模块启动相应的修复机制。
服务探活子模块,用于定期模拟业务层模块向服务层模块发送服务调用请求,调用AI 服务以监测服务层模块的稳定性和结果一致性。服务探活是在异常监控之外的另一层保障,会定期模拟实际调用者调用平台 AI 服务,以监控整体服务的稳定性以及结果的一致性。
在本发明的一种可选实施方式中,所述服务层模块包括:图5是本发明一种实施方式提供的AI服务开放中台的服务层模块结构示意图,如图5所示
服务部署子模块,用于对AI服务进行部署;服务更新子模块,用于对AI服务进行更新;服务伸缩子模块,用于根据业务需求和系统现状对AI服务进行弹性伸缩;服务维护子模块,用于对异常的AI服务实例进行下线和替换。
服务部署与服务更新均是基于kubernetes实现,通过kubernetes管理各个托管的AI 服务docker镜像,实现对各个 AI 服务的容器化管理。该方式不仅能够快速地实现服务的部署与更新,也可以根据具体业务需求与系统现状对某个特定的 AI 服务进行弹性伸缩。当稳定层模块检测到某个服务实例出险异常时,通过服务维护子模块可以进行快速的实例下线与替换,确保整体服务的稳定性与承载不受影响。
进一步的,所述服务层模块采用kubernetes、Docker Swarm、Mesos和AWS ECS中的任一种对所述AI服务进行容器化管理。优选为kubernetes,因为其是一个比较成熟的容器管理开源平台,若基于其他容器管理平台或者自建容器管理平台也是可以满足此处的需求的。
本发明的一种实施方式还提供了一种AI服务开放方法,应用于AI服务开放中台,所述方法包括:图6为本发明一种实施方式提供的AI服务开放方法的流程示意图,如图6所示:
接入层模块接收到用户端的接入请求,判断是否允许接入,并对允许接入的用户端配置接入规则;
所述接入层模块接收用户端的服务调用请求转发至业务层模块;
业务层模块对所述接入层模块的服务调用请求进行预处理,并将预处理后的服务调用请求发送至服务层模块;
服务层模块响应所述业务层模块的服务调用请求,执行对应的AI服务,并向所述业务层模块返回服务调用结果;
所述业务层模块对所述服务层模块返回服务调用结果进行后处理,并将后处理后的服务调用结果返回至所述接入层模块;
所述接入层模块接收所述处理后的服务调用结果,并将其返回至所述用户端;
稳定层模块,用于监控所述业务层模块与服务层模块之间互交,根据设定规则对满足条件的互交进行干预;
其中,所述业务层模块中所述预处理或后处理是通过对应的子模块来实现的。
所述判断是否允许接入,包括:验证所述用户端的接入合法性,屏蔽不合法以及未通过鉴权的用户端;
对允许接入的用户端配置接入规则,其中所述接入规则包括:流控规则和计费规则。此处的鉴权、流控和计费与前文所述的流程相对应。
所述业务层模块根据对应的指令实现以下操作:
图像预处理:对输入的图像进行处理,对图像的处理包括转码和压缩;
文本预处理:对输入的文本数据进行处理,对文本数据的处理包括转码和字符过滤;
音频预处理:对输入的音频进行处理,对音频的处理包括转码、去噪和切割;
抓取服务:当输入对象包含URL时,自动向URL位置抓取URL目标;
通用缓存:缓存预设时间段内重复的服务调用;
接口规范化:将AI 服务规范为统一的协议格式和命名规范;
参数校验与字段屏蔽:检出参数不合法的服务调用请求,以及屏蔽所述服务调用请求的预设字段;
错误码封装:将AI 服务返回的错误码或错误信息处理为统一的error_code或error_message格式;对错误码或错误信息的处理包括合并、拆分、映射和转换。
所述业务层模块通过插件方式,以增加该子模块对应的预处理或后处理功能。
所述业务层模块根据对应的指令实现以下操作:
服务分级:根据服务调用请求的属性确定服务调用请求的优先级,根据所述优先级,将服务调用请求下发至不同的多级集群,分别满足不同的 SLA 需求;
流控降级:当AI服务开放中台的服务后台流量过载之后,所述流控降级子模块与所述接入层模块中的流控规则相配合,对不同优先级的用户进行流控降级;
异常监控:当业务层模块的服务调用请求异常时,通知所述接入层模块中的流控规则进行流控;以及当服务层模块中的AI服务异常时,通知所述服务层模块进行服务维护;
服务探活:定期模拟业务层模块向服务层模块发送服务调用请求,调用AI 服务以监测服务层模块的稳定性和结果一致性。
所述服务层模块根据对应的指令实现以下操作:
服务部署:对AI服务进行部署;
服务更新:对AI服务进行更新;
服务伸缩:根据业务需求和系统现状对AI服务进行弹性伸缩;
服务维护:对异常的AI服务实例进行下线和替换。
所述服务层模块采用kubernetes、Docker Swarm、Mesos和AWS ECS中的任一种对所述AI服务进行容器化管理。
此处AI服务开放方法的技术细节与前文AI服务开放中台的技术细节相参照,此处不再重复。
在本发明的一种实施方式中,还提供一种数据服务器,所述数据服务器包括前述的AI服务开放中台。该数据服务器优选为服务器组或服务器组集群,主要考虑大数据量下的负荷分担以及业务负载需求,其通过网络访问提供业务响应。
在本发明的一个实施例还提供了提供一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行前述的AI服务开放方法。
如此,本发明的实施方式能够有效保证AI服务调用的安全性、稳定性、扩展性和易用性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (16)
1.一种AI服务开放中台,其特征在于,所述AI服务开放中台包括:
接入层模块,用于管理用户端的接入,并提供服务调用的接口;接收用户端的服务调用请求转发至业务层模块,并向所述用户端返回服务调用结果;
业务层模块,用于对所述接入层模块的服务调用请求进行预处理,并将预处理后的服务调用请求发送至服务层模块,以及对所述服务层模块返回的服务调用结果进行后处理,并将后处理后的服务调用结果返回至所述接入层模块;
所述业务层模块包括若干子模块,每个子模块用于执行特定的预处理或后处理功能;
稳定层模块,用于监控所述业务层模块与服务层模块之间互交,根据设定规则对满足条件的互交进行干预;以及
服务层模块,用于响应所述业务层模块的服务调用请求,执行对应的AI服务,并向所述业务层模块返回服务调用结果;同时还对所述AI 服务进行容器化管理。
2.根据权利要求1所述的AI服务开放中台,其特征在于,所述接入层模块包括以下子模块:
鉴权子模块,用于验证所述用户端的接入合法性,屏蔽不合法的用户端;
流控子模块,用于对不同的用户端实行流量控制;
计费子模块,用于根据计费策略对使用所述AI服务开放中台的用户端进行计费。
3.根据权利要求1所述的AI服务开放中台,其特征在于,所述业务层模块包括以下子模块:
图像预处理子模块,用于对输入的图像进行图像预处理,所述图像预处理包括转码和压缩;
文本预处理子模块,用于对输入的文本数据进行文本预处理,所述文本预处理包括转码和字符过滤;
音频预处理子模块,用于对输入的音频进行音频预处理,所述音频预处理包括转码、去噪和切割;
抓取服务子模块,用于当输入对象包含URL时,自动向URL位置抓取URL目标;
通用缓存子模块,用于缓存预设时间段内重复的服务调用;
接口规范化子模块,用于将AI服务规范为统一的协议格式和命名规范;
参数校验与字段屏蔽子模块,用于检出参数不合法的服务调用请求,屏蔽所述服务调用请求的预设字段;
错误码封装子模块,用于将AI 服务返回的错误码或错误信息处理为统一的error_code或error_message格式;对错误码或错误信息的处理包括合并、拆分、映射和转换。
4.根据权利要求3所述的AI服务开放中台,其特征在于,所述业务层模块通过插件方式增加子模块,以增加子模块对应的预处理或后处理功能。
5.根据权利要求2所述的AI服务开放中台,其特征在于,所述稳定层模块包括:
服务分级子模块,用于根据服务调用请求的属性确定服务调用请求的优先级,根据所述优先级将所述服务调用请求下发至不同的多级集群,分别满足不同的 SLA 需求;
流控降级子模块,用于当所述AI服务开放中台的服务后台流量过载之后与所述接入层模块中的流控子模块相配合,对不同优先级的用户进行流控降级;
异常监控子模块,用于当业务层模块的服务调用请求异常时,通知所述接入层模块中的流控子模块进行流控;以及当服务层模块中的AI服务异常时,通知所述服务层模块中的服务维护子模块进行修复;
服务探活子模块,用于定期模拟业务层模块向服务层模块发送服务调用请求,调用AI服务以监测服务层模块的稳定性和结果一致性。
6.根据权利要求1所述的AI服务开放中台,其特征在于,所述服务层模块包括:
服务部署子模块,用于对AI服务进行部署;
服务更新子模块,用于对AI服务进行更新;
服务伸缩子模块,用于根据业务需求和系统现状对AI服务进行弹性伸缩;以及
服务维护子模块,用于对异常的AI服务实例进行下线和替换。
7.根据权利要求6所述的AI服务开放中台,其特征在于,所述服务层模块采用kubernetes、Docker Swarm、Mesos和AWS ECS中的任一种对所述AI服务进行容器化管理。
8.一种AI服务开放方法,应用于AI服务开放中台,其特征在于,所述方法包括:
接入层模块接收到用户端的接入请求,判断是否允许接入,并对允许接入的用户端配置接入规则;
所述接入层模块接收用户端的服务调用请求转发至业务层模块;
业务层模块对所述接入层模块的服务调用请求进行预处理,并将预处理后的服务调用请求发送至服务层模块;
服务层模块响应所述业务层模块的服务调用请求,执行对应的AI服务,并向所述业务层模块返回服务调用结果;
所述业务层模块对所述服务层模块返回服务调用结果进行后处理,并将后处理后的服务调用结果返回至所述接入层模块;
所述接入层模块接收所述处理后的服务调用结果,并将其返回至所述用户端;以及
稳定层模块监控所述业务层模块与服务层模块之间互交,根据设定规则对满足条件的互交进行干预;
其中,所述业务层模块中所述预处理或后处理是通过对应的子模块来实现的。
9.根据权利要求8所述的AI服务开放方法,其特征在于,
所述判断是否允许接入,包括:验证所述用户端的接入合法性,屏蔽不合法的用户端;以及
所述对允许接入的用户端配置接入规则,其中所述接入规则包括:流控规则和计费规则。
10.根据权利要求8所述的AI服务开放方法,其特征在于,所述业务层模块根据对应的指令实现以下操作:
图像预处理:对输入的图像进行处理,对图像的处理包括转码和压缩;
文本预处理:对输入的文本数据进行处理,对文本数据的处理包括转码和字符过滤;
音频预处理:对输入的音频进行处理,对音频的处理包括转码、去噪和切割;
抓取服务:当输入对象包含URL时,自动向URL位置抓取URL目标;
通用缓存:缓存预设时间段内重复的服务调用;
接口规范化:将AI 服务规范为统一的协议格式和命名规范;
参数校验与字段屏蔽:用于检出参数不合法的服务调用请求,以及屏蔽所述服务调用请求的预设字段;
错误码封装:将AI 服务返回的错误码或错误信息处理为统一的error_code或error_message格式;对错误码或错误信息的处理包括合并、拆分、映射和转换。
11.根据权利要求10所述的AI服务开放方法,其特征在于,所述业务层模块通过插件方式增加子模块,以增加所述子模块对应的预处理或后处理功能。
12.根据权利要求9所述的AI服务开放方法,其特征在于,所述稳定层模块根据对应的指令实现以下操作:
服务分级:根据服务调用请求的属性确定服务调用请求的优先级,根据所述优先级,将服务调用请求下发至不同的多级集群,分别满足不同的 SLA 需求;
流控降级:当AI服务开放中台的服务后台流量过载之后,所述流控降级子模块与所述接入层模块中的流控规则相配合,对不同优先级的用户进行流控降级;
异常监控:当业务层模块的服务调用请求异常时,通知所述接入层模块中的流控规则进行流控;以及当服务层模块中的AI服务异常时,通知所述服务层模块进行服务维护;
服务探活:定期模拟业务层模块向服务层模块发送服务调用请求,调用AI 服务以监测服务层模块的稳定性和结果一致性。
13.根据权利要求8所述的AI服务开放方法,其特征在于,所述服务层模块根据对应的指令实现以下操作:
服务部署:对AI服务进行部署;
服务更新:对AI服务进行更新;
服务伸缩:根据业务需求和系统现状对AI服务进行弹性伸缩;
服务维护:对异常的AI服务实例进行下线和替换。
14.根据权利要求13所述的AI服务开放方法,其特征在于,所述服务层模块采用kubernetes、Docker Swarm、Mesos和AWS ECS中的任一种对所述AI服务进行容器化管理。
15.一种数据服务器,其特征在于,所述数据服务器加载有权利要求1-7中任一项所述的AI服务开放中台。
16.一种存储介质,其特征在于,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行权利要求8-14中任一项所述的AI服务开放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910477808.1A CN110245031B (zh) | 2019-06-03 | 2019-06-03 | 一种ai服务开放中台及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910477808.1A CN110245031B (zh) | 2019-06-03 | 2019-06-03 | 一种ai服务开放中台及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110245031A CN110245031A (zh) | 2019-09-17 |
CN110245031B true CN110245031B (zh) | 2021-07-20 |
Family
ID=67885822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910477808.1A Active CN110245031B (zh) | 2019-06-03 | 2019-06-03 | 一种ai服务开放中台及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110245031B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110728556A (zh) * | 2019-09-29 | 2020-01-24 | 广州餐道信息科技有限公司 | 一种动态稳定的店用商业系统 |
CN111240647A (zh) * | 2020-01-15 | 2020-06-05 | 海南新软软件有限公司 | 一种数字资产交易中台产品架构 |
CN111897599A (zh) * | 2020-07-30 | 2020-11-06 | 平安科技(深圳)有限公司 | 基于微核模型插件模式的服务方法、装置、设备及存储介质 |
CN112235428B (zh) * | 2020-12-16 | 2021-03-30 | 太平金融科技服务(上海)有限公司 | 调用请求处理方法、装置、计算机设备和存储介质 |
WO2023115579A1 (zh) * | 2021-12-24 | 2023-06-29 | 北京小米移动软件有限公司 | 一种人工智能ai服务提供方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102255933A (zh) * | 2010-05-20 | 2011-11-23 | 中兴通讯股份有限公司 | 云服务中介、云计算方法及云系统 |
CN103139246A (zh) * | 2011-11-25 | 2013-06-05 | 百度在线网络技术(北京)有限公司 | 负载均衡设备和负载均衡及防御方法 |
CN103533514A (zh) * | 2012-07-06 | 2014-01-22 | 中兴通讯股份有限公司 | 一种集群业务优先级的实现方法和系统 |
CN104965426A (zh) * | 2015-06-24 | 2015-10-07 | 百度在线网络技术(北京)有限公司 | 基于人工智能的智能机器人控制系统、方法和装置 |
CN106131213A (zh) * | 2016-08-17 | 2016-11-16 | 深圳市金证科技股份有限公司 | 一种服务管理方法和系统 |
CN106911703A (zh) * | 2017-03-08 | 2017-06-30 | 北京中交创新投资发展有限公司 | 统一接口平台搭建方法及系统 |
-
2019
- 2019-06-03 CN CN201910477808.1A patent/CN110245031B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102255933A (zh) * | 2010-05-20 | 2011-11-23 | 中兴通讯股份有限公司 | 云服务中介、云计算方法及云系统 |
CN103139246A (zh) * | 2011-11-25 | 2013-06-05 | 百度在线网络技术(北京)有限公司 | 负载均衡设备和负载均衡及防御方法 |
CN103533514A (zh) * | 2012-07-06 | 2014-01-22 | 中兴通讯股份有限公司 | 一种集群业务优先级的实现方法和系统 |
CN104965426A (zh) * | 2015-06-24 | 2015-10-07 | 百度在线网络技术(北京)有限公司 | 基于人工智能的智能机器人控制系统、方法和装置 |
CN106131213A (zh) * | 2016-08-17 | 2016-11-16 | 深圳市金证科技股份有限公司 | 一种服务管理方法和系统 |
CN106911703A (zh) * | 2017-03-08 | 2017-06-30 | 北京中交创新投资发展有限公司 | 统一接口平台搭建方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110245031A (zh) | 2019-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110245031B (zh) | 一种ai服务开放中台及方法 | |
CN110191063B (zh) | 服务请求的处理方法、装置、设备及存储介质 | |
CN111049695A (zh) | 云网关配置方法和系统 | |
CN107451147B (zh) | 一种kafka集群动态切换的方法和装置 | |
CN108370328B (zh) | 一种nfv mano策略描述符的管理方法及装置 | |
CN106886434B (zh) | 一种分布式应用安装方法与装置 | |
CN106850549B (zh) | 一种分布式加密服务网关及实现方法 | |
CN110677274A (zh) | 一种基于事件的云网络服务调度方法及装置 | |
US20140047115A1 (en) | Immediately launching applications | |
CN108268211B (zh) | 一种数据处理方法及装置 | |
CN107111510B (zh) | 一种针对vnf包进行操作的方法及装置 | |
CN108255708B (zh) | 测试环境中访问生产文件的方法、装置、存储介质及设备 | |
CN111709023B (zh) | 一种基于可信操作系统的应用隔离方法及系统 | |
US9971582B2 (en) | Selecting application wrapper logic components based on features of a mobile application to be wrapped | |
US20170085512A1 (en) | Generating message envelopes for heterogeneous events | |
CN113721893A (zh) | 一种微服务总线设计方法及装置 | |
CN113794636A (zh) | 一种基于Spring Cloud Gateway实现的动态路由编排方法及系统 | |
CN112162925A (zh) | 一种基于服务虚拟化的测试方法和系统 | |
CN115934202A (zh) | 一种数据管理方法、系统、数据服务网关及存储介质 | |
CN111124591B (zh) | 一种镜像传输方法、装置、电子设备及存储介质 | |
CN113411209A (zh) | 一种分布式的密码服务全链路检测系统及方法 | |
US10122758B2 (en) | Dynamic management of enterprises policies | |
CN110297706A (zh) | 一种基于Eureka-Server项目的下线方法 | |
CN106936643B (zh) | 一种设备联动方法以及终端设备 | |
CN111491021B (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 |