从计算应用自动地生成对话式服务

文档序号:789606 发布日期:2021-04-09 浏览:7次 >En<

阅读说明:本技术 从计算应用自动地生成对话式服务 (Automatically generating conversational services from computing applications ) 是由 O·利瓦 J·A·卡克 D·C·伯格 李佳君 于 2019-05-21 设计创作,主要内容包括:公开了一个或多个面向任务的对话式机器人程序的自动生成。说明性地,提供了系统和方法,该系统和方法允许跟踪一个或多个计算应用的交互,包括:与一个或多个计算应用的一个或多个编程性元件的交互、与该一个或多个计算应用的(多个)图形用户界面的交互、和/或该一个或多个计算应用正在其上执行的一个或多个计算环境的操作,以用于收集各种状态数据。状态数据可以说明性地用图形表示,以示出一个或多个计算应用的一个或多个功能/操作的总体执行路径,以用于在生成表示面向期望任务的对话式机器人程序的一个或多个指令时使用,这些指令可以通过一个或多个计算应用的一个或多个应用编程接口操作性地执行。(Automated generation of one or more task-oriented conversational robot programs is disclosed. Illustratively, systems and methods are provided that allow for tracking interactions of one or more computing applications, including: interaction with one or more programmatic elements of one or more computing applications, interaction with graphical user interface(s) of the one or more computing applications, and/or operation of one or more computing environments on which the one or more computing applications are executing, for collecting various state data. The state data may illustratively be graphically represented to show an overall execution path of one or more functions/operations of one or more computing applications for use in generating one or more instructions representing the task-oriented conversational robot program, which may be operatively executed through one or more application programming interfaces of the one or more computing applications.)

从计算应用自动地生成对话式服务

背景技术

近年来,关于对话式服务的前景和兴奋度快速增长。除了智能助理的流行以外,还有专业化的机器人程序(bot)的使用和执行的兴起(例如,也在来自AMAZON.COM,INC.的ALEXA虚拟助理和来自MICROSOFT CORP.的CORTANA虚拟助理中称为“技能”(“skill”),以及在来自GOOGLE LLC.的谷歌助理(GOOGLE ASSISTANT)虚拟助理中称为“动作”(“action”))。尤其有用的是面向任务的聊天机器人程序,其担任代表用户的代理,通过对应的计算机应用的一个或多个操作的执行,使用自然语言对话与外部的服务交互,以达成特定的任务(预定出租车、预约餐厅、或者找到菜谱)。

当前,大多数对话式服务可以使用槽填充(slot-filling)方法构建。利用这样的方法,用户的短语(例如,“我要一杯咖啡”)指示意图、系统支持的动作,诸如“点咖啡”(与附加的参数,诸如类型、尺寸一起)。意图执行所必须的输入参数(诸如咖啡类型和尺寸)可以描述为槽。利用槽填充方法,控制结构可以操作性地限定用于系统和用户之间的多回合对话的操作,以收集所有满足意图所必须的槽。

槽填充已经被证明是可靠的,但是要求显著的开发者精力。首先,控制结构,通常使用有限状态自动机的形式,需要针对每个任务手工设计。这样的控制结构可以是复杂的,由于它们需要考虑许多可能的执行路径。第二,为支持利用自然语言的用户交互,用于理解用户问题和回答的模型需要被训练。训练通常要求许多话语(utterances),即,用户可以在交互期间使用的示例短语。例如,即使是对像“你们的聚会规模是多少?”这样的简单问题,用户可以用许多不同的方式回答,诸如“3”,“我们所有人”,“我和我妻子”或者“不确定,我稍后告诉你”。为了训练鲁棒的模型,开发者必须考虑所有这样可能的短语变体,并且为每个槽和为每个意图提供许多话语。最终,开发者必须为每个槽枚举可能的值以在语言理解中促进槽识别。作为结果,这整个过程要求显著的人工写码,因而阻碍了到新的任务和领域的可扩展性。

槽填充的一个替代方案是基于语料库的方法,其中机器人程序被自动地从过往对话的数据集训练。这种方法已经示出了用于非面向任务的“闲聊”机器人程序的前景,但是不清楚它是否可以独自建模面向任务的机器人程序。完全由机器学习的系统不能保证关键的任务中约束被满足(例如,用户不能在没有指定时间的情况下预约餐厅),并且它们缺乏模型以确保任务中实际目标的完成。由于特定于领域的对话日志的不足,这些系统也难以训练。

混合方法同样存在。例如,混合代码网络(HCNs)是经由将开发者手动写码的规则与循环神经网络结合,以使机器学习的系统变得实用的方法。HCNs以开发者精力为代价降低了训练数据的量。另一种混合方法是“基于知识的”对话模型,其将来自文本数据(例如,)的知识注入到从对话式数据推导出的模型中以生成信息性的回答。然而,这些模型仅对单回合响应起作用,并且依赖领域中的知识源。

关于这些考虑和其他考虑,呈现本文中做出的公开。

发明内容

本文中描述的技术允许面向任务的对话式机器人程序的自动创建,这些对话式机器人程序用于与一个或多个计算应用合作的运行。操作性地,本文中描述的系统的方法提供对执行一个或多个计算应用任务/操作以达成具体任务的结果的情况中的、与计算应用的交互(包括与计算应用的GUI的交互)的跟踪(tracing),以取回关于计算应用、在其上执行计算应用的计算环境、以及GUI状态的状态数据,以用于自动生成操作以执行一个或多个期望的任务的面向任务的机器人程序。用这样的方法,可以实现以下形式的即期技术利益:提高与一个或多个面向任务的对话式机器人程序的生成和执行相关联的总体处理效率。

为了实现上文简要提及的技术利益,说明性地,本文中描述的系统和方法为对话式服务的自动生成提供支持,其导致生成对话式服务的计算过程的增强的处理效率和可扩展性。在说明性的操作中,数据可以被收集,其表示与在一个或多个计算环境上可执行的一个或多个计算应用的一个或多个交互,和/或,一个或多个计算环境和/或一个或多个计算环境的GUI(若可用)的一个或多个操作/特征/命令的轨迹(trace)。收集的数据可以包括但不限于表示一个或多个计算应用的状态、一个或多个计算环境的状态、以及一个或多个GUI(若可用)的状态的数据。

在一个说明性的实现中,收集的数据可以用于限定一个或多个服务应用编程接口(API),其可以操作以与一个或多个计算应用、一个或多个计算环境、和/或一个或多个计算应用的一个或多个GUI(若可用)合作。收集的数据也可以用于生成由示例性机器人程序或个人助理系统可用的、用于一个或多个对话式服务的创建和执行的一个或多个任务模型。

另外,收集的数据可以作为给示例性问题-回答界面生成系统的输入数据使用,该生成系统包括已使用开放领域对话日志训练的神经网络模型。在说明性的实现中,一个或多个生成的对话式服务由一个或多个移动应用可执行,以使创建的服务API调用可以根据每个用户的交互执行。说明性地,特定于与一个或多个计算应用的一个或多个GUI的交互的收集的数据,可以操作性地用于为一个或多个个人数字助理(诸如来自MICROSOFT CORP的CORRANA虚拟助手)创建面向任务的“技能”和/或“动作”。

在一个说明性的实现中,可以提供面向任务的对话式机器人程序的创作工具,其可以包括图形用户界面,以允许参与用户(如,开发者/作者)与数据的交互,这些数据被收集用于在说明性的创作工具GUI中显示,作为面向任务的对话式机器人程序的自动创建的部分。在该说明性的实现中,所收集的数据可以包括状态图,其具有一个或多个执行路径,其示出一个或多个计算应用、一个或多个GUI、和/或一个或多个计算环境的各种操作/特征/命令的执行。说明性地,面向任务的对话式机器人程序可以同步地或异步地随着选定的一个或多个执行路径的操作生成,以达成将由一个或多个计算应用执行的一系列期望的功能/操作。

应理解,尽管关于系统描述,但是上文描述的技术方案也可以被实现为计算机控制的装置、计算机过程、计算系统、或诸如计算机可读介质的制品。通过对下面

具体实施方式

的阅读以及对附图的回顾,这些和各种其他特征将变得明显。本发明内容以简化的形式介绍了一些概念,其将在下面的具体实施方式中进一步描述。

本发明内容不旨在标识所要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求保护的技术方案的范围。

附图说明

参考附图描述了具体实施方式。在附图中,引用编号的最左边的数字标识引用编号首先出现的附图。不同附图中的相同的引用编号指示相似或一样的项。一组复数个数的项中的个体项的引用可以使用具有字母序列中的字母的引用编号来指代每个个体项。对这组复数个数的项的泛化的引用可以使用不含字母序列的特定的引用编号。

图1图示了示例性的基于槽的对话式机器人程序构建过程。

图2图示了用在按照本文中描述的系统和方法的机器人程序构建过程中的示例性用户界面。

图3图示了用在按照本文中描述的系统和方案的机器人程序构建中的示例性架构的框图。

图4图示了用户与说明性的计算应用的示例性交互轨迹,该说明性的计算应用用于按照本文中描述的系统和方法创建自动化的面向任务的对话式机器人程序。

图5图示了针对说明性的计算应用的示例性用户界面轨迹,该说明性的计算应用用于按照本文中描述的系统和方法创建自动化的面向任务的对话式机器人程序。

图6图示了示例性机器人程序可视化用户界面,其可操作以允许参与用户图形化地说明在面向任务的对话式机器人程序的创建中使用的操作。

图7是按照本文中描述的系统和方法自动创建面向任务的对话式机器人程序的说明性过程的流程图。

图8是示出针对根据一个实施例的计算设备的说明性的计算机硬件和软件架构的计算机架构图。

图9是图示分布式计算环境的网络图解,所公开的技术的各方面可以根据本文呈现的各种实施例在该分布式计算环境中实现。

具体实施方式

下面的具体实施方式描述了允许用于在一个或多个计算应用上执行的面向任务的对话式机器人程序的自动创建的技术。在一个说明性的实现中,一个或多个计算应用可以支持具有一个或多个编程性元件的图形用户界面,其可以操作性地为一个或多个计算应用上一个或多个操作的执行提供支持。这些示例性的一个或多个编程性元件可以包括但不限于按钮、菜单、对话框等,当与之交互时,发起一个或多个计算应用中一个或多个指令的执行。

操作性地,本文中描述的系统的方法支持在执行一个或多个计算应用任务/操作以达成具体任务的结果的情况中,跟踪与计算应用的交互(包括与计算应用的GUI的交互),以取回关于计算应用、在其上执行计算应用的计算环境、以及GUI状态的状态数据,用于自动生成可操作以执行一个或多个期望的任务的面向任务的机器人程序。通过自动地从一个或多个计算应用启动(bootstrap)对话式服务,降低了用于生成在一个或多个计算应用上执行一个或多个操作所要求的指令的处理步骤的数目,由此提高了在其上可以执行一个或多个计算应用的计算环境的处理效率。

为了实现上文简要提及的技术利益,说明性地,本文中描述的系统和方法为对话式服务的自动生成提供支持,在说明性的操作中,数据可以被收集,其表示与在一个或多个计算环境上可执行的一个或多个计算应用的一个或多个交互,和/或,一个或多个计算环境和/或一个或多个计算环境的GUI(若可用)的一个或多个操作/特征/命令的跟踪。收集的数据可以包括但不限于表示一个或多个计算应用的状态、一个或多个计算环境的状态、以及一个或多个GUI(若可用)的状态的数据。

在一个说明性的实现中,收集的数据可以用于限定一个或多个服务应用编程接口(API),其可以操作以与一个或多个计算应用、一个或多个计算环境、和/或一个或多个计算应用的一个或多个GUI(若可用)合作。收集的数据也可以用于生成由示例性机器人程序或个人助理系统可用的、用于一个或多个任务的创建和执行的一个或多个任务模型。另外,所收集的数据可以由示例性问题-回答界面生成系统用作输入数据,该生成系统可操作以使用已经根据开放领域对话式日志被训练的一个或多个神经网络模型。在一个说明性的实现中,一个或多个所生成的对话式服务由一个或多个移动应用可执行,以使所创建的服务API调用可以根据每个用户的交互而被执行。说明性地,特定于与一个或多个计算应用的一个或多个GUI的交互的所收集的数据,可以操作性地用于为一个或多个个人数字助理(诸如来自MICROSOFT CORP的CORRANA虚拟助手)创建面向任务的“技能”和/或“动作”。

在一个说明性的实现中,可以提供面向任务的对话式机器人程序的创作工具,其可以包括图形用户界面,以允许参与用户(如,开发者/作者)与数据的交互,这些数据被收集用于在说明性的创作工具GUI中显示,作为面向任务的对话式机器人程序的自动创建的部分。在该说明性的实现中,所收集的数据可以包括状态图,其具有一个或多个执行路径,示出一个或多个计算应用、一个或多个GUI、和/或一个或多个计算环境的各种操作/特征/命令的执行。说明性地,面向任务的对话式机器人程序可以同步地或异步地沿着一个或多个执行路径的选定的(多个)操作而生成,以达成由一个或多个计算应用执行期望的一系列功能/操作。

在一个说明性的实现中,本文描述的系统和方法可以使用示例性的用户界面(UI)树模型以在UI的屏幕中表示示例性计算机应用交互数据,包括但不限于UI元件以及UI元件之间的关系、和一个或多个可以在它们上执行的交互。在说明性的实现中,通过操作性地将UI屏幕和事件抽象成意图和槽,来自与示例性计算应用的交互的任务模型可以通过一个或多个轨迹被推导。在说明性的操作中,轨迹数据可以被进一步分割,以标识执行示例性用户界面的计算应用的一个或多个操作状态。这样的状态可以包括动态的和静态的计算应用状态。计算应用状态数据可以在生成机器人程序时被使用,指导在应用操作和/或功能的执行期间计算应用如何运作。

说明性地,任务模型可以表示机器人程序的逻辑骨干(backbone)。在一个说明性的实现中,用于对话的问题-回答界面可以被自动地建立,其操作性地利用混合基于规则和神经网络的方法。在说明性的操作中,使用示例性计算应用的GUI和屏幕上的内容,槽的性质和语义可以被推导出,因而能借助于一些语义规则的方式生成提示问题。为了针对不能被语义地分类的槽生成问题,以及针对用户回答生成话语,一个或多个神经网络转导(transduction)模型可以被训练(例如,通过利用由一个或多个大型社交媒体网络(诸如来自TWITTER INC.的TWITTER通信服务)提供的几百万个对话对)。

在一个说明性的实现中,面向任务的机器人程序可以理解用户请求并且执行相关的任务。如图1所示,示例性面向任务的机器人程序创建过程100可以包括但不限于三个操作:110;130和150。如示出的那样,操作110可以包括限定控制结构。操作性地,软件开发者可以限定表示示例性计算环境可以支持的动作种类(称为“意图”115)的控制结构。说明性地,意图115可与一个或多个槽120相关联,并且可以具有对其他意图的一个或多个约束或依赖性125。约束可以被视为特定于意图的执行的一个或多个条件。

例如,在餐厅预定机器人程序中,名为预约餐厅的意图可以被限定并且可以具有可以包括以下的槽:1)餐厅名称;2)聚会规模;以及3)时间。名为确认预约的对应意图可以具有对意图预约餐厅的依赖。在示例性操作中,基于这样的示例性结构,机器人程序可以执行槽填充,即,为每个意图收集槽(如,所要求的数据元素)并且然后执行相关联的(多个)动作。

在操作130处,开发者可以(例如,通过训练有能力进行语言处理的机器学习模型)限定针对控制结构(例如,示例性计算环境可以支持的一组意图135)的对话式界面,操作性地执行一个或多个功能,包括但不限于:1)识别用户意图135以及槽120;2)针对所要求的槽120询问用户140;以及3)理解用户回答145。例如,从短语“我要一张二人桌”,执行创建过程100的示例性计算环境可以识别名为预约餐厅的意图,以及槽聚会规模等于二,并且然后针对缺失的槽时间询问用户。在操作150处,所得到的意图可以然后被传送到示例性计算环境的合作服务后端操作,其有能力唤起一个或多个服务API并且从这样的API调用返回结果160给参与用户(未示出)(例如,确认预约)。

如图2所示,具有各种用户界面控件和对话框的示例性机器人程序创建工具200被示出。操作性地,在使用示例性机器人程序创建工具200中,开发者可以供应用户话语210的一个或多个示例,其可以操作性地映射到任务中的意图220。在这个说明性的操作中,开发者可以限定针对意图220的一个或多个槽230,以标记出现在所提供的话语210中的一个或多个槽值230(槽值的标记可以说明性地提供意图的执行所要求的数据元素),以及提供针对每个槽的提示问题并且指定提示240的顺序。

操作性地,开发者可以重复这些操作以解析用户回答,即,针对可能的用户回答指定短语,并且在示例回答中标记槽值。操作性地,为了促进从用户短语识别槽,可以提供针对每个槽240的可能的值。在一个说明性的实现中,在指定了针对意图220和槽240的许多话语样本之后,机器学习模型可以被训练,其可以操作性地提供与示例类似的输入上的合理的准确性。

图3图示了示例性面向任务的对话式机器人程序生成环境300的各种合作组件和功能。如图示的那样,示例性面向任务的对话式机器人程序生成环境300可以包括神经序列转导模块310、任务模型提取模块330以及问题/回答生成模块370。此外,如图3所示,神经序列转导模块可以操作性地执行各种功能,包括但不限于数据收集315(例如,数据集317)、数据标注320以及模型训练325。操作性地,数据收集可以被视为收集对话式服务的生成所需的数据的过程,数据标记可以被视为将一个或多个选定的特性关联到收集的数据的过程,以及模型训练可以被视为可以从收集的数据中推理出的一个或多个指令。

任务模型提取模块330可以操作性地执行各种功能,包括但不限于轨迹收集335(例如,收集表示用户与示例性计算应用的交互的数据)、轨迹聚合340(例如,根据一个或多个选定的规则整合收集的轨迹)、以及意图/槽提取345(例如,基于所收集的轨迹数据限定意图以及与意图相关联的槽)。

问题/回答生成模块370可以包括但不限于生成槽回答375,其可以操作性地从问题到回答变换355(例如,基于一个或多个选定的规则关联回答到问题以及关联问题到回答的操作)生成,问题到回答变换355在由神经序列转导模块310提供的数据和来自机器人程序模板365的示例性数据模板上操作。同样,问题和回答生成模块370可以包括问题380,其可以操作性地使用由实体提取模块350提供的数据生成,实体提取模块350可以从神经序列转导模块310的数据标注功能320操作性地接收数据。此外,槽问题380也可以由回答到问题变换360生成,回答到问题变换360在由神经序列转导模块310提供的数据上操作。

图4示出了来自用户与示例性移动计算应用400的交互的三个示例性屏幕(a、b和c)(例如,用于利用来自OPENTABLE的OPENTABLE餐厅预约服务的应用),其示出了用户搜索餐厅(屏幕a-410)并且从列表选择餐厅(未示出),查看关于选定的餐厅的信息(屏幕b-420),以及做出预约(屏幕c-430)。操作性地,各种意图以及槽可以被推理出:开始餐厅搜索(屏幕a-410)、查看餐厅信息、查看餐厅菜单和查看餐厅评价(屏幕b-420)(可以被限定为槽——餐厅名称(在餐厅列表屏幕中选定)),以及预约餐厅(屏幕c-430)(采取预约时间作为槽(在屏幕b-420中选定))。

在一个说明性的操作中,为了编程性地提取意图以及槽,“应用语言”可以被操作性地翻译成“机器人程序语言”。在应用语言中,用户可以经由与UI元件和从一个页面到另一个页面的转变执行任务。在机器人程序语言中,用户可以经由填充槽和导航意图的图来执行任务。操作性地,为从移动应用提取信息,(1)可以应用静态的分析,其检查移动应用的源代码而不执行它,和/或(2)动态的分析,其中通过执行应用来分析它。

在一个说明性的实现中,交互轨迹可以被表示为UI事件的序列。每个UI事件可以与UI元件和UI树相关联,动作在UI元件上执行(例如,在按钮上点击或者在文本字段中键入文本),UI树包括在交互的时刻屏幕上的UI元件与它们的分层的关系、类型和内容。在该说明性的实现中,由开发者提供的一个或多个应用轨迹可以被处理以提取任务模型。任务模型可以由意图集合组成,这个集合也可以包括一组槽和来自其他意图的依赖性。槽可以具有名称和一组可能的值。在一个说明性的实现中,任务模型提取可以使用轨迹聚合、意图提取和槽提取而被达成。

图5示出了在使用上文关于图4简要描述的OPENTABLE应用时,在与示例性意图搜索标准活动的示例性用户互动期间所报告的所有的UI事件。操作性地,交互510、525和530可以用在如图3所描述的提取处理中。在一个说明性的操作中,用户交互505、515、550和555可以免除处理,因为这样的交互与不可变的内容(例如,具有静态标签的示例性移动应用的按钮,当与其交互时,引起到新的页面或对话框的转变)相关联,其不提供特定于对话式机器人的生成的信息性的数据。此外,交互535、540和545可以免除提取操作,因为这样的交互与不可见的UI元件相关联,当应用将多个布局彼此交叠时,这可以发生。同样,交互520可以免除处理,因为这样的交互与空的内容相关联。操作性地,槽可以从剩余的UI元件中提取,并且恰当的意图可以分配给这样的槽。

图6图示了示例性餐厅预约建模工具600以及从上文关于图4和图5简要描述的OPENTABLE移动应用提取出的示例性模型。如所示出的那样,图610中的节点可以表示系统支持的意图动作,其具有特定于该意图的参数。说明性地,输入参数可以是用于意图执行的必须的数据元素。流(flow)开始于命名为对话的开始(StartOfConversation)的意图,并且结束于命名为对话的结束(EndOfConversation)的意图。

在一个说明性的操作中,餐厅可以经由查看诸如“附近的餐厅”或“室外座位”的餐厅建议(通过搜索结果意图)、或者经由进行定制化搜索(通过搜索标准和搜索结果_2)来搜索。针对在结果中标识出的每个餐厅,用户可以取回概况、预约选项、菜单和评价(使用相应的意图),以及然后进行到做出预约(确认预约)并且提交它(确认预约_完成)。槽可以表示为如图6的中央所示。定制化的搜索(搜索结果_2)可以要求若干个槽:搜索查询、城市、聚会规模和时间。继而,槽可以维护若干个字段、名称、标识符、值、提示问题、针对可能的回答的话语;附加的字段可以由附加的操作生成。

在该说明性的实现中,先前的操作可以产生机器人程序的逻辑流。操作性地,为了使用自然语言导航逻辑流,机器人程序需要能够提出问题以及理解回答。在该说明性的实现中,可以执行问题生成(即,针对每个槽标识一个恰当的提示问题),以及可以执行回答生成(即,针对每个提示生成可能的回答的大型集合,以使得回答理解模型可以被训练)。

图7是说明性的过程700的流程图,过程700针对由示例性计算环境进行的面向任务的对话式机器人程序的自动创建,其导致示例性计算环境的增强的处理效率。如示出的那样,处理在框705处开始,其中表示与计算环境的一个或多个交互的数据可以被接收。处理接着进行到框710,其中接收到的数据根据计算环境的一个或多个状态被分割。

状态之间的一个或多个依赖性可以在框715处被确认,以及,如上文所描述的,这样的依赖性用于标识由示例性计算应用使用的一个或多个服务API。处理接着进行到框720,其中一个或多个问题以及一个或多个回答可以从所确定的依赖性生成。依赖性数据,与所生成的问题/回答数据一起,以及状态数据,可以被用于生成针对服务API的输入数据。

处理接着进行到框730,其中执行检查以确定是否存在要求处理的附加数据。如果没有附加的交互数据,处理在框735处终止。如果附加的交互数据要求处理,处理撤回到框710并且从那里继续。

图8是示出说明性的计算机硬件和软件架构的计算机架构图,其针对如描述的那样,可以由文本中描述的系统的方法操作性地执行的计算设备。特别地,图9中图示的架构可以利用于实现服务器计算机、移动电话、电子阅读器、智能电话、桌上计算机、增强或虚拟现实(AR/VR)设备、平板计算机、膝上计算机、或者其他类型的计算设备。

图8中示出的计算机800包括中央处理单元802(“CPU”)、包括随机访问存储器806(“RAM”)和只读存储器(“ROM”)的系统存储器804、以及将存储区804耦合到CPU 802的系统总线810。基本的输入/输出系统(“BIOS”或“固件”)可以存储在ROM 808中,其包含帮助在计算机800内的元件之间传送信息(诸如在开机期间)的基本例程。计算机800还包括用于存储操作系统822、应用程序和其他类型的程序的大容量存储设备812。大容量存储设备812也可以被配置为存储其他类型的程序和数据。

大容量存储设备812通过连接到总线810的大容量存储控制器(未示出)连接到CPU802。大容量存储设备812和与它相关联的计算机可读介质为计算机800提供非易失性存储装置。尽管本文中包含的计算机可读介质的描述指的是大容量存储设备,诸如硬盘驱动器、CD-ROM驱动器或者USB存储key,本领域技术人员应理解,计算机可读介质可以是可由计算机800访问的任何可用的计算机存储介质或者通信介质。

通信介质包括计算机可读指令、数据结构、程序模块或其他已调制的数据信号(诸如载波或其他传送机制)中的其他数据并且包括任何传输介质。术语“已调制的数据信号”意为以下信号:它的特性中的一个或多个特性被改变或设置,以便在信号中编码信息。用示例的形式,并且不是限制,通信媒体包括有线介质(诸如有线网络或直接连线连接)和无线介质(诸如声波、无线电射频、红外和其他无线介质)。上述中的任何的组合也应当包括在计算机可读介质的范围内。

用示例的形式,并且不是限制,计算机存储介质可以包括用任何用于信息存储的方法和技术实现的易失性和非易失性、可移除和不可移除介质,诸如计算机可读指令、数据结构、程序模块和其他数据。例如,计算机存储介质包括,但不限于RAM、ROM、EPROM、EEPROM、闪存存储器或其他固态存储技术、CD-ROM、数字通用盘(“DVD”)、HD-DVD、BLU-RAY、或者其他光学存储装置、盒式磁带、磁带、磁盘存储装置或其他磁性存储设备、或者可以用于存储期望的信息并且由计算机800访问的任何其他介质。为了权利要求的目的,短语“计算机存储介质”以及其变体,不包括波或信号本身或者通信介质。

根据各种配置,计算机800可以使用通过网络(诸如网络820)到远程计算机的逻辑连接,在联网环境中操作。计算机800可以通过连接到总线810的网络接口单元816连接到网络820。应理解,网络接口单元816也可以被利用来连接到其他类型的网络和远程计算机系统。计算机800也可以包括输入/输出控制器818,其用于从若干其他设备827(包括键盘、鼠标、触摸输入和电子笔(图8中未示出))或物理传感器(诸如视频相机)接收和处理输入。类似地,输入/输出控制器818可以提供到显示器屏幕或其他类型的输出设备825的输出。

应理解,本文中描述的软件组件,当被加载到CPU 802中并执行时,可以将CPU 802和总体的计算机800从通用计算设备转换成被定制化以促进本文中呈现的功能性的专用计算设备。CPU 802可以从任何数目的晶体管或者其他分立电路元件构造,其可以个体地或集体地假设任何数目的状态。更特定地,CPU 802可以作为有限状态机操作,为响应包含在本文中公开的软件模块内的可执行指令。这些计算机可执行的指令可以经由指定CPU 802如何在状态之间转变来变换CPU802,由此变换构成CPU 802的晶体管或其他分立硬件元件。

编码本文中呈现的软件模块也可以变换本文中呈现的计算机可读介质的物理结构。在这个描述的不同的实现中,特定的物理变换依赖各种因素。这样的因素的示例包括,但不限于,用于实现计算机可读介质的技术,不论该计算机可读介质是否具有主要的或次级的存储装置等等的特征。例如,如果计算机可读介质实现为基于半导体的存储器,本文中公开的软件可以经由变换半导体存储器的物理状态,被编码在计算机可读介质上。例如,软件可以变换构成半导体存储器的晶体管、电容器或其他分立电路元件。软件也可以变换这样的组件的物理状态以在其上存储数据。

作为另一个示例,本文中公开的计算机可读介质可以使用磁性或光学技术实现。在这样的实现中,当软件被编码在其中时,本文中呈现的软件可以变换磁性或光学介质的物理状态。这些变换也可以包括更改给定的光学介质内具体位置的特征或特质,以改变那些位置的光学特质。在不背离本描述的范围和精神的情况下,其他物理介质的变换是可能的,前述示例仅被提供以便利这个讨论。

鉴于以上所述,应理解,许多类型的物理变换发生在计算机800中,以存储和执行本文中呈现的软件组件。也应理解,图8中针对计算机800示出的架构,或类似的架构,可以被利用来实现其他类型的计算设备,包括手持计算机、视频游戏设备、嵌入式计算机系统(诸如智能电话、平板以及AR/VR设备)、以及为那些本领域技术人员所知的其他类型的计算设备。也考虑计算机800可以不包括图8示出的组件中的所有组件,可以包括图8中未明确地示出的其他组件、或者可以利用与图8中示出的架构完全不同的架构。

图9是图示分布式网络计算环境900的网络图,根据本文中呈现的各种实施例,被公开的技术的各方面可以在分布式网络计算环境900中实现。如图9所示,一个或多个服务器计算机900可以经由通信网络820(其可以或者是固定线路或无线LAN、WAN、内联网、外联网、点对点网络、虚拟私有网络、互联网、蓝牙通信网络、专属低电压通信网络或其他通信网络,或者是上述的组合)与若干客户端计算设备互连接,客户端计算设备包括,但不限于,平板计算机900B、游戏控制台900C、智能手表900D、电话900E(诸如智能电话)、个人计算机900F、以及AR/VR设备900G。

在其中通信网络是互联网的网络环境中,例如,服务器900A可以是专用的服务器计算机,其可操作以经由任何数目的已知协议(诸如,超文本传输协议(“HTTP”)、文件传输协议(“FTP”)、或简单对象访问协议(“SOAP”)),处理和通信到以及来自客户端计算设备900B-900G的数据。附加地,网络化的计算环境900可以利用各种数据安全协议,诸如安全套接字层(“SSL”)或者良好隐私(“PGP”)。客户端计算设备900B-900G中的每个客户端计算设备可以配备操作系统,其可操作来支持一个或多个计算应用或者终端会话(诸如web浏览器)(图9中未示出)、或者其他图形用户界面(图9中未示出)、或者移动桌面环境(图9中未示出)获得到服务器计算机900A的访问。

服务器计算机900A可以通信地耦合到其他计算环境(图9中未示出),并且接收关于参与用户的互动/资源网络的数据。在一个说明性的操作中,用户(图9中未示出)可以与运行在客户端计算设备900B-900G上的计算应用交互,以获取期望的数据和/或执行其他的计算应用。

数据和/或计算应用可以存储在一个或多个服务器900A上,并且通过示例性通信网络820之上的客户端计算设备被通信到合作用户。参与用户(图9中未示出)可以请求到特定的数据和应用的访问,这些数据和应用全部或部分容纳在服务器计算机900A上。为了处理和存储,这些数据可以在客户端计算设备900B-900G和服务器计算机900A之间被通信。

服务器计算机900A可以托管用于数据和应用的生成、验证、加密和通信的计算应用、过程和小应用程序,并且可以与其他服务器计算环境(图9中未示出)、第三方服务提供者(图9中未示出)、网络附着的存储装置(“NAS”)和存储区域网络(“SAN”)以实现应用/数据交易。

应理解,为了便于讨论,图8中示出的计算架构和图9中示出的分布式网络计算环境已被简化。也应当理解,计算架构和分布式计算网络可以包括和利用许多更多的计算组件、设备、软件程序、联网设备、以及本文中未特定地描述的其他组件。

示例条款

本文中呈现的公开包括下面条款中陈述的技术方案。

示例条款A,一种系统,包括至少一个处理器以及至少一个存储器,该至少一个存储器在其上存储有计算机可读指令,在指令由至少一个处理器执行时,引起至少一个处理器:接收第一输入数据,第一输入数据包括表示与一个或多个编程性元件的一个或多个用户交互的数据、表示该一个或多个编程性元件的数据、以及表示在其中正在执行该一个或多个编程性元件的应用的状态的数据;通过以下操作处理该第一输入数据以生成中间已处理数据:根据该应用的一个或多个选定的状态,分割该输入数据;标识该一个或多个选定的应用状态之间的一个或多个依赖性;以及使用标识出的一个或多个依赖性从该应用提取一个或多个服务API;以及通过以下操作使用该中间处理输入数据生成自然的用户界面:针对标识出的一个或多个依赖性生成一个或多个问题;生成用于所生成的一个或多个问题的用户回答的样本;以及生成用户话语的样本,用于触发提取出的一个或多个服务API被应用执行。

示例条款B,要求保护的示例条款A的系统,其中一个或多个用户交互包括应用的行为的一个或多个轨迹。

示例条款C,示例条款A或B的系统,其中表示一个或多个编程性元件的数据包括:表示在计算环境上可执行的应用的用户界面的数据。

示例条款D,示例条款A到C的系统,其中计算机可读指令还使至少一个处理器根据一个或多个选定的应用状态分割第一输入数据,一个或多个选定的应用状态包括:在计算环境上可执行的应用的用户界面的一个或多个状态、以及表示在计算环境上可执行的应用的一个或多个内部的处理状态。

示例条款E,示例条款A到D的系统,其中表示在其中正在执行编程性元件的应用状态的数据包括:动态的应用状态、静态的应用状态、以及用于在其上执行应用的计算机环境的底层操作系统的状态。

示例条款F,示例条款A到E的系统,其中计算机可读指令还使至少一个处理器将作为状态图的一个或多个元素的一个或多个选定的应用状态排序,状态图包括表示一个或多个选定的应用状态间的一个或多个依赖。

示例条款G,示例条款A到F的系统,其中计算机可读指令还使至少一个处理器提取一个或多个服务API,作为状态图上的一个或多个路径,一个或多个路径包括表示应用的一个或多个选定的状态。

示例条款H,一种计算机实现的方法,包括:由计算环境接收第一输入数据,第一输入数据包括表示与一个或多个编程性元件进行的一个或多个用户交互的数据、表示该一个或多个编程性元件的数据、以及表示在其中正在执行该一个或多个编程性元件的应用的状态的数据;通过以下操作处理该第一输入数据以生成中间处理输入数据:根据一个或多个选定的应用状态,分割该输入数据;将作为状态图的一个或多个元素的一个或多个选定的应用状态排序;以及提取一个或多个服务应用编程接口(API),作为状态图上的一个或多个路径,该一个或多个路径包括表示针对提取出的一个或多个服务API的一个或多个参数的数据;以及通过以下操作使用中间处理输入数据生成自然的用户界面:针对标识出的参数生成一个或多个问题;针对所生成的一个或多个问题生成一个或多个用户回答的样本;以及生成一个或多个用户话语,用于触发提取出的一个或多个服务API被应用执行。

示例条款I,示例条款H的计算机实现的方法,还包括执行在计算环境上操作的应用的跟踪,该跟踪生成数据,该数据表示由该应用的一个或多个功能处理的数据。

示例条款J,示例条款H和I的计算机实现的方法,其中根据一个或多个选定的应用状态分割第一输入数据包括:根据该应用的用户界面的一个或多个状态以及该应用的一个或多个内部的处理状态,分割第一输入数据。

示例条款K,示例条款H到K的计算机实现的方法,其中状态图还包括数据,该数据表示一个或多个选定的应用状态之间的一个或多个依赖性。

示例条款L,示例条款H到K的计算机实现的方法,还包括从所生成的输入数据生成技能,提供给一个或多个服务API以用于执行。

示例条款M,示例条款H到K的计算机实现的方法,还包括:生成技能并将该技能提供给一个或多个用户通道(channel)执行,该一个或多个用户通道包括合作计算应用。

示例条款N,示例条款H到M的计算机实现的方法,还包括从接收到的输入数据标识一个或多个服务API。

示例条款O,示例条款H到N的计算机实现的方法,还包括训练计算环境以用于:生成针对标识出的参数的一个或多个问题、以及生成针对所生成的一个或多个问题的一个或多个用户回答的样本。

示例条款P,一种在其上存储有计算机可执行指令的计算机可读存储介质,在指令由计算设备的一个或多个处理器执行时,使该计算设备的该一个或多个处理器:接收第一输入数据,第一输入数据包括表示与编程性元件进行的一个或多个用户交互的数据、表示该编程性元件的数据、以及表示在其中正在执行该编程性元件的应用的状态的数据;通过以下操作处理该第一输入数据以生成中间处理输入数据:根据一个或多个选定的状态,分割该第一输入数据;标识该一个或多个选定的应用状态之间的一个或多个依赖性;以及使用标识出的一个或多个依赖性从该应用提取一个或多个服务API;以及通过以下操作使用中间处理输入数据,生成自然的用户界面:针对标识出的一个或多个依赖性生成一个或多个问题;生成用于所生成的一个或多个问题的用户回答的样本;以及生成一个或多个用户话语的样本,用于提取出的一个或多个服务API被该应用执行。

示例条款Q,示例条款P的计算机可读存储介质,其中指令还使计算设备的一个或多个处理器:跟踪生成数据,该数据表示由应用的一个或多个功能处理的数据。

示例条款R,示例条款P和Q的计算机可读存储介质,其中指令还使计算设备的一个或多个处理器:将作为状态图的一个或多个元素的一个或多个选定的应用状态排序,该状态图包括表示该一个或多个选定的应用状态之间的一个或多个依赖性的数据。

示例条款S,示例条款P到R的计算机可读存储介质,其中指令还使计算设备的一个或多个处理器:提取一个或多个服务API,作为状态图上的一个或多个路径,该一个或多个路径包括表示应用的一个或多个状态的数据。

示例条款T,示例条款P到S的计算机可读存储介质,其中指令还使计算设备的一个或多个处理器:从接收到的输入数据限定一个或多个服务API。

结论

最后,尽管已经用特定于结构化特征和/或方法动作的语言描述了技术方案,但是应理解,权利要求书中限定的技术方案不一定限于上文描述的特定特征或动作。确切地说,上文描述的特定特征和动作作为实现权利要求的示例形式被公开。

24页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:数据处理的方法、训练神经网络模型的方法及设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!