CN107766944B - 一种利用api分析进行系统功能流优化的系统和方法 - Google Patents

一种利用api分析进行系统功能流优化的系统和方法 Download PDF

Info

Publication number
CN107766944B
CN107766944B CN201710659810.1A CN201710659810A CN107766944B CN 107766944 B CN107766944 B CN 107766944B CN 201710659810 A CN201710659810 A CN 201710659810A CN 107766944 B CN107766944 B CN 107766944B
Authority
CN
China
Prior art keywords
api
apis
system function
flow
user
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
Application number
CN201710659810.1A
Other languages
English (en)
Other versions
CN107766944A (zh
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.)
TCL Technology Group Co Ltd
Original Assignee
TCL Technology Group 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 TCL Technology Group Co Ltd filed Critical TCL Technology Group Co Ltd
Publication of CN107766944A publication Critical patent/CN107766944A/zh
Application granted granted Critical
Publication of CN107766944B publication Critical patent/CN107766944B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了一种利用API分析进行系统功能流优化的系统和方法,从而能够执行至少一个系统功能,并能够组成各种组件。所述方法包括:接收来自用户的,用于执行至少一个系统功能的请求;从若干个功能组件中,获取至少一个用于实现所述用户请求执行的系统功能的功能组件;向所述获取的至少一个功能组件,提供若干个可供选择的API;分析所述若干个可供选择的API,确定每个API的性能得分;基于所述已经分析的API,优化所述系统的系统功能流;确定与所述优化后的系统功能流对应的API;以及基于所述对应的API,执行至少一个所述用户请求执行的系统功能。

Description

一种利用API分析进行系统功能流优化的系统和方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种利用应用程序编程接口(API)分析的系统功能流优化方法。
背景技术
如今,互联网正在经历一段“去中心化”的时期。一个用户的设备被称为一个“承包人”,它将其计算能力的一部分用于运行相应的网络,一部分硬盘用于存储文件或数据。不管复杂性如何,设备系统通常分解为不同的组件,其中每个组件为系统执行一个特定的目标。这样的“去中心化”使得每个组件都可以由数千个具有各种功能和限制的应用程序编程接口(APIs)构建。
具体的,一个智能系统,如智能设备系统,可以有能力决定每个组件应该使用哪个API来使整个系统在给定限制下的性能达到最大化。例如,一个对话系统通常包括语音识别模块、意图识别模块和问答匹配模块,其中,每个模块中都会有几个不同的API在执行。然而,我们很难预测这些API在不同的语境下是否会执行得很好。很可能,在特定模块中,某些API可能比其他API执行表现得更好。此外,如果不进行大数据测试,用户很难估计每个API的执行表现。即便每个 API的性能都可以被精确估计,考虑到各种限制(如预算和网络延迟等)时对选择API的决策进行优化仍然是高度需要的。
本发明所公开方法和系统用于解决上述一个或多个问题以及其他问题。
发明内容
本公开包括一种对一个系统的系统功能流进行优化的方法,所述系统通过利用API分析,能够执行至少一个功能,并包括若干组件。所述方法包括:接收来自用户的,用于执行所述至少一个系统功能的请求;从所述若干组件中,获取用于实现所述用户请求的至少一个功能的至少一个组件;向所述至少一个的获取的组件,提供若干个可供选择的API;分析每一个所述多个可供选择的API,确定每个API的性能得分;基于所述已经分析的API,优化所述系统的系统功能流;确定与所述优化后的系统功能流对应的API;以及基于所述对应的 API,执行至少一个所述用户请求执行的功能。
本公开还包括了一种非瞬时性计算机可读存储介质,存储有计算机软件程序,用于,当所述计算软件程序被处理器调用时,执行用于优化一个系统的系统功能流的方法,所述系统能够执行至少一个功能,并包括多个组件。所述非瞬时性计算机可读存储介质包括:接收来自用户的,用于执行系统的所述至少一个功能的请求;从所述多个组件中,获取至少一个用于实现所述用户请求执行的功能的组件;向所述获取的至少一个组件,提供若干个API供选择;分析每一个所述多个的API,确定每个API的性能得分;基于所述已经分析的API,优化所述系统的系统功能流;确定与所述优化后的系统功能流对应的API;以及基于所述确定的API,执行所述用户请求执行的至少一个功能。
本领域技术人员根据本发明公开的说明书、权利要求以及说明书附图的指引,能够理解本发明公开的其它方面。
附图说明
为便于对实施例理解,结合附图对实施例进行描述,下列附图仅仅是举例说明,仅用于解释本发明,而不能解释为对本发明的限制。
图1为本发明实施例的示范性环境的示意图;
图2为本发明实施例的示范性计算系统的框图;
图3为本发明实施例利用API分析的系统功能流优化的示范性系统;
图4为本发明实施例的利用API分析的系统功能流优化的方法流程图;
图5为本发明实施例API分析方法的示范性方法的流程图。
具体实施方式
现在将对附图中所示的本发明的示例性实施例进行详细说明。为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。除非另外指出,在各图中相同的参考数字用于相同或相似的部件。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在计算机编程中,应用程序编程接口(API)是一系列的程序定义、协议和工具,用于构建软件和应用程序。API根据其操作、输入、输出和底层类型来表达系统中的软件组件,定义各自独立执行的功能。 API还充当系统中不同软件组件之间的接口,并促进它们之间的交互作用,类似于用户界面促进人与计算机之间交互作用的方式。
另外,API可能是基于web的系统、操作系统或数据库系统,它提供了使用给定的程序为该系统开发应用程序的工具。一个系统,不管它有多复杂,通常包括各种各样的API,提供各种服务以及连接这些API管道。系统中的各种软件组件可以由API来构建,以实现某种功能。系统功能流可以对需要执行系统一个方面的“功能性”步骤或各种API的顺序进行描述。
本发明公开了一种改进的系统和方法,利用API分析来优化系统功能流。利用API分析来优化系统功能流,可以包括两个方面:定量分析API和优化系统功能流。具体的,每个API可以被定量地描述,以获得一个性能得分来决定在系统中选择哪一个API并且可以对选择API的整个过程进行建模。关于所选API的系统可能被发展为一个系统优化问题,这可以由本发明公开的一个通用框架来解决。
图1为本发明实施例提供的应用环境100。如图1所示,所述应用环境100可以包括:用户终端102、服务器101、用户106和网络 110。也可以包括其他设备。
所述用户终端102可以包括任何合适类型的具有计算功能的电子设备,如电视机(智能电视与非智能电视),智能手表,移动电话,智能手机,平板电脑,个人电脑(PC),电脑服务器,笔记本电脑,个人数字助理(PDA),等等。此外,所述用户终端102可以是任何能显示文本,图像,视频等内容的显示装置。
所述服务器101可以包括任何合适类型的服务器计算机或多个服务器计算机,用于向所述用户106提供个性化内容。例如,所述服务器101可以是云计算服务器。所述服务器101还可以促进其他服务器和所述用户终端102之间的通信、数据存储和数据处理。所述用户终端102和所述服务器101可以通过一个或多个所述通信网络110(如电缆网络,电话网络,和/或卫星网络,等等)相互通信。
在系统运行过程中,所述用户106可以与所述用户终端102进行交互,查询和检索各种内容和进行其他感兴趣的活动,或者如果所述用户终端102具备语音识别引擎,运动传感器或深度相机,用户可以用语音、手势或肢体语言来控制所述用户终端102。用户106可以通过用户终端102或者用户终端102上的网页浏览器,使用在用户终端本地或者在线的来自多个服务器101的移动应用或者一些应用功能。所述用户106可以是一个人也可以是多个人,例如家庭成员。
所述用户终端102,和/或所述服务器101可以在任何合适的运算电路平台上使用。图2为本发明实施例提供的,能够利用所述用户终端102,和/或说书服务器101的计算系统的框图。
如图2所示,计算系统200可包括处理器202,存储介质204,显示器206,通信模块208,数据库214和外围设备212。某些组件可以省略,也可以包括其他组件。
所述处理器202可以包括任何合适的一个处理器或多个处理器。此外,所述处理器202可以包括用于多线程或并行处理的多个核心。所述存储介质204可包括储存器模块(如ROM,RAM),闪存储存器模块,大容量存储器(如CD-ROM和硬盘)等等。所述存储介质204 可存储计算机程序,所述处理器202用于执行该计算机程序的各种过程。
此外,所述外围设备212可以包括各种传感器和其它I/O设备,如键盘和鼠标,并且所述通信模块208可以包括通过通信网络建立连接的某些网络接口设备。所述数据库214可以包括一个或多个数据库,用于存储某些数据,并对存储的数据执行一个或多个操作,如数据库搜索。
请继续参阅图1,所述用户终端102和/或所述服务器104可以利用API分析在优化系统功能流的系统中执行任务。图3为本发明实施例的系统功能流优化系统,使用了与本发明实施例相一致的API分析系统300。如图3所示,所述系统300可以包含多种组件308,即软件组件或应用程序,用以实现各种功能。另一方面,所述系统300 也可以提供很多API 306。具体来说,所述组件308可以由所述API 306 构建,并通过所述API306进行交互作用。具体的,系统可以执行各种不同的功能,并且可以选择一组所述组件308来实现用户所请求的功能。
所述系统300可以进一步包括API分析模块302和系统功能流优化模块304。根据未知因素和观测得到的数据,所述API分析模块 302可以设置为,对所述系统300提供的每个API306的性能,进行定量分析。具体的,所述API分析模块302可以设置为,对每个API 的性能评分进行定量计算。在一个具体实施例中,每个API的性能得分可能是每个API的指定多个隐藏变量和多个观测值的联合概率或联合概率分布。即未知因素和观测得到的数据可以分别涉及多个隐含变量和多个观测值。
所述系统功能流优化模块304可以设置为对所述系统300进行优化的系统功能流,即,考虑到不同的系统限制(如预算和网络延迟等) 以及每个API计算得到的性能得分,确定那些需要执行所述系统300 某方面程序的API的优化顺序。在一个具体实施例中,考虑到多个隐藏变量和多个观测值,当每个API的性能得分是一个联合概率或每个 API的联合概率分布时,系统功能流的优化可以使系统流的概率最大化。
例如,所述系统300可以表示为具有起点x0∈V和终点xn∈V的有向图G={V,E},每个xi∈V表示一个组件308,它实现了系统的某一目标,边eij表示API或API的选择,对于在隐藏变量Z= {z1,z2,...,zn}下具有未知性能分数的分量xi,API的m个选择则被表示为Ei={ei1,ei2,…,eim},其中m,n,i和j是正整数,i≤n,j≤m。隐藏变量Z可以来自系统输入假设。所述系统300也有限制,表示为C= {cl,c2,…,cn}。
所述分量xi也被称为函数xi,每个函数xi(1≤i≤n)在其之前的函数xi-1完成后执行。不同的数字n和/或不同的函数可能形成不同的V,其中n可能是所述系统300中包含的函数或分量的预先确定的最大数量。
优化系统中多个组件的功能流,也许等效于做出更优决策,即从 x0到xn.找到发送特定请求的最低成本的可能方式的决策。为了找到从x0到xn发送一个特定要求的最低成本的可能方式,必须首先评估每个边缘(即,每个API的)与Z和C相关的利益和成本。然而,在考虑各种隐含变量和限制条件的情况下,评估每个API的性能可能会有很大的困难,同时,在给定限制条件下优化系统的功能流也是如此。
例如,一个会话系统通常包括三个模块:语音到文本模块、问题分析模块和问答配对模块。会话系统的每个模块都可以提供各种API 供选择,同时,系统可能有网络延迟限制。考虑到API的类别不同,每个模块的执行方式可能不同。本发明提供了一种改进的方法,可以根据不同的观察结果对不同类别下每个API的性能进行定量评估,同时根据网络延迟的限制和估计API的性能分数对整个系统进行优化。
利用API分析方法,本发明公开了系统功能流优化的方法,所述方法可能涉及两种模型:变分推理模型和系统流优化模型。在多个隐变量的情况下,变分推理模型可以估计出每个API的联合概率或联合概率分布。对于每个API来说,多个隐藏变量的联合概率分布是一个概率分布,它给出了多个隐藏变量落在特定范围内或在该隐藏变量指定的离散值集合内的概率。系统流优化模型可以最大限度地提高系统流的概率。
亦即,根据图3所示,考虑到多个隐藏变量,所述API分析模块 302可被设置用来估计每个API的联合概率或联合概率分布,这是基于变量推理模型的。在系统流优化模型的基础上,可以设置所述系统功能流优化模块304,以最大限度地提高系统流的概率。
图4为本发明实施例的系统功能流优化方法的流程图,利用与公开的实施例相一致的API分析。所述系统可以包含多个组件,并且可以通过从多个组件中至少选择一个组件来执行至少一个功能。此外,通过选择不同的组件组,可能能够执行不同的功能。
如图4所示,在开始时,从所述用户(S402)接收到执行至少一个系统功能的请求。请求可能以各种方式接收,例如,用户手动输入,从下拉列表中选择或单击系统提供的图标,从系统提供的搜索引擎接口中进行选择等。根据所收到的用户请求,多个组件中至少需要一个组件(S404)来实现用户请求的功能。具体的,每个组件在系统的功能流中可以实现一定的子功能,而多个组件一起可以实现用户要求的系统的特定功能。
在确定了实现系统的某些功能所需的组件之后,多个用于选择的 API将提供给每个组件(S406)。API通常有不同的类别,例如用于 SCSI设备接口的API、Java APIs、OpenGL跨平台图形API、服务器应用程序编程接口(SAPI)和OpenAL跨平台的音频API等。执行不同子功能的组件可能需要不同类别的API。
在向每个组件提供多个API之后,将对每个提供给该组件的API 进行分析(S408)。具体的,对提供给该组件的每个API进行分析,从而获得性能评分。在一个实施例中,考虑到多个隐藏变量和多个观察值,每个API的性能得分可以是,每个API的联合概率或联合概率分布,并且API可以由变分推理模型来分析。
现代数据分析通常需要大量数据的计算。例如,一方面,一个设备系统可能需要各种音乐服务,可以由各种API提供。要决定设备系统应使用哪种音乐服务,可以采用一个由测试用例生成的日志数据归档,并对每个不同主题中的相应性能进行评估。另一方面,设备系统可能需要各种各样的推荐服务,可能由各种各样的网上购物 API提供。假设不同的API在不同的类别中表现不同,可以收集来自用户的数据来决定设备系统应该使用哪个推荐服务。
上述两个问题可以概括为以下几个问题。通过使用特定的API,给定N个观测值x=x1:N代表使用某个API后得到的观测结果,一个全局隐藏变量的向量β代表未知参数,M个隐藏变量z=z1:m代表隐藏变量,例如主题,类别和延迟等。这个问题可以转化为估计一个变分分布Q(z)≈P(z|x),β已经包括在z中,隐藏变量可能会有所不同,例如,在会话系统中,隐藏变量可能会因要应用的上下文而异。
根据均值场变分贝叶斯方法,从P至Q的Kullback Leibler发散(KL散度)可作为不同函数的选择被采取,即,Q(z)≈P(z|x)。 KL散度可以表示P和Q之间的距离,这使得最小化处理容易。变分推理的KL散度是:
Figure BDA0001370269660000111
由于p(x)是固定的,所以最小化DKL(Q||P)等于最大化
Figure BDA0001370269660000112
表示为L(Q)
L(Q)=∑ZQ(Z)logP(Z,X)-∑ZQ(Z)logQ(Z)=EQ(z)logP(Z,X)+H(Q) (2)
然后,假设在一些潜在变量的分区上,变分分布Q(Z)因式分解为一些分布。因此,Q(Z)=ΠMqi(Zi|X)。为了最佳估计qj *,可以使用以下等式(3):
Figure BDA0001370269660000113
i≠j表示使用所有不在该分区的其他变量。
例如,在调用某个特定的API的过程中,可以获得一组调用特定 API的观测值。假设调用某一API的反馈来自于一个高斯分布,这个分布具有未知的平均值和未知的方差,那么未知的平均值和方差可能要被估计。每个API的所有隐藏变量的联合概率被重写为:
P(X,u,t)=P(X|u,t)P(u|t)P(t) (4)
其中,上述公式中的每个函数分别为:
Figure BDA0001370269660000114
P(u|t)=N(u|u0,(λ0,t-1) (6)
P(t)=Gama(t|a0,b0) (7)
在上述讨论的基础上,该算法可以被总结,并在图5中说明相应的流程图。图5为本发明实施例提供的API分析的典型方法的流程图。如图5所示,API分析的方法可以包括以下步骤:
步骤S502:计算
Figure BDA0001370269660000121
以及
Figure BDA0001370269660000122
以及根据计算获得的
Figure BDA0001370269660000123
以及
Figure BDA0001370269660000124
来计算un以及tn
步骤S504:初始化λn为某个任意值;
步骤S506:根据λn的当前值和其他已知值计算bn
步骤S508:根据bn当前值和其他已知值计算λn
步骤S510:重复步骤S506和S508,直到收敛。
因此,利用上述方法可以获得平均值和方差的值,并且可以根据获得的平均值和方差来定量计算每个API的任何属性,例如,每个 API如何满足系统的需要。
对每个API进行了分析后,系统功能流被优化(S410)。具体的,每个API可以根据变分推理模型进行分析,其中每个API的收益和成本可以根据变分推理模型来计算。每个API的收益和成本分别表示为P(Z|X)以及P(C|X)。假设C和Z是独立的,因此,C 和Z可以以同样的方式进行推断。系统功能流的优化可以作为一个最小化成本流问题来处理:给定一个源点s∈V和最高点t∈V的有向图G=(V,E),其中每个边(u,v)∈E都有收益P(Z|X)和成本 P(C|X)。
在一个实施例中,优化问题可以通过网络单纯形算法来解决。网络单纯形算法是有界变量原始单纯形算法的一种改编。其基本原则是表示为底层网络的有根系的生成树,其中变量由圆弧表示,而单形乘数由节点电位构成。在每个循环中,一个输入变量是由一些定价策略选择的,基于双乘法器(节点电位),并形成一个以树的弧为周期的循环。离开变量是循环的圆弧,其流量最小。对所述离开的圆弧进行替代,树的重建被称为支点。当没有非基本的弧线有资格进入时,就得到了最优的解决方案。
在优化系统功能流之后,确定优化系统功能流的API(S412)。根据确定的API构建每个组件,并建立系统(S414)。在系统建立后,用户所请求的系统的功能将被执行(S416)。
例如,用户可以通过在主屏幕上单击相应的图标来请求智能设备或智能设备系统(例如,智能手机)来执行会话功能(例如,在 iphone中的Siri)。根据所收到的用户要求,系统可以识别三个组件或三个模块来实现会话功能:语音到文本模块、问题分析模块和问答配对模块。具体的,声音到文本模块可以设置为将用户的语音输入转换为可读的文本,问题分析模块可以设置为识别和分析从文本中提取的任何问题,问答配对模块可以设置为从数据库中找到问题的正确答案。也就是说,这三个组件中的每一个都可以执行不同的子功能,而这三个组件在一起可以实现用户所请求的对话功能。
在获得三个组件后,为了让三组件中的每一个组件进行选择,多个API将提供给每个组件,其中对每一个API进行分析从而获得性能评分。根据计算出的API的性能分数和网络延迟限制,系统的功能流可以被优化,并可为优化的系功能流确定相应的API。然后通过确定的API,建立三个组件以及使得三个组件互相形成交互作用,从而可以成功地实现系统的对话功能。
此外,本发明公开了在实现设备系统的会话功能时,利用API分析进行系统功能流优化的方法,利用神经对话模型,同时考虑上下文信息,为设备系统提供一种改进的回答问题的方法。在神经对话模型的帮助下,可以在没有人工规则的情况下训练问答配对。考虑到上下文信息,这个问题可能与一个更好的答案相匹配。此外,嵌入上下文的提示词语可以很容易地应用于实现其他任务或设备系统的功能。
本发明公开的利用API分析法进行系统功能流优化的系统和方法不仅仅限于任何领域,还可以在各种有趣的应用程序中采用而不受限制。所公开的系统和方法不仅可以对给定的标准的API性能进行评估,而且还能优化系统的功能流,从而对不同的API进行排列。
技术人员进一步认识到,在实施例中公开的各种说明模块和方法步骤可以作为电子硬件、计算机软件或两者的组合来实现。为了清楚地说明硬件和软件的这种可互换性,上文已经在功能上大体上描述了各种说明性单元和步骤。这些功能是否作为硬件或软件实现取决于特定的应用程序和施加于整体系统上的设计限制。技术人员可以针对每个特定应用以不同的方式实现所描述的功能,但是这种实现的决定不应被解释为脱离本发明的保护范围。
所公开的实施例的描述以向本领域的技术人员说明本发明。对这些实施例的各种修改对于本领域技术人员将是显而易见的,并且在不脱离本发明的精神或保护范围的情况下,本发明定义的一般原理可以应用于其他实施例。因此,本发明不旨在被本文所示的实施例所局限,而是要被赋予与本发明所公开的原理和新颖性相一致的最广泛的保护范围。

Claims (14)

1.一种通过API分析,以优化一个系统的系统功能流的方法,所述系统能够执行至少一个功能,并包括若干组件,其特征在于,包括:
接收来自用户的,用于执行所述系统的至少一个功能的请求;
从所述若干组件中,获取用于实现所述用户请求执行的至少一个功能的至少一个组件;
向至少一个获取的组件,提供若干个可供选择的API;
分析每个所述若干个可供选择的API,确定每个API的性能得分;
基于已经分析的API,优化所述系统的系统功能流;
确定与优化后的系统功能流对应的API;以及
基于确定的API,执行至少一个用户请求的系统功能。
2.据权利要求1所述的方法,其特征在于,所述分析每个所述若干个可供选择的API,确定每个API的性能得分,具体包括:
基于变分推理模型,在给定了若干个隐含变量和若干个观察值时,计算出每个API的联合概率分布。
3.根据权利要求2所述的方法,其特征在于,
所述在给定了多个隐含变量和多个观察值时,计算每个API的联合概率分布等价于估算
Figure DEST_PATH_IMAGE001
其中,
Figure DEST_PATH_IMAGE002
是表示变分分布,
Figure DEST_PATH_IMAGE003
表示调用每个API的N个观测值,
Figure DEST_PATH_IMAGE004
表示M个隐藏变量,N和M为正整数,N>1且M>1。
4.根据权利要求3所述的方法,其特征在于,
所述
Figure 179409DEST_PATH_IMAGE001
的解为从Q得到的P的KL散度;
其中,所述从Q得到的P的KL散度通过如下算式表示:
Figure DEST_PATH_IMAGE006
5.根据权利要求4所述的方法,其特征在于,
最小化所述KL散度
Figure DEST_PATH_IMAGE008
相当于计算
Figure DEST_PATH_IMAGE009
的最大值,由
Figure DEST_PATH_IMAGE011
表示;
其中,
Figure DEST_PATH_IMAGE013
6.根据权利要求1所述的方法,其特征在于,所述基于所述已经分析的API,优化所述系统的系统功能流等价于最小成本流问题:
在给定具有源点
Figure DEST_PATH_IMAGE015
以及汇点
Figure DEST_PATH_IMAGE016
的有向图
Figure DEST_PATH_IMAGE018
中;
其中,所述有向图
Figure DEST_PATH_IMAGE018A
表示所述系统,每个边
Figure DEST_PATH_IMAGE020
表示提供给所述系统使用的API,并且,每个API都具有相应的收益
Figure DEST_PATH_IMAGE021
和成本
Figure DEST_PATH_IMAGE022
,C为所述系统的限制。
7.根据权利要求6所述的方法,其特征在于,通过网络单纯形算法求解所述最小成本流问题。
8.一种非瞬时性计算机可读存储介质,存储有计算机程序,用于,当所述计算机程序被处理器调用时,执行利用API,在能够执行至少一个功能,并且若干组件组成的系统的系统功能流的优化方法,所述方法包括:
接收来自用户的,用于执行至少一个系统功能的请求;
从若干个组件中,获取至少一个用于实现所述用户请求执行的系统功能的组件;
向获取的组件,提供若干个可供选择的API;
分析所述若干个可供选择的API,确定每个API的性能得分;
基于已经分析的API,优化所述系统的系统功能流;
确定与优化后的系统功能流对应的API;以及
基于对应的API,执行至少一个所述用户请求执行的系统功能。
9.根据权利要求8所述的非瞬时性计算机可读存储介质,其特征在于,所述分析所述若干个可供选择的API,确定每个API的性能得分,具体包括:
基于变分推理模型,在给定了隐含变量和约束条件时,计算出每个API的联合概率分布。
10.根据权利要求9所述的非瞬时性计算机可读存储介质,其特征在于,所述在给定了隐含变量和约束条件时,计算出每个API的联合概率分布具体为计算
Figure 122917DEST_PATH_IMAGE001
其中,
Figure 964971DEST_PATH_IMAGE002
是变分分布,
Figure 392803DEST_PATH_IMAGE003
表示每个API的N个观测值,
Figure 3913DEST_PATH_IMAGE004
表示M个隐藏变量,N和M为正整数,N>1并且M>1。
11.根据权利要求10所述的非瞬时性计算机可读存储介质,其特征在于,所述
Figure 623114DEST_PATH_IMAGE001
的解为从P到Q的KL散度;
其中,所述KL散度通过如下算式表示:
Figure DEST_PATH_IMAGE024
12.根据权利要求11所述的非瞬时性计算机可读存储介质,其特征在于,最小化所述
Figure DEST_PATH_IMAGE008A
相当于计算
Figure DEST_PATH_IMAGE025
的最大值,由
Figure DEST_PATH_IMAGE027
表示;
其中,
Figure DEST_PATH_IMAGE029
13.根据权利要求8所述的非瞬时性计算机可读存储介质,其特征在于,所述基于所述已经分析的API,优化所述系统的系统功能流具体为:
在给定的具有源点
Figure DEST_PATH_IMAGE031
以及汇点
Figure 860453DEST_PATH_IMAGE016
的有向图
Figure DEST_PATH_IMAGE018AA
中的最小化成本流问题;
其中,所述有向图
Figure DEST_PATH_IMAGE033
表示所述系统,边
Figure DEST_PATH_IMAGE020A
表示提供给所述系统使用的API,并且,每个API都具有相应的收益
Figure 669140DEST_PATH_IMAGE021
和成本
Figure 869178DEST_PATH_IMAGE022
,C为所述系统的限制。
14.根据权利要求13所述的非瞬时性计算机可读存储介质,其特征在于,通过网络单纯形算法求解所述最小化成本流问题。
CN201710659810.1A 2016-08-17 2017-08-04 一种利用api分析进行系统功能流优化的系统和方法 Active CN107766944B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/239,653 2016-08-17
US15/239,653 US9753745B1 (en) 2016-08-17 2016-08-17 System and method for system function-flow optimization utilizing application programming interface (API) profiling

Publications (2)

Publication Number Publication Date
CN107766944A CN107766944A (zh) 2018-03-06
CN107766944B true CN107766944B (zh) 2021-11-23

Family

ID=59702399

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710659810.1A Active CN107766944B (zh) 2016-08-17 2017-08-04 一种利用api分析进行系统功能流优化的系统和方法

Country Status (2)

Country Link
US (1) US9753745B1 (zh)
CN (1) CN107766944B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107122491B (zh) * 2017-05-19 2020-12-15 深圳市优必选科技有限公司 用于数据交互的方法
WO2020198566A1 (en) * 2019-03-27 2020-10-01 F0Cal, Inc. Systems and methods for analyzing computational architectures

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662356B1 (en) * 1999-06-30 2003-12-09 Microsoft Corporation Application program interface for transforming heterogeneous programs
CN101059810A (zh) * 2007-03-16 2007-10-24 华为技术有限公司 一种实现数据库系统自动优化的系统和方法
CN103440457A (zh) * 2013-08-20 2013-12-11 上海交通大学 基于进程模拟的二进制程序分析系统
CN104320442A (zh) * 2014-10-10 2015-01-28 浙江天正思维信息技术有限公司 应用系统表现层集成技术平台及其形成的集成模式及方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7895579B2 (en) * 2006-06-16 2011-02-22 Microsoft Corporation Automated method and system for collecting and reporting API performance profiles
US8046778B1 (en) * 2007-11-26 2011-10-25 Adobe Systems Incorporated Managing device application program interfaces
US9778924B2 (en) * 2013-06-06 2017-10-03 Wipro Limited Platform for enabling creation and use of an API for a specific solution
US10216549B2 (en) * 2013-06-17 2019-02-26 Seven Networks, Llc Methods and systems for providing application programming interfaces and application programming interface extensions to third party applications for optimizing and minimizing application traffic
CN103731277B (zh) 2014-01-16 2017-09-12 华为技术有限公司 软件定义网络中的节能方法和节能控制设备
US10120951B2 (en) * 2015-08-12 2018-11-06 Samsung Electronics Co., Ltd. Bifurcated search

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662356B1 (en) * 1999-06-30 2003-12-09 Microsoft Corporation Application program interface for transforming heterogeneous programs
CN101059810A (zh) * 2007-03-16 2007-10-24 华为技术有限公司 一种实现数据库系统自动优化的系统和方法
CN103440457A (zh) * 2013-08-20 2013-12-11 上海交通大学 基于进程模拟的二进制程序分析系统
CN104320442A (zh) * 2014-10-10 2015-01-28 浙江天正思维信息技术有限公司 应用系统表现层集成技术平台及其形成的集成模式及方法

Also Published As

Publication number Publication date
CN107766944A (zh) 2018-03-06
US9753745B1 (en) 2017-09-05

Similar Documents

Publication Publication Date Title
CN111860753B (zh) 用于训练模型的基于有向无环图的框架
JP7166322B2 (ja) モデルを訓練するための方法、装置、電子機器、記憶媒体およびコンピュータプログラム
CN110766142A (zh) 模型生成方法和装置
JP2023520420A (ja) チャットボットのために不均衡なトレーニングデータを取り扱うためのバッチング技術
CN111428010B (zh) 人机智能问答的方法和装置
US20210303555A1 (en) Utilizing logical-form dialogue generation for multi-turn construction of paired natural language queries and query-language representations
CN107832426B (zh) 一种基于使用序列上下文的app推荐方法及系统
US20200050500A1 (en) Natural language interface to web api
CN107437111B (zh) 基于神经网络的数据处理方法、介质、装置和计算设备
CN110688528A (zh) 生成视频的分类信息的方法、装置、电子设备和介质
US11900263B2 (en) Augmenting neural networks
CN111443964B (zh) 更新用户界面的方法、设备和计算机可读存储介质
CN114036398A (zh) 内容推荐和排序模型训练方法、装置、设备以及存储介质
KR20210074246A (ko) 대상 추천 방법, 신경망 및 그 훈련 방법, 장치 및 매체
CN107766944B (zh) 一种利用api分析进行系统功能流优化的系统和方法
CN111160638B (zh) 一种转化预估方法及装置
WO2022188534A1 (zh) 信息推送的方法和装置
CN114780753A (zh) 基于知识图谱的对话推荐方法、装置、设备及存储介质
CN111008213A (zh) 用于生成语言转换模型的方法和装置
JP2023537480A (ja) 予測情報を生成するための方法、装置、電子機器及び媒体
CN110046670B (zh) 特征向量降维方法和装置
CN114328995A (zh) 内容推荐方法、装置、设备及存储介质
CN113722584A (zh) 任务推送方法、装置及存储介质
CN112148902A (zh) 数据处理方法、装置、服务器及存储介质
WO2020150009A1 (en) Profile data store automation via bots

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 516006 TCL science and technology building, No. 17, Huifeng Third Road, Zhongkai high tech Zone, Huizhou City, Guangdong Province

Applicant after: TCL Technology Group Co.,Ltd.

Address before: 516006 23rd floor, TCL science and technology building, 17 Huifeng 3rd road, Zhongkai hi tech Development Zone, Huizhou City, Guangdong Province

Applicant before: TCL Corp.

GR01 Patent grant
GR01 Patent grant