用于更新会话机器人的图形用户界面特征的制作方法

文档序号:23350238发布日期:2020-12-18 16:55阅读:115来源:国知局
用于更新会话机器人的图形用户界面特征的制作方法



背景技术:

聊天机器人是指提供服务的计算机实现的系统,其中聊天机器人照惯例基于硬编码的规则,以及进一步地,其中人们通过聊天界面与聊天机器人进行交互。该服务可以是任何合适的服务,范围从功能服务到娱乐服务。例如,聊天机器人可以被配置为针对被设计为销售电子产品的网站提供客户服务支持,聊天机器人可以被配置为响应于请求提供笑话等。在操作中,用户通过界面向聊天机器人提供输入(其中,该界面可以是麦克风、接受输入的图形用户界面等),并且聊天机器人利用(基于输入)被标识为有助于用户的(多个)响应来对这种输入进行响应。用户提供的输入可以是自然语言输入、对按键的选择、将数据输入到表格中、图像、视频、位置信息等。聊天机器人响应于输入而输出的响应可以具有文本,图形、音频或其他类型的人类可解释内容的形式。

照惯例,创建聊天机器人并更新所部署的聊天机器人是艰巨的任务。在示例中,当创建聊天机器人时,计算机编程者的任务是以代码或通过用户界面使用树状图表工具来创建聊天机器人,其中计算机编程者必须理解聊天机器人的专业领域,以确保聊天机器人适当地与用户交互。当用户以意外的方式与聊天机器人交互时,或者当期望新的功能性时,可以更新聊天机器人;然而,为了更新聊天机器人,计算机编程者(或作为领域专家并且理解聊天机器人的当前操作的另一计算机编程者)必须更新代码,这可能既耗时又昂贵。



技术实现要素:

以下是本文更详细地描述的主题的简要发明内容。该发明内容不旨在限制权利要求的范围。

本文描述了与图形用户界面(gui)特征有关的各种技术,这些技术非常适合于创建和/或更新聊天机器人。在示例性实施例中,聊天机器人可以包括计算机可执行代码、实体提取器模块、以及响应模型,该实体提取器模块被配置为标识和提取用户提供的输入中的实体,该响应模型被配置为响应于接收到来自用户的输入而选择输出以提供给用户(其中,响应模型的输出基于的是最近接收到的输入、会话中的先前输入以及在会话中标识的实体)。例如,响应模型可以是人工神经网络(ann),诸如,递归神经网络(rnn)或其他合适的神经网络,其被配置为接收输入(诸如,文本,位置等)并基于这种输入提供输出。

本文描述的gui特征被配置为有助于训练上文引用的提取器模块和/或响应模型。例如,gui特征可以被配置为向开发者呈现实体的类型和与其相对应的参数,其中实体类型可以由开发者自定义;以及参数能够指示实体类型是否可以出现在用户输入、系统响应或两者中;实体类型是否支持多个值;以及实体类型是否是可否定的。gui特征还被配置为呈现可用响应的列表,并且还被配置为允许开发者编辑现有响应或添加新响应。当开发者指示要添加新响应时,将修改响应模型以支持新响应。同样地,当开发者指示要修改现有响应时,将更新响应模型以支持修改后的响应。

本文描述的gui特征还被配置为支持添加用于聊天机器人的新训练对话,其中开发者可以出于训练实体提取器模块和/或响应模型的目的而提出输入。训练对话是指聊天机器人与开发者之间的会话,其由开发者进行以训练实体提取器模块和/或响应模型。当开发者向聊天机器人提供输入时,gui特征标识由提取器模块标识的用户输入中的实体,并进一步标识聊天机器人的可能响应。另外,gui特征说明了与可能响应相对应的概率,使得开发者可以理解聊天机器人如何选择响应,并进一步向开发者指示何处可能期望更多训练。gui特征被配置为从开发者接收有关来自聊天机器人的正确响应的输入,并且聊天机器人与开发者之间的交互可以继续,直到训练对话已经被完成。

另外,gui特征被配置为允许开发者从日志中选择用户与聊天机器人之间的先前交互,并基于先前交互来训练聊天机器人。例如,可以向开发者呈现端用户(例如,不同于开发者)与聊天机器人之间的对话(例如,会话),其中该对话包括用户提出的输入,并且还包括聊天机器人的对应响应。开发者可以从聊天机器人中选择错误的响应,并可以将不同的正确响应通知给聊天机器人。然后,基于开发者标识的正确响应,实体提取器模块和/或响应模型被更新。因此,本文描述的gui特征被配置为允许聊天机器人被开发者交互式地训练。

关于响应模型的交互训练具有更多的特殊性,当开发者提出关于正确响应的输入时,响应模型被重新训练,从而允许响应模型的增量重新训练。进一步地,可以将正在进行的对话重新附加到新的重新训练的响应模型。如先前所提到的,响应模型的输出基于最近接收的输入、先前接收的输入、对先前接收的输入的先前响应以及所识别的实体。因此,对响应模型输出的响应进行的校正可能会影响对话中的响应模型的未来响应;因此,对话可以重新附加到重新训练的响应模型,使得当对话继续时,来自响应模型的输出就来自重新训练的响应模型。

以上发明内容呈现了简化发明内容,以便提供对本文讨论的系统和/或方法的一些方面的基本理解。该发明内容不是本文讨论的系统和/或方法的广泛概述。其目的不是标识关键/决定性元素或者描绘这种系统和/或方法的范围。其唯一目的是以简化形式呈现一些概念,作为稍后呈现的更详细的描述的序言。

附图说明

图1是示例性系统的功能框图,该示例性系统有助于在由开发者操作的客户端计算设备的显示器上的gui特征的呈现,其中gui特征被配置为允许开发者交互式地更新聊天机器人。

图2至图23描绘了示例性gui,被配置为协助开发者更新聊天机器人。

图24是图示了用于创建和/或更新聊天机器人的示例性方法的流程图。

图25是图示了用于创建和/或更新聊天机器人的示例性方法的流程图。

图26是图示了用于更新会话流内的实体提取标签的示例性方法的流程图。

图27是示例性计算系统。

具体实施方式

现在参照附图描述与gui特征有关的各种技术,这些技术非常适合于创建和/或更新聊天机器人,其中在全文中,相同的附图标记用于指代相同的元素。在以下描述中,出于解释的目的,提出了许多具体细节以便提供对一个或多个方面的透彻理解。然而,可能明显的是,这种(多个)方面可以在没有这些具体细节的情况下实践。在其他情况下,以框图形式示出了众所周知的结构和设备,以便帮助描述一个或多个方面。进一步地,要理解的是,被描述为由某些系统组件执行的功能性可以由多个组件执行。同样地,例如,组件可以被配置为执行被描述为由多个组件执行的功能性。

而且,术语“或”旨在表示包含性的“或”而不是排他性的“或”。即,除非另外指定或者从上下文显而易见,否则短语“x使用a或b”旨在表示任何自然的包含性排列。即,通过以下情况中的任何一种满足短语“x使用a或b”:x使用a;x使用b;或者x使用a和b。另外,在本申请和所附权利要求中使用的冠词“一”和“一个”通常应该被解释为表示“一个或多个”,除非另有指定或者从上下文显而易见其指的是单数形式。

进一步地,如本文使用的,术语“组件”、“模块”和“系统”旨在涵盖计算机可读数据存储装置,该计算机可读数据存储装置被配置有在由处理器执行时使特定功能性被执行的计算机可执行指令。计算机可执行指令可以包括例程、功能等。还要理解的是,组件或系统可以位于单个设备上或者分布在多个设备上。附加地,如本文使用的,术语“示例性”旨在表示充当某事物的说明或示例,并且不旨在指示偏好。

参照图1,图示了用于交互式地创建和/或修改聊天机器人的示例性系统100。聊天机器人是被配置为提供服务的计算机实现的系统。聊天机器人可以被配置为接收来自用户的输入,诸如,转录语音输入、通过聊天界面提供的文本输入、位置信息、已选择按键的指示等。因此,聊天机器人可以例如在服务器计算设备上执行,并提供对通过客户端计算设备上正在查看的网页上的聊天界面提出的输入的响应。在另一示例中,聊天机器人可以在服务器计算设备上执行,作为计算机实现的个人助理的一部分。

系统100包括由开发者操作的客户端计算设备102,该开发者将创建新的聊天机器人和/或更新现有的聊天机器人。客户端计算设备102可以是台式计算设备、膝上型计算设备、平板计算设备、移动电话、可穿戴计算设备(例如,头戴式计算设备)等。客户端计算设备102包括显示器104,其上在客户端计算设备102的显示器104上示出本文描述的图形特征。

系统100还包括服务器计算设备106,该服务器计算设备106通过网络108(例如,互联网或内联网)与客户端计算设备102进行通信。服务器计算设备106包括处理器110和存储器112,其中存储器112具有被加载在其中的聊天机器人开发系统114(机器人开发系统),并且进一步地,其中机器人开发系统114由处理器110可执行。尽管示例性系统100将机器人开发系统114图示为在服务器计算设备106上执行,但是要理解的是,机器人开发系统114的全部或部分可以备选地在客户端计算设备102上执行。

机器人开发系统114包括或有权访问实体提取器模块116,其中实体提取器模块116被配置为标识被提供给实体提取器模块116的输入文本中的实体,其中实体具有一个或多个预定义类型。例如,并且根据下文提出的示例,当聊天机器人被配置为帮助下达披萨的订单时,用户可以提出输入“我想预订有意大利辣香肠和蘑菇的披萨”。实体提取器模块116可以将“意大利辣味香肠”和“蘑菇”标识为要从输入提取的实体。

机器人开发系统114还包括或有权访问被配置为提供输出的响应模型118,其中输出是从用户接收的输入的函数,并且进一步地,其中输出可选地是由提取器模块116标识的实体、响应模型118的先前输出和/或响应模型的先前输入的函数。例如,响应模型118可以是或包括诸如rnn等ann,其中ann包括输入层、一个或多个隐藏层以及输出层,其中输出层包括表示响应模型118的潜在输出的节点。输入层可以被配置为接收来自用户的输入以及状态信息(例如,当用户提出输入时,用户在预订过程中所处的位置)。在非限制性示例中,输出节点可以表示潜在输出“是”、“不客气”、“您还想要任何其他配料吗”、“您的披萨上有$toppings”、“您想预订另一披萨吗”、“我帮不了您,但是我可以帮助预订披萨”等(其中,“$toppings”被用于实体替换,使得调用存储器112中的位置,因此所标识的实体代替了输出中的$toppings)。继续上面提出的示例,在实体提取器模块116将“意大利辣味香肠”和“蘑菇”标识为实体之后,响应模型118可以输出数据,该数据指示最可能的正确响应是“您的披萨上有$toppings”,其中“$toppings”(在响应模型118的输出中)用实体“意大利辣香肠”和“蘑菇”而被替换。因此,在该示例中,响应模型118向用户提供响应“您的披萨上有意大利辣香肠和蘑菇”。

机器人开发系统114附加地包括与实体提取器模块116和响应模型118交互的计算机可执行代码120。例如,计算机可执行代码120维护由用户提出的实体列表,在请求时向列表添加实体,在请求时从列表中移除实体等。附加地,计算机可执行代码120可以接收响应模型118的输出,并在适当时从存储器112返回实体。因此,当响应模型118输出“您的披萨上有$toppings”时,“$toppings”可以是对代码120的调用,该代码120从存储器112中的实体列表中获取“意大利辣香肠”和“蘑菇”,使得提供“您的披萨上有意大利辣香肠和蘑菇”作为聊天机器人的输出。

机器人开发系统114附加地包括图形用户界面(gui)呈现器模块122,其被配置为使gui被示出在客户端计算设备102的显示器104上,其中该gui被配置为有助于交互式地更新实体提取器模块116和/或响应模型118。本文呈现了各种示例性gui,其中通过gui呈现器模块122使gui被示出在客户端计算设备102的显示器104上,并且进一步地,其中这种gui被配置为帮助操作客户端计算设备102的开发者更新实体提取器模块116和/或响应模型118。

机器人开发系统114还包括更新器模块124,该更新器模块124被配置为在与呈现在客户端计算设备102的显示器104上的一个或多个(多个)gui交互时,基于从开发者接收的输入来更新实体提取器模块116和/或响应模型118。更新器模块124可以进行各种更新,包括但不限于:1)基于包括实体的示例性输入来训练实体提取器模块116;2)更新实体提取器模块116以标识新实体;3)利用新类型的实体来更新实体提取器模块116;4)更新实体提取器模块116以中止标识某个实体或实体类型;5)基于开发者提出的对话来更新响应模型118;6)更新响应模型118以包括针对响应模型118的新输出;7)更新响应模型118以从响应模型118中移除现有输出;8)基于用户与聊天机器人的对话来更新响应模型118等。在示例中,当响应模型118是ann时,更新器模块124可以更新被指派给ann的突触的权重,可以启动ann中的新的输入或输出节点,可以否决ann中的输入或输出节点等。

现在参照图2至图23,图示了可以由gui呈现器模块122在客户端计算设备102的显示器104上示出的各种示例性gui。这些gui图示了更新现有的聊天机器人,该聊天机器人被配置为帮助用户预订披萨;然而,要理解的是,gui本质上是示例性的,并且本文描述的特征适用于依赖于机器学习模型来生成输出的任何合适的聊天机器人。进一步地,gui非常适合用于创建和/或训练全新的聊天机器人。

仅参照图2,图示了示例性gui200,其中响应于客户端计算设备102从开发者接收到所选聊天机器人将被更新的指示,gui200被呈现在客户端计算设备102的显示器104上。在示例性gui200中,指示了所选聊天机器人被配置为帮助端用户预订披萨。gui200包括若干按键:主页按键202、实体按键204、动作按键206、训练对话按键208和日志对话按键210。响应于选择了主页按键202,gui200被更新为呈现可选择的聊天机器人的列表。响应于选择了实体按键204,gui200被更新为呈现关于由当前选择的聊天机器人识别的实体的信息。响应于选择了动作按键206,gui200被更新为呈现聊天机器人的动作(例如,响应)的列表。响应于选择了训练对话按键208,gui200被更新为呈现训练对话的列表(例如,开发者与聊天机器人之间的与聊天机器人的训练结合使用的对话)。最后,响应于选择了日志对话按键210,gui200被更新为呈现日志对话的列表(例如,聊天机器人与聊天机器人的端用户之间的对话)。

现在参照图3,图示了示例性gui300,其中响应于开发者指示开发者想要查看和/或修改代码120,gui呈现器模块122使gui300在客户端计算设备102的显示器104上被呈现。gui300可以响应于开发者选择gui200上的按键(未示出)来呈现。gui300包括代码编辑器界面302,其包括用于描绘代码120的字段304。字段304可以被配置为接收来自开发者的输入,使得代码120通过与该字段304中的代码交互而被更新。

现在参照图4,图示了示例性gui400,其中响应于客户端计算设备102接收到开发者已经选择了实体按键204的指示,gui呈现器模块122使gui400在客户端计算设备102的显示器104上被呈现。gui400包括字段402,其包括新实体按键404,其中响应于选择了新实体按键404,发起了聊天机器人将要考虑的新实体的创建。字段402还包括文本输入字段406,其中针对可以被包括在文本输入字段406中的实体进行查询,并且进一步地,其中基于这种查询搜索(现有)实体。当存在可以由实体提取器模块116提取(并因此由聊天机器人考虑)的许多实体时,则文本输入字段406特别有用,从而允许开发者相对快速地标识感兴趣的实体。

gui400还包括字段408,该字段408包括可以由实体提取器模块116从用户输入提取的实体的标识,并且字段408还包括这种实体的参数。字段408中的每个实体是可选择的,其中对实体的选择导致呈现被配置为允许编辑该实体的窗口。在图4所示的示例中,聊天机器人考虑了三个实体(每个实体均为“自定义”类型):“配料”、“缺货”和“最终”。“配料”可以是多值的(例如,“意大利辣香肠和蘑菇”),“最终”(表示用户进行的最终披萨订单)也可以是多值的。进一步地,实体“缺货”和“最终”被标识为可编程的,因为这种实体的值仅包括在响应模型118的响应中(而不是用户输入中),并且进一步地,其中输出的一部分被代码120填充。例如,当代码120查询库存系统时,代码120确定,香肠在披萨店可能缺货。最后,在字段408中将“配料”和“缺货”实体标识为可否定的;因此,可以从列表中移除项目。例如,当$toppings列表包括“蘑菇”时,“配料”可否定的指示,输入“以胡椒替换蘑菇”将导致从$toppings列表中移除项目“蘑菇”(并且项目“胡椒”被添加到$toppings列表)。参数“可编程”、“多值”和“可否定的”本质上是示例性的,因为可能期望其他参数。

现在参照图5,描绘了示例性gui500,其中响应于开发者在gui400中选择了新的实体按键404,gui呈现器模块122使gui500被呈现。gui500包括被呈现在gui400上方的窗口502,其中窗口502包括下拉菜单504。下拉菜单504在由开发者选择时描述了预定义实体类型的列表,使得开发者可以选择针对要新创建的实体的类型。在其他示例中,键入字段506中为新创建的实体提出名称。例如,开发者可以为实体分配名称“面包皮类型”,随后可以提出使实体提取器模块116将诸如“薄面包皮”、“平底锅”等文本标识为“面包皮类型”实体的反馈。

窗口502进一步包括可选按键508、510和512,其中,按键被配置为分别接收关于新实体是否仅是可编程的、多值的和/或可否定的开发者输入。窗口502还包括创建按键514和取消按键516,其中,响应于开发者选择了创建按键514而创建新实体,并且响应于选择了取消按键516而不创建新实体。

现在参照图6,图示了示例性gui600,其中响应于客户端计算设备102接收到开发者已经选择了动作按键206的指示,gui呈现器模块122使gui600在客户端计算设备102的显示器104上被呈现。gui600包括字段602,其包括新动作按键604,其中响应于选择了新动作按键604,发起了聊天机器人的新动作(例如,新响应)的创建。字段60还包括文本输入字段606,其中针对可以被包括在文本输入字段606中的动作进行查询,并且进一步地,其中基于这种查询而搜索(现有)动作。当存在聊天机器人的许多动作时,文本输入字段606特别有用,从而允许开发者相对快速地标识感兴趣的动作。

gui600还包括字段608,该字段608包括有聊天机器人当前可执行的动作的标识,并且还包括这种动作的参数。在字段608中表示的每个动作是可选的,其中对动作的选择导致呈现被配置为允许编辑所选动作的窗口。字段608包括列610、612、614、616和618。在图6所示的示例中,聊天机器人可执行6个动作,其中该动作可以包括响应、应用编程接口(api)调用、绘制可填充卡等。如先前所指示的,每个动作可以对应于响应模型118的输出节点。列610包括动作的标识符,其中标识符可以包括响应的文本、api调用的名称、卡的标识符(可以在选择图标时预览)等。例如,第一动作可以是第一响应,并且针对第一动作的标识符可以包括文本“您想在披萨上放什么”;第二动作可以是第二响应,并且针对第二动作的标识符可以包括文本“您的披萨上有$toppings”;第三动作可以是第三响应,并且针对第三动作的标识符可以是“您还想要其他东西吗?”;第四动作可以是api调用,并且针对第四动作的标识可以包括api描述符“finalizeorder”;第五动作可以是第四响应,并且针对第五动作的标识符可以是“我们没有$outstock”;以及第六动作可以是第五响应,并且针对第六动作的标识符可以是“您想要$lasttoppings吗?”

列612包括针对将可用的每个动作所需的实体的标识,而列614包括针对将可用的每个动作不必存在的实体的标识。例如,第二动作要求“配料”实体存在,并且“缺货”实体不存在。如果不满足这些条件,那么该动作将被取消资格。换言之,如果用户尚未提供任何配料,并且存在已经被标识为缺货的配料,则响应“您的披萨上有$toppings”是不恰当的。

列616包括在动作已经被提出给用户之后,聊天机器人预计从用户接收到的实体的标识。再次参照第一动作,预计对第一动作的用户回复(第一响应)包括用户想要在他或她的披萨上放的配料的标识。最后,列618标识用于动作的“等待”参数的值,其中,“等待”参数指示聊天机器人是否应该在不等待用户输入的情况下采取后续动作。例如,第一动作具有对其指派的等待参数,该参数指示在向用户发出第一动作(第一响应)之后,聊天机器人将在执行另一动作之前等待用户输入。相反,第二动作不具有对其指派的等待参数,因此聊天机器人应该在发出第二响应之后立即执行另一动作(例如,输出另一响应)(并且无需等待对第二响应的用户回复)。要理解的是,在列610、612、614、616和618中标识的参数是示例性的,因为动作可以具有与其相关联的其他参数。

参照图7,图示了示例性gui700,其中响应于接收到已经选择了新动作按键504的指示,gui呈现器模块122使gui700在客户端计算设备102的显示器104上被呈现。gui700包括窗口702,其中窗口702包括开发者可以指定新类型动作的字段704。示例性类型包括但不限于“文本”、“音频”、“视频”、“卡”和“api调用”,其中“文本”类型的动作是文本响应,“音频”类型的动作是音频响应,“视频”类型的动作是视频响应,“卡”类型的动作是包括交互卡的响应,并且“api调用”类型的动作是开发者定义的代码中的函数,其中api调用可以执行任意代码,并返回文本、卡、图像、视频等-或根本不返回任何内容。因此,尽管本文描述的动作本质上被图示为文本性的,但是也可以设想其他类型的聊天机器人动作。进一步地,字段804可以是文本键入字段、下拉菜单等。

窗口702还包括文本键入字段708,其中开发者可以将文本陈述到定义响应的文本键入字段708中。在另一示例中,文本键入字段708可以具有与其相对应的按键,该按键允许开发者导航到文件,其中该文件将是响应的一部分(例如,视频文件、图像等)。窗口702附加地包括字段710,该字段710可以由开发者利用预计在用户针对回复响应而提出的对话回合中存在的实体的标识来填充。例如,如果响应为“您想要披萨上的配料是什么?”,则对话回合回复中预计的实体将为“配料”。窗口702附加地包括所需实体字段712,其中开发者可以提出输入,该输入指定在存储器中必须有什么实体才能使响应恰当。而且,窗口702包括取消资格的实体字段714,其中开发者可以向这种字段704提出输入,该输入基于存储器中的实体标识何时响应不恰当。继续上面提出的示例,如果实体“奶酪”和“意大利辣香肠”在存储器中,则响应“您想要披萨上的配料是什么?”将是不恰当的,因此开发者可以在取消资格的实体字段714中放置实体“配料”。开发者可以与可选复选框716进行交互,以标识在提交响应后是否要接收用户输入,或者是否可以在响应之后立即进行另一动作。在上面提出的示例中,开发者将决定选择复选框716,因为预计会出现来自用户的对话回合。

窗口702还包括创建按键718、取消按键720和添加实体按键722。当新动作完成时选择创建按键718,并且当要取消新动作的创建时选择取消按键720。当开发者决定创建动作某种程度上所依赖的新实体时,选择新实体按键722。更新器模块124响应于选择了创建按键718而更新响应模型118,使得响应模型118的输出节点被取消遮蔽(unmask)并被指派新创建的动作。

现在参照图8a,图示了再一示例性gui800,其中响应于开发者指示开发者想要创建新动作,并进一步响应于开发者指示该动作将包括向端用户呈现模板(例如,卡),gui呈现器模块122使gui800被呈现。gui800包括窗口702,其中该窗口包括字段704、712和714、复选框716和按键718、720和722。在字段704中,开发者已指示动作类型为“卡”,这导致模板字段802被包括在窗口702中。例如,模板字段802可以是或包括下拉菜单,当该下拉菜单由开发者选择时标识卡的可用模板。在图8a所示的示例中,开发者选择的模板是配送地址模板。响应于配送地址模板被选择,gui呈现器模块122使配送地址模板的预览804被示出在显示器上,其中预览804包括街道字段806、城市字段808、国家字段810和提交按键812。

转到图8b,图示了再一示例性gui850,其中响应于客户端计算设备102接收到开发者已经选择了新动作按键604的指示,并且进一步响应于开发者指示该新动作将是api调用,gui呈现器模块122使gui850在客户端计算设备102的显示器104上被呈现。具体地,在示例性gui850中,开发者已经在字段704中选择了动作类型“api调用”。响应于选择了动作类型“api调用”,可以呈现字段852和854。字段852被配置为接收api调用的标识。例如,字段852可以包括下拉菜单,该下拉菜单在被选择时呈现可用api调用的列表。

gui850附加地包括字段854,该字段854被配置为接收所选的api调用预计将接收的参数。在本文提出的披萨预订示例中,参数可以包括“配料”实体。在非限制性示例中,gui850可以包括被配置为接收参数的多个字段,其中多个字段中的每个字段被配置为接收特定类型的参数(例如,“配料”、“面包皮类型”等)。尽管上文提供的示例指示参数是实体,但是要理解的是,参数可以是任何合适的参数,包括文本、数字等。gui850还包括字段710、712和714,分别被配置为接收对动作的用户响应中的预计实体、要被执行的动作(api调用)的所需实体、以及针对该动作的取消资格实体。

现在参照图9,图示了示例性gui900,其中响应于客户端计算设备102接收到开发者已经选择了训练对话按键208的指示,gui呈现器模块122使gui900在客户端计算设备102的显示器104上被呈现。gui900包括字段902,字段902包括新训练对话按键904,其中响应于选择了新训练对话按键904,发起开发者与聊天机器人之间的新训练对话的创建。字段902还包括搜索字段906,其中针对可以被包括在搜索字段906中的训练对话进行查询,并且进一步地,其中基于这种查询来搜索(现有)训练对话。当已经存在许多训练对话时,搜索字段906特别有用,从而允许开发者相对快速地标识一个或多个感兴趣的训练对话。字段902还包括实体过滤器字段908和动作过滤器字段910,其允许基于在训练对话中引用的实体和/或在训练对话中执行的动作来过滤现有的训练对话。这种字段可以是文本键入字段、下拉菜单等。

gui900还包括字段912,该字段912包括用于现有训练对话的若干行,其中每行对应于相应的训练对话,并且进一步地,其中每行包括:从开发者到聊天机器人的第一输入的识别码(identity);从开发者到聊天机器人的最终输入的识别码、开发者对聊天机器人的最终输入的标识、聊天机器人对开发者的最终响应的识别码,以及训练对话中的“回合”数(开发者和聊天机器人之间的对话回合总数目,其中对话回合是对话的一部分)。因此,“输入1”可以是“我饿了”,“最终1”可以是“不了,谢谢”,并且“响应1”可以是“您的订单已完成”。要理解的是,提出了行中的信息以帮助开发者区分各种训练对话并找到期望的训练对话,并且设想可以帮助开发者执行这种任务的任何合适类型的信息。在图9所示的示例中,开发者选择了第一训练对话。

现在转到图10,描绘了示例性gui1000,其中响应于客户端计算设备102接收到开发者已经从图9所示的字段912中选择了第一训练对话的指示,gui呈现器模块122使gui1000在客户端计算设备102的显示器104上被呈现。gui1000包括第一字段1002,该第一字段1002包括开发者和聊天机器人之间的对话,其中由开发者提出的对话的实例偏置到字段1002的右侧,而聊天机器人提出的对话的实例则偏置到字段1002的左侧。对话的实例是对话的独立部分,其从用户呈现给聊天机器人或从聊天机器人呈现给用户。聊天机器人提出的对话的每个实例都是可选的,使得在重新训练响应模型118时,可以为我们修改聊天机器人执行的动作(例如,响应)。另外,开发者提出的对话的每个实例也是可选的,使得可以修改被提供给聊天机器人的输入(以及基于对话实例的修改来观察聊天机器人的动作)。gui1000进一步包括第二字段1004,其中第二字段1004包括分支按键1006、删除按键1008和完成按键1010。当分支按键1006被选择时,gui1000被更新为允许开发者使当前的训练对话分叉(fork)并创建一个新的对话-例如,在具有十个不同的对话回合的对话中,开发者可以在对话中选择第五对话回合(其中,参与对话的用户说“是”;开发者可以在第五对话回合上分支,并提出“否”而不是“是”,从而创建具有五个对话回合的新训练对话,前四个对话回合与原始训练对话相同,但是第五对话回合是“否”而不是“是”)。当删除按键1008被选择时(并且可选地,通过模式对话框确认删除),更新器模块124删除训练对话,使得实体提取器模块116和/或响应模型118的未来输出不是训练对话的函数。另外,可以响应于用户在字段1002中选择对话回合而更新gui1000,其中更新的gui可以有助于在训练对话中插入或删除对话回合。当选择完成按键1010时,gui900可以被呈现在客户端计算设备102的显示器104上。

现在参照图11,示出了示例性gui1100,其中响应于开发者在gui600中选择了新的训练对话按键604,gui呈现器模块122呈现了gui1100。gui1100包括第一字段1102,第一字段1102描绘了开发者和聊天机器人之间的聊天对话。第一字段1102还包括文本键入字段1104,其中开发者可以在文本键入字段1104中陈述文本以提供给聊天机器人。

gui1100还包括第二字段1106,其中第二字段1106描绘了关于在开发者陈述的对话回合中标识的实体的信息(在该示例中,对话回合“我想要有奶酪和蘑菇的披萨”)。第二字段1106包括描绘了聊天机器人的存储器中已经存在的实体的标识的区域;在图11所示的示例中,存储器中当前没有实体。第二字段1106还包括字段1108,其中描绘了开发者提出的最新对话键入,并且进一步地,其中,突出显示了由实体提取器模块116标识的实体(在对话回合中)。在图11所示的示例中,实体“奶酪”和“蘑菇”被突出显示,这指示实体提取器模块116已经将“奶酪”和“蘑菇”标识为“配料”实体(关于相对于下面的图12提出如何显示实体标签的附加细节)。这些实体在gui1100中是可选的,使得开发者可以将不正确的实体标识和/或正确的实体标识通知给实体提取器模块116。进一步地,开发者可以选择字段1108中的其他文本-例如,开发者可以选择文本“披萨”,并指示实体提取器模块116应该已经将文本“披萨”标识为“配料”实体(尽管这将是不正确的)。实体值可以跨越多个连续的词语,因此可以将“意大利香肠”标记为单个实体值。

第二字段1106还包括字段1110,其中开发者可以向字段1110提出与字段1108所示的对话回合语义等效的(多个)替代输入。例如,开发者可以在字段1110中放置“我的披萨上的奶酪和蘑菇”,从而向更新器模块124提供针对实体提取器模块116和/或响应模型118的附加训练示例。

第二字段1106附加地包括撤消按键1112、放弃按键1114和完成按键1116。当选择撤消按键1112时,删除字段1108中陈述的信息,并且采取“回退”。当选择放弃按键1114时,放弃训练对话,并且更新器模块124没有接收到与训练对话有关的信息。当选择完成按键1116时,将开发者在训练对话中提出的所有信息提供给更新器模块124,该更新器模块124然后基于训练对话来更新实体提取器模块116和/或响应模型118。

第二字段1106还包括评分动作按键1118。当选择评分动作按键1118时,由实体提取器模块116标识的实体可以被放置在存储器中,并且响应模型118可以被提供有对话回合和实体。然后,响应模型118基于实体和对话回合(以及可选地,训练对话中的先前对话回合)生成输出,其中输出可以包括聊天机器人支持的动作的概率(其中,响应模型118的输出节点表示动作)。

gui1100可以可选地包括交互图形特征,该交互图形特征在被选择时使得呈现与图3所示的gui类似的gui,其中,该gui包括与已标识实体相关的代码。例如,该代码可以被配置为确定配料是有存货的还是缺货的,并且可以进一步被配置为将配料从有库存的移动到缺货的(反之亦然)。因此,在对话回合中检测到某种类型的实体会导致对代码的调用,并且可以呈现包括这种代码的gui(开发者可以在其中编辑代码)。

现在转到图12,示出了示例性gui1200,其中,响应于开发者在图11所描绘的字段1108中选择了实体“奶酪”,gui呈现器模块122呈现了gui1200。响应于选择这种实体,呈现了可选的图形元素1202,其中,响应于图形元素1202被选择,反馈被提供给更新器模块124。在示例中,对图形元素1202的选择指示实体提取器模块116不应该将所选文本标识为实体。更新器模块124接收到这种反馈,并基于该反馈来更新实体提取器模块116。在示例中,更新器模块124响应于开发者在gui1200中选择诸如评分动作按键1118或完成按键1116等按键来接收反馈。

图12图示了另一示例性gui特征,其中开发者可以定义分类以指派给实体。更具体地,响应于开发者使用一些选择输入来选择实体“蘑菇”(例如,当光标位于“蘑菇”上方时右键单击鼠标,使用手指或手写笔在触敏显示器上维持与文本“蘑菇”的接触等),则可以呈现交互图形元素1204。交互图形元素1204可以是下拉菜单、包括可选项目的弹出窗口等。例如,实体可以是“配料”实体或“面包皮类型”实体,并且交互图形元素1204被配置为接收来自开发者的输入,使得开发者可以改变或定义所选文本的实体。而且,尽管未在图12中示出,但是图形可以与所标识的实体相关联,以向开发者指示实体的分类(例如,“配料”与“面包皮类型”)。这些图形可以包括文本、向文本指派颜色等。

参照图13,图示了示例性gui1300,其中响应于开发者在gui1100中选择评分动作按键1118,由gui呈现器模块122呈现gui1300。gui1300包括字段1302,该字段1302描绘聊天机器人的存储器中的实体的标识(例如,如由实体提取器模块116从字段1102所示的对话回合所标识的奶酪和蘑菇)。字段1302还包括聊天机器人的动作的标识以及响应模型118针对这种动作输出的评分。在图13所示的示例中,可能有三个动作:动作1、动作2和动作3。动作4和5被取消资格,因为当前在存储器中的实体防止采取这种动作。在非限制性示例中,动作1可以是响应“您的披萨上有$toppings”,动作2可以是响应“您还想要其他东西吗?”,动作3可以是api调用“finalizeorder”,动作4可以是响应“我们没有$outstock”,并且动作5可以是响应“您想要$lasttopping吗?”。可以确定,响应模型118被配置为在这种场景中不能输出动作4或5(例如,响应模型118的这些输出被遮蔽),因为存储器包括作为实体的“奶酪”和“蘑菇”(属于实体“配料”,而不是“缺货”,并因此排除了动作4的输出),并且存储器中没有“最终”实体,这排除了动作5的输出。

响应模型118已将响应1标识为最恰当的输出。每个可能的动作(动作1、2和3)具有与其相对应的选择按键;当开发者选择了与动作相对应的选择按键时,便为聊天机器人选择了该动作。字段1302还包括新动作按键1304。对新动作按键1304的选择导致呈现窗口,其中该窗口被配置为接收来自开发者的输入,并且进一步地,其中该输入用于创建新动作。更新器模块124接收创建新动作的指示,并更新响应模型118以支持新动作。在示例中,当响应模型118是ann时,更新器模块124将ann的输出节点指派给新动作,并基于来自开发者的该反馈来更新网络的突触的权重。与取消资格的动作相对应的“选择”按键无法被选择,如图13中的虚线所图示的。

现在参照图14,图示了示例性gui1400,其中响应于开发者在gui1200中选择与第一动作(由响应模型118标识的最适当的动作)相对应的“选择”按键,gui呈现器模块122呈现gui1400。在示例性实施例中,更新器模块124响应于选择按键被选择而立即更新响应模型118,其中更新响应模型118包括基于将动作1选择为正确的动作来更新突触的权重。字段1102被更新为反映第一动作由聊天机器人来执行。因为第一动作不需要聊天机器人在聊天机器人执行另一动作之前等待进一步的用户输入,所以字段1302被进一步更新为标识聊天机器人接下来可以采取的动作(及其关联的适当性)。如字段1302中所描绘的,响应模型118已经将最适当的动作(基于对话的状态和存储器中的实体)标识为动作2(响应“您还想要其他东西吗?”),动作1和动作3分别是接下来的最恰当输出,并且动作4和5由于存储器中的实体而被取消资格。如先前,第二字段1302包括与动作相对应的“选择”按键,其中与取消资格的动作相对应的“选择”按键无法被选择。

现在转到图15,图示了再一示例性gui1500,其中响应于开发者在gui1400中选择与第二动作(由响应模型118标识的最适当动作),并进一步响应于开发者将对话回合“去除蘑菇并添加胡椒”陈述到文本键入字段1104中,gui呈现器模块122使gui1500被呈现。如图11所指示的,动作2指示在字段1102中将这种响应提供给用户之后,聊天机器人将等待用户输入;在该示例中,开发者已将前面提到的输入提出到聊天机器人。

gui1500包括字段1106,其指示在接收到这种输入之前,实体存储器包括“配料”实体“蘑菇”和“奶酪”。字段1108包括开发者提出的文本,其中,文本“蘑菇”和“胡椒”被突出显示以指示实体提取器模块116已经将这种文本标识为实体。图形特征1502和1504分别在图形上与文本“蘑菇”和“胡椒”相关联,以指示实体“蘑菇”将作为“配料”实体而从存储器中被移除,而实体“胡椒”将作为“配料”实体被添加到存储器。图形特征1502和1504是可选的,使得开发者可以更改已经由实体提取器模块116标识的内容。一旦开发者在字段1106中做出更改,并且响应于评分动作按键1118被选择,更新器模块124基于开发者反馈来更新实体提取器模块116。

现在参照图16,描绘了示例性gui1600,其中响应于开发者在gui1200中选择评分动作按键818,gui呈现器模块122使得gui1600将被呈现。类似于gui1300和1400,字段1302标识聊天机器人可执行的动作,以及由响应模型118确定的这种动作的关联恰当性,并进一步标识由于当前在存储器中的实体而被取消资格的动作。要注意的是,实体已被更新以反映“蘑菇”已从存储器中去除(以删除线图示),而实体已被更新以反映“胡椒”已添加到存储器(通过粗体图示或突出显示这种文本)。文本“奶酪”保持不变。

现在参照图17,图示了示例性gui1700。gui1700描绘了场景,其中可能期望开发者创建新动作,因为聊天机器人可能缺少针对开发者向聊天机器人提出的最新对话回合的恰当动作。具体地,响应于聊天机器人指示订单已完成,开发者已将对话回合提出为“好的!”。响应模型118指示动作5(响应“您想要$lasttopping吗?”)是响应模型118可以执行的所有动作中最恰当的动作;然而,可以确定,鉴于对话的其余部分,该动作似乎是不自然的。因此,gui呈现器模块122接收到在客户端计算设备102处选择了新动作按键1004的指示。

现在参照图18,图示了示例性gui1800,其中响应于客户端计算设备102接收到开发者已经选择了日志对话按键210的指示,gui呈现器模块122使gui1800被呈现在客户端计算设备102的显示器104上。gui1800类似于gui900,gui900描绘了可选择的训练对话的列表。gui1800包括字段1802,该字段1802包括新的日志对话按键1804,其中响应于选择了新的日志对话按键1804,发起了开发者与聊天机器人之间的新的日志对话的创建。字段1802还包括搜索字段1806,其中针对可以被包括在搜索字段1806中日志对话进行查询,并且进一步地,其中基于这种查询来搜索(现有)日志对话。当已经存在许多日志对话时,搜索字段1806特别有用,从而允许开发者相对快速地标识一个或多个感兴趣的日志对话。字段1802还包括实体过滤器字段1808和动作过滤器字段1810,实体过滤器字段1808和动作过滤器字段1810允许基于在日志对话中引用的实体和/或在日志对话中执行的动作,来过滤现有的日志对话。这种字段可以是文本键入字段、下拉菜单等。

gui1800还包括字段1812,该字段1812包括用于现有日志对话的若干行,其中每行对应于相应的日志对话,并且进一步地,其中每行包括:从端用户(谁可以是或可以不是开发者)到聊天机器人的第一输入的标识码;从端用户到聊天机器人的最终输入的标识码、聊天机器人对端用户的最终响应的标识码、以及端用户和聊天机器人之间的对话回合的总数目。要理解的是,陈述行中的信息以帮助开发者区分各种日志对话并找到期望的日志对话,并且设想可以帮助开发者执行这种任务的任何合适类型的信息。

现在参照图19,图示了示例性gui1900,其中响应于客户端计算设备102接收到来自开发者的、开发者已经选择了新的日志对话按键904的指示,gui呈现器模块122使示例性gui1900在客户端计算设备102的显示器104上被示出,并且进一步与聊天机器人交互。gui1900与可以呈现给与聊天机器人交互的端用户的gui类似或相同。gui1900包括字段1902,其描绘了开发者正在创建的日志对话。示例性的日志对话描绘了在开发者(由开发者提出的对话偏向右侧)和聊天机器人(由聊天机器人输出的对话回合偏向左侧)之间交换的对话回合。在示例中,字段1902包括输入字段1904,其中输入字段1904被配置为从开发者接收新的对话回合以继续日志对话。字段1902还包括完成按键1908,其中对完成按键的选择导致日志对话被保留(但是从gui1900中去除)。

现在参照图20,图示了示例性gui2000,其中响应于开发者从可选日志对话的列表中选择了日志对话(例如,日志对话的列表中的第四日志对话),gui呈现者模块122使gui2000在客户端计算设备102的显示器104上被呈现。gui2000被配置为允许日志对话向训练对话的转换,更新器模块124可以使用该对话来重新训练实体提取器模块116和/或响应模型118。gui2000包括字段2002,该字段2002被配置为显示所选的日志对话。例如,开发者可以重新查看字段2002中的日志对话,并确定聊天机器人未正确响应来自端用户的对话回合。附加地,字段2004可以包括文本键入字段2003,其中开发者可以陈述文本输入以继续对话。

在示例中,开发者可以在字段2002中选择对话回合,其中聊天机器人陈述了不正确的响应(例如,“我帮不了您”。)。选择这种对话回合使得gui中的字段2004利用可以由响应模型118输出的动作而被填充,该动作通过计算的适当性布置。如先前所描述的,开发者可以指定聊天机器人将要执行的适当动作,创建新操作等,从而将日志对话转换为训练对话。进一步地,字段2004可以包括“保存为日志”按键2006-当开发者尚未提出任何更新的动作,并期望将日志对话“按原样”转换为训练对话时,按键2006可以是活动的。然后,更新器模块124可以基于新创建的训练对话来更新实体提取器模块116和/或响应模型118。这些特征允许开发者在相对较短的时间内生成训练对话,因为可以在日志对话中的任何合适点处查看日志对话并将其转换为训练对话。

此外,在示例中,开发者可以决定编辑或删除动作,从而导致聊天机器人在以前可能的某些情况下不再能够执行该动作或根本不再能够执行动作的情况。在这种示例中,可以确定训练对话可能会受到影响;即,训练对话可以包括聊天机器人不再支持的动作(由于开发者删除了该动作),因此训练对话已过时。图21图示了示例性gui2100,其可以通过gui呈现器模块122而被显示在客户端计算设备102的显示器104上,其中gui2100被配置为突出显示依赖于过时动作的训练对话。在示例性gui2100中,第一和第二训练对话被突出显示,从而向开发者指示训练对话指代至少一个动作,该至少一个动作不再由响应模型118支持或不再在训练对话的上下文中由响应模型118支持。因此,开发者可以快速标识必须删除和/或更新哪些训练对话。

现在参照图22,图示了示例性gui2200,其中响应于客户端计算设备102接收到开发者选择了gui2100中突出显示的训练对话之一的指示,gui呈现器模块122使gui2200在客户端计算设备102的显示器104上被呈现。在字段1302中,示出了错误消息,该错误消息指示响应模型118不再支持开发者先前授权的动作。响应于客户端计算设备102接收到开发者已经选择了错误消息的指示(如通过错误消息的粗体所指示的),字段1302填充有响应模型118当前支持的可用动作。进一步地,取消资格的动作具有与其相对应的可选的“选择”按键。进一步地,字段1002包括新动作按键1304。当选择了这种按键1304时,gui呈现器模块122可以使gui700被呈现在客户端计算设备102的显示器104上。

简要地参照图23,图示了示例性gui2300,其中响应于开发者创建动作(如图8所描绘的)并且选择该动作作为正确响应,gui呈现器模块122使gui2300被呈现在客户端计算设备102的显示器104上。显示器上示出了配送地址模板2302,其中模板2302包括用于键入地址的字段(例如,将披萨递送到哪里),并且进一步地,其中模板2302包括提交按键。在选择提交按键时,可以将字段中的内容提供给后端预订系统。

图24至图26图示了与创建和/或更新聊天机器人有关的示例性方法。虽然该方法被示出和描述为按序列执行的一系列行动,但是要理解和了解的是,该方法不受序列顺序的限制。例如,一些动作可以以不同于本文描述的顺序发生。另外,动作可以与另一行动并发地发生。进一步地,在一些情况下,可能不需要所有动作来实现本文描述的方法。

而且,本文描述的行动可以是可以由一个或多个处理器实现和/或存储在一个或多个计算机可读介质上的计算机可执行指令。计算机可执行指令可以包括例程、子例程、程序、执行线程等。更进一步地,方法的行动的结果可以被存储在计算机可读介质中,被显示在显示设备上等。

现在参照图24,图示了用于更新聊天机器人的示例性方法2400,其中服务器计算设备106可以执行方法2400。方法2400在2402开始,并且在2404,接收到开发者想要创建和/或更新聊天机器人的指示。例如,可以从开发者正在操作的客户端计算设备接收指示。在2406,使gui特征在客户端计算设备处被显示,其中gui特征包括聊天机器人与用户之间的对话。在2408,从客户端计算设备接收对话回合的选择,其中对话回合是聊天机器人与端用户之间的对话的一部分。在2410中,响应于对话框回合的选择的接收,使更新的gui特征在客户端计算设备处被显示,其中更新的gui特征包括可选择的特征。在2412,接收到已经选择了可选特征中的可选特征的指示,并且在2414,响应于该指示的接收,更新实体提取器模块或响应模型中的至少一个。方法2400在2416完成。

现在参照图25,图示了用于更新聊天机器人的示例性方法2500,其中客户端计算设备102可以执行方法2500。方法2500在2502开始,并且在2504,gui被呈现在客户端计算设备102的显示器104上,其中gui包括对话,并且进一步地,其中该对话包括可选择的对话回合。在2506,接收在可选择的对话回合中的对话回合的选择,并且在2508,将已选择对话回合的指示传输到服务器计算设备106。在2510,基于来自服务器计算设备106的反馈,第二gui被呈现在客户端计算设备的显示器104上,其中第二gui包括聊天机器人对所选对话回合的多个潜在响应。在2512,接收来自潜在响应的响应的选择,并且在2514,将已选择潜在响应的指示传输到服务器计算设备106。服务器计算设备基于所选响应来更新聊天机器人。方法2500在2516中完成。

现在参照图26,图示了用于更新对话回合内的实体提取标签的示例性方法2600。方法2600在2602开始,并且在2604,在客户端计算设备的显示器上呈现端用户与聊天机器人之间的对话,其中该对话包括多个可选的对话回合(其中一些是由端用户提出的,其中一些是聊天机器人提出的)。在2606,接收开发者已经选择了由端用户提出的可选择的对话回合的指示。在2608,响应于指示被接收到,交互图形特征在客户端计算设备的显示器上被呈现,其中交互图形特征关于所选对话回合中的至少一个词语而被呈现。交互图形特征指示已将实体提取标签指派给至少一个词语(或指示尚未将实体提取标签分配给至少一个词语)。在2610,接收到开发者已经与交互图形特征交互的指示,其中基于开发者与交互图形特征交互来更新被指派给至少一个词语的实体提取标签(或者实体提取标签基于开发者与交互图形特征交互而分配给至少一个词语)。方法2600在2612完成。

现在转到图27,图示了可以根据本文公开的系统和方法使用的示例性计算系统2700的高级图示。例如,计算设备2700可以在被配置为创建和/或更新聊天机器人的系统中使用。通过另一示例,计算设备2700可以在使得某些gui特征被呈现在显示器上的系统中使用。计算设备2700包括执行存储在存储器2704中的指令的至少一个处理器2702。例如,指令可以是用于实现被描述为由上面讨论的一个或多个组件执行的功能性的指令或者用于实施上面描述的一个或多个方法的指令。处理器2702可以通过系统总线2706访问存储器2704。除了存储可执行指令之外,存储器2704还可以存储响应模型、模型权重等。

计算设备2700附加地包括处理器2708可通过系统总线2706访问的数据存储装置2708。数据存储装置2708可以包括可执行指令、模型权重等。计算设备2700还包括允许外部设备与计算设备2700通信的输入接口2710。例如,输入接口2710可以用于从外部计算机设备、从用户等接收指令。计算设备2700还包括使计算设备2700与一个或多个外部设备接口连接的输出接口2712。例如,计算设备2700可以通过输出接口2712显示文本、图像等。

设想经由输入接口2710和输出接口2712与计算设备2700通信的外部设备可以包括在提供用户可以与之交互的大致任何类型的用户界面的环境中。用户界面类型的示例包括图形用户界面、自然用户界面等。例如,图形用户界面可以接受来自采用(多个)输入设备(诸如,键盘、鼠标、遥控等)的用户的输入,并且将输出提供在输出设备(诸如,显示器)上。进一步地,自然用户界面可以使用户能够以不受由输入设备(诸如,键盘、鼠标、遥控等)施加的约束的方式来与计算设备2700交互。相反,自然用户界面可以依赖于语音识别、触摸和手写笔识别、屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛追踪、声音和语音、视觉、触摸、手势、机器智能等。

附加地,尽管被图示为单个系统,但是要理解的是,计算设备2700可以是分布式系统。因此,例如,多个设备可以通过网络连接通信,并且可以共同执行被描述为由计算设备2700执行的任务。

本文描述的各种功能可以被实现在硬件、软件或其任何组合中。如果实施在软件中,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或者通过计算机可读介质传输。计算机可读介质包括计算机可读存储介质。计算机可读存储介质可以是可以由计算机访问的任何可用存储介质。例如但不限于,这种计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或者其他光盘存储、磁盘存储或其他磁性存储设备或者可以用于以指令或数据结构的形式携带或存储期望的程序代码并且可以由计算机访问的任何其他介质。如本文使用的,磁盘和光盘包括:压缩盘(cd)、激光盘、光盘、数字多功能光盘(dvd)、软盘和蓝光光盘(bd),其中,磁盘通常磁性地复制数据,而光盘通常利用激光光学地复制数据。进一步地,所传播的信号未包括在计算机可读存储介质的范围内。计算机可读介质还包括通信介质,该通信介质包括便于将计算机程序从一个地方传递到另一个地方的任何介质。例如,连接可以是通信介质。例如,如果软件是使用同轴电缆、光缆、双绞线、数字订户线(dsl)或者无线技术(诸如,红外、无线电和微波)从网站、服务器或者其他远程源传输的,那么同轴电缆、光缆、双绞线、dsl或者无线技术(诸如,红外、无线电和微波)被包括在通信介质的定义中。上述的组合也应该被包括在计算机可读介质的范围内。

备选地或者另外,本文描述的功能性可以至少部分地由一个或多个硬件逻辑组件执行。例如但不限于,可以使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等。

上面描述的内容包括一个或多个实施例的示例。当然,出于描述前述方面的目的,不可能描述上述设备或方法的每个可想到的修改和更改,但是本领域的普通技术人员可以认识到,各个方面的许多进一步的修改和排列都是可能的。因此,所描述的方面旨在包含落入所附权利要求的精神和范围内的所有这种更改、修改和变型。此外,在术语“包括(includes)”用于详细描述或权利要求中的范围内,这种术语旨在以类似于术语“包括(comprising)”的方式包含,因为“包括(comprising)”在作为权利要求中的过渡词语采用时要进行解释。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1