机器人交互的制作方法

文档序号:17536991发布日期:2019-04-29 14:05阅读:232来源:国知局
机器人交互的制作方法

本申请要求于2016年9月20日提交的标题为“机器人交互”的第62/397,318号美国申请的权益,通过引用将其全部并入本文。



背景技术:

用户使用消息服务进行消息会话,例如,聊天、即时消息等。可以使用任何用户设备进行消息会话,例如,使用计算机、移动设备、可穿戴设备等。随着用户使用消息应用进行更多会话并施行更多任务,带有消息会话或任务的自动化辅助(例如,通过机器人或其他自动化辅助应用)可能有助于提高效率。虽然自动化对于用户来说可以有助于使消息通信更加有效,但是其可能需要对涉及消息机器人何时以及如何访问用户信息、以及什么用户信息允许被消息机器人访问和/或被共享给其他用户的隐私和许可进行管理。

此处的背景描述意在大体上展现本公开的环境。一定程度上在该背景部分描述的当前提及的发明人的工作,以及在提交时可能不作为现有技术限定的描述的各方面,既不明确也不隐含地被承认为相对于本公开的现有技术。



技术实现要素:

一些实施方式可以包括计算机执行的方法。该方法可以包括在与第一用户相关联的第一计算设备上提供消息应用,以使得所述第一用户与至少一个其他用户之间能够通信。该方法还可以包括在消息应用上检测用户请求,并且以编程方式确定响应所述用户请求的操作需要共享与所述第一用户相关联的数据。该方法还可以包括使得许可界面在第一计算设备上的消息应用中被渲染,所述许可界面使得所述第一用户能够批准或者禁止共享与所述第一用户相关联的数据;并且一旦从所述第一用户接收到指示批准共享与所述第一用户相关联的数据的用户输入,则响应于所述用户请求,在所述消息应用之内访问与所述第一用户相关联的数据并且共享与所述第一用户相关联的数据。

在一些实施方式中,所述第一用户是人类用户并且至少一个所述其他用户是辅助代理。检测用户请求包括:通过辅助代理分析在所述消息应用中接收到的一个以上的消息,其中,所述消息从所述第一用户被发送给所述辅助代理。所述一个以上的消息包括文本消息、多媒体消息和给辅助代理的命令中的一个或多个。

该方法还可以包括基于所述第一用户的一个以上的动作,自动调用所述辅助代理。响应于下列中的一个或多个来调用所述辅助代理:特殊字符命令,与辅助代理相关联的用户界面标注元件的用户选择,与辅助代理对应的头像的用户选择;以及由辅助代理提供的自动回复建议的用户选择。

在一些实施方式中,所述第一用户是人类用户,并且至少一个所述其他用户包括第二人类用户,所述第二人类用户与所述第一用户不同并且与第二计算设备相关联,并且其中许可界面在与所述第一用户相关联的第一计算设备上的消息应用中被渲染,并且所述许可界面没有显示在与所述第二人类用户相关联的所述第二计算设备上。

所述第一用户是人类用户,并且所述至少一个其他用户包括第二人类用户和辅助代理,所述第二人类用户不同于所述第一用户,并且其中从与所述第一用户相关联的所述第一计算设备接收所述用户请求,所述方法进一步包括,响应于所述用户请求,在所述消息应用中发起单独的会话,其中所述单独的会话包括第一用户和所述辅助代理,并且不包括所述第二人类用户。

方法可以进一步包括基于来自所述第一用户和至少一个所述其他用户中的至少一个的输入,在第一消息应用中提供一个以上的建议。方法还可以包括使得所述一个以上的建议显示在消息应用中。所述一个以上的建议被渲染为建议元件,当所述建议元件被所述第一用户选择时,使得对应建议的细节被显示。

一些实施方式可以包括计算机执行的方法,该方法包括在消息应用中程序检测用户输入,所述用户输入对应于来自辅助代理的先前显示的确定消息的选择,其中,所述先前显示的确认消息与一个以上的先前显示的建议的自动回复响应相关联。该方法还可以包括使得所述先前显示的建议的自动回复响应被显示,并且接收用户选择所述一个以上的先前显示的建议的自动回复响应中的给定的一个的指示。该方法还可以包括将所述一个以上的先前显示的建议的自动回复响应中的所述给定的一个发送给所述辅助代理、以及参与所述消息应用之内的会话的第二用户。

该方法还可以包括响应于所述用户输入来调用所述辅助代理。在一些实施方式中,所述会话包括所述用户和至少一个其他用户,其中所述用户是第一人类用户,并且至少一个其他用户包括与所述第一人类用户不同的第二人类用户,所述第一人类用户与第一计算设备相关联并且所述第二人类用户与第二计算设备相关联,并且其中所述先前显示的消息和所述一个以上建议的自动回复响应最初在与所述第一人类用户相关联的第一计算设备上消息应用中被渲染,并且其中,向一个以上的所述助理代理和所述消息应用之内的所述会话提供所述一个以上的建议的自动回复响应包括:在所述消息应用中提供所述一个以上的建议的自动回复响应。

一些实施方式可以包括一种系统,该系统包括耦接到非暂时性计算机可读介质的一个以上的硬件处理器,所述非暂时性计算机可读介质上存储有软件指令,当由一个或多个处理器执行软件指令时,所述软件指令使得一个以上的处理器进行操作。所述操作可以包括:从与第一用户相关联的第一计算设备上的消息应用接收用户请求,所述消息应用被配置为使得所述第一用户和至少一个其他用户之间能够通信,并且以编程方式确定响应于用户请求的操作需要共享与所述第一用户相关联的数据。操作还可以包括使得许可界面在所述第一计算设备上的所述消息应用中被渲染,所述许可界面使得所述第一用户能够批准或者禁止共享与所述第一用户相关联的所述数据;并且一旦从所述第一用户接收到批准共享与所述第一用户相关联的数据的用户输入,则响应于所述用户请求,在所述消息应用之内访问与所述第一用户相关联的数据并且共享与所述第一用户相关联的数据。

在一些实施方式中,所述第一用户是人类用户并且至少一个所述其他用户是辅助代理。检测用户请求可以包括:在辅助代理处分析在所述消息应用中接收到的从所述第一用户到所述辅助代理的一个以上的消息。所述第一用户是人类用户,并且至少一个所述其他用户包括第二人类用户,所述第二人类用户与所述第一用户不同并且与第二计算设备相关联,并且其中许可界面在与所述第一用户相关联第一计算设备上的消息应用中被渲染,并且所述许可界面没有显示在与所述第二人类用户相关联的第二计算设备上。

在一些实施方式中,所述第一用户是人类用户,并且至少一个所述其他用户包括第二人类用户和辅助代理,所述第二人类用户不同于所述第一用户,并且其中从与所述第一用户相关联的第一计算设备接收用户请求,所述操作进一步包括响应于所述用户请求,在消息应用中发起单独的会话,其中所述单独的会话包括所述第一用户和辅助代理并且不包括第二人类用户。

操作还可以包括基于来自所述第一用户和至少一个所述其他用户中的至少一个的输入,向第一消息应用提供一个以上的建议。

附图说明

图1示出了根据一些实施方式的示例性环境的框图,在该环境中,用户和机器人之间交换消息。

图2是根据一些实施方式的示例性机器人调用事件的示意图。

图3是根据一些实施方式的显示机器人调用的示例性方法的流程图。

图4是根据一些实施方式的显示示例性的机器人识别和调用元件的用户界面的示意图。

图5是根据一些实施方式的在机器人交互期间管理用户隐私的示例性方法的流程图。

图6是根据一些实施方式的用于在机器人交互期间管理用户隐私的示例性用户界面的示意图。

图7是根据一些实施方式的用于调回先前的机器人建议的示例性方法的流程图。

图8-12是根据一些实施方式的显示示例性的先前机器人建议调回过程的示例性用户界面的示意图。

图13是根据一些实施方式的显示用于管理许可的示例性处理的流程图。

图14是根据一些实施方式的显示以给定的机器人类型为主题的示例性用户界面的示意图。

图15是根据一些实施方式的显示以给定的机器人类型为主题的示例性用户界面的示意图。

图16是根据一些实施方式的被配置用于机器人交互的示例性计算设备的示意图。

具体实施方式

本文描述的一个以上的实施方式大体涉及用户与辅助代理(或者机器人)的交互,并且具体涉及机器人识别、针对消息应用机器人的用户隐私管理、和/或先前的机器人建议的调回。

图1示出了示例性环境100的框图,该环境100用于提供消息服务,该消息服务能够实现自动辅助代理,并且在一些实施例中提供自动辅助代理,例如,机器人。示例性的环境100包括:消息服务器101,一个以上的客户端设备115a、115n,服务器135和网络140。用户125a-125n可以与各自的客户端设备115a、115n相关联。服务器135可以是第三方服务器,例如由与提供消息服务的一方不同的那一方控制的第三方服务器。在各种实施方式中,服务器135可以实施机器人服务,以下将详细描述。在一些实施方式中,环境100可以不包括图1所示的一个以上的服务器或者设备,或者可以包括图1未示出的其他服务器或者设备。在图1和其余附图中,参考数字后面的字母,如图“115a”,表示对具有特定参考数字的元件的引用。文本中没有后续字母的参考数字,例如“115”,表示对具有该参考数字的元件的实施方式的一般引用。

在所示的实施方式中,消息服务器101、客户端设备115以及服务器135通过网络140通信地耦接。在各种实施方式中,网络140可以是常规类型,有线或无线的,并且可以具有包括星形配置、令牌环配置或其他配置的许多不同配置。此外,网络140可以包括局域网(lan)、广域网(wan)(例如,因特网)、和/或多个设备可以通信的其他互连数据路径。在一些实施方式中,网络140可以是对等网络。网络140还可以被耦接至电信网络或者可以包含电信网络的一部分,电信网络以各种不同的通信协议发送数据。在一些实施方式中,网络140包括通信网络、或者蜂窝式通信网络,用于发送和接收数据,该数据包括短消息服务(sms)、多媒体消息服务(mms)、超文本传送协议(http)、直接数据连接、电子邮件等。虽然图1图示了一个网络140耦接到客户端设备115、消息服务器101以及服务器135,但是事实上一个以上的网络140可以耦接到这些实体。

消息服务器101可以包括处理器、内存以及网络通信能力。在一些实施方式中,消息服务器101是硬件服务器。在一些实施方式中,消息服务器101可以被植入到虚拟环境中,例如,消息服务器101可以是在硬件服务器上执行的虚拟机,硬件服务器可以包括一个以上的其他虚拟机。消息服务器101通过信号线102与网络140通信耦接。信号线102可是有线连接,例如以太网、同轴电缆、光纤电缆等,或者是无线连接,例如wi-fi、蓝牙或者其他无线技术。在一些实施方式中,消息服务器101通过网络140发送数据至一个以上的客户端设备115a-115n、服务器135以及机器人113,并且从一个以上的客户端设备115a-115n、服务器135以及机器人113接收数据。在一些实施方式中,消息服务器101可以包括消息应用103a,该消息应用103a提供客户端功能,以使得用户(例如,任意的用户125)能够与其他用户和/或机器人交换消息。消息应用103可以是服务器应用、客户端-服务器应用的服务器模块或者分布式应用(例如,在一个以上的客户端设备115上具有对应的客户端消息应用103b)。

消息服务器101还可以包括数据库199,数据库199可以存储通过消息服务器101交换的消息、一个以上机器人的配置和/或数据、与一个以上的用户125相关的用户数据,所有这些基于来自各自的用户的明确许可来存储这种数据。在一些实施例中,消息服务器101可以包括一个以上的辅助代理,例如,机器人107a和111。在其他实施例中,辅助代理可以在客户端设备115a-n上而不是在消息服务器101上被实现。

消息应用103可以是通过处理器操作的代码和程序,以使得用户125和一个以上的机器人105、107a、107b、109b、111以及113之间能够进行消息交换。在一些实施方式中,消息应用103可以使用包括现场可编程门阵列(fpga)或者专用集成电路(asic)的硬件被实施。在一些实施方式中,消息应用103可以使用硬件和软件的结合来实现。

在各种实施方式中,当与客户端设备115相关的各个用户对消息存储器提供准许时,数据库199可以存储在一个以上的客户端设备115之间交换的消息。在一些实施方式中,当与客户端设备115相关联的各个用户对消息存储器提供准许时,数据库199可以存储一个以上的客户端设备115与一个以上的机器人之间交换的消息,一个以上的机器人在不同的设备上实现,例如,另一个客户端设备、消息服务器101和服务器135等。在一个以上的用户不提供准许的实施方式中,由那些用户接收和发送的消息不会被存储。

在一些实施方式中,例如,可以将消息加密,从而使得只有消息的发送者和接收者可以查看加密的消息。在一些实施方式中,存储消息。在一些实施方式中,数据库199可以进一步存储数据和/或例如机器人107a、机器人111等的一个以上机器人的配置。在一些实施方式中,当用户125提供对用户数据(例如,社交网络数据、联系信息、图像等)的存储的准许时,数据库119还可以存储与提供这种准许的各个用户125相关的用户数据。

在一些实施方式中,消息应用103a/103b可以提供用户界面,该用户界面使得用户125能够创建新的机器人。在这些实施方式中,消息应用103a/103b可以包括功能,该功能使得用户创建的机器人能够被包括在消息应用103a/103b的用户之间的会话中。

客户端设备115可以是包括内存和硬件处理器的计算设备,例如,相机、膝上型计算机、平板电脑、移动电话、可穿戴设备、移动电子邮件设备、便携式游戏机、便携式音乐播放器、阅读设备、头戴式显示器或者其他能够无线访问网络140的电子设备。

在所示的实施方式中,客户端设备115通过信号线108与网络140耦接,并且客户端设备115n通过信号线110与网络140耦接。信号线108和110可以是诸如以太网的有线连接,或者是诸如wi-fi、蓝牙或者其他无线技术的无线连接。客户端设备115a、115n分别由用户125a、125n访问。图1中的客户端设备115a、115n以示例性的方式被使用。虽然图1示出了两个客户端设备115a和115n,但是本公开适用于具有一个以上客户端设备115的系统架构。

在一些实施方式中,客户端设备115可以是由用户125穿戴的可穿戴设备。例如,客户端设备115可以被包括作为夹子(例如,腕带)的一部分、首饰的一部分、或者眼镜的一部分。在其他实例中,客户端设备115可以是智能手表。在各种实施方式中,用户125可以在设备的显示器上查看来自消息应用103a/103b的消息,可以通过设备的扬声器或者其他输出设备访问消息等等。例如,用户125可以在智能手表或者智能腕带的显示器上查看消息。在另一示例中,用户125可以通过与客户端设备115耦接或者作为客户端设备115的一部分的耳机(未示出)、客户端设备115的扬声器、客户端设备115的触觉反馈元件等访问消息。

在一些实施方式中,消息应用103b储存在客户端设备115a上。在一些实施方式中,消息应用103b(例如,瘦客户端应用、客户端模块等)可以是存储在客户端设备115a上的客户端应用,具有对应的储存在消息服务器101上的消息应用103a(例如,服务器应用、服务器模块等)。应用应用例如,消息应用103b可以将用户125在客户端设备115上创建的消息传送给存储在消息服务器101上的消息应用103。

在一些实施方式中,消息应用103可以是储存在消息服务器101上的独立的应用。用户125a可以使用客户端设备115a上的浏览器或者其他软件经由网页来访问消息应用103a。在一些实施方式中,在客户端设备115上实现的消息应用103b可以包括那些包括与在消息服务器101上所包括的相同的或者类似的模块。在一些实施方式中,消息应用103b可以被实现为独立的客户端应用,例如,在对等或其他配置中,其中一个以上的客户端设备115包括使得与其他客户端设备115能够交换消息的功能。在这些实施方式中,消息服务器101可以包括有限的功能或者无消息的功能(例如,客户认证、备份等)。在一些实施方式中,消息服务器101可以实现一个以上的机器人,例如,机器人107a和机器人111。

服务器135可以包括处理器、内存和网络通信能力。在一些实施方式中,服务器135是硬件服务器。服务器135通过信号线128与网络140通信耦接。信号线128可以是有线连接,例如,以太网、同轴电缆、光线电缆等,或者信号线128是无线连接,例如,wi-fi、蓝牙或者其他无线技术。在一些实施方式中,服务器135通过网络140向一个以上的消息服务器101和客户端设备115发送数据或者从一个以上的消息服务器101和客户端设备115接收数据。虽然服务器135被图示为一个服务器,但是,不同的实施方式可以包括一个以上的服务器135。服务器135可以将诸如机器人109和机器人113的一个以上的机器人实现为服务器应用或者服务器模块。

在各种实施方式中,服务器135可以是管理消息服务器101的同一实体的一部分,例如,消息服务的提供者。在一些实施方式中,服务器135可以是第三方服务器,例如,由实体控制的第三方服务器,该实体与提供消息应用103a/103b的实体不同。在一些实施方式中,服务器135提供或者托管机器人。

机器人是在一个以上的计算机上实现的自动化服务,用户通过诸如消息应用103a/103b主要经由文本与机器人进行交互。机器人可以由机器人提供者实现,从而使得机器人可以与各种消息应用的用户交互。在一些实施方式中,消息应用103a/103b的提供者还可以提供一个以上的机器人。在一些实施方式中,由消息应用103a/103b的提供者提供的机器人可以被配置,从而使机器人可以被包含在其他消息应用中,例如,由其他提供者提供的其他消息应用。机器人可以提供优于其他模式的若干优点。例如,机器人可以允许用户尝试新的服务(例如,出租车预订服务、餐馆预订服务等),而无需在客户端设备上安装应用或者访问网址。此外,用户可以通过文本与机器人交互,与使用网站、软件应用、诸如交互式语音响应(ivr)服务的电话呼叫或者与服务交互的其他方式相比,这需要极少的或者不需要学习。在消息服务或者应用中结合机器人还可以允许用户与其他用户协作,以在消息服务中完成各种任务,例如,完成旅行计划、购物、安排事务、获取信息等,并且消除诸如在不同应用(例如,出租车预订应用、餐馆预订应用、日历应用等)或者网站之间切换的繁琐操作以完成任务。

机器人可以实现为被配置成与一个以上的用户(例如,用户125a-n中的任意一个)通过消息应用103a/103b进行交互,以在消息应用103中施行特定动作或者提供消息的计算机程序或者应用(例如,软件应用)。作为一个示范例,信息检索机器人可以在因特网上搜索信息,并在消息应用中展现最相关的搜索结果。作为另一个示例,旅行机器人可以具有经由消息应用103进行旅程安排的能力,例如,通过在消息应用内购买旅行和酒店票、在消息应用中进行酒店预订、在消息应用中进行租赁汽车预订等。作为另一个示例,出租车机器人可以具有呼叫出租车的能力,例如,呼叫到用户的位置(当用户125允许访问位置信息时,由出租车机器人从客户端设备115获得),而无需调用或者呼叫单独的出租车预订应用。作为另一个示范例,教练/辅导机器人可以辅导用户在消息应用内在某些主题中对用户进行指示,例如,通过对检查中可能出现的问题进行提问并且提供关于用户的响应是否正确的反馈。作为另一个示例,游戏机器人可以在消息应用中与用户相对侧或者相同侧玩游戏。作为另一个示例,商业机器人可以提供来自特定商家的服务,例如,通过从商家的目录中检索产品信息并使得能够通过消息应用进行购买。作为另一个示例,界面机器人可以连接远程设备或者车辆,从而使消息应用的用户可以与远程设备或者车辆聊天、从远程设备或者车辆检索信息、和/或向远程设备或者车辆提供指示。

机器人的能力可以包括理解用户的意图并执行它。可以通过分析和理解用户的会话及其上下文来理解用户的意图。机器人还可以基于随时间演变的会话,对会话的改变的上下文或者用户的改变的情绪和/或意图进行理解。例如,如果用户a建议会面喝咖啡,但是如果用户b声明他不喜欢咖啡,那么机器人可以分配用户b对咖啡的负情感分数,并可能不会建议用于会面的咖啡店。

实施能够与消息应用103a/103b的用户通信的机器人可以提供许多优点。常规的,用户可以利用软件应用或者网站来施行诸如支付账单、订购食物、订票等的活动。这种实施方式的问题是为了执行多个活动,用户被要求安装或者使用多个软件应用和网站。例如,用户可能必须安装不同的软件应用来支付水电费账单(例如,来自公共事业公司)、购买电影票(例如,来自票务服务提供者的订票应用)、进行餐馆预订(例如,来自相应的餐馆)、或者对各个活动可能需要访问相应的网站。这种实施方式的另一个问题是用户可能需要学习复杂的用户界面,例如使用多个用户界面元件实施的用户界面,用户界面元件诸如窗口、按钮、复选框、对话框等。

因此,所描述的一个以上实施方式的优点在于,单个应用使得用户能够施行涉及与任意数量的各方交互的活动,而不要求用户访问单独的网站,或者安装和运行软件应用,具有减少客户端设备上的内存、存储器以及处理资源的消耗的技术效果。所描述的实施方式的优点在于会话界面使用户完成这种活动更容易并且更快速,例如,无需学习复杂的用户界面,具有减少计算资源消耗的技术效果。所述描述的实施方式的另一个优点是实施机器人可以使得各种不同的参与实体能够以较低的成本提供用户交互,具有减少计算资源的技术效果,计算资源被部署以使得用户能够交互,例如,使用一个或多个通信服务器实施的免费号码、托管在一个或多个web服务器上的网站、托管在电子邮件服务器上的客户支持电子邮件等。所描述的特征的另一个技术效果为减少了通过通信网络完成用户任务所需的系统处理和传输资源的消耗问题。

虽然本文描述的某些示例为机器人与一个以上的用户之间的交互,但是各种类型的交互是可能的,例如,一个机器人与一个用户125之间的一对一交互、一个机器人与两个以上的用户(例如,在群消息会话中)之间的一对多交互、多个机器人和一个用户之间的多对一交互、多个机器人和多个用户之间的多对多交互。此外,在一些实施方式中,机器人还可以被配置为通过消息应用103、机器人之间的直接通信或者两者的组合来与另一个机器人(例如,机器人107a/107b、109a/109b、111、113等)交互。例如,餐馆预订机器人可以与特定餐馆的机器人交互以便预订餐桌。

在某些实施例中,机器人可以使用会话界面来使用自然语言与用户进行会话交互。在某些实施例中,机器人可以使用基于模板的格式来创建与用户交互的句子,例如,响应于对餐馆地址的请求,使用诸如“餐馆r的位置为l”的模板。在某些情况下,用户可以能够选择机器人的交互格式,例如,机器人是否使用自然语言与用户交互,机器人是否使用基于模板的交互等。

在机器人使用自然语言进行会话交互的情况中,机器人的交互的内容和/或类型可以基于下列项中的一个以上动态地发生变化:被使用自然语言处理确定的会话内容、会话中用户的身份、以及一个以上的会话上下文(例如,关于用户的交互的历史信息、基于社交图的会话中用户之间的连接)、外部条件(例如,天气、交通)、用户的日程安排、与用户相关联的相关的上下文等等。在这些情况中,机器人的交互的内容和类型是仅基于参与会话的用户已经提供准许这种因素变化的。

作为一个示例,如果会话的用户被确定为使用正式的语言(例如,没有或者很少的俚语术语或者表情符),则机器人还可以在使用正式语言的会话中交互,反之亦然。作为另一个示例,如果会话中的用户被确定(基于当前和/或过去的会话)为表情符的重量级用户,则机器人同样可以使用一个以上的表情符与用户交互。作为另一个示例,如果会话中的两个用户被确定为是在社交图中远程连接的(例如,他们之间有两个以上的中间结点表明例如他们是朋友的朋友的朋友),则机器人可以在会话中使用更正式的语言。在参与到会话中的用户没有向机器人提供对诸如用户的社交图、日程安排、或者与用户相关联的其他上下文的因素的利用的准许的情况下,机器人的交互内容和类型可以是默认类型的,例如,不需要利用这些因素的中性类型。

此外,在一些实施方式中,一个以上的机器人可以包括参加与用户的来回会话的功能。例如,如果用户请求关于电影的信息,如通过输入“@moviebot你可以推荐电影吗?”,机器人“moviebot”可以以“你喜欢喜剧吗?”来回应。例如,用户可以接着回应“不”,对此,机器人可能回应“好的,名为太空与星星的客户电影具有极好的评价,我应当为您订票吗?”。接着用户可以表示“好的,我在下午6点后可以去,请检查史蒂夫是否可以加入”。在用户准许机器人访问关于他们的联系人和朋友史蒂夫准许接收来自机器人的消息时,机器人可以向用户的朋友史蒂夫发送消息,并施行进一步动作以在合适的时间预订电影票。

在某些实施例中,参与到会话中的用户可以能够调用特定的机器人或者调用施行特定任务的机器人,例如,通过键入机器人名字或机器人句柄(例如,出租车,@taxibot,@电影等)、通过使用语音命令(例如,“调用bankbot”等)、通过激活用户界面元件(例如,标签由机器人名字或者句柄的其他单元或者按键)等。一旦机器人被调用,用户125可以通过消息应用103a/103b,以类似于向其他用户125发送消息的方式,向机器人发送消息。例如,为了订购出租车,用户可以键入“@taxibot给我一辆计程车”;为了进行酒店预订,用户可以键入“@hotelbot在我附近的中餐馆预订4个人的餐桌。”

在某些实施例中,机器人可以在没有被专门调用的情况下自动建议消息会话中的信息或者动作。也就是说,用户可以不需要专门的调用机器人。在这些实施例中,机器人可以依赖于在连续的基础上或者离散的时间点上的对会话的分析和理解。对会话的分析可以用于理解特定用户需要和识别何时应当由机器人提供建议。作为一个示例,如果确定用户需要信息(例如,基于用户向另一个用户问问题、基于多个用户表示他们不具有一些信息),机器人可以搜索一些信息并建议答案。作为另一个示例,如果确定多个用户已经表达了对中餐的兴趣,则机器人可以自动建议一组靠近用户的中餐厅,包括诸如位置、评级和餐馆网址的连接的可选信息。

在某些实施例中,相较于自动地调用机器人或者等待用户明确地调用机器人,可以向消息会话中的一个以上的用户做出自动建议,以调用一个以上的机器人。在这些实施例中,会话可以在连续的基础或者离散的时间点被分析,并且对会话的分析可以被用于理解特定用户需要并识别何时机器人应该在会话中提供建议。

在机器人在消息会话中可以自动建议信息或者动作而不用专门被调用的实施例中,例如,如果一个以上的参与会话的用户不向机器人提供施行对用户会话的分析的准许,则这种功能被禁用。进一步地,这种功能还可以基于用户的输入被临时禁用。例如,当用户表示会话是私人的或者敏感的,对会话的上下文的分析被中断,直到用户为要被激活的机器人提供输入。进一步地,分析功能被禁用的指示可以利用如用户界面元件提供给会话的参与者。

在各种实施方式中,机器人可以以各种不同的配置被实施。例如,如图1所示,机器人105被实施在客户端设备115a上。在该示例中,机器人可以是客户端设备115a本地的软件应用中的模块。例如,如果用户已经在客户端设备115a上安装了出租车呼叫应用,则可以将机器人功能作为模块并入出租车呼叫应用中。在该示例中,用户可以调用出租车机器人,例如,通过发送消息“@taxibot给我一辆计程车。”消息应用103b可以使出租车呼叫应用中的机器人模块被发起。在这种方式中,机器人可以在客户端设备本地上实施,从而使用户可以通过消息应用103参与到与机器人的会话中。

在图1所示的另一示例中,显示机器人107a被实施在客户端设备115a上并且显示机器人107b被实施在消息服务器101上。在该示例中,例如,机器人可以被实施为客户端-服务器计算机程序,其中机器人107a(服务器模块)和机器人107b(客户端模块)中的每一个提供机器人功能的一部分。例如,如果机器人是具有句柄@calendar的安排机器人,则用户115a可以通过键入“@calendar提醒我在晚上拿洗好的衣服”来安排提醒,这可以由机器人107b(客户端模块)来操作。继续该示例,如果用户115a告诉机器人“检查吉姆是否有空在4会面,”机器人107a(服务器模块)可以联系用户吉姆(或者吉姆的安排机器人)以交换消息,并对用户115a提供响应。

在另一示例中,机器人109a(服务器模块)被实施在服务器135上,并且机器人109b(客户端模块)被实施在客户端设备115上。在该示例中,机器人功能由实施在客户端设备115和服务器135上的模块提供,与消息服务器101不同。在一些实施方式中,机器人被实施为分布式应用,例如,具有分布在多个客户端设备和服务器(例如,客户端设备115、服务器135、消息服务器101等)上的模块。在一些实施方式中,机器人可以被实施为服务器应用,例如,机器人111被实施在消息服务器101上,并且机器人113被实施在服务器135上。

诸如仅客户端的、仅服务器的、客户端-服务器的、分布式的等不同的实施方式可以提供不同的优势。例如,仅客户端的实施方式允许在本地提供机器人的功能,例如,无需网络访问,在某些环境下可能是有利的,例如,当用户在网络覆盖区域之外,或者在具有低网络带宽或者限制的网络带宽的任意区域。诸如仅服务器、客户端-服务器或者分布式配置的,包含一个以上的服务器的实施方式可以允许某些不可能在客户端设备本地上被提供的功能,例如,金融交易、订票等功能。

虽然图1示出了与消息应用103不同的机器人,但是,在一些实施方式中,一个以上的机器人可以被实施为消息应用103的一部分。在机器人被实施为消息应用103的一部分的实施方式中,在实施机器人之前获取用户许可。例如,在机器人被实施为消息应用103a/103b的一部分的情况下,消息应用103a/103b可以提供能够施行某些活动的机器人,例如,翻译输入和输出消息的翻译机器人,安排用户日历上的事件的安排机器人等。在该示例中,翻译机器人只有在用户的特定许可下被激活。如果用户不提供准许,则不实施消息应用103a/103b内的机器人(例如,被禁用、被移除等)。如果用户提供准许,则机器人或者消息应用103a/103b可以通过消息应用103a/103b限制在用户之间交换的消息的使用,已提供特定的功能,例如,翻译、日程安排等功能。

在一些实施方式中,不同于消息应用103a/103b和用户125的提供者的第三方可以提供用于特定目的的机器人,该机器人能够通过消息应用103a/103b与用户125通信。例如,出租车服务提供者可以提供出租车机器人,票务服务可以提供能够预订事件票据的机器人,银行机器人能够提供引导金融交易的能力,等等。

在通过消息应用103实施机器人时,许可机器人仅在特定用户授权时与用户通信。例如,如果用户调用机器人,则机器人可以例如基于用户调用机器人的动作来回复。在另一示例中,用户可以指示能够与用户联系的特定机器人或者特定类型的机器人。例如,用户可以许可旅行机器人与她通信,但不提供对购物机器人的授权。在该示例中,消息应用103a/103b可以许可旅行机器人与用户交换消息,但是过滤或者拒绝来自购物机器人的消息。

此外,为了提供一些功能(例如,订辆出租车、进行航班预订、联系朋友等),机器人可以请求用户许可机器人访问诸如位置、支付信息、联系人列表等的用户数据。在这种情况中,可以向用户展现许可或者拒绝访问机器人的选项。如果用户拒绝访问,则机器人可以通过消息,例如“抱歉,我不能为您预订出租车”来进行响应。此外,用户可以在有限制的基础上提供对信息的访问,例如,用户可以仅在机器人的特定调用而不是其他情况下,许可出租车机器人访问当前位置,在不同的实施方式中,用户可以控制机器人可以访问的信息的类型、数量和粒度,并为用户提供随时改变这种许可的能力(例如,通过用户界面)。在一些实施方式中,可以处理用户数据,以在机器人能够访问这种数据前,例如移除个人可识别信息、将信息限制为特定数据元件等。此外,用户可以通过消息应用103a/103和一个以上的机器人控制用户数据的使用。例如,用户可以指定提供进行金融交易的能力的机器人,在完成交易之前需要用户授权,例如,机器人可以发送消息“电影太空和星星的票是每张12美元。我要继续预订吗?”或者“这件衬衫的最优惠价格是125美元,包括运费。我应该从你的以1234结尾的信用卡中扣款吗?”等等。

在一些实施方式中,消息应用103a/103b还可以通过用户界面,诸如按键或者其他用户界面元件,向用户125提供一个以上的建议,例如,建议响应。例如,通过减少或者消除用户键入响应的需要,建议响应能够实现快速的交互。例如,当客户端设备缺乏文本输入功能时(例如,不包含键盘或者麦克风的智能手表),建议响应可以使得用户能够快速并容易地响应消息。例如,当用户选择建议响应时(例如,通过在触摸屏幕上选择对应用户界面元件),建议响应还可以使得用户快速地响应消息。可以使用诸如机器学习模型的预测模型来生成建议响应,机器学习模型被训练为生成响应。

例如,消息应用103a/103b可以实施机器学习,诸如深度学习模型,机器学习能够增强用户与消息应用103的交互。可以使用合成数据来训练机器-学习模型,例如,由计算机自动生成的数据,而不使用用户信息。在一些实施方式中,可以如基于样本数据来训练机器-学习模型,对于该样本数据,已经明确从用户获得了利用用户数据来训练的许可。例如,样本数据可以包括接收的消息和发送给接收的消息的响应。基于样本数据,机器-学习模型可以预测对接收的消息的响应,该响应接着可以被提供为建议响应。例如,通过提供基于接收的消息和用户的上下文而定制的响应选项,来减轻用户编写对于接收的消息的响应的负担,从而促进用户交互。例如,当用户提供准许时,可以基于用户之前的活动,例如,会话中先前的消息、不同会话中的消息等,来定制建议响应。例如,可以基于用户的交互类型,使用这种活动来确定针对用户的适当的建议响应,例如,播放响应、正式响应等。在另一示例中,当用户指定一个以上优选的语言和/或场所时,消息应用103a/103b可以以用户优选的语言生成建议响应。在各种不同的示例中,建议响应可以是文本响应、图像、多媒体等。

在一些实施方式中,机器学习可以在消息服务器101上、客户端设备115上或者消息服务器101和客户端设备115两者上实施。在一些实施方式中,简单的机器学习模型可以在客户端设备115上实施(例如,以许可在内存、存储器和客户端设备的处理约束内的模型的操作),并且复杂的机器学习模型可以在消息服务器101上实施。如果用户没有提供使用机器学习技术的准许,则这种技术不被实施。在一些实施方式中,用户可以选择性地提供机器学习仅实施在客户端设备115上的准许。在这些实施方式中,可以在客户端设备115上实施机器学习,从而使机器学习模型的更新或者机器学习模型使用的用户信息被存储在本地或者在本地被使用,并且不会被共享给其他设备,其他设备诸如消息服务器101、服务器135或者其他客户端设备115。

对于例如基于机器学习技术提供准许接收建议的用户,可以通过消息应用103提供建议。例如,建议可以包括内容(例如电影、书籍等)、安排(例如用户日历上的有效时间)、事件/场所(例如餐馆、音乐会等)等的建议。在一些实施方式中,如果参与在会话中的用户提供对使用会话数据的准许,则建议可以包括基于会话内容的针对传入消息的建议响应。例如,如果两个用户中的第一用户已经准许基于会话内容的建议,则发送消息“你想吃点什么吗?意大利菜怎么样?”,可以向第二用户建议响应,例如“@assistant午餐,意大利,两个人的餐桌”。在该示例中,建议响应包括机器人(由符号@和机器人句柄助理所识别)。如果第二用户选择该响应,向会话添加助理机器人并且向机器人发送消息。然后,将来自机器人的响应显示在会话中,并且两个用户中的任一个可以进一步向机器人发送消息。在该示例中,不向助理机器人提供对会话内容的访问,并且通过消息应用103生产建议响应。

在某些实施方式中,可以基于机器人是否已经出现在会话中或者是否能够被并入到会话中,来定制建议响应的内容。例如,如果确定可以将旅行机器人并入到消息应用中,则针对关于去法国的机票的成本问题的建议响应可以是“让我们询问旅行机器人”。

在不同的实施方式中,例如建议响应的建议可以包括以下中的一个或多个:文本(例如“太棒了”),表情符(例如,笑脸、困脸等),图像(例如,来自用户相册的照片),基于模板产生的用户数据插入模板的字段中的文本(例如“她的号码是<电话号码>”,其中如果用户提供对用户数据的访问,则基于用户数据填写字段“电话号码”),链接(例如,统一资源定位符),等等。在一些实施方式中,可以使用如颜色、字体、布局等设置建议响应的格式和/或类型。例如,包括电影推荐的建议响应可以包括关于电影的描述性文本、来自电影的图像、以及购买门票的链接。在不同的实施方式中,建议响应可以以不同类型的用户界面元件被展现,例如,文本框、信息卡等。

在不同的实施方式中,向用户提供对于他们是否接收建议、他们接收什么类型的建议、建议的频率等的控制。例如,用户可以完全拒绝接收建议,或者可以选择特定类型的建议,或者仅在一天的某些时期内接收建议。在另一示例中,用户可以选择接收个性化的建议。在该示例中,基于与用户数据的使用和机器学习技术的使用有关的用户偏好,可以使用机器学习来提供建议。

图2是根据一些实施方式的机器人调用事件的示例的示意图。特别地,用户设备202与机器人204通信。可以通过用户设备202上的一个以上事件调用机器人204。事件可以包括特殊字符自动完成或手动键入206、消息中的机器人标注点击208、机器人头像点击210、以及选择自动回复建议212。

特殊字符自动完成或者命令可以包括来自后面有机器人名字或者句柄的特殊字符(例如“@”)的用户的输入。在该示例事件中,可以通过机器人句柄,例如“@”字符后面的机器人名字(如预订机器人、助理等),来识别机器人。用于特殊字符自动完成或者命令的用户界面元件的示例在图4的402中示出并在下文进行描述。一旦用户将特殊字符(例如“@”)输入编写框或者其他文本输入区域,系统就可以监控后续字符,并尝试自动识别和建议具有句柄(例如,“@机器人”)或名字(例如,“酒店机器人”)的机器人,该句柄或名字具有与键入或者另外由用户输入的字符匹配的部分。用户可以选择自动完成建议,而不必键入整个机器人名字或者句柄名字。

点击(或者通过触摸、键入或者语音输入的其他选择)机器人标注(如图4中的404)可以调用与标注相关联的机器人。如果标注与先前建议响应相关联,则那些响应可以被调回,如图8-12所示并如下所描述的。点击(或者通过触摸、键入或者语音输入的其他选择)机器人头像(如图4中的406)。点击(或者通过触摸、键入或者语音输入的其他选择)自动回复建议(如图4中的408)。

图3是显示根据一些实施方式的机器人调用示例方法的流程图。处理开始于302,在302处接收调用机器人的动作指示。指示可以包括特殊字符机器人命令的指示、特殊字符自动完成选择的指示、点击机器人标注的指示、点击机器人头像的指示、和/或选择自动回复建议的指示。在一些实施方式中,可以自动调用机器人(有或者没有图2中所示的动作),并且系统可以基于不同的信息自动地确定调用哪个机器人,不同的信息例如是,用户在@或者其他特殊字符之后键入的内容、用户基于用户动作或者使用的上下文而试图施行或者需要施行的任务类型、用户是否在查找信息(用户在查找什么信息)、用户语音命令等。处理继续到304。

在304处,确定对调用机器人的动作的指示的响应类型。例如,如果指示是自动回复建议的选择,则动作可以是向机器人或者会话中的其他参与者提供自动答复。在另一示例中,如果指示是特殊字符命令的指示,则可以确定动作为相应命令的动作。处理继续到306。

在306处,基于在304处确定的响应类型,机器人响应接收到的调用机器人的动作的指示。例如,机器人可以向会话提供建议的自动答复,机器人可以对接收到的命令起作用,等等。

图4是根据一些实施方式的显示示例性的机器人识别和调用元件的用户界面400的示意图。特别地,用户界面400包括与消息编写框相关联的示例性的特殊字符自动完成分部402。用户界面还包括示例性的机器人标注404,其可以表示先前发送给机器人的消息或者命令。用户界面400包括示例性的机器人头像406和示例性的自动回复建议408。在用户界面中可以有一个以上的机器人标注、头像或者自动回复建议。

图5是根据一些实施方式的在机器人交互期间管理用户隐私的示例性方法的流程图。处理开始于502,在502处,在机器人处接收来自用户的请求和/或生成建议,其中,请求或者建议可能需要共享的用户数据。请求可以包括机器人要施行的请求的任务(例如“共享我的航班数据”,“共享我的小狗的照片”,等等)。在一些实施方式中,请求可以是对机器人的命令。例如,包括对预订机器人的命令的请求可以是“@reservationbot寻找附近的酒店”,包括对助理机器人的命令的请求可以是“@assistant将我的航班细节发送给吉姆”,等等。在该示例中,通过机器人句柄,例如“@”符号之后的机器人的名字(例如,reservationbot,assistant等)来识别机器人。为了施行任务和/或提供对请求的响应,机器人可能需要访问用户数据。用户和机器人可以是一对一的通信布置。例如,用户可以请求汽车服务接载,并且汽车服务机器人可能需要知道用户的位置,以便确定哪辆车可以用于接乘客。在另一示例中,用户可能希望在附近的酒店预订酒店,并且预订旅馆机器人可能需要知道用户的位置。在又一个示例中,机器人可以为用户提供包括共享用户信息(如照片、日历条目、航行时刻表等)的建议响应,并且机器人可能需要获取访问数据的用户许可,并提供这种数据作为实际的响应,数据可能有助于建议响应。请求可以是来自用户的请求或者可以是自动生成的请求(例如,来自建议响应机器人,等等)。处理继续至504。

在504处,使得许可用户界面元件被显示给与请求或者建议响应相关的用户。许可请求用户界面元件的一个示例在图6中被显示,并在下文中描述。许可用户界面元件还可以被展现为音频提示,或者使用其他用户界面和/或输出方法。处理继续至506。

在506处,接收用户是否授予机器人共享用户数据的许可的指示,该用户数据在可以是一对一会话或者群会话的正在进行的会话。可以以用户界面元件选择的形式接收指示(例如通过键入、语音输入、手势输入等,触摸、点击、选择屏幕上的用户界面按钮),用户界面元件选择指示用户授予许可或者不授予许可。例如,用户可以选择图6的许可用户界面元件中所示的“现在不”或者“允许”中的一个。处理继续至508。

在508处,机器人许可系统确定许可是否被授予。确定许可是否被授予可以通过评估在步骤506中接收到的指示来完成。如果许可被授予,则处理继续至510。如果许可没有被授予,则处理继续至512。

在510处,根据由用户授予的许可,用户数据的指示被机器人共享到会话中。

在512处,根据用户没有授予许可,用户数据不被机器人共享。

图6是根据一些实施方式的具有机器人消息的示例性的用户界面600的示意图。特别地,用户界面600包括从用户到机器人的消息(602)。消息602包括可能需要使用用户个人信息,例如狗照片的请求(“共享我的狗的照片”)。响应于来自用户的请求,机器人可以向用户显示许可允许/不允许界面元件(604)以便完成请求,该用户寻求共享用户数据(606)的许可。许可单元604可以包括什么类型的用户数据需要共享许可的描述或者样本(606)、以及分别用于允许或者不允共享用户数据的机器人许可的输入元件608和610。

图7是根据一些实施方式的的用于召回先前的机器人建议的示例性方法的流程图。图8-12提供示例性的用户界面示意图,以帮助图解图7的方法并结合图7进行描述。处理开始于702,在702处,在机器人处接收来自会话中的用户的请求。请求可以来自文本命令或者这里描述的其他方法。例如,用户可以发出命令,诸如图8中的802处所示的“@bot今晚7点用于4个人的任何餐桌”。处理继续至704。

在704处,机器人可以使得显示确认界面元件(如图8中的804)。确认元件可以向用户提供机器人正在处理请求或命令、或者正在对关于请求或者命令进行工作的指示。确认可以包括一个以上建议的自动回复(如图8中的806和808)。处理继续至706。

在706处,通过会话参与者的后续消息的指示(例如,图9中的902)。处理继续至708。

在708处,基于后续消息的确定来移除建议响应(例如,902)。通过804和902之间建议的缺少,在图9中显示建议响应(806和808)的移除。处理继续至710。

在710处,接收到用户已经点击(或以其他方式选择)(图10中的1004)先前显示的确认消息(例如,804)的指示,确认消息具有与其相关联的一个或多个建议响应。在图10中同样显示了后续消息1002。通过点击或者选择先前显示的确认消息,用户可能正在指示对召回与确认消息相关联的建议响应的兴趣。处理继续至712。

在712处,通过渐隐或者其他技术,会话被临时可选择性地隐藏或者使会话不那么突出。处理继续至714。

在714处,如图11所示那样显示先前显示的确认消息(如802)和与其相关联的建议响应(806和808)。作为隐藏会话的替代,系统可以扩展确认消息并显示建议响应。处理继续至716。

在716处,接收建议响应之一的选择的指示。例如,可以接收“取消”建议响应(808)的选择的指示,如图11的1102所示。可选择地,可以接收“后退”指示,其表示没有建议的自动响应被选择并且用户希望返回到会话屏幕,并且可以将建议响应再一次从显示器上移除。处理继续至718。

在718处,显示返回到会话并且机器人对建议响应起作用。例如,机器人可以使得“取消他”消息被显示,如图12中的1202所示。

图13是根据一些实施方式的管理在群消息上下文(例如,“群聊天”内)内的机器人许可的示例性方法的流程图。处理开始于1302,在1302处,在机器人处接收来自用户的请求。为了施行请求的任务和/或为请求提供相应,机器人可能需要访问用户数据。用户和机器人可以是在具有多个用户和/或机器人的群通信布置中。例如,在具有多个用户的通信对话中,用户可以请求例如对于多个用户的汽车服务接载。汽车服务机器人可能需要知道包含在接载中的每个用户的位置以便确定哪辆车可以用于接载用户。在另一示例中,用户可能希望为参与会话的用户群在附近的酒店中进行酒店预订。在该示例中,酒店预订机器人可能需要知道关于用户群的信息,例如,名字、支付信息等。请求可以是来自用户的请求或者是自动生成的请求(例如,来自建议响应机器人等)。处理继续至1304。

在1304处,由机器人可选地显示进展指示,并且进展指示可以对群或者作出请求的单个用户可见。例如,汽车服务机器人可以在群会话中显示诸如“我正在处理它”的消息。处理继续至1306。

在1306处,使得向请求相关联的用户显示许可用户界面元件。许可请求用户界面元件的示例显示在图6中并在上文被描述。当机器人请求访问用户数据而不是共享用户数据的许可时,如果给与许可,则许可请求用户界面元件可以描述机器人需要访问的数据,而不是显示机器人将共享是数据的示例。许可用户界面元件还可以展现为语言提示或使用其他用户界面和/或输出方法。处理继续至1308。

在1308处,接收一个以上的用户是否授予机器人访问或者获取相应用户数据的许可的指示。可以以用户界面元件选择的形式接收指示(例如,通过键入、语音输入、手势输入等,触摸、点击、选择在屏幕上的用户界面按键),用户界面元件选择指示用户授予许可或者不授予许可。例如,用户可以选择显示在图6中的许可用户界面元件中的“现在不”或者“允许”中的一个。处理继续至1310。

在1310处,机器人许可系统确定是否授予许可。确定是否授予许可可以通过评估在步骤1308中接收的指示完成。如果许可被授予,则处理继续至1312。如果许可没有被授予,则处理继续至816。

在1312处,机器人可以开启与用户的一对一聊天。一对一聊天和一对一聊天中的消息交换对群消息会话中的用户群是不可见的。具有与相应的机器人对应的不同的可见主题的一对一会话用户界面的示例显示在图14和15中。处理继续至1314。

在1314处,机器人可以施行进一步的处理以完成与许可相关的任务,许可在一对一用户消息会话中被授予。例如,汽车服务机器人能够继续确定哪些汽车可能处于某个位置,为用户提供汽车服务。在另一个示例中,住宿机器人能够使用共享的用户位置来确定附近空置也可供出租的住所。

在1316处,机器人可以使拒绝任务的“得体”指示在群消息会话中显示。例如,机器人可以提供如“我无法获取您的位置-我不能安排汽车”等等的指示。可以将指示显示在图形用户界面上,或者以语音提醒的形式或者以其他输出指示的形式提供。拒绝消息的得体方面可以包括消息,该消息不明确指示用户没有授予机器人使用用户数据的许可。在不同的实施方式中,指示可以包括不同的文本内容,例如,基于请求或者其他因素。例如,响应于用户禁止对位置的访问的指示可以包括诸如“对不起,无法获得位置”、“我不能发现您附近的汽车”、“汽车服务不可用”等的文本内容,该位置在订购汽车的上下文中。在一些实施方式中,可以将不同的指示发送给群会话中的不同的参与者。在一些实施方式中,指示可以使用不同的格式,例如,文本框、图形指示、动画指示等。在一些实施方式中,指示可以使用不同的类型,例如,粗体文字、斜体文字、字体、颜色等。

图14是根据一些实施方式的显示以给定机器人为主题的示例性一对一用户界面1400的示意图。图14显示的示例用于示例性的餐馆机器人。主题界面1400可以包括特定的背景色、图像、文本等(1402)。主题界面1400还可以包括用于机器人的标志、名字和句柄(1404)。主题界面1400还可以包括由机器人提供的信息,例如餐馆信息1406。

图15是根据一些实施方式的显示以给定的机器人类型为主题的示例性一对一用户界面1500的示意图。图15中所示的示例用于示例性酒店机器人。主题界面1500可以包括特定的背景色、图像、文本等(1502)。主题界面1500还可以包括用于机器人的标志、名字和句柄(1504)。主题界面还可以包括由机器人提供的信息,例如餐馆信息1506-1508。一对一界面1500还包括建议选择按钮1510和1512以及为机器人编写消息(如命令、请求等)的编写框1514。

图16是可以实施本文所描述的一个以上特征的示例性计算设备1600的框图。在一个示例中,计算机设备1600可以用于实施客户端(或者用户)设备,如图1所示的客户端设备115a-115n中的任意一个。计算设备1600可以是上文描述的任何合适的计算机系统、服务器、或者其他电子或硬件设备。

本文描述的一个以上的方法可以运行在:能够在任意类型的计算设备上运行的独立的程序中、运行在网页浏览器上的程序中、运行在移动计算设备(如手机、智能手机、台式计算机、可穿戴设备(手表、腕带、珠宝、首饰、虚拟现实护目镜或眼镜、增强现实护目镜或眼镜等))的移动应用(“app”)中。在一示例中,可以使用客户端/服务器架构,例如移动计算设备(作为用户设备)发送用户输入数据至服务器设备并从服务器接收最终的用于输出(例如,用于显示)的输出数据。在另一示例中,可以将所有的计算在移动计算设备上的移动应用(和/或其他应用)中施行。在另一示例中,可以将计算在移动计算设备和一个以上的服务器设备之间分开。

在一些实施方式中,计算设备1600包括处理器1602、内存1604、和输入/输出(i/o接口1606。处理器1602可以是执行程序代码和控制计算设备1600的基本操作的一个以上的处理器和/或处理电路。“处理器”包括任意合适的处理数据、信号或其他信息的硬件和/或软件系统、机制或部件。处理器可以包括具有通用中央处理单元(cpu)、多个处理单元、用于实现功能的专用电路的系统,或其他系统。处理不必限于特定的地理位置,或具有时间限制。例如,处理器可以以“批处理模式”等“实时”、“离线”的施行其功能。可以通过不同的(或相同的)处理系统在不同的时间和不同的地点执行处理部分。计算机可以是与内存通信的任何处理器。

内存1604通常在计算设备1600中被提供以供处理器1602访问,并且可以是任何合适的处理器可读存储介质,诸如随机存取存储器(ram)、只读存储器(rom)、电可擦除只读存储器(eeprom)、闪存等,处理器可读存储介质适用于存储由处理器执行的命令并且与处理器1602分开设置和/或与处理器1602集成在一起。内存1604可以存储由处理器1602在计算设备1600上运行的软件,包括操作系统1608和一个以上的应用1610,诸如消息传递应用、机器人交互应用等。在一些实施方式中,应用1610可以包括使得处理器1602能够施行本文描述的功能的命令,例如图3,5,7和/或13中的一个或多个方法。例如,应用1610可以包括消息和/或机器人应用,包括管理机器人许可、用户许可、调回旧的机器人建议、和/或识别如本文所描述的机器人的程序。例如,一个以上的应用可以响应用户输入,提供显示的用户界面,以显示可选的选项或控制,并显示基于选择的选项的数据。本文公开的一个以上的方法可以在若干个环境和平台中操作,例如,作为能够在任意类型的计算设备上运行的独立计算机程序、作为具有网页网站应用、作为在移动计算设备上运行的移动应用(“app”)。

内存1604中的任何软件可替代地存储在任何其他合适的存储位置或计算机可读介质上。此外,内存1604(和/或其他连接的存储设备)可以存储消息、许可设置、用户偏好和相关的数据结构、参数、音频数据、用户偏好、和/或在数据库1612中的本文描述的特征中所使用的其他命令和数据。内存1604和任何其他类型的存储器(磁盘,光盘,磁带或其他有形介质)可以被认为是“存储器”或“存储设备”。

i/o接口1606可以提供使计算设备1600与其他系统和设备接口的功能。接口设备可以作为计算设备1600的一部分包括在计算设备1600内,或者可以与计算设备1600分开并与计算设备1600通信。例如,网络通信设备、无线通信设备、存储设备和输入/输出设备可以通过i/o进行通信。在一些实施方式中,i/o接口1606可以连接到接口设备,例如输入设备(键盘、指示设备、触摸屏、麦克风、相机、扫描仪、传感器等)和/或输出设备(显示设备、扬声器设备、打印机、电机等)。

可以连接到i/o接口1606的接口设备的一些示例可以包括显示设备1614,显示设备1614可以用于显示内容,例如应用图像、视频、和/或如本文所述的输出应用的用户界面。显示设备1614可以经由本地连接(例如,显示总线)和/或经由网络连接而连接到计算设备1600,并且可以是任何合适的显示设备。显示设备1614可包括任何合适的显示设备,例如液晶显示器(lcd)、发光二极管(led)或等离子显示屏、阴极射线管(crt)、电视机、监视器、触摸屏、3d显示屏、或其他视觉显示设备。例如,显示设备1614可以是在移动设备上提供的平面显示屏、在护目镜设备中提供的多个显示屏、或者用于计算机设备的监视器屏幕。

i/o接口1606可以与其他输入和输出设备连接。一些示例包括可以捕获图像帧的一个以上的相机。诸如陀螺仪和/或加速度计的定向传感器可以提供指示设备定向的传感器数据(其可以对应于一些实施方式中的视图定向)和/或相机定向。一些实施方式可以提供用于捕获声音(例如,语音命令命令等)的麦克风、用于输出声音的音频扬声器设备、或其他输入和输出设备。

为了便于说明,图16分别为处理器1602、存储器1604、i/o接口1606、操作系统1608和机器人交互应用1610示出了一个框。这些框可以代表一个以上的处理器或处理电路、一个以上的操作系统、一个以上的内存、一个以上的i/o接口、一个以上的应用、和/或一个以上的软件模块。在其他实施方式中,计算设备1600可以不具有所示的所有组件和/或可以具有包括其他类型的元件的其他元件,来代替或补充本文所示的那些元件。虽然用户设备(例如,115a-115n)被描述为施行如本文的一些实施方式中所描述的框和操作,但是用户设备(例如,115a-115n)或类似设备的任何合适的组件或组件的组合,或者任何合适的处理器或与这种系统相关联的处理器可以施行所描述的框和操作。

本文描述的方法可以通过计算机程序命令或代码来实施,该计算机程序命令或代码可以在计算机上执行。例如,代码可以由一个以上的数字处理器(例如,微处理器或其他处理电路)实施,并且可以存储在计算机程序产品上,计算机程序产品包括如磁、光、电磁、或半导体存储介质的非暂时性计算机可读介质(例如,存储介质),该非暂时性计算机可读介质包括:半导体或固态内存、磁带、可移动计算机磁盘、随机存取存储器(ram)、只读存储器(rom)、闪存、刚性磁盘、光盘、固态存储器驱动器等。程序命令也可以包含在电子信号中并被提供为电信号,例如以从服务器传送的软件即服务(saas)的形式(如分布式系统和/或云计算系统)。另外,一个以上的方法可以用硬件(逻辑门等)或硬件和软件的组合来实施。示例性的硬件可以是可编程处理器(如现场可编程门阵列(fpga)、复杂可编程逻辑设备(cpld)等)、通用处理器、图形处理器、专用集成电路(asic)等。可以将一个以上的方法作为在系统上运行的应用的一部分或组件来施行,或者作为与其他应用和操作系统一起运行的应用或软件来执行。

尽管说明书已经关于其特定实施方式进行了描述,但是这些特定实施方式仅是说明性的而非限制性的。示例中示出的概念可以应用于其他示例和实施方式。

在本文讨论的某些实施方式可以收集或使用关于用户的个人信息(例如,用户的电话号码或部分电话号码、用户数据、关于用户的社交网络的信息、用户的位置和时间、用户的生物信息、用户的活动和人口统计信息)的情况下,为用户提供一个以上的机会来控制:是否收集个人信息,是否存储个人信息,是否使用个人信息,以及如何收集、存储和使用关于用户的信息。也就是说,本文讨论的系统和方法特别是在从相关用户接收到明显的去这么做的授权时,收集、存储和/或使用用户个人信息。另外,某些数据可以在存储或使用之前以一种或多种方式被处理,以便移除个人可识别信息。作为一个示例,可以处理用户的身份,以便没有个人可识别信息可以被确定。作为另一示例,用户的地理位置可以被概化到更大的区域,以便用户的特定位置不能被确定。

请注意,本公开中描述的功能块、操作、特征、方法、设备和系统可以被集成或化分成,本领域技术人员已知的系统、设备和功能块的不同组合。可以使用任何合适的编程语言和编程技术来实施特定实施方式的例程。可以采用不同的编程技术,例如程序或面向对象的编程技术。例程可以在单个处理设备或多个处理器上执行。虽然步骤、操作或计算可以以特定的顺序展现,但是可以在不同的特定实施方式中改变这些顺序。在一些实施方式中,可以同时施行在本说明书中按顺序示出的多个步骤或操作。以下公开了其他示例性的实施方式。

1.一种计算机执行的方法,包括:

在与第一用户相关联的第一计算设备上提供消息应用,以使得第一用户与至少一个其他用户之间能够通信;

在消息应用上检测用户请求;

以编程方式确定响应于用户请求的动作需要共享与第一用户相关联的数据;

使得许可界面在所述第一计算设备上的所述消息应用中被渲染应用,许可界面使得第一用户能够批准或者禁止共享与所述第一用户相关联的数据;并且

一旦从所述第一用户接收到指示批准共享与所述第一用户相关联的数据的用户输入,则响应于所述用户请求,在所述消息应用之内访问与所述第一用户相关联的数据并且共享与所述第一用户相关联的数据。

2.根据实施方式1的计算机执行的方法,其中,第一用户是人类用户并且至少一个其他用户是辅助代理。

3.根据实施方式1或2的计算机执行的方法,其中第一用户是人类用户,并且至少一个其他用户包括第二人类用户,第二人类用户与第一用户不同并且与第二计算设备相关联,并且其中许可界面在与第一用户相关联第一计算设备上的消息应用中被渲染,该许可界面没有显示在与第二人类用户相关联的第二计算设备上。

4.根据实施方式1至3中的一个计算机执行的方法,其中第一用户是人类用户,并且至少一个其他用户包括第二人类用户和辅助代理,第二人类用户不同于第一用户,并且其中从与第一用户相关联的第一计算设备接收用户请求,该方法进一步包括响应于用户请求,在消息应用中发起单独的会话,其中单独的会话包括第一用户和辅助代理并且不包括第二人类用户。

5.根据实施方式1至4中的一个计算机执行的方法,其中检测用户请求包括:通过辅助代理分析在消息应用中接收到的从第一用户到辅助代理的一个以上的消息。

6.根据实施方式5的计算机执行的方法,其中一个以上的消息包括文本消息、多媒体消息和给辅助代理的命令中的一个或多个。

7.根据实施方式1至6中的一个计算机执行的方法,进一步包括基于来自第一用户和至少一个其他用户中的至少一个的输入,在第一消息应用中提供一个以上的建议。

8.根据实施方式7的计算机执行的方法,进一步包括使得一个以上的建议在消息应用中被渲染。

9.根据实施方式8的计算机执行的方法,其中一个以上的建议被渲染为建议元件,当所述建议元件被第一用户选择时,使得关于建议的细节被显示。

10.根据实施方式1至9中的一个计算机执行的方法,进一步包括:基于第一用户的一个以上的动作,自动调用辅助代理。

11.根据实施方式1至10中的一个计算机执行的方法,其中响应于下列中的一个或多个来调用辅助代理:

针对辅助代理的特殊字符命令;

与辅助代理相关联的用户界面标注元件的用户选择;

与辅助代理对应的头像的用户选择;以及

由辅助代理提供的自动回复建议的用户选择。

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