CN104813311B - 用于多人的虚拟代理推荐的系统和方法 - Google Patents

用于多人的虚拟代理推荐的系统和方法 Download PDF

Info

Publication number
CN104813311B
CN104813311B CN201380061246.3A CN201380061246A CN104813311B CN 104813311 B CN104813311 B CN 104813311B CN 201380061246 A CN201380061246 A CN 201380061246A CN 104813311 B CN104813311 B CN 104813311B
Authority
CN
China
Prior art keywords
information
virtual protocol
people
user
man
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
CN201380061246.3A
Other languages
English (en)
Other versions
CN104813311A (zh
Inventor
T·林奇
K·S·哈珀
C·拉德巴赫
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.)
Microsoft Technology Licensing LLC
Original Assignee
Nuance Communications Inc
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
Priority claimed from US13/710,971 external-priority patent/US20140164953A1/en
Priority claimed from US13/710,701 external-priority patent/US9262175B2/en
Priority claimed from US13/711,036 external-priority patent/US9679300B2/en
Priority claimed from US13/710,721 external-priority patent/US9560089B2/en
Priority claimed from US13/710,649 external-priority patent/US9276802B2/en
Priority claimed from US13/710,678 external-priority patent/US9659298B2/en
Priority claimed from US13/711,069 external-priority patent/US9148394B2/en
Priority claimed from US13/710,897 external-priority patent/US20140164532A1/en
Application filed by Nuance Communications Inc filed Critical Nuance Communications Inc
Publication of CN104813311A publication Critical patent/CN104813311A/zh
Application granted granted Critical
Publication of CN104813311B publication Critical patent/CN104813311B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)

Abstract

用于实现至少一个虚拟代理的系统、方法和装置。在一些实施例中,所述至少一个虚拟代理被编程为分析关于第一个人的第一信息;分析关于不同于第一个人的第二个人的第二信息;以及至少部分地基于第一信息和第二信息为多个人做出联合推荐,其中所述多个人包括第一个人和第二个人。

Description

用于多人的虚拟代理推荐的系统和方法
技术领域
本公开涉及用于多人的虚拟代理推荐的系统、方法和装置。
背景技术
一些电子设备(诸如智能电话和平板计算机)包括称为虚拟代理的应用。例如,虚拟代理在Apple Computers公司的一些设备上可用,虚拟代理EVA(可从BulletProof公司获得)可以安装在运行Google公司所开发的AndroidTM移动操作系统的设备上。
一些虚拟代理被编程为帮助用户执行各种任务。例如,虚拟代理可以被编程为发送电子消息、安排约会、拨出电话呼叫以及获得方向。在完成这些任务时,虚拟代理可以与其它应用(例如电子邮件客户端)交互,并可以在本地(例如从用户的电子地址薄)或通过一个或多个网络(例如从万维网或Web)搜索信息。
发明内容
提供用于多个人的虚拟代理推荐的系统、方法和装置。
在一些实施例中,提供了一种装置,包括由一个或多个可执行指令编程为实现至少一个虚拟代理的至少一个处理器,所述至少一个虚拟代理被编程为:分析关于第一个人的第一信息;分析关于不同于第一个人的第二个人的第二信息;和至少部分地基于第一信息和第二信息为多个人做出联合推荐,其中所述多个人包括第一个人和第二个人。
在一些实施例中,第一信息包括第一个人的至少一个偏好。在一些实施例中,第一信息包括第一个人施加的至少一个限制。在一些实施例中,第一信息包括关于第一个人的一个或多个过往活动的历史信息。在一些实施例中,所述至少一个虚拟代理还被编程为:识别第一个人作为优先化的人;和在做所述推荐时,相对关于第二个人的第二信息,向关于第一个人的第一信息给予优先级。在一些实施例中,所述至少一个虚拟代理还被编程为:识别调用所述至少一个虚拟代理的人;和在做所述推荐时,向关于被识别为调用了所述至少一个虚拟代理的人的信息给予优先级。在一些实施例中,所述至少一个虚拟代理被编程为从多个候选项选择接收到来自所述多个人的最高数量的投票的候选项作为推荐,并且其中第一信息包括第一个人的投票,第二信息包括第二个人的投票。在一些实施例中,所述至少一个虚拟代理包括与第一个人关联的第一虚拟代理和与第二个人关联的第二虚拟代理,第一虚拟代理和第二虚拟代理被编程为在做所述推荐时相互协商。
在一些进一步的实施例中,由实现至少一个虚拟代理的至少一个处理器执行一种方法,所述方法包括以下动作:分析关于第一个人的第一信息;分析关于不同于第一个人的第二个人的第二信息;和至少部分地基于第一信息和第二信息为多个人做出联合推荐,其中所述多个人包括第一个人和第二个人。
在一些实施例中,第一信息包括第一个人的至少一个偏好。在一些实施例中,其中第一信息包括由第一个人施加的至少一个限制。在一些实施例中,第一信息包括关于第一个人的一个或多个过往活动的历史信息。在一些实施例中,所述方法还包括:识别第一个人作为优先化的人;和在做所述推荐时,相对关于第二个人的第二信息,向关于第一个人的第一信息给予优先级。在一些实施例中,该方法还包括:识别调用所述至少一个虚拟代理的人;和在做所述推荐时,向关于被识别为调用了所述至少一个虚拟代理的人的信息给予优先级。在一些实施例中,该方法还包括:从多个候选项选择接收到来自所述多个人的最高数量的投票的候选项作为推荐,并且其中第一信息包括第一个人的投票,第二信息包括第二个人的投票。在一些实施例中,所述至少一个虚拟代理包括与第一个人关联的第一虚拟代理和与第二个人关联的第二虚拟代理,第一虚拟代理和第二虚拟代理被编程为在做所述推荐时相互协商。
在一些进一步的实施例中,提供了其上编码有指令的至少一种计算机可读介质,当所述指令由至少一个处理器执行时,执行用于实现至少一个虚拟代理的方法,所述方法包括以下动作:分析关于第一个人的第一信息;分析关于不同于第一个人的第二个人的第二信息;和至少部分地基于第一信息和第二信息为多个人做出联合推荐,其中所述多个人包括第一个人和第二个人。
在一些实施例中,该方法还包括:识别第一个人作为优先化的人;和在做所述推荐时,相对关于第二个人的第二信息,向关于第一个人的第一信息给予优先级。在一些实施例中,该方法还包括:识别调用所述至少一个虚拟代理的人;和在做所述推荐时,向关于被识别为调用了所述至少一个虚拟代理的人的信息给予优先级。在一些实施例中,该方法还包括:从多个候选项选择接收到来自所述多个人的最高数量的投票的候选项作为推荐,并且其中第一信息包括第一个人的投票,第二信息包括第二个人的投票。
提供了用于虚拟代理参与多方对话的系统、方法和装置。
在一些实施例中,提供了一种装置,包括由一个或多个可执行指令编程为实现至少一个虚拟代理的至少一个处理器,所述至少一个虚拟代理被编程为:分析在多方对话期间由第一用户提供的第一输入;分析在所述多方对话期间由第二用户提供的第二输入,第二用户不同于第一用户;和使用第一输入和第二输入来规划要由虚拟代理执行的至少一个任务。
在一些实施例中,所述至少一个虚拟代理还被编程为执行至少部分地基于第一输入和第二输入所规划的所述至少一个任务。在一些实施例中,所述至少一个虚拟代理还被编程为将执行所述至少一个任务的结果提供给参与所述多方对话的至少一个第三用户。在一些实施例中,所述至少一个处理器还被编程为:当正在进行多方对话时监视所述多方对话;并且响应于检测到所述多方对话中的触发器,将所述至少一个虚拟代理注入到所述多方对话中。在一些实施例中,触发器包括被指定用于调用所述至少一个虚拟代理的表达。在一些实施例中,所述至少一个虚拟代理还被编程为:分析所述多方对话的至少一部分以将第一输入识别为来自第一用户以及将第二输入识别为来自第二用户。
在一些进一步的实施例中,由与至少一个虚拟代理相关的至少一个处理器执行一种方法,所述方法包括以下动作:分析在多方对话期间由第一用户提供的第一输入;分析在所述多方对话期间由第二用户提供的第二输入,第二用户不同于第一用户;和使用第一输入和第二输入来规划要由虚拟代理执行的至少一个任务。
在一些实施例中,所述方法还包括执行至少部分地基于第一输入和第二输入所规划的所述至少一个任务。在一些实施例中,所述方法还包括将执行所述至少一个任务的结果提供给参与所述多方对话的至少一个第三用户。在一些实施例中,所述方法还包括:当正在进行多方对话时监视所述多方对话;并且响应于检测到所述多方对话中的触发器,将所述至少一个虚拟代理注入到所述多方对话中。在一些实施例中,触发器包括被指定用于调用所述至少一个虚拟代理的表达。在一些实施例中,所述方法还包括:分析所述多方对话的至少一部分以将第一输入识别为来自第一用户以及将第二输入识别为来自第二用户。
在一些进一步的实施例中,提供了其上编码有指令的至少一种计算机可读介质,当所述指令由至少一个处理器执行时,执行与至少一个虚拟代理结合使用的方法,所述方法包括以下动作:分析在多方对话期间由第一用户提供的第一输入;分析在所述多方对话期间由第二用户提供的第二输入,第二用户不同于第一用户;和使用第一输入和第二输入来规划要由虚拟代理执行的至少一个任务。
在一些实施例中,所述方法还包括执行至少部分地基于第一输入和第二输入所规划的所述至少一个任务。在一些实施例中,所述方法还包括将执行所述至少一个任务的结果提供给参与所述多方对话的至少一个第三用户。在一些实施例中,所述方法还包括:当正在进行多方对话时监视所述多方对话;并且响应于检测到所述多方对话中的触发器,将所述至少一个虚拟代理注入到所述多方对话中。在一些实施例中,触发器包括被指定用于调用所述至少一个虚拟代理的表达。在一些实施例中,所述方法还包括:分析所述多方对话的至少一部分以将第一输入识别为来自第一用户以及将第二输入识别为来自第二用户。
提供了用于调用虚拟代理的系统、方法和装置。
在一些实施例中,提供了一种装置,包括由一个或多个可执行指令编程为实现至少一个虚拟代理的至少一个处理器,所述至少一个处理器还被编程为:监听到在所述至少一个处理器上执行并使多方对话便利的消息通讯应用(messaging application)的用户输入;和响应于检测到所述用户输入中的触发器,将所述至少一个虚拟代理注入到由所述消息通讯应用便利的多方对话中。
在一些实施例中,触发器包括被指定用于调用所述至少一个虚拟代理的词或短语。在一些实施例中,用户输入包括通过至少一个键盘输入的文本输入,所述至少一个处理器被编程为监听从所述至少一个键盘向消息通讯应用所提供的文本输入。在一些实施例中,用户输入包括由至少一个自动语音识别(ASR)引擎识别为文本的用户语音,并且所述至少一个处理器被编程为监听从ASR引擎向消息通讯应用所提供的文本。在一些实施例中,用户输入包括触摸屏输入,并且触发器包括被指定用于调用所述至少一个虚拟代理的手势。在一些实施例中,用户输入包括键盘输入,并且触发器包括被指定用于调用所述至少一个虚拟代理的击键或击键的组合。在一些实施例中,所述至少一个处理器被编程为至少部分地通过使用与人们所用的消息通讯应用的客户端相同的接口而与所述消息通讯应用的服务器通信,来将所述至少一个虚拟代理注入到对话中。
在一些进一步的实施例中,由与至少一个虚拟代理相关的至少一个处理器执行一种方法,所述方法包括以下动作:监听到在所述至少一个处理器上执行并使多方对话便利的消息通讯应用的用户输入;和响应于检测到所述用户输入中的触发器,将所述至少一个虚拟代理注入到由所述消息通讯应用便利的多方对话中。
在一些实施例中,触发器包括被指定用于调用所述至少一个虚拟代理的词或短语。在一些实施例中,用户输入包括通过至少一个键盘输入的文本输入,并且监听用户输入包括监听从所述至少一个键盘向消息通讯应用所提供的文本输入。在一些实施例中,用户输入包括由至少一个自动语音识别(ASR)引擎识别为文本的用户语音,并且监听用户输入包括监听从ASR引擎向消息通讯应用所提供的文本。在一些实施例中,用户输入包括触摸屏输入,并且触发器包括被指定用于调用所述至少一个虚拟代理的手势。在一些实施例中,用户输入包括键盘输入,并且触发器包括被指定用于调用所述至少一个虚拟代理的击键或击键的组合。在一些实施例中,将所述至少一个虚拟代理注入到对话中包括通过使用与人们所用的消息通讯应用的客户端相同的接口而与所述消息通讯应用的服务器通信。
在一些进一步的实施例中,提供了其上编码有指令的至少一种计算机可读介质,当所述指令由至少一个处理器执行时,执行与至少一个虚拟代理结合使用的方法,所述方法包括以下动作:监听到在所述至少一个处理器上执行并使多方对话便利的消息通讯应用的用户输入;和响应于检测到所述用户输入中的触发器,将所述至少一个虚拟代理注入到由所述消息通讯应用便利的多方对话中。
在一些实施例中,触发器包括被指定用于调用所述至少一个虚拟代理的词或短语。在一些实施例中,用户输入包括通过至少一个键盘输入的文本输入,并且监听用户输入包括监听从所述至少一个键盘向消息通讯应用所提供的文本输入。在一些实施例中,用户输入包括由至少一个自动语音识别(ASR)引擎识别为文本的用户语音,并且监听用户输入包括监听从ASR引擎向消息通讯应用所提供的文本。在一些实施例中,用户输入包括触摸屏输入,并且触发器包括被指定用于调用所述至少一个虚拟代理的手势。在一些实施例中,用户输入包括键盘输入,并且触发器包括被指定用于调用所述至少一个虚拟代理的击键或击键的组合。
提供了用于虚拟代理的用户接口呈现的系统、方法和装置。
在一些实施例中,提供了一种装置,包括由一个或多个可执行指令编程为实现至少一个虚拟代理的至少一个处理器,所述至少一个处理器还被编程为将所述至少一个虚拟代理呈现为经消息通讯应用进行的多方对话中的参与者。
在一些实施例中,所述至少一个处理器被编程为以与一个或多个人参与对话相同的方式呈现所述至少一个虚拟代理。在一些实施例中,所述至少一个处理器被编程为以将所述至少一个虚拟代理与参与对话的一个或多个人相区分的方式呈现所述至少一个虚拟代理。在一些实施例中,消息通讯应用具有要在用户设备的显示屏上显示的视觉用户接口,并且所述至少一个虚拟代理对所述对话的贡献呈现在显示屏的第一部分,并且这一个或多个人的贡献呈现在显示屏的不同于第一部分的第二部分。在一些实施例中,消息通讯应用具有要在用户设备的显示屏上显示的视觉用户接口,并且所述至少一个虚拟代理对所述对话的贡献使用至少一个第一颜色被呈现,这一个或多个用户的贡献使用不同于所述至少一个第一颜色的至少一个第二颜色被呈现。在一些实施例中,消息通讯应用是基于文本的消息通讯应用。在一些实施例中,基于文本的消息通讯应用选择由以下各项构成的分组:短消息服务(SMS)、即时通讯(IM)和电子邮件。
在一些进一步的实施例中,由与至少一个虚拟代理相关的至少一个处理器执行一种方法,所述方法包括以下动作:将所述至少一个虚拟代理呈现为经消息通讯应用进行的多方对话中的参与者。
在一些实施例中,以与一个或多个人参与对话相同的方式呈现所述至少一个虚拟代理。在一些实施例中,以将所述至少一个虚拟代理与参与对话的一个或多个人相区分的方式呈现所述至少一个虚拟代理。在一些实施例中,消息通讯应用具有要在用户设备的显示屏上显示的视觉用户接口,并且所述至少一个虚拟代理对所述对话的贡献呈现在显示屏的第一部分,并且这一个或多个人的贡献呈现在显示屏的不同于第一部分的第二部分。在一些实施例中,消息通讯应用具有要在用户设备的显示屏上显示的视觉用户接口,并且其中所述至少一个虚拟代理对所述对话的贡献使用至少一个第一颜色被呈现,这一个或多个用户的贡献使用不同于所述至少一个第一颜色的至少一个第二颜色被呈现。在一些实施例中,消息通讯应用是基于文本的消息通讯应用。在一些实施例中,基于文本的消息通讯应用选择由以下各项构成的分组:短消息服务(SMS)、即时通讯(IM)和电子邮件。
在一些进一步的实施例中,提供了其上编码有指令的至少一种计算机可读介质,当所述指令由至少一个处理器执行时,执行与至少一个虚拟代理结合使用的方法,所述方法包括以下动作:将所述至少一个虚拟代理呈现为经消息通讯应用进行的多方对话中的参与者。
在一些实施例中,以与一个或多个人参与对话相同的方式呈现所述至少一个虚拟代理。在一些实施例中,以将所述至少一个虚拟代理与参与对话的一个或多个人相区分的方式呈现所述至少一个虚拟代理。在一些实施例中,消息通讯应用具有要在用户设备的显示屏上显示的视觉用户接口,并且所述至少一个虚拟代理对所述对话的贡献呈现在显示屏的第一部分,并且这一个或多个人的贡献呈现在显示屏的不同于第一部分的第二部分。在一些实施例中,消息通讯应用具有要在用户设备的显示屏上显示的视觉用户接口,并且所述至少一个虚拟代理对所述对话的贡献使用至少一个第一颜色被呈现,这一个或多个用户的贡献使用不同于所述至少一个第一颜色的至少一个第二颜色被呈现。
提供了用于提供输入到虚拟代理的系统、方法和装置。
在一些实施例中,提供了一种装置,包括由一个或多个可执行指令编程为实现至少一个虚拟代理的至少一个处理器,所述至少一个处理器还被编程为使用多方对话的记录来提供到所述至少一个虚拟代理的输入。
在一些实施例中,所述至少一个虚拟代理被编程为使用多方对话的记录来识别至少一个要执行的任务。在一些实施例中,所述至少一个处理器被编程以修改多方对话的记录以及使用修改后的记录来提供到所述至少一个虚拟代理的输入。在一些实施例中,修改多方对话的记录包括除去多方对话的至少一部分。在一些实施例中,所述至少一个虚拟代理被编程为:基于多方对话的记录来识别用户偏好信息;和通过考虑用户偏好信息来做出推荐。
在一些进一步的实施例中,由与至少一个虚拟代理相关的至少一个处理器执行一种方法,所述方法包括以下动作:使用多方对话的记录来提供到所述至少一个虚拟代理的输入。
在一些实施例中,多方对话的记录被用来识别至少一个要执行的任务。在一些实施例中,所述所述方法还包括修改多方对话的记录,其中修改后的记录被用来提供到所述至少一个虚拟代理的输入。在一些实施例中,修改多方对话的记录包括除去多方对话的至少一部分。在一些实施例中,所述方法还包括基于多方对话的记录来识别用户偏好信息;和通过考虑用户偏好信息来做出推荐。
在一些进一步的实施例中,提供了其上编码有指令的至少一种计算机可读介质,当所述指令由至少一个处理器执行时,执行与至少一个虚拟代理结合使用的方法,所述方法包括以下动作:使用多方对话的记录来提供到所述至少一个虚拟代理的输入。
在一些实施例中,多方对话的记录被用来识别至少一个要执行的任务。在一些实施例中,所述所述方法还包括修改多方对话的记录,其中修改后的记录被用来提供到所述至少一个虚拟代理的输入。在一些实施例中,修改多方对话的记录包括除去多方对话的至少一部分。在一些实施例中,所述方法还包括基于多方对话的记录来识别用户偏好信息;和通过考虑用户偏好信息来做出推荐。
提供了用于告知虚拟代理推荐的系统、方法和装置。
在一些实施例中,提供了一种装置,包括由一个或多个可执行指令编程为实现至少一个虚拟代理的至少一个处理器,所述至少一个虚拟代理被编程为:识别至少两个人之间的关系;至少部分地基于所述至少两个人之间的关系来为所述至少两个人做出推荐。
在一些实施例中,推荐涉及所述至少两个人要参加的社交聚会的至少一个方面。在一些实施例中,推荐涉及所述至少两个人要参加的社交聚会的位置。在一些实施例中,推荐涉及所述至少两个人要参加的活动的类型。在一些实施例中,所述至少两个人包括第一个人,并且所述至少一个虚拟代理被编程为至少部分地通过访问存储在第一个人的用户简档中的信息来识别所述至少两个人之间的关系。在一些实施例中,所述至少一个虚拟代理被编程为至少部分地通过访问收集自至少一个社交网络服务提供商的信息来识别所述至少两个人之间的关系。在一些实施例中,所述至少一个虚拟代理被编程为至少部分地通过查询至少一个第三人来识别所述至少两个人之间的关系。
在一些进一步的实施例中,由实现至少一个虚拟代理的至少一个处理器执行一种方法,所述方法包括以下动作:识别至少两个人之间的关系;至少部分地基于所述至少两个人之间的关系来为所述至少两个人做出推荐。
在一些实施例中,推荐涉及所述至少两个人要参加的社交聚会的至少一个方面。在一些实施例中,推荐涉及所述至少两个人要参加的社交聚会的位置。在一些实施例中,推荐涉及所述至少两个人要参加的活动的类型。在一些实施例中,所述至少两个人包括第一个人,并且识别所述至少两个人之间的关系包括访问存储在第一个人的用户简档中的信息。在一些实施例中,识别所述至少两个人之间的关系包括访问收集自至少一个社交网络服务提供商的信息。在一些实施例中,识别所述至少两个人之间的关系包括查询至少一个第三人。
在一些进一步的实施例中,提供了其上编码有指令的至少一种计算机可读介质,当所述指令由至少一个处理器执行时,执行用于实现至少一个虚拟代理的方法,所述方法包括以下动作:识别至少两个人之间的关系;至少部分地基于所述至少两个人之间的关系来为所述至少两个人做出推荐。
在一些实施例中,推荐涉及所述至少两个人要参加的社交聚会的至少一个方面。在一些实施例中,推荐涉及所述至少两个人要参加的社交聚会的位置。在一些实施例中,推荐涉及所述至少两个人要参加的活动的类型。在一些实施例中,所述至少两个人包括第一个人,并且识别所述至少两个人之间的关系包括访问存储在第一个人的用户简档中的信息。在一些实施例中,识别所述至少两个人之间的关系包括访问收集自至少一个社交网络服务提供商的信息。在一些实施例中,识别所述至少两个人之间的关系包括查询至少一个第三人。
提供了用于存储虚拟代理交互的记录的系统、方法和装置。
在一些实施例中,提供了一种装置,包括由一个或多个可执行指令编程的实现至少一个虚拟代理的至少一个处理器,所述至少一个处理器还被编程为存储所述至少一个虚拟代理与一个或多个用户之间的交互的接收凭据,其中接收凭据包括在所述交互期间由所述一个或多个用户向所述至少一个虚拟代理提供的至少一些信息。
在一些实施例中,所述至少一个处理器还被编程为:接收关于接收凭据的用户输入;和至少部分地基于所述用户输入来更新所述接收凭据。在一些实施例中,接收凭据包括所述至少一个虚拟代理所做出的推荐,并且更新所述接收凭据包括向接收凭据添加关于推荐的用户反馈。在一些实施例中,从第一用户接收用户输入,所述至少一个处理器还被编程为:从第一用户接收第一用户是否希望与不同于第一用户的一个或多个人共享用户输入中的信息的指示;和根据来自第一用户的所述指示来控制对基于用户输入所更新的接收凭据的一部分的访问权。在一些实施例中,从第一用户接收用户输入,所述至少一个处理器还被编程为至少部分地基于所述用户输入来更新第一用户的用户简档。在一些实施例中,用户输入是接收自第一用户的第一用户输入,并且其中所述至少一个处理器还被编程为:从不同于第一用户的第二用户接收关于接收凭据的第二用户输入;和至少部分地基于第二用户输入来更新所述接收凭据。在一些实施例中,所述一个或多个用户包括多个用户,所述至少一个虚拟代理包括分别与所述多个用户相关联的多个虚拟代理,并且所述多个虚拟代理被编程为基于由所述多个用户提供的输入来协调对接收凭据的至少一个更新。在一些实施例中,接收凭据还包括由所述至少一个虚拟代理向所述一个或多个用户提供的至少一些信息。
在一些进一步的实施例中,由与至少一个虚拟代理相关的至少一个处理器执行一种方法,所述方法包括以下动作:存储所述至少一个虚拟代理与一个或多个用户之间的交互的接收凭据,其中接收凭据包括在所述交互期间由所述一个或多个用户向所述至少一个虚拟代理提供的至少一些信息。
在一些实施例中,所述方法还包括:接收关于接收凭据的用户输入;和至少部分地基于所述用户输入来更新所述接收凭据。在一些实施例中,接收凭据包括所述至少一个虚拟代理所做出的推荐,并且更新所述接收凭据包括向接收凭据添加关于推荐的用户反馈。在一些实施例中,从第一用户接收用户输入,所述方法还包括:从第一用户接收第一用户是否希望与不同于第一用户的一个或多个人共享用户输入中的信息的指示;和根据来自第一用户的所述指示来控制对基于用户输入所更新的接收凭据的一部分的访问权。在一些实施例中,从第一用户接收用户输入,所述方法还包括至少部分地基于所述用户输入来更新第一用户的用户简档。在一些实施例中,用户输入是接收自第一用户的第一用户输入,并且所述方法还包括:从不同于第一用户的第二用户接收关于接收凭据的第二用户输入;和至少部分地基于第二用户输入来更新所述接收凭据。在一些实施例中,所述一个或多个用户包括多个用户,所述至少一个虚拟代理包括分别与所述多个用户相关联的多个虚拟代理,并且所述方法还包括基于由所述多个用户提供的输入来协调对接收凭据的至少一个更新。在一些实施例中,接收凭据还包括由所述至少一个虚拟代理向所述一个或多个用户提供的至少一些信息。
在一些进一步的实施例中,提供了其上编码有指令的至少一种计算机可读介质,当所述指令由至少一个处理器执行时,执行与至少一个虚拟代理结合使用的方法,所述方法包括以下动作:存储所述至少一个虚拟代理与一个或多个用户之间的交互的接收凭据,其中接收凭据包括在所述交互期间由所述一个或多个用户向所述至少一个虚拟代理提供的至少一些信息。
在一些实施例中,所述方法还包括:接收关于接收凭据的用户输入;和至少部分地基于所述用户输入来更新所述接收凭据。在一些实施例中,从第一用户接收用户输入,所述方法还包括:从第一用户接收第一用户是否希望与不同于第一用户的一个或多个人共享用户输入中的信息的指示;和根据来自第一用户的所述指示来控制对基于用户输入所更新的接收凭据的一部分的访问权。在一些实施例中,用户输入是接收自第一用户的第一用户输入,并且所述方法还包括:从不同于第一用户的第二用户接收关于接收凭据的第二用户输入;和至少部分地基于第二用户输入来更新所述接收凭据。
提供了用于在虚拟代理之间共享信息的系统、方法和装置。
在一些实施例中,提供了一种设备,包括:由一个或多个可执行指令编程的实现至少一个第一虚拟代理的至少一个处理器,所述设备是第一设备,所述至少一个第一虚拟代理被编程为:与在不同于第一设备的至少一个第二设备上执行的至少一个第二虚拟代理共享信息,其中所述至少一个第一虚拟代理与第一用户相关联,所述至少一个第二虚拟代理与第二用户相关联;和使用在所述至少一个第一虚拟代理与所述至少一个第二虚拟代理之间共享的信息来为第一用户和第二用户做出联合推荐。
在一些实施例中,所述至少一个第一虚拟代理被编程为与所述至少一个第二虚拟代理共享关于第一用户的信息。在一些实施例中,所述至少一个第一虚拟代理被编程为与所述至少一个第二虚拟代理共享第一用户的偏好信息。在一些实施例中,所述至少一个第一虚拟代理被编程为与所述至少一个第二虚拟代理共享第一用户的位置信息。在一些实施例中,与所述至少一个第二虚拟代理共享信息包括从所述至少一个第二虚拟代理接收关于第二用户的信息。在一些实施例中,所述至少一个第一虚拟代理还被编程为使用关于第一用户的当前信息来动态地更新关于推荐的接收凭据。在一些实施例中,推荐涉及第一用户要参与的社交聚会,所述至少一个第一虚拟代理被编程为使用第一用户的当前位置来动态地更新第一用户的估计到达时间。
在一些进一步的实施例中,由实现第一设备上的至少一个第一虚拟代理的至少一个处理器执行一种方法,所述方法包括以下动作:与在不同于第一设备的至少一个第二设备上执行的至少一个第二虚拟代理共享信息,其中所述至少一个第一虚拟代理与第一用户相关联,所述至少一个第二虚拟代理与第二用户相关联;和使用在所述至少一个第一虚拟代理与所述至少一个第二虚拟代理之间共享的信息来为第一用户和第二用户做出联合推荐。
在一些实施例中,与所述至少一个第二虚拟代理共享的信息包括关于第一用户的信息。在一些实施例中,与所述至少一个第二虚拟代理共享的信息包括第一用户的偏好信息。在一些实施例中,与所述至少一个第二虚拟代理共享的信息包括第一用户的位置信息。在一些实施例中,与所述至少一个第二虚拟代理共享信息包括从所述至少一个第二虚拟代理接收关于第二用户的信息。在一些实施例中,所述方法还包括使用关于第一用户的当前信息来动态地更新关于推荐的接收凭据。在一些实施例中,推荐涉及第一用户要参与的社交聚会,第一用户的当前位置被用来动态地更新第一用户的估计到达时间。
在一些进一步的实施例中,提供了其上编码有指令的至少一种计算机可读介质,当所述指令由至少一个处理器在第一装置上执行时,执行用于实现至少一个第一虚拟代理的方法,所述方法包括以下动作:与在不同于第一设备的至少一个第二设备上执行的至少一个第二虚拟代理共享信息,其中所述至少一个第一虚拟代理与第一用户相关联,所述至少一个第二虚拟代理与第二用户相关联;和使用在所述至少一个第一虚拟代理与所述至少一个第二虚拟代理之间共享的信息来为第一用户和第二用户做出联合推荐。
在一些实施例中,与所述至少一个第二虚拟代理共享的信息包括关于第一用户的信息。在一些实施例中,与所述至少一个第二虚拟代理共享的信息包括第一用户的偏好信息。在一些实施例中,与所述至少一个第二虚拟代理共享的信息包括第一用户的位置信息。在一些实施例中,所述方法还包括使用关于第一用户的当前信息来动态地更新关于推荐的接收凭据。在一些实施例中,推荐涉及第一用户要参与的社交聚会,并且其中第一用户的当前位置被用来动态地更新第一用户的估计到达时间。
附图说明
附图不一定是按比例绘制的。为清楚起见,不是每个组件都在每张附图中均被标记。
图1示出根据一些实施例的其中可以实现本文所公开的涉及虚拟代理的概念的说明性系统。
图2示出根据本公开内容的一些实施例的可以从其调用虚拟代理的多方对话的例子。
图3示出根据本公开内容的一些实施例的用于调用虚拟代理的说明性过程。
图4示出根据本公开内容的一些实施例的可被虚拟代理用来规划要执行的任务和/或执行任务的说明性过程。
图5示出根据本公开内容的一些实施例的用于存储虚拟代理交互的接收凭据的说明性数据存储设备。
图6示出根据本公开内容的一些实施例的其中在规划要执行的任务和/或在执行任务时多个虚拟代理相互交互的说明性系统。
图7示意地示出根据本公开内容的一些实施例的在其上可以实现本公开内容的各种发明性方面的说明性计算机。
具体实施方式
本发明人已经认识到并理解,传统虚拟代理被设计成按一对一方式与单独用户交互。这个范例假设:单个用户将调用虚拟代理以及提供输入到虚拟代理,虚拟代理将与该同一用户进行交互并为其执行任务。事实上,传统虚拟代理有时被称为虚拟“个人”助理,这突出了虚拟代理与用户之间的交互的一对一的本质。
本发明人还认识到并理解,一对一的范例对于一些小组活动可能不是理想的匹配,例如,在多个人共享信息和/或进行集体决定时。在说明性的场景中,两个或更多朋友的小组可以使用短消息服务(SMS)或即时通讯(IM)来计划聚会的具体内容(例如,在酒吧、餐厅、俱乐部等见面)。通过使用传统虚拟代理,一个用户将需要从该小组的其它成员收集偏好并将所收集的偏好转发到小组对话的上下文外部的虚拟代理。当虚拟代理返回推荐(例如对餐厅的推荐)时,用户将需要将推荐转发到该小组的其余成员。如果小组认可,则用户可以再次与小组对话的上下文外部的虚拟代理交互,以请求虚拟代理继续采用推荐(例如在所推荐的餐厅进行预约)。
因此,用户必须在小组对话(例如使用SMS或IM应用)和与虚拟代理的交互之间来回切换其注意力。这是笨拙和低效的,特别是在用户使用同一设备(例如移动电话)来与虚拟代理交互以及参加多方对话,但在任何给定时间点只有一个应用可运行在前台的情况(如在许多移动设备上的情况)下。另外,用户必须记住或以某种方式记录其它小组成员的偏好来将这些偏好转发到虚拟代理,这是低效并容易出错的。
I、虚拟代理参与多方对话。
根据一些实施例,可以从多方对话直接调用虚拟代理,而不需要任何参与者离开对话来调用虚拟代理,从而提供无缝的用户体验和改进的效率。例如,在经群组消息通讯应用(非限制性的例子包括SMS、IM、电子邮件和语音聊天)进行多方对话的一些实施例中,多方对话中的参与者可以在消息通讯应用的上下文中调用虚拟代理。然而,如下文更详细描述的,多方对话可以以经小组消息通讯应用的方式之外的方式进行,因为本公开内容涉及从多方对话调用虚拟代理的各方面不限制于在其中进行多方对话的任何特定介质。
在一些实施例中,多方对话中的任一个参与者可以调用虚拟代理。在其它实施例中,只有一些但不是全部的参与者可以这样做。作为一个非限制性的例子,只有以某种适当的方式与虚拟代理相关联的参与者可以调用虚拟代理。在下面详细讨论在其中参与者可关联于虚拟代理的各种方法。
在一些实施例中,虚拟代理从多方对话的调用可以使得虚拟代理被注入到对话中作为附加的参与者。在一些这样的实施例中,小组中的多个用户可以在多方对话的上下文内与虚拟代理交互,例如通过向虚拟代理提供输入来指定要由虚拟代理执行的任务。例如,虚拟代理可以被要求为小组进行推荐(例如对餐厅、商店、电影等的推荐),该小组中的多个用户可告知虚拟代理他们的偏好。在这种方式,不需要这些用户中的任一个作为小组与虚拟代理之间的专用渠道。
在其它实施例中,虚拟代理可以被注入到多方对话中以呈现该虚拟代理所执行任务的结果,即使执行该任务的请求是在对话的上下文外部发出的。例如,用户(其可以是或可以不是对话中的参与者)可以调用虚拟代理以收集信息和/或为对话中的多个参与者进行推荐。一旦被调用,虚拟代理可以将自身注入到对话中来呈现所请求的信息和/或对参与者的推荐。
尽管在各种说明性的实施例中,虚拟代理可以在调用时被注入到多方对话中,但是应当理解,本公开内容涉及对虚拟代理的调用的方面不受限于此。在另选的实施例中,虚拟代理可以从多方对话被调用,但可以在多方对话的上下文外部执行所请求的任务以及/或者以作为参与者被注入多方对话中之外的方式来呈现该任务的结果。例如,虚拟代理可以从多方对话被调用以进行餐厅预订并且可以以经由多方对话之外的方式来提供预订的细节。在以下所讨论的一些进一步的实施例中,虚拟代理也可以在多方对话的上下文外部被调用来为多个人进行推荐。
II、用于多个人的虚拟代理推荐。
根据一些实施例,虚拟代理可以被编程为使用关于多个人的信息来告知推荐,而不管这些人是否正在参与多方对话。例如,用户可以请求涉及多个人的推荐(例如对社交聚会或活动的推荐),虚拟代理可以被编程为在选择该推荐时考虑那些人的偏好和/或限制。这种偏好和/或限制可以涉及位置、排程、成本和/或推荐的任何其它方面。虚拟代理也可以使用关于这些人的其它类型的信息,诸如年龄、性别、职业、位置或可影响推荐的任何其它信息。
在其中虚拟代理被注入到多方对话中的一些实施例中,虚拟代理可以从在调用虚拟代理之前发生的对话的部分和/或在调用之后发生的部分收集信息。例如,在餐厅搜索的例子中,第一用户可以在调用虚拟代理之前表达对特定位置的偏好,而第二用户可以在虚拟代理已被注入到对话中后让虚拟代理将餐厅搜索限制到某个价格范围。另外,在执行任务时,虚拟代理可以被编程为从多个用户征求进一步的信息。
在一些实施例中,在进行推荐时,虚拟代理可以组合一个或多个用户的偏好信息的使用与从对话收集的信息的使用,但是在这个方面并不是所有的实施例都被限制,因为这些技术可以在一些实施例中单独使用。这些以及其它实施例在以下进行详细描述。
III、用于调用虚拟代理的技术。
虚拟代理可以以任何适当的方式被调用来为一个或多个人执行任务。根据一些实施例,过程可以监视通过消息通讯应用进行的对话和监听“触发器”,触发器可以是被指定用于调用虚拟代理的词或短语。在检测到触发器时,过程可以调用虚拟代理,例如通过将虚拟代理注入到对话中。
该监视对话的过程可以是消息通讯应用本身或者以一些合适的方式被给予对对话内容的一个或多个部分的访问权的一些其它过程。在一些实施例中,该过程可以在参与者通过其参与对话的用户设备上执行。在另选的实施例中,该过程可在服务器上执行,诸如处理与消息通讯应用相关联的通信流量的服务器,或对话内容的一个或多个部分被转发至其的单独服务器。
在一些进一步的实施例中,过程可以监听到消息通讯应用的用户输入并确定用户输入是否包括被指定用于调用虚拟代理的触发器。例如,该过程可被编程为监听来自对话参与者所使用的设备上的各种类型的输入设备(例如键盘、鼠标、触摸屏、硬件按钮等)的输入以检测所指定的触发器。在一些实施例中,该过程也可以被编程为通过监听由ASR引擎作为转录所获取的用户语音的结果而输出的文本来访问语音输入。在检测到指定的触发器(其可以是下述形式:击键、鼠标点击、触摸屏手势、按钮按压、说出或输入触发器词或短语等,或其它们的任何适当的组合)时,该过程可以调用虚拟代理,例如通过将该虚拟代理注入到通过消息通讯应用进行的对话中。
在一些进一步的实施例中,虚拟代理可以响应于接收自另一设备的输入而在设备上被调用。例如,具有虚拟代理能力的第一设备可以从第二设备接收通信并且当在该通信中检测到指定的触发器时调用虚拟代理。该通信可以经由消息通讯应用(例如SMS、IM、电子邮件、语音聊天等)、通过电话或者以任何其它合适的方式被接收。以这种方式,即使第二设备没有虚拟代理能力,第二设备的用户也可能能够利用第一设备的虚拟代理能力。
IV、虚拟代理的用户接口呈现。
根据一些实施例,虚拟代理可以被呈现为多方对话中的参与者。虚拟代理可以与对话上下文中的一个或多个其它参与者进行交互,例如通过提示输入信息和/或提供信息。在一些实施例中,虚拟代理的贡献(例如提示、信息等)可以以与来自其它参与者的贡献相同的方式被呈现。例如,虚拟代理可以与用户名相关联,虚拟代理的贡献可以用该用户名标记。在另选的实施例中,虚拟代理的贡献可以以将虚拟代理与其它参与者相区分的方式被呈现。例如,虚拟代理的贡献可以在视觉显示器的一个区域中呈现,而其它参与者可以被呈现在显示器的不同区域中。将虚拟代理与其它参与者相区分的其它方式也是可能的,并且一些附加的说明性例子将在下面更详细地讨论。
V、用于提供输入到虚拟代理的技术。
根据一些实施例,虚拟代理可以被编程为在规划要执行的任务和/或在执行该任务时使用多方对话的记录。例如,在一些实施例中,虚拟代理可以被编程为分析在虚拟代理被调用之前参与者在对话中(例如在IM会话期间)传送了什么,来确定或解释虚拟代理被要求为参与者做什么。作为一个非限制性的例子,四个朋友的分组可以已经讨论星期五在哪里见面吃晚餐,并且虚拟代理可以被编程为从讨论中推断出在推荐星期五晚上有四人桌可用的餐厅的任务。在一些进一步的实施例中,虚拟代理可以被编程为从对话历史收集可与所请求的任务相关的信息。例如,在上述餐厅推荐的例子中,虚拟代理可以被编程为分析对话历史来确定参与者是否指示了对位置、时间、烹饪类型、价格范围等的任何偏好或者可以告知虚拟代理的推荐的任何其它事情。如上所描述的,在一些实施例中,虚拟代理还可以在规划推荐时使用一个或多个参与者的偏好信息。
虚拟代理可以使用多方对话的记录,而不管虚拟代理是否被注入到该对话中。在一些实施例中,虚拟代理可以被注入到对话中以与一个或多个参与者进行交互,例如提示输入附加信息以进一步限定所请求的任务和/或向对话中的参与者提供任务的推荐或结果。在另选的实施例中,虚拟代理可以完全在对话上下文的外部(例如在对话已经结束之后)执行所请求的任务。
此外,虚拟代理可以使用多方对话的记录,而不管虚拟代理是否是由对话的参与者调用。在一些实施例中,虚拟代理可以由没有参与对话的用户调用来为该对话中的一个或多个参与者进行推荐。作为一个非限制性的例子,用户可以向虚拟代理提供转发给该用户的两个或更多个其它人之间的电子邮件串。其它类型的对话记录(例如SMS串、IM日志、语音呼叫文字记录等)也可以被使用,因为本公开内容并不限制于与任何特定类型的对话记录一起使用。
根据一些实施例,虚拟代理可以被编程为在规划要执行的任务和/或在执行该任务时使用用户的活动历史。用户在调用虚拟代理之前的活动可以向虚拟代理提供上下文信息。例如,在一些实施例中,虚拟代理可以被编程为分析用户最近(例如在调用虚拟代理之前的5分钟、10分钟、15分钟、30分钟、1小时等之内)访问的内容以确定或解释虚拟代理可以如何帮助用户。作为一个非限制性的例子,在被用户调用来做出餐厅推荐时,虚拟代理可以分析用户最近访问的餐厅评论以试图推断该用户可能对什么类型的食物感兴趣。虚拟代理也可以考虑其它类型的用户活动,诸如该用户进行特定的日历约会、呼叫特定的熟人、进行特定的购买等。
根据一些实施例,虚拟代理可以被编程为使用现有虚拟代理交互的记录,以便于规划要执行的任务和/或执行该任务。在说明性的场景中,用户可能希望调用虚拟代理来修改先前执行的任务的一个或多个方面。例如,用户可能先前调用了同一虚拟代理或不同虚拟代理来推荐某个邻近区域中的餐厅,并且可以稍后希望改变为不同的邻近区域,同时所有其它细节(例如日期、时间、食物的类型、参加者列表等)保持不变。相应地,在一些实施例中,用户可以向虚拟代理提供先前交互的记录,连同改变位置的附加指令。以这种方式,用户可能能够利用与虚拟代理的现有交互并且不需要重新创建或手动地输入要提供给虚拟代理的所有信息。
应当理解,虚拟代理可以被编程为分析先前交互的任何合适类型的记录,诸如虚拟代理和一个或多个用户之间的完整讨论线程,或含有虚拟代理的先前推荐和/或一条或多条重要信息的精简版。可被存储并用来“重新启动”虚拟代理的记录类型的例子在下文中更详细地描述。
VI、用于告知虚拟代理推荐的技术。
根据一些实施例,虚拟代理可以被编程为使用至少两个人之间的关系来告知推荐。例如,响应于为多个人做出推荐的请求,虚拟代理可以被编程为确定这些人是否是朋友、亲戚、商务熟人等,并使用所确定的关系来告知推荐的一个或多个方面。例如,在以上讨论的餐厅搜索的例子中,虚拟代理可以被编程为基于所确定的关系来选择适当类型的餐厅,诸如精致的餐厅用于商务晚餐,浪漫餐厅用于丈夫和妻子的晚餐,不新潮或吵闹的餐厅用于母亲和儿子的晚餐等。
根据一些实施例,虚拟代理可以被编程为使用一个或多个人的位置信息以告知推荐。作为一个非限制性的例子,虚拟代理可以被编程为获得小组中多个人的位置信息(例如全球定位系统(或GPS)坐标),并使用该信息来以任何合适的方式选择聚会场所,例如位于中央位置的聚会场所,对于尽可能多的人方便地定位的聚会场所(例如,基于聚会场所是否至多距小组中每个人一阈值距离所确定的)等。
根据一些实施例,虚拟代理可以被编程为使用与调用该虚拟代理的用户之外的人有关的信息来告知推荐。可以使用与这样的人有关的任何信息,其实例包括爱好、厌恶、身体特性、个性、教育、职业等,或它们的任何适当组合。例如,用户可以调用虚拟代理来为他的母亲推荐生日礼物,并且可以提供关于他母亲的一条或多条信息(诸如年龄、偏好、爱好等)来作为到虚拟代理的输入。
根据一些实施例,虚拟代理可以被编程为使用与调用该虚拟代理的用户之外的人有关的位置信息来告知推荐。作为一个非限制性的例子,用户可以在去朋友家的宴会的路上并可以让虚拟代理找出他的当前位置(例如基于当前GPS坐标)和目的地(例如基于朋友的家庭地址)之间酒行。
虚拟代理可以以任何合适方式访问与一个或多个相关人有关的信息。例如,在一些实施例中,这种信息可以由调用虚拟代理的用户提供给该虚拟代理。另选地,虚拟代理可以被编程为从一个或多个其它源获得这样的信息。例如,在一些实施例中,虚拟代理可以被编程为访问本地存储在用户设备上的信息,诸如日历应用所存储的排程和联系人信息、虚拟代理或一些其它应用所存储的用户偏好信息、web浏览历史等。在一些实施例中,虚拟代理可以进一步编程为经一个或多个网络访问来自远程设备的信息。例如,在一些实施例中,偏好信息可以收集自第三方服务提供商(例如允许用户查看产品和/或服务的社交网站)。
根据一些实施例,虚拟代理可以被编程为维护用户的简档。该简档可以存储可由虚拟代理在与用户的交互中使用的信息。可以存储任何合适类型的信息,诸如从虚拟代理与用户的现有交互导出的信息(例如用户所表达的偏好、用户所作出的决定、用户进行某些类型的决定所请求的信息等等)、收集自第三方服务提供商的信息、或者在为用户规划要被执行的任务或在执行该任务时对虚拟代理可能有用的任何其它信息。作为一个非限制性的例子,用户可以授权虚拟代理(例如通过提供必要的凭证,诸如用户名和密码)来通过第三方服务提供商(例如等)从用户的账户拉取信息。虚拟代理可以基于从这样的帐户检索到的信息(例如用户所写的关于餐厅、商品、电影等的评论)来学习用户的偏好并相应地更新用户的简档。为了确保简档中信息的准确性,在一些实施例中,可以允许用户查看虚拟代理所输入的更新并进行任何所期望的调整。
VII、用于存储虚拟代理交互的记录的技术。
本发明人还认识到并理解,传统系统并不维护虚拟代理和用户之间交互的任何记录。一经完成了任务,用户简单地暂停或退出虚拟代理。不保存将任务识别为与虚拟代理有关的记录。例如,不保存指示作出了特定推荐的虚拟代理的记录,也不保存用于在规划和/或执行任务时虚拟代理和用户之间交换的信息的记录。
根据一些实施例,记录可以对虚拟代理和一个或多个用户之间的交互而被存储。结果,如果用户在将来的某个时间希望记起与虚拟代理的交互的一些方面,则该交互的记录可以被识别和检索。在说明性的场景中,用户可能希望向朋友转发虚拟代理的推荐。在另一个说明性的场景中,用户可能希望执行类似的任务,但带有一个或多个变化。例如,用户可能希望为同一小组的朋友在与先前聚会相似的时间和地点找到餐厅,除了小组想要尝试不同的烹饪类型。具有现有交互的记录可以便于虚拟代理进行推荐。例如,在一些实施例中,用户可以修改先前交互的记录(例如,通过添加、修改和/或除去信息)并提供修改后的记录到虚拟代理以请求新的推荐,而不必重新创建交互或以其它方式手动输入期望被提供给虚拟代理的所有信息。作为一个非限制性的例子,用户可以除去记录的末端(terminal)部分以在任何期望的时点“重新起动”与虚拟代理的交互。
现有交互的记录可以是任何适当的形式。根据其中虚拟代理被注入到对话中的一些实施例,可以存储完整讨论线程(例如SMS串、IM日志、电子邮件串、语音聊天文字记录等),包括由每个人类参与者以及虚拟代理贡献的任何事情。这样的历史可以通过经其进行对话的消息通讯应用存储,分别通过虚拟代理存储,或者通过一些其它合适的过程存储。
应当清楚,涉及存储与虚拟代理的交互的记录和/或虚拟代理动作的记录的实施例不被限制于与多方对话甚或多方虚拟代理动作一起使用。在一些实施例中,可以存储单个用户与虚拟代理之间交互的记录和/或用于单个用户的虚拟代理动作的记录。
根据一些实施例,作为对与虚拟代理的完整交互历史的附加或替代,还可以存储接收凭据。该接收凭据可包括与虚拟代理和一个或多个用户之间的交互有关的任何合适的信息。在一个例子中,接收凭据可以将交互识别为与虚拟代理有关。另外,接收凭据可以包括其它识别信息(例如交互的日期和时间、参与交互的至少一个用户的用户名或标识符等)和交互结果(例如虚拟代理所作出的推荐)的指示。在一些进一步的实施例中,接收凭据可以包括至少一个人所提供的信息,诸如虚拟代理所作出的推荐的评论。可以由可能参与了或者可能没参与导致推荐的交互的人提供评论。其它类型的信息也可以存储在接收凭据中,因为本公开内容在这方面不受限制。
根据其中虚拟代理交互的接收凭据与完整交互历史分开存储的一些实施例,可以在接收凭据与完整交互历史之间创建链接以指示接收凭据和完整历史都与和虚拟代理的同一交互有关。作为一个非限制性的例子,虚拟代理可以将交互的接收凭据与到对话历史的链接一起存储,其中该对话历史由通过其进行该交互的消息通讯应用分开存储。这可以便于用户检索与和虚拟代理的过往交互有关的信息。例如,在一些实施例中,用户能够搜索接收凭据以识别特定的交互并使用与所识别的接收凭据一起存储的链接来检索对应的完整对话历史。因为完整对话历史可以相比接收凭据包含更多噪声(即不相关的信息),搜索接收凭据可以是更加高效和/或准确的。然而,并不是所有的实施例在这方面都受限制,并且作为对搜索接收凭据的附加或替代,一些实施例还可以使能搜索完整对话历史。
根据一些实施例,虚拟代理交互的接收凭据可以被用于向相关的人传达信息。例如,用户可以与虚拟代理交互来为一个或多个人请求推荐(例如对社交聚会的推荐),并且可以给予每个相关的人对交互的接收凭据的访问权来告知他推荐的特性(例如位置、时间、着装要求、参加者列表等)。这可以通过任何合适的方式完成,例如通过将接收凭据的副本发送到这个人,通过将到接收凭据的链接发送到这个人,或者以任何其它合适的方式。
在一些进一步的实施例中,接收凭据中所存储的信息可被实时更新以使一个或多个人获悉一个或多个正在进行的活动的状态。例如,在以上讨论的餐厅搜索的例子中,估计到达时间(ETA)可以为一个或多个参加者维护并且可以对于可以(尽管不是必须)也是参加者的人可用。任何参加者的ETA可以至少部分地基于参加者的当前位置和虚拟代理所推荐的餐厅的位置来计算。以这种方式,任何参加者可以通过调用最新的接收凭据副本来查出何时见到另一参加者。
上述餐厅的例子仅仅是说明性的,因为ETA可以用在任何合适的上下文中(例如商务会议、课堂、聚会等)。此外,ETA仅仅是可在接收凭据中更新的有用信息的一个例子。作为对ETA的附加或替代,还可以存储和更新其它类型的信息。这种信息的非限制性的例子包括位置信息(例如会议的会议房间号)、参加者状态信息(例如谁接受或拒绝了参加会议的邀请)、天气信息等。
此外,ETA和/或关于虚拟代理交互的其它有用信息可以以除了经由接收凭据之外的其它方式被存储和更新,因为本公开内容的关于更新内容的方面不被限制如此。
VIII、多个虚拟代理之间的协作。
根据一些实施例,多个虚拟代理可以在规划要执行的任务和/或在执行该任务时彼此交互。例如,在一些实施例中,每个虚拟代理可与小组中的不同用户相关联,并且可以在与相应用户相关联的不同设备上执行。以这种方式,每个虚拟代理可以具有对关于各个用户的各种类型的信息的访问权,这些信息诸如联系人信息(例如物理地址、电话号码、电子邮件和/或其它虚拟地址等)、位置信息(例如当前位置、最近访问的位置,例如基于时间的阈值长度所确定的、频繁访问的位置,例如通过在某个时间间隔期间的访问的阈值数量所确定的,等等)、偏好信息(例如,从活动历史、评论等搜集到的)、和/或任何其它合适的信息。
在一些实施例中,虚拟代理可以被编程为在各个用户所设置的约束内彼此共享信息。这些约束可以是出于隐私原因或任何其它原因而建立的。例如,用户可能希望与不同小组的人共享不同类型的信息。在一些实施例中,用户可以使某些信息(例如偏好和/或位置信息)对于小组可用——仅当该小组的所有成员属于受信任的朋友圈时,或者通过应用任何其它期望的约束。
在一些进一步的实施例中,虚拟代理可以被编程为在规划要执行的任务和/或在执行该任务时相互合作,而不管虚拟代理彼此共享多少信息。例如,在进行推荐时,虚拟代理可以被编程为彼此协商以基于各个用户的偏好和/或约束来达成折衷。在进行这种协商时,虚拟代理可以向其它虚拟代理做出提议,或者接受或拒绝由另一虚拟代理作出的提议,这会或者不会向其它虚拟代理泄露该虚拟代理用来做出、接受或拒绝该提议的隐含信息。
在一些进一步的实施例中,虚拟代理可以被编程为在规划要执行的任务和/或在执行该任务时相互合作,而不管该任务是否由多方对话引起。例如,在一些实施例中,与第一用户相关联的虚拟代理可以(例如在第一用户的请求时)从与第二用户相关联的虚拟代理获得关于第二用户的信息。任何合适类型的信息可以以这种方式来获得。作为一个非限制性的例子,与第一用户相关联的虚拟代理可以从与第二用户相关联的虚拟代理请求关于第二用户的位置和/或ETA信息,即使没有一个虚拟代理曾帮助安排第一和第二用户之间的会议。
根据一些实施例,在不同设备上运行的多个虚拟代理可以在规划要执行的任务和/或在执行该任务时彼此交互,而不管该任务是为单个用户还是为多个用户执行的。作为一个非限制性的例子,在用户设备上运行的虚拟代理可以与在服务器(例如在云中)上运行的虚拟代理交互,例如通过将信息转发到服务器侧虚拟代理以及从服务器侧虚拟代理接收推荐。该服务器侧虚拟代理可以与单个客户端侧虚拟代理(例如当为单个用户进行推荐时)或多个客户端侧虚拟代理(例如当为多个用户进行推荐时)交互,因为本公开内容关于多个虚拟代理彼此协作的各方面并不被限制于虚拟代理之间的任何特定的布置。
IX、说明性实施例的详细讨论。
应当理解,上面介绍的并在下面更详细地讨论的概念可以用多种方式中的任何一种来实现,因为所公开的概念不限制于实现的任何特定方式。以下描述一些说明性的实现。然而,本文所公开的的主题不限制于各附图中所示出并在以下描述的特定实现,因为其它实现也是可能的。提供下面的具体实现和应用的例子仅出于说明的目的。
图1示出其中可以实现本文所公开的的概念的说明性的系统100。系统100仅为说明性的,因为本文所公开的的概念不被限制于在系统100上实现,并且可以在任何适当的计算机系统上实现。系统100包括电子设备110,其可以是移动电话、平板计算机、膝上型计算机、台式计算机、或任何其它计算设备。系统100还可以包括任何数量的附加电子设备,设备110可以与它们进行通信。在图1所示的例子中,系统100包括移动电话130和平板计算机140,但是这些设备仅仅是说明性的。
电子设备110、移动电话130以及平板计算机140可以被配置为经由一个或多个网络150彼此进行通信。例如,电子设备110可以包括被配置为经由网络150发送和/或接收数据的一个或多个通信接口112。可以使用任何合适的通信协议或通信协议组合,因为本公开内容的各方面不被限制于通过任何特定的网络实现而使用,并且可以通过任何类型的网络被使用。
在图1所示的例子中,电子设备110可以被配置为经由一个或多个用户接口114从用户102接收输入和/或向用户102提供输出。用户接口114可以包括键盘接口、触摸屏接口、语音接口、它们的任何组合(例如多模式接口)、和/或任何其它用户接口。例如,可以使用触摸屏接口来呈现各种用户接口元件(诸如按钮、菜单、滚动条等),并且可以被配置为识别各种触摸屏手势。触摸屏接口还可以用来仿真键盘接口。作为另一个例子,用户接口114可以包括用于捕获用户语音的麦克风,并且所捕获的语音可以由被配置为将输入语音转换成文本的自动语音识别(ASR)引擎(未示出)来处理。作为另一个例子,用户接口114可以包括扬声器来播放音频(诸如记录或合成的语音)。
在包括语音接口的一些实施例中,ASR引擎可以位于电子设备110上,使得可以在本地执行语音识别处理。在其它实施例中,ASR引擎可以从电子设备110远程定位。例如,ASR引擎可以经由网络150或一些其它合适的通信介质接收来自电子设备110的输入语音,并可以以相同或不同的通信介质将识别结果发送到电子设备110。在一些进一步的实施例中,电子设备110可以与一个或多个本地ASR引擎以及一个或多个远程定位的ASR引擎相关联,其中语音输入的一些部分一个或多个本地ASR引擎处理并且语音输入的一些其它部分由一个或多个远程定位的ASR引擎处理。这种分布式的ASR系统的例子是本领域技术人员已知的。
在一些实施例中,ASR引擎可以被配置为通过使用一个或多个固定或动态生成的语法和/或词汇表来识别语音输入。该语法和/或词汇表可以是一般的或依赖于上下文的(例如,特定于语音输入所针对的应用)。在另选的实施例中,ASR引擎可以被配置为识别自由形式的语音输入,以允许用户以自然方式来与应用交互。例如,ASR引擎可以被配置为通过使用自然语言理解(NLU)技术(例如使用统计NLU模型)来识别用户说出的任何事情。虽然本文描述了各种自然语言处理和ASR技术,但应当理解,这些技术仅是说明性的,因为任何合适的自然语言处理和ASR技术和它们的组合可以结合本公开内容的各种实施例使用。
用户接口114可以以一个或多个不同的模式(诸如视觉、听觉和/或触觉)向用户提供输出。例如,用户接口114可能能够向用户显示文本和/或图形图像。作为另一个例子,用户接口114可能能够呈现可听信号(例如经合成和/或记录的语音)和/或触觉信号。可以使用输入和/或输出模式的任何合适的组合,因为本公开内容的各方面不被限制于与用户交互的任何特定模式。
在图1所示的例子中,电子设备110包括操作系统116和一个或多个应用118。一些应用118可以被本地安装在电子设备110上。作为一个非限制性的例子,日历应用可以在电子设备110上本地执行并可以允许用户存储关于事件和/或约会的排程信息。与本地执行的应用相关联的数据可以本地存储在电子设备110上,例如,作为用户数据120的一部分。另选地,由应用处理的数据的一些或全部可以远程地储存,例如存储在可经由网络150访问的网络存储设备160。
在一些实施例中,应用118可以包括由一个或多个远程计算机主控但可由用户经电子设备110访问的应用。例如,用户可以使用在电子设备110上运行的web浏览器来访问由一个或多个远程服务器170主控的基于web的应用(例如,基于web的电子邮件应用或其它类型的基于web的应用)。作为另一个例子,远程访问协议可允许用户经由在电子设备110上本地呈现的用户接口来与在远程服务器170上运行的应用交互。
在一些进一步的实施例中,电子设备110可以包括被配置为确定电子设备110的当前位置的位置传感器122。这种位置信息可以以多种不同的方式使用。例如,其可以由地图应用使用,地图应用被编程为在地图上显示电子设备110的当前位置以对当前位置的近邻内的餐厅、商店、景点等或者出于任何其它合适的目的来进行推荐。位置传感器122可以是被配置为确定电子设备110的当前位置的GPS坐标的GPS传感器、或任何其它类型的位置传感器。所提及的位置传感器和其可能的用途仅仅是说明性的的,因为其它类型的传感器和/或其用途也是可能的。
在一些实施例中,电子设备110可存储用户数据120。可以存储任何用户数据,其例子包括联系人信息(例如电话号码、物理地址、电子邮件地址等)、日历信息(例如约会信息、事件信息、生日等)、用户偏好信息(例如食品、电影、音乐等偏好)、媒体内容信息(例如音乐、电影、照片等)、行为历史信息(例如web浏览历史、过往购买等)、位置信息(例如当前位置、家庭位置、工作位置等),或其它适当的信息。在一些实施例中,用户数据120可以与电子设备110的特定用户相关联。例如,电子设备110可以主要由单个用户(例如用户102)使用,使得只有一组用户数据可以被维护。另选地,电子设备110可以被多个用户共享,并且为每个用户维护单独一组用户数据。
在一些实施例中,至少一些用户数据120可以从电子设备110被远程存储在可经由网络150访问的位置。例如,至少一些用户数据120可以被存储在从电子设备110可访问的网络存储设备160(例如在云中)中或者存储在任何其它合适的设备上。然而,应当理解,用户数据120可以存储在任何一个或多个合适的位置,因为本公开内容的各方面不被限制于任何特定的数据存储方式。
在图1所示的实例中,电子设备110还包括虚拟代理124。虚拟代理124可以被编程为执行本文所描述的任何功能。例如,虚拟代理可以被编程为帮助用户执行许多任务中的任何任务(例如发送消息、进行呼叫、启动应用、从Web访问信息等)。在执行任务时,虚拟代理124可以经由用户接口114来与用户102交互。虚拟代理124还可以与操作系统116和/或一个或多个应用118交互,访问用户数据120,和/或从传感器(诸如位置传感器122)获得信息。
在一些实施例中,虚拟代理124可以被实现为本地驻留在电子设备110上的应用。在这样的实施例中,虚拟代理124可以使用通信接口112经由网络150来与一个或多个其它设备(例如移动电话130、平板计算机140等)通信,从网络存储设备160访问信息,和/或与一个或多个服务器170通信。在其它实施例中,虚拟代理124可以在一个或多个远程计算机(例如服务器170)上执行并可以经由web接口、远程访问协议、或某个其它合适的技术从电子设备110访问。在一些进一步的实施例中,虚拟代理可以是分布式的,并且可以部分地在设备110上执行、部分地在一个或多个远程计算机上执行。
应当理解,不是系统100中的每个设备都可以包括虚拟代理。在一些实施例中,虚拟代理可以从不具有虚拟代理能力的设备的用户接收输入或向该用户提供输出。例如,其设备不具有虚拟代理能力的第一用户可以通过使用传统通信技术(诸如短消息服务(SMS)、即时通讯(IM)、电子邮件、电话呼叫等)来与第二用户通信。运行在第二用户的设备上的虚拟代理可以获取对第一和第二用户之间的对话的访问权,例如通过访问用户之间交换的消息和/或通过将虚拟代理自己的消息注入到对话中。以这种方式,第一用户能够与虚拟代理交互并被认为是虚拟代理的“用户”,即使第一用户的设备不具有虚拟代理能力。
在一些实施例中,虚拟代理124可以与被假定主要具有单个用户的设备相关联(例如移动电话)。例如,可以假定电子设备110将由单个用户(例如用户102)排他使用,虚拟代理124可以通过与电子设备110相关联(例如被安装在电子设备110上或者与识别电子设备110的标识符相关联)来与该特定用户相关联。
另选地,可以假定电子设备110将由多个用户共享。在这样的实施例中,虚拟代理124可以以多种不同的方式支持该设备的多个用户。例如,在一些实施例中,虚拟代理124可以一般地支持不同的用户(例如不考虑用户的身份)。在其它实施例中,虚拟代理124可以被编程为识别登入的用户并使用与该用户有关的信息(例如来自对应的用户简档的信息)来做出决定。以这种方式,虚拟代理124可以在不同时间随不同用户调整其动作,并且可以在任意给定时间与特定用户(例如通过电子设备110上的特定用户帐户或简档所识别的)相关联。在另一个实施例中,每一个用户可以由不同的虚拟代理支持,该不同的虚拟代理可以是同一个软件的不同实例或不同软件。
在一些进一步的实施例中,虚拟代理124可以直接与用户相关联,而不管该用户从其调用虚拟代理124的特定设备。例如,虚拟代理124可以与识别特定用户的标识符相关联。还可以使用将虚拟代理124与设备和/或用户相关联的其它方式,因为本公开内容并不被限制于在这方面使用任何特定的技术。
上面仅出于说明的目的描述了系统100的各种组件。本文所公开的概念可以通过使用任何合适的设备或设备组合而以任何适当的方式实现,并且不需要任何特定的组件或组件布置。
图2示出根据本公开内容的一些实施例的可以从其调用虚拟代理的多方对话的例子。在该例子中,两个用户A和B通过消息通讯应用(例如SMS或IM)参与对话来讨论去哪吃晚餐。用户A对对话的贡献标记为A1-4,用户B的贡献标记为B1-4。由用户A调用虚拟代理来帮助找到餐厅,虚拟代理的贡献被标记为V1-5。
在图2所示的例子中,通过用户A在A1问候用户B、并且用户B在B1询问“我们今晚去哪吃饭?”而开始对话。用户A没有想到具体的餐厅,并且希望向虚拟代理询问推荐。在传统系统中,用户A将需要从与用户B的对话切换走注意力以调用虚拟代理。相比而言,根据本公开内容的一些实施例,用户A可以在同一对话内调用虚拟代理。在图2所示的示例中,用户A在A3通过说出或输入指定的词或短语(诸如“让我们问问智囊。”)来调用虚拟代理。结果,虚拟代理被注入到该对话中来与用户A和B交互。
可以使用任何合适的词或短语来在对话内调用虚拟代理,因为此处所描述的技术在这方面不受限制。例如,可以期望使用较短的词或短语,使得用户很容易说出或输入该词或短语。而且,可以期望使用用户易于记住的与众不同的词或短语。此外,可以期望使用不常见的词或短语以减小用户将在对话期间由于另一原因而使用相同的词或短语的可能性。
在另选的实施例中,用户可以以除说出或输入指定的词或短语之外的一些方式来调用虚拟代理。可能的触发动作的例子包括但不限制于指定的击键或击键组合、在图形用户接口的指定部分处的鼠标点击、指定的触摸屏手势,指定的按钮按压等。
在一些进一步的实施例中,虚拟代理可以在后台运行并监视多方对话以确定该虚拟代理是否可能能够帮助参与者获得特定信息和/或做出决定。当虚拟代理确定其可能能够帮助参与者时,该虚拟代理可以主动提示参与者中的一个或多个。例如,在“听到”用户B说“我们今晚去哪吃饭?”时,虚拟代理可以确定它可能能够用关于餐厅的信息来帮助参与者,并可以通过简要的问题“查找餐厅?”来将自身注入到对话中——尽管没有明确调用该虚拟代理。作为一种选择,虚拟代理可以在用户屏幕上单独弹出,而不是直接进入多方对话中。在这些类型中的任何类型的实施例中,用户可能能够对于特定对话禁用虚拟代理(例如通过选择“不要打扰”选项)。
在其中虚拟代理监视多方对话以确定其是否可能能够帮助参与者的实施例中,虚拟代理可以使用任何适当的技术来分析多方对话的至少某一部分。以下更详细地讨论一些使用自然语言处理技术的非限制性的例子。
根据一些实施例,虚拟代理可以由远程设备的用户来调用,即使该远程设备不具有虚拟代理能力并且该用户不直接关联到该虚拟代理。例如,在图2所示的例子中,作为从用户A的设备接收到消息“让我们问问智囊”的结果,虚拟代理可以在用户B的设备上被调用。以这种方式,与用户B进行通信的任何用户可能能够调用虚拟代理,即使这样的用户不具有带虚拟代理能力的设备并且不以其它方式与虚拟代理相关联。
在一些实施例中,虚拟代理上可以在从两个用户远离的服务器(例如图1所示的服务器170中的一个或多个)上被调用。例如,在其中多个人通过消息通讯应用(例如SMS、IM、电子邮件、语音聊天等)彼此谈话的实施例中,可以在处理与对话相关联的通信流量的一个或多个服务器上调用虚拟代理,以使得该虚拟代理具有对在对话期间所交换的一些或全部通信(例如消息)的访问权。在一些进一步的实施例中,可以在从消息通讯客户端、消息通讯服务器和/或任何其它合适的源接收一些或全部的对话内容的单独服务器上调用虚拟代理。在这些中的任一个实施例中,虚拟代理可以与对话中的单个用户(例如用户B)相关联,但对话中的任何其它参与者可以调用该虚拟代理而不直接与该虚拟代理相关联。用户可以通过与消息通讯应用结合或独立地订购虚拟代理服务、或者以任何其它合适的方式来与虚拟代理相关联,因为本公开内容的各方面在这一点上不受限制。
回到图2所示的例子,虚拟代理一旦被调用,就可以向用户呈现为多方对话中的参与者。例如,虚拟代理可以提示用户输入信息,例如通过提出问题,诸如在V1的“找餐厅?”、在V2的“哪种食物?”、在V4的“想要他们的信息?”和在V5的“还有其它的吗?”。另外,虚拟代理可以用信息来响应用户。在图2所示的例子中,该信息包括推荐(诸如在V3的“市区James街上很酷的新场所”)以及与推荐有关的进一步信息,诸如在V5的被推荐餐厅的名字、地址和电话号码。
在一些实施例中,对话中的虚拟代理的贡献(例如提示、信息等)可以以与来自人类参与者的贡献相同的方式被呈现。例如,虚拟代理可以与用户名(例如“智囊”)相关联,虚拟代理所“说出”的任何事情可以用该用户名标记。因此,虚拟代理和一个或多个用户之间的说明性交互可以呈现如下:
用户A:嘿,老兄。
用户B:我们今晚去哪吃饭?
用户A:让我们问问智囊。
智囊:找餐厅?
用户A:是的。
智囊:哪种食物?
用户B:寿司。
智囊:市区James街上很酷的新场所。
用户B:我们需要预订吗?
智囊:不用。想要他们的信息?
用户A:当然。
智囊:Sushi World,5James St,Boston,MA 55555,617-555-1212。就是这样。还有其它的吗?
用户B:没有,谢谢智囊!
在其中虚拟代理被呈现为对话中的参与者的实施例中,虚拟代理的贡献可以以将该虚拟代理与其它参与者相区分的方式被呈现。这可以以任何适当的方式进行,因为本文所描述的技术在这方面不受限制。例如,在图2所示的例子中,人类参与者被呈现在屏幕的一个部分处(例如左侧),虚拟代理被呈现在屏幕的不同部分处(例如右侧)。另外或另选地的,虚拟代理可以以在视觉上将其与其它参与者相区别的其它方式被呈现。例如,可以使用与用于人类参与者的颜色(例如蓝色、绿色等)不同的颜色(例如红色),使用不同形状的语音气泡,使用不同的字体、不同尺寸或不同的文本强调(例如斜体、粗体、下划线等),或者以任何其它合适的方式来呈现虚拟代理。这样,用户可以快速地辨别对话的哪些部分来自虚拟代理,哪些部分来自于人。
在一些实施例中,多个虚拟代理可以参与对话(例如,每个人类参与者有不同的虚拟代理)。在这样的实施例中,对话可以以将全部虚拟代理与人类参与者相区别的方式被呈现。例如,全部人类参与者可以被呈现在显示屏的一个部分处,所有虚拟代理可以呈现在屏幕的不同部分处。不同的虚拟代理可以以相同的方式呈现,使得它们对人类参与者表现为单个参与者,或者它们可以通过使用不同的颜色、字体、语音气泡形状等、或者以任何其它合适的方式彼此区别。
又回到图2的例子,在一些实施例中,虚拟代理可被编程为分析在虚拟代理的调用之前发生的一些或全部的多方对话。例如,虚拟代理可以被编程为分析一些或全部的对话历史来确定或解释虚拟代理可以如何帮助对话参与者。在图2的例子中,虚拟代理可以被编程为仅分析在有魔力的短语“让我们问问智囊”紧之前所说出的,即“我们今晚去哪吃饭?”。在其它实施例中,虚拟代理可以被编程为分析对话历史的附加或其它部分。将结合图4更详细地说明这种实施例的例子。
虚拟代理可以使用任何适当的技术来根据一些或全部的对话历史确定可以如何帮助参与者。在一些实施例中,可以采用固定的命令语法,使得对话参与者必须通过叙述特定命令明确地请求虚拟代理的动作。在其它实施例中,可以采用自然语言理解(NLU)技术,使得用户不需要使用任何特定命令来告知虚拟代理该虚拟代理可以采取什么动作来帮助参与者,并且可以使虚拟代理能够通过分析对话的不必定是特别旨在向虚拟代理提供信息的一个或多个部分来确定其可以如何进行帮助。
任何NLU技术可以由虚拟代理用来确定用户意图,因为本文所描述的概念不被限制于与任何特定的NLU技术一起使用。作为一个非限制性的例子,虚拟代理可以应用一个或多个指代(mention)检测技术来将文本中的指代(例如“Fenway”)映射到实体(例如名为“Fenway”的棒球场或名为“Fenway”的社区)。作为另一个例子,虚拟代理可以执行语义文本分析,语义文本分析涉及用适当的语义标签或分类(例如“食物”或“餐厅”)来标记文本的一个或多个部分(例如“我饿了”)。作为又一个例子,虚拟代理可以基于文本的不同部分的各自作者来标记这些不同部分。取决于如何进行对话,可以以各种方式获得作者身份信息,例如基于电子邮件地址、电话号码(例如用于电话呼叫或SMS)、用户名(例如用于IM或语音聊天)、语音识别(例如在多个人通过同一语音信道说话时)等等。
在一些实施例中,由虚拟代理使用的一个或多个NLU技术可以是统计的(例如使用统计模型),使得分析可以返回具有各种置信度水平的用于用户意图的多个候选项。虚拟代理可以选择具有最高置信度水平的候选用户意图。如果虚拟代理不是充分确信的(例如如果最高的置信度水平低于选定的阈值),则虚拟代理可以向用户提示输入附加的信息(例如来消除歧义)。该提示可以以任何适当的方式进行。作为一个非限制性的例子,图2示出了虚拟代理让用户(在V1)确认他们是否在找餐厅。
在其中虚拟代理监视对话以确定是否将自身注入到该对话中而无需由用户明确请求的实施例中,虚拟代理可以仅在其充分确信它已经识别出正确的用户意图时才这样做。在一些实施例中,用于调用虚拟代理的置信度阈值水平可以由用户设置以允许用户定制他的体验以及利用虚拟代理的帮助,同时减少不想要的来自虚拟代理的打扰。
在一些实施例中,虚拟代理可以被编程为从用户获得信息以进一步限定(而不是确认)要执行的任务。这可以以任何适当的方式进行。例如,虚拟代理可以询问一个或多个问题以获得与执行该任务有关的任何信息。在图2的例子中,虚拟代理在V2询问用户“哪种食物”,在B2用户B响应了“寿司”。该附加的信息可以允许虚拟代理缩小其对餐厅的搜索并返回更可能被用户接受的推荐。对于进行餐厅推荐的例子,虚拟代理可以询问附加的问题,诸如预期出席各方的数量、优选时间和/或位置、价格范围等。当然,本文所描述的技术不被限制于与仅进行餐厅推荐的虚拟代理一起使用,并且虚拟代理可以被编程为在进行其它类型的任务时收集其它类型的信息。
一旦虚拟代理已经收集到足够的信息(例如从对话历史和/或从虚拟代理与一个或多个用户的交互),虚拟代理就可以执行帮助对话参与者的任务。在图2的例子中,虚拟代理为参与者选择餐厅并在V3向他们提供部分的推荐“市区James街上很酷的新场所”。在任何时点,参与者可以结束与虚拟代理的交互,或者请求进一步的信息。例如,在B3,用户B询问所推荐的餐厅是否需要预订。在V4,虚拟代理做出否定的答复并向参与方询问他们是否想要关于所推荐餐厅的具体信息。在V5,虚拟代理提供餐厅名字、地址和电话号码,并询问是否需要任何其它事情。用户B接着在B4通过告知虚拟代理没有其它需要的而终止交互。
图2所示出和以上所描述的多方对话的具体例子是仅出于说明的目提供的,因为本公开内容并不被限制于与此例子相关联的实现的任何细节。本文所公开的概念能够以任何适当的方式实现。
虽然图2例子中的虚拟代理对于同一小组人(即用户A和B)接收输入以及提供输出,但本公开内容的各方面不被限制于如此。多方对话中的任何一个或多个参与者可以先于调用虚拟代理、在调用虚拟代理的同时、或者在调用虚拟代理之后离开对话。在一个说明性的场景中,在调用虚拟代理之后,用户A可以退出对话,同时用户B继续与虚拟代理交互以获得餐厅推荐或执行任何其它的任务。作为另一个示例,在已经调用虚拟代理之后但在虚拟代理已经向对话参与者提供信息之前,一个或多个其它参与者可以加入对话。在又一示例中,多方对话可以在虚拟代理完成所请求的任务之前结束,并且虚拟代理可以被编程为提供输出到对话参与者中的单个参与者或者到一个或多个其它人,这一个或多个其它人可以在或不在该虚拟代理在其中被调用的对话中的参与者之中。
此外,尽管在图2的例子中多方对话通过SMS进行,但是本公开内容的各方面不被限制于如此。在其它实施例中,可以从通过电子邮件进行的多方对话调用虚拟代理。这可以用任何适当的方式实现。例如,虚拟代理可以与指定的电子邮件地址相关联,并且调用虚拟代理可以包括发送电子邮件请求到指定的地址。在一些实施例中,这种电子邮件请求可以由希望调用虚拟代理的用户发送。在其它实施例中,过程(例如后台过程(process))可以监视多方对话并且可以响应于检测到的触发器(例如用以上讨论过的任何方式)来发送电子邮件请求。一旦调用了虚拟代理,指定的地址可以被添加到电子邮件小组,使得虚拟代理可以接收全部随后发送到该小组的电子邮件。
在一些进一步的实施例中,可以从通过语音或视频会议(例如提供使用互联网语音协议VoIP)进行的多方对话调用虚拟代理。这可以用任何适当的方式实现。例如,来自人类参与者的贡献可以由一个或多个ASR引擎实时转录,并且虚拟代理的贡献可以通过使用合成语音被传递到参与者。在其中多个用户通过同一语音信道讲话的一些实施例中,虚拟代理可以使用用于区分不同用户的任何合适的语音识别或其它技术来确定在多方对话期间哪个用户说了什么。
在一些进一步的实施例中,可以从通过传统电话呼叫(例如通过智能电话上的语音信道,而不是数据信道)进行的多方对话调用虚拟代理。在这样的实施例中,可以以许多不同的方式访问与对话相关联的语音数据。作为一个非限制性的例子,语音数据可以从电话网络被访问并由运行在服务器(例如在云中)上的ASR引擎转录为文本。文字记录接着可以作为输入被提供给虚拟代理,该虚拟代理可以与ASR引擎运行在同一服务器上或在不同的设备上。在另选的实施例中,对话参与者所使用的一个或多个设备可以具有本地ASR引擎,以直接处理设备的麦克风所捕获的语音。接着,转录文本可以以任何合适的方式被提供给虚拟代理。
图3示出根据一些实施例的用于调用虚拟代理的说明性过程300。在一个例子中,过程300可以将虚拟代理注入到经由消息通讯应用(例如SMS、IM、电子邮件、语音聊天等)进行的对话中,如结合图2中的例子所描述的。在一些实施例中,过程300可以是不同于消息通讯应用的过程(例如后台过程)。另选地,过程300可由消息通讯应用执行。在一些进一步的实施例中,过程300可以由虚拟代理执行以确定是否将自身注入到对话中。虚拟代理可以集成到消息通讯应用中,或者可以作为单独的过程执行,因为本公开内容在这方面不受限制。此外,在其中虚拟代理被实现为与消息通讯应用分离的软件组件的实施例中,虚拟代理可以通过某个适当的接口软件而与消息通讯应用交互,该接口软件可以以任何合适的方式被提供(例如,与虚拟代理在同一软件包中被提供,由第三方软件厂商单独地被提供等)。
在动作305,过程300监听到消息通讯应用的用户输入。这可以以任何适当的方式进行。例如,过程300可以被编程为监听来自各种类型的输入设备(包括但不限于键盘、鼠标和/或触摸屏)的输入。在一些实施例中,过程300还可以被编程为通过监听ASR引擎的作为转录所捕获的用户语音的结果的文本输出来访问语音输入。
过程300可以被编程为分析在动作305处监听到的用户输入来确定用户输入是否包括调用虚拟代理的触发器。触发器可以是任何合适的形式,诸如指定的短语(例如,“让我们问问智囊”)、指定的键击或键击组合、指定的触摸屏手势、或任何其它合适的触发器。例如,在一些进一步的实施例中,触发器可以是事件的模式,诸如在规定时间窗口(例如10秒、30秒、1分钟、10分钟、15分钟等)中在对话中出现的阈值数量的关于特定分类的词(例如餐厅、电影、音乐等)。也可以使用其它类型的触发器,因为本公开内容的关于虚拟代理调用的各方面不被限制于任何特定类型的触发器的使用。
在一些实施例中,动作305可以由过程300基于正在进行的方式执行。也就是说,过程300可以连续地监听和分析到消息通讯应用的用户输入。如果并且当在动作310检测到触发器时,过程300可以前进到动作315来调用虚拟代理。例如,在一些实施例中,过程300可以使得虚拟代理被注入到经由消息通讯应用所进行的对话中,因此对话中的参与者可以以自然的方式与虚拟代理交互,如同虚拟代理正是对话中的另一个参与者。
将虚拟代理注入到对话中可以以任何适当的方式进行。例如,在其中虚拟代理被集成到消息通讯应用的实施例中,消息通讯应用可以以与消息通讯应用如何呈现来自其它参与者的消息类似的方式来向每个参与者呈现虚拟代理的贡献。在其中虚拟代理是单独的软件组件的另选实施例中,虚拟代理可以通过由消息通讯应用提供的现有接口(例如,通过对消息通讯应用的客户端进行仿真,该客户端以任何合适的方式与该消息通讯应用的服务器交互)来提供它的贡献到消息通讯应用。例如,在一些实施例中,虚拟代理可以通过与人类参与者所使用的客户端相同的接口来提供它的贡献。在其它实施例中,消息通讯应用(例如消息通讯应用的服务器和/或客户端)可以适用于提供用于接收虚拟代理的贡献的新的接口。
应当理解,本公开内容的关于调用虚拟代理的各方面不被限制于将虚拟代理注入到经由消息通讯应用所进行的对话中,因为在另选的实施例中虚拟代理可以以其它方式呈现。例如,虚拟代理可以在用户的屏幕上弹出,使用合成语音来呈现可听的问候,或以任何其它合适的方式来呈现自身。
图4示出根据一些实施例的可由虚拟代理用来规划要执行的任务和/或执行该任务的说明性过程400。例如,过程400可以由虚拟代理在被调用时用来确定或解释虚拟代理可能正被要求做什么。然而,过程400也可以在某个稍后的时间被使用,因为虚拟代理在与一个或多个用户的同一交互期间可能被要求执行多个任务。
在动作405,虚拟代理可以收集与确定用户意图潜在相关的信息。在一些实施例中,这样的信息可以已经在虚拟代理被调用以“种(seed)”(即初始化)该虚拟代理时被提供。例如,调用虚拟代理(例如,响应于检测到如以上结合图3所讨论的触发器)的过程可以将任何合适的信息传递到虚拟代理。另选地,潜在相关的信息可以由用户在已经调用了虚拟代理之后提供,例如当用户要求虚拟代理执行新的任务时。作为又一示例,虚拟代理可以被编程为主动寻找潜在相关的信息。
在一些实施例中,虚拟代理在动作405处所识别和/或访问的信息可以包括多方对话的记录。例如,在其中虚拟代理被从多方对话调用(例如以上结合图2所讨论的)的实施例中,虚拟代理可以使用整个对话历史或其一个或多个部分来确定用户意图。然而,在另选的实施例中,虚拟代理可以在多方对话外部被调用并仍使用对话的记录来确定用户意图。例如,虚拟代理可以由用户在对话已经结束之后或在对话被暂停时被调出。此外,如以上所讨论的,调用虚拟代理的用户不必定是对话中的参与者,因为虚拟代理可以由第三方调用来为对话中的一个或多个参与者执行任务。
在一些进一步的实施例中,作为对多方对话的记录的附加或替代,虚拟代理还可以分析其它类型的信息。例如,在其中虚拟代理由不同于该虚拟代理自身的过程调用的实施例中,该过程可以传递任何合适信息,该信息可以帮助虚拟代理“理解”该虚拟代理在其中被调用的上下文。作为一个非限制性的例子,响应于检测到触发器(例如以上结合图3所讨论的)而调用虚拟代理的过程可以向虚拟代理提供描述被检测到的触发器的信息(例如特定模式的词或短语,其指示虚拟代理可能能够在特定分类(诸如食物、购物、娱乐等)中进行帮助)。作为另一示例,调用过程可以向虚拟代理提供发出检测到的触发器的用户的身份和/或多方对话中的一个或多个参与者的身份。
在一些进一步的实施例中,虚拟代理可以分析调用了该虚拟代理的用户的活动历史来确定用户意图。例如,虚拟代理可以被编程为分析用户最近(例如在调用虚拟代理之前的1分钟、2分钟、3分钟、5分钟、10分钟、15分钟等之内)访问的内容来确定或解释虚拟代理可以如何帮助用户。作为一个非限制性的例子,在由用户调用来进行餐厅推荐时,虚拟代理可以分析用户最近访问的餐厅评论来告知该虚拟代理用户可能对什么类型的食物感兴趣。其它类型的用户活动也可以被虚拟代理考虑,其非限制性的例子包括用户进行特定的日历约会、呼叫特定的熟人、进行特定的购买等。
回到图4,虚拟代理可以在动作处分析在动作405处所收集的潜在相关的信息。这可以以任何适当的方式进行。作为一个非限制性的例子,虚拟代理可以被编程为将在动作405处所获得的对话历史分成不同部分并出于确定用户意图的目的来不同地对它们进行分析。例如,对话历史可以包含时间戳,时间戳可用于将文本分成对应于不同时间窗口的多个分段。这些窗口可以具有均匀的长度(例如5秒、10秒、15秒、20秒、30秒、1分钟、2分钟、3分钟、5分钟、10分钟、15分钟等)或可变的长度(例如从最新近到最久远而连续增加的长度)。
在另选的实施例中,对话历史可以以其它方式被分段,例如基于文本而不是时间的量。例如,分段可以具有某个合适数量的词(例如10、25、50、100、150、200、300、500等)的均匀长度或带有某一合适模式(例如从最新近到最久远而连续增加的长度)的可变长度。
通过以上所讨论的任一类型的分段或任何其它类型的分割,具体参数(例如时间长度或文本量)可以以任何合适的方式被确定,诸如通过默认或由用户规定。在一些实施例中,这些参数也可以基于对话如何执行来选择(例如较短的分段用于基于语音的对话,较长的分段用于基于文本的对话)。
在一些实施例中,来自对话历史的最新近的文本分段可以在动作410的分析中接收较高的权重,因为它们可以提供用户意图的更可靠的指示。例如,在一个说明性的场景中,在对话转到在电影之后去哪家餐厅之前,参与者可能已经讨论了星期五晚上观看哪部电影相当长时间,并且虚拟代理可以紧随其后被调用来推荐餐厅。因此,在该场景中,只有对话历史最新近的分段(例如最新近的五秒或10个词)可以与虚拟代理被要求执行的任务相关,并且向该分段分配较高的权重可以帮助虚拟代理正确地规划任务(即推荐餐厅,而不是推荐电影)。
可以以任何合适的方式来确定分配给对话历史的各种分段的权重。作为一个非限制性的例子,权重的初始值可以手动选择并且可以基于实际使用中的性能(例如正确识别用户意图的成功率)来调整。作为另一个例子,权重可以由手动标注的用户意图和对话历史的语料库的统计分析来建立。作为又一个示例,仅最新近的一个或多个分段可以接收非零权重,使得全部其它分段被忽略(例如以减少虚拟代理的响应时间)。
在一些进一步的实施例中,基于参与者身份,虚拟代理可以向对话历史的不同部分分配不同的权重。例如,虚拟代理可以被编程为向来自一个或多个规定参与者(例如调用了该虚拟代理的用户)的贡献给予较高的优先级(例如通过分配较高的权重)。同样,虚拟代理可以被编程为向来自一个或多个规定参与者的贡献给予较低的优先级(例如通过分配较低的权重)。作为一个非限制性的例子,虚拟代理可以被编程为通过向所有其它参与者分配为零的权重而只“听”一个参与者。
在一些实施例中,调用了虚拟代理的用户的活动历史可以被分段(例如以类似于上面所讨论的对话历史的分段的方式),并且基于不同的分段是否是用户意图的可靠指示符,这些分段可以类似地被分配不同的权重。
前进到图4中的动作415,虚拟代理可以评估它是否已经无歧义地识别出它已被要求执行的任务。在一些实施例中,虚拟代理在动作410处用来分析潜在相关的信息的一种或多种技术(例如NLU或其它人工智能技术)可以是统计学的(例如使用统计模型),使得分析可以返回可能的用户意图的具有各种置信度水平的多个候选项。如果虚拟代理不是充分地确信(例如如果与任一候选项关联的最高置信度水平低于选定的阈值,或者如果多个候选项都与类似高的置信度水平关联),则虚拟代理可以返回到动作405以收集附加的信息。
一旦返回到动作405,虚拟代理就可以以多种不同的方式收集附加的信息。在一些实施例中,虚拟代理可以提示一个或多个用户输入附加的信息。例如,在其中虚拟代理被注入到对话中的实施例中,虚拟代理可以要求参与者确认是否具有最高置信度水平的候选项确实是该虚拟代理被要求执行的任务(例如在图2所示的例子中通过询问“找餐厅”),或者要求参与者在具有类似高的置信度水平的两个或更多个候选项之间选择。作为另一个例子,虚拟代理可以询问参与者开放式的问题,诸如“我可以如何帮助你?”或“我可以为你做什么?”。
在其它实施例中,在返回到动作405和410时,虚拟代理可以分析先前被识别但未被分析(例如由于性能原因)的信息。例如,在其中虚拟代理在初始通过时分析对话或活动历史的仅最新近部分的实施例中,虚拟代理可以在返回到动作405和410时,访问并分析较早发生的历史的一个或多个附加的部分。
一旦在动作405和410处收集并分析了附加的信息,虚拟代理可以在动作415处再次评估它是否无歧义地识别了它被调用来做什么。该过程可以重复,直到用户意图已被无歧义地识别,或者直到达到某个其它停止条件。停止条件的非限制性的例子包括:在虚拟代理可用的信息已被用尽时,在虚拟代理已检查了某一最大量的历史(例如,在虚拟代理被调用之前的上至5分钟、10分钟、15分钟、30分钟、1小时、2小时等),当在历史中发现足够长的不活动时段(例如30分钟、1小时、2小时等)时,或者可以指示通过重复动作405和410虚拟代理不可能发现有用信息的任何其它合适的条件。
如果虚拟代理在动作415处确定它已经无歧义地识别出它被调用来执行的任务,那么它可以前进到动作420以执行所标识的任务。该任务可以包括检索信息、进行推荐,或采取任何其它类型的动作。在一些实施例中,虚拟代理可以提示一个或多个用户输入附加的信息以便于执行所请求的任务。例如,在其中虚拟代理被注入到对话中的实施例中,虚拟代理可以询问参与者问题以进一步限定任务(例如以缩小搜索,如果初始搜索命中的数量超过某一阈值的话)。例如,在上面所讨论的餐厅搜索的例子中,虚拟代理可以询问参与者是否特定类型的烹饪是优选的,或者任何其它合适的问题来改进餐厅搜索。
在一些实施例中,虚拟代理在动作420处执行所请求的任务时可以优先化来自不同用户的输入。例如,虚拟代理可以被编程为向来自一个或多个指定的用户(例如调用了虚拟代理的用户、虚拟代理在他的设备上运行的用户、以其它方式与虚拟代理相关联的用户等)的输入给予较高的优先级。另外或另选地,虚拟代理可以被编程为向来自一个或多个指定用户的输入给予较低的优先级。作为一个非限制性的例子,虚拟代理可以被编程为从过往的交互中“学习”到某些用户比其它用户更加顺从,使得它们的输入可以被给予较低的优先级。
在一些进一步的实施例中,虚拟代理可以在不同类型的输入之间进行区分,诸如在事实型输入和关于偏好的输入之间进行区分。例如,在一些实施例中,虚拟代理可以接受任何用户所提供的事实型信息,但是可以仅考虑一个或多个指定用户所表达的偏好或者向这些偏好给予优先级。虚拟代理还可以基于其它类型的差别来分配不同的优先级,该差别诸如用户所表达的不同水平的强调(例如,较高优先级用于“必须”,较低优先级用于“可能”)。
在动作425,虚拟代理可以向一个或多个用户(其与调用了虚拟代理的一个或多个用户可以是相同或不同的)呈现所请求的任务的结果。该结果可以是任何合适的形式的,其示例包括最接近地匹配请求的单个推荐、排名靠前的候选项的列表、以及一条或多条所请求的信息。该结果也可以以任何合适的方式被递送,诸如通过电子邮件、SMS、1M、语音消息等,而不管虚拟代理如何被调用。
在一些实施例中,虚拟代理可以接收来自结果所呈现给的一个或多个用户或来自任何其它用户的反馈。该反馈可以是任何合适的形式(例如认可、不认可、进一步的建议等)并且以任何合适的方式被接收。例如,在其中虚拟代理被注入到对话中的实施例中,虚拟代理可以在同一对话中呈现结果和接收反馈。然而,反馈也可以在对话的上下文外部被接收,因为本公开内容的关于用户反馈的各方面不被限制于向虚拟代理传递反馈的任何特定方式。
在动作430,虚拟代理可以基于接收到的反馈确定用户是否认为所请求任务的结果满意。如果一个或多个用户指示不认可,则虚拟代理可以返回到动作420以执行更新,例如通过进行不同的推荐、搜索附加的信息等。在这样做时,虚拟代理可以考虑接收自用户的反馈,以使得更新更可能产生满意的结果。
在一些实施例中,虚拟代理可以被编程为辨认一个或多个人之间的意见不一致。例如,虚拟代理可以被编程为识别在动作420和/或动作425处接收自不同用户的冲突的输入,这会导致虚拟代理在动作430处断定结果不是满意的。一经返回到动作420,虚拟代理就可以要求用户解决冲突。另选地,虚拟代理可以被编程为试图将用户引导向意见一致。
虚拟代理可以试图以任何适当的方式将用户引导向意见一致。在一些实施例中,虚拟代理可以采用用户之间的投票来解决冲突。在其它实施例中,虚拟代理可以通过应用一个或多个适当的策略来便于用户之间的协商达成意见一致。作为一个非限制性的例子,如果用户未能就决定的一个方面(例如聚会的位置)意见一致,则虚拟代理可以建议表示每个用户的大致相同水平的折衷(例如相对于全部用户位于中心的新的位置)的另选项。作为另一个例子,虚拟代理可以建议用户轮流采用它们各自的偏好(例如本周是法国餐厅,下周是意大利餐厅)。作为又一示例,虚拟代理可以让每个用户控制决定的不同方面。还可以使用其它协商策略,因为本公开内容的关于多个用户之间协商一致意见的各方面不被限制于任何特定的协商策略的使用。
如果虚拟代理在动作430处确定所请求的任务已经满意地被执行,则虚拟代理可以前进到动作435来执行与该任务相关联的任何后续的动作。在一些实施例中,这样的后续动作可以是未经请求的,但可以被执行以改善用户体验或出于某个其它原因。作为一个非限制性的例子,在虚拟代理的推荐被接受之后,虚拟代理可以提醒一个或多个用户任何需要或期望的下一个步骤,诸如创建日历条目、发送邀请、进行预约、购票、安排交通等。虚拟代理还可以从用户请求许可来代表用户执行这些动作中的一个或多个。
当在动作435处完成了任何后续动作之后,虚拟代理可以前进至动作440以询问虚拟代理是否可以帮助执行附加的任务。如果虚拟代理在动作440处接收到肯定响应,则虚拟代理可以返回到动作405以试图识别该新的任务。如果虚拟代理在动作440处接收到否定响应,则虚拟代理可以终止交互。
虽然以上详细描述了过程400的各种动作,但应当理解,这种描述仅出于示例的目的而提供。本文所公开的概念既不被限制于以上述方式实现,也不被限制于任何其它特定的实现。
如上面所讨论的,本发明人认识到并理解对虚拟代理与一个或多个用户之间的交互的记录进行保存的一些益处。这样的记录(例如接收凭据)可以存储任何合适的信息。在一些实施例中,接收凭据可以存储用户可能希望将来记起的信息,诸如虚拟代理所执行的任务的结果(例如虚拟代理所做出的推荐)。作为一个非限制性的例子,用户可能希望记起在特定的时间范围期间他在哪里与特定的朋友共进了晚餐。如果餐厅是由虚拟代理推荐的,则用户可能能够基于朋友的名字和/或相关的时间范围来搜索接收凭据。如果没有记录被保存,则检索这种信息将是不可能的,或者如果用户必须搜索未以便于这类检索的方式被索引的大量信息(例如被传统地存储的电子邮件)的话,则检索这种信息将是更耗时的。
在其它实施例中,接收凭据可以存储可由虚拟代理用来便于将来的交互的信息,诸如一个或多个人的偏好信息,关于人、产品、公司等的事实型信息,或者一个或多个用户所提供的或与交互相关的虚拟代理以其它方式所获得的任何其它信息。因此,记录可以是由虚拟代理累积以持续改进其性能的知识主体的一部分。
在虚拟代理被注入到对话中的一些实施例中,可以存储完整对话历史,包括由每个人类参与者以及虚拟代理贡献的任何事情。这样的历史可以由经由其进行对话的消息通讯应用(例如SMS串、IM日志、电子邮件串、语音聊天文字记录等)存储。另选地,该历史可以由虚拟代理或一些其它合适的过程来单独存储。
在其它实施例中,部分的对话历史可以作为替代被存储(例如,为了节省存储空间或由于任何其它原因)。例如,记录可以包括历史的仅来自一个或多个规定时间段(例如在虚拟代理的调用之后)的部分,仅由虚拟代理和/或一个或多个规定用户贡献的部分,仅关于一个或多个规定主题的部分,或仅通过一些其它合适的方式所划定的部分。
在一些进一步的实施例中,可以为虚拟代理和一个或多个用户之间的交互存储接收凭据。不同于对话历史——它被限制为在对话期间所传递的信息,接收凭据可以包括附加的信息,诸如由虚拟代理获得来规划任务和/或执行该任务、但没有明确传递给这一个或多个用户的信息。此外,接收凭据相比对话历史在一个或多个方面可以更简明,并且可以包括仅被认为是重要或相关的信息。此外,如在下面更详细地讨论的,接收凭据不被限制为关于过往的信息,并且可以包括关于一个或多个正在进行的活动的信息。
图5示出根据本公开内容的一些实施例的用于存储虚拟代理交互的接收凭据的说明性的数据存储500(例如数据库或一些其它合适的数据存储)。在这个例子中,接收凭据包括多个数据字段,诸如“接收凭据ID”字段505、“日期/时间”字段510、“人员”字段515、“分类”字段520、“结果”字段525、“状态”字段530、“评论”字段535等。作为对图5所示的数据字段的附加或代替,其它数据字段也可以被存储,因为本公开内容的关于存储接收凭据的各方面不被限制于存储在说明性的接收凭据数据存储500中的特定类型的信息。
“接收凭据ID”字段505可以存储由虚拟代理或存储接收凭据的一些其它过程选择的字母数字标识符、由用户选择的有意义的名字、或任何其它合适的标识符。“日期/时间”字段510可以指示接收凭据何时被创建、虚拟代理何时被调用、或一些其它相关的时间点。“人员”字段515可以列出调用了虚拟代理的人、虚拟代理与其通信了的人、其输入由虚拟代理考虑了的人、虚拟代理为其进行了推荐的人、和/或任何其它相关的人。“分类”字段520可以指示一个或多个主题或者领域(诸如用餐、礼物、运动、旅行等),特定的虚拟代理交互与这些主题或领域相关。“结果”字段525可以记录虚拟代理所执行的任务的结果,诸如虚拟代理所检索的信息、虚拟代理所做出的推荐等。
“状态”字段530可以包括关于一个或多个正在进行的活动的信息。例如,在其中虚拟代理执行了关于未来事件的任务的实施例中,(例如通过检索信息或进行推荐),“状态”字段可以存储事件的任何相关的更新。例如,在图5所示的例子中,事件可以被标记“已完成”、“已取消”、“在进行中”,或者用任何其它合适的状态指示符来标记。尽管未被示出,“状态”字段在一些实施例中可以还包括更详细的信息,诸如排程或地点更新、带确认信息(例如接受、拒绝、暂时接受、提议的更改等)的被邀请者列表、为事件做准备的待办事项列表等等。
在一些进一步的实施例中,在接收凭据中的“状态”字段或任何其它字段中所存储的信息可以被实时更新以保持相关人员获悉最新近的进展。作为一个非限制性的例子,对于社交聚会(例如如本公开内容在全文中所讨论的宴会),可以对一个或多个参加者维护估计到达时间(ETA)并且该ETA可以由也可以是(尽管不是必须)参加者的相关的人获得。可以至少部分地基于各个参加者的当前位置和聚会(例如由虚拟代理推荐的餐厅)的位置来计算ETA。以这种方式,任何参加者可以通过调用接收凭据的最新副本来查明何时会见到另一参加者。作为另一个例子,接收凭据可以包括感兴趣区域(例如聚会的位置附近)的天气或交通图,并且可以被周期地更新。
接收凭据的更新可以在任何合适的时间并以任何合适的方式执行。在一些实施例中,可以从一个或多个源(例如来自参加者的移动设备的位置信息、来自网站的事件排程信息、来自服务器的天气或交通信息等)周期性地(例如以默认或用户规定的频率)拉取信息。在其它实施例中,可以仅在用户请求时拉取信息。在一些进一步的实施例中,可以在告知新的信息已变得可用时触发更新。此外,在其中接收凭据被存储在远程服务器(例如在云中)上的实施例中,接收凭据的更新可以自动地推送到用户的设备,或者可以在用户请求时由用户的设备从服务器被拉取。
在一些实施例中,接收凭据可以包括由至少一个人通过意见或反馈而提供的信息。在图5所示的例子中,“评论”字段535存储由虚拟代理做出的推荐的评论。这种评论可以由可能参与或没参与导致了该推荐的交互的人提供。作为一个非限制性的例子,1号接收凭据包括来自个人C的评论,个人C没有参与虚拟代理与用户A及B之间的交互——在该交互期间虚拟代理推荐了餐厅,但在该推荐的餐厅与用户B参加了晚餐。另一方面,用户A参与了与虚拟代理的交互但未参加晚餐或选择不留评论。作为另一个例子,2号接收凭据包括个人D对从A给D的生日礼物的评论,其中个人D未参与虚拟代理与用户A之间的交互,在该交互期间虚拟代理推荐了滑雪板作为礼物。
应当理解,以上描述并在图5中示出接收凭据数据存储500只是出于说明的目的。本公开内容的关于存储接收凭据的各方面不被限制于图5所示的信息的特定布置。例如,虽然在数据库中存储接收凭据可以便于后续的信息检索,但数据库是不需要的。接收凭据可以存储在其它类型的数据存储中。
在其中虚拟代理交互的接收凭据与完整的对话历史分开存储的一些实施例中,可以在接收凭据与完整历史之间创建链接以指示这两者都涉及与虚拟代理的同一交互。作为一个非限制性的例子,虚拟代理可以存储交互的接收凭据和到对话历史的链接,对话历史由经其进行交互的消息通讯应用分开存储。这可以便于用户检索和与虚拟代理的过往交互有关的信息。例如,在一些实施例中,用户可能能够搜索接收凭据以识别特定的交互,并使用与所识别的接收凭据一起存储的链接来检索对应的完整对话历史。因为完整对话历史相比接收凭据可以包含更多噪声(即不相关的信息),搜索接收凭据而不是完整的对话历史可能是更高效和/或准确的。在一些进一步的实施例中,虚拟代理可以就同一任务与一个或多个用户交互多次,并且可以使用来自该任务的接收凭据的链接来访问关于该任务的先前对话历史。
在一些进一步的实施例中,虚拟代理交互的接收凭据可以被用于传递信息给相关人员。例如,用户可以与虚拟代理交互以请求用于一个或多个人(例如用于社交聚会)的推荐,并且可以向每个相关的个人给予对交互的接收凭据的访问权,来告知他推荐的具体细节(例如位置、时间、着装要求、参加者列表等)。这可以通过任何合适的方式进行,例如通过发送接收凭据的副本到个人,或者发送到接收凭据的链接以允许个人在任何时间查看该接收凭据。此外,在一些实施例中可以实现一个或多个合适的访问控制机制(例如访问控制列表),以确保仅授权用户可以查看接收凭据。
在一些进一步的实施例中,还可以实现一个或多个访问控制机制以仅允许某些人编辑接收凭据。在以上结合图5中的1号接收凭据所讨论的用餐例子中,虚拟代理可以与用户A相关联(例如安装在用户A的设备上,通过服务订购可由用户A访问等等),使得用户A可以编辑接收凭据中的任何数据字段。另外,在一些实施例中,授权用户可以允许一个或多个其它人来编辑接收凭据中的一个或多个字段。例如,授权用户(例如图5所示的例子中的用户A)可以允许一个或多个相关个人(例如个人D)对虚拟代理做出的推荐(例如给D的生日礼物)留评论。在一些进一步的实施例中,授权用户和/或被允许编辑接收凭据的个人可以指示是否可以以及可以与谁共享一条特定信息。例如,对于图5所示例子中的1号接收凭据,个人C可以指示对餐厅的评论是私密的并且可以仅由用户A和/或某些规定组的人查看。
虚拟代理交互的接收凭据可以以任何其它合适的方式使用,因为本文所公开的的技术不被限制于接收凭据的任何特定的使用。在说明性的场景中,用户可能希望转发虚拟代理的推荐给朋友,该朋友未参与原始交互也没有以任何方式涉及虚拟代理所做出的推荐。该用户可以仅仅通过发送接收凭据的副本或者其一个或多个相关部分给该朋友就可以这样做。在另一个说明性的场景中,用户可能希望执行类似于在过去执行的任务的任务,但具有一个或多个变化。与完整对话记录一样,在一些实施例中,用户可以修改先前交互的接收凭据(例如通过添加、修改和/或除去信息)以及提供修改后的接收凭据给虚拟代理以请求新的任务,而不必重新创建交互或者以其它方式手动输入期望被提供给虚拟代理的全部信息。
在一些进一步的实施例中,信息可以从虚拟代理交互的接收凭据搜集并用于更新个人的简档。这种信息的非限制性的例子包括个人在对话历史中所表达的并由虚拟代理用来规划要执行的任务或用来执行该任务的偏好,由个人传递到虚拟代理的偏好或决定,个人所请求的任何信息(例如用于便于作出某个决定),关于该个人但由一个或多个其它人所提供的任何信息,个人所提供的任何类型的反馈或意见(例如虚拟代理所做出的推荐的评论),或关于个人的任何其它合适的信息。为其建立并更新简档的个人可以是虚拟代理的用户(例如在其设备上安装虚拟代理的用户、通过订购服务向其提供虚拟代理的用户、以其它方式与虚拟代理相关联的用户等),或者可以是任何其它个人(例如相关联的用户的朋友、亲戚、同事等)。
图6示出根据一些实施例的其中多个虚拟代理在为一个或多个用户的小组规划要执行的任务和/或在执行该任务时彼此交互的说明性的系统600。在该示例中,虚拟代理124A和124B分别与用户102A和102B相关联。这些虚拟代理可以在与相应用户相关联的不同设备上(例如分别在电子设备110A和110B上)执行。然而,并不需要不同的设备,因为在另选的实施例中,虚拟代理可以在同一设备(例如云中的服务器)上执行,并且可以以一些其它合适的方式(例如基于用户的帐号、简档、标识符等)与相应用户相关联。这种远程执行虚拟代理的例子也在图6中示出,其中用户102C与在服务器170上执行的虚拟代理124C相关联(例如通过服务订购)。以这种方式,用户102C可以从能够与服务器170通信的任何合适的设备(诸如电子设备110C)访问虚拟代理。
在一些实施例中,虚拟代理(例如图6例子中的虚拟代理124A)可以具有对关于相关联的用户(例如用户102A)的各种类型的信息的访问权,这些信息诸如联系人信息(例如物理地址、电话号码、电子邮件和/或其它虚拟地址等)、位置信息(例如当前位置、最近访问的位置、频繁访问的位置等)、偏好信息(例如从活动历史、评论收集到的等)、和/或任何其它合适的信息。在一些实施例中,该信息的一些或全部可以被本地存储在相关联的用户的设备上(例如在图6的例子中用户数据120A存储在电子设备110A上)。在一些进一步的实施例中,该信息的一些或全部可以存储在远程服务器(例如在云中)上,并且虚拟代理可被给予适当的授权(例如基于信息的存储位置、用户标识符、访问凭据等)来经由一个或多个网络(例如图6所示的网络150)访问信息。
在一些进一步的实施例中,与不同用户相关联的虚拟代理可以被编程为彼此共享信息。信息的共享可以不受约束。然而,在一些实施例中,共享可以在由相应用户设置的约束内进行。这些约束可以是处于隐私原因或任何其它原因而建立的。例如,在图6所示的例子中,用户102A可以指示虚拟代理124A某些信息(例如联系人信息、位置信息、偏好信息等)可以仅与和规定人员小组(例如受信任的朋友圈)中的用户相关联的虚拟代理共享,使得在与另一虚拟代理(例如虚拟代理124B)共享这种信息之前,虚拟代理124A必须验证与其它虚拟代理相关联的用户(例如用户102B)属于所规定的小组。此外,可以为不同类型的信息和/或不同的人员小组规定不同类型的访问策略。例如,被指定为“公开”的信息可以由每个人访问,而被指定为关于某一组织(例如运动队、教堂、学校等)的信息可以仅由隶属于该组织的人访问。
在一些进一步的实施例中,多个虚拟代理可以被编程为在进行推荐时彼此合作,而不管虚拟代理彼此共享多少信息。例如,虚拟代理可以被编程为相互协商以基于各个用户的偏好和/或约束来达成折衷。在进行这种协商时,虚拟代理可以向其它虚拟代理做出提议,或者接受或拒绝由另一虚拟代理所做出的提议,这会或者不会向其它虚拟代理泄露该虚拟代理用来做出、接受或拒绝该提议的隐含信息。
作为一个非限制性的例子,图6所示的用户102A-C可能希望找出互相方便的时间以举行电话会议并指导相应的虚拟代理124A-C做出约会。虚拟代理124A-C不是向每个其它方公开关于相应用户的日历的详细信息,而是可以参与协商。例如,虚拟代理124A可以发送一个或多个提议的时间给虚拟代理124B-C,虚拟代理124B-C可以代表它们各自的用户接受、拒绝或做出另选的提议。在一些实施例中,这样的协商可以以对用户透明的方式(例如在后台)发生。例如,在图6所示的例子中,用户102A不需要知道用户102B-C是由虚拟代理帮助的。因此,从用户102A的角度来看,可以看起来只有一个虚拟代理(例如虚拟代理124A)。
在一些实施例中,多个虚拟代理可以在执行其它类型的动作时帮助其各自的用户。作为一个非限制性的例子,虚拟代理可以协调对与交互相关联的接收凭据的更新。例如,每个用户可以通过相应的虚拟代理向接收凭据输入评论。
应当理解,以上结合图6所描述的用户和虚拟代理的具体布置仅是说明性的。本文所公开的概念不被限制于在上述方式中实现,也不被限制于任何其它特定的实现。例如,在一些实施例中,在不同设备上运行的多个虚拟代理可以在规划要执行的任务和/或在执行该任务时彼此交互,而不管该任务是为单个用户还是为多个用户执行的。作为一个非限制性的例子,在用户设备上运行的虚拟代理可以与在服务器(例如在云中)上运行的虚拟代理交互。这可以以任何合适的方式进行,诸如通过将信息转发到服务器侧虚拟代理以及从服务器侧虚拟代理接收推荐。服务器侧虚拟代理可以与单个客户端侧虚拟代理交互(例如在为单个用户进行推荐时)或者与多个客户端侧虚拟代理交互(例如在为多个用户进行推荐时),因为本公开内容的关于多个虚拟代理彼此协作的各方面并不被限制于虚拟代理之间的任何特定的布置。
图7示意性地示出在其上可以实现本公开内容的任何方面的说明性的计算机1000。例如,计算机1000可以是移动设备,在该移动设备上可以实现结合图1示出的说明性设备110所描述的任何特征。计算机1000还可以用于实现服务器(例如图1所示的说明性的服务器170)或实现系统的一些其它组件,在该系统中可以实现本文所描述的任何概念。
本文所用的“移动设备”可以是足够地小以使其可由用户携带(例如握在用户的手中)的任何计算设备。移动设备的例子包括但不限于移动电话、寻呼机、便携式媒体播放器、电子书阅读器、手持式游戏控制台、个人数字助理(PDA)及平板计算机。在一些情况下,移动设备的重量可以为至多1磅、1.5磅或2磅,以及/或者移动设备的最大尺寸可以是最多6英寸、9英寸或1英尺。另外,移动设备可以包括使得用户能够在不同位置使用该设备的特征。例如,移动设备可以包括电力存储装置(例如电池),使得其可以被使用一持续时间而不用插入电源插座。作为另一个例子,移动设备可以包括无线网络接口,无线网络接口被配置为在不物理地连接到网络连接点的情况下提供网络连接。
在图7所示的实施例中,计算机1000包括具有一个或多个处理器的处理单元1001以及可包括例如易失性和/或非易失性存储器的非暂态计算机可读存储介质1002。存储器1002可以存储一个或多个指令,这些指令将处理单元1001编程为执行本文所描述的任何功能。除了系统存储器1002,计算机1000还可以包括其它类型的非暂态计算机可读介质,诸如存储设备1005(例如一个或多个盘驱动器)。存储设备1005还可以存储一个或多个应用程序和/或应用程序所使用的资源(例如软件库),它们可以被加载到存储器1002中。
计算机1000可以具有一个或多个输入设备和/或输出设备,诸如图7所示的设备1006和1007。这些设备可以(除其它的之外)用于呈现用户接口。可用于提供用户接口的输出设备的例子包括用于视觉地呈现输出的打印机或显示器屏幕以及用于可听地呈现输出的扬声器或其它声音生成设备。可用于用户接口的输入设备的例子包括键盘和指点设备(诸如鼠标、触摸板和数字化输入板)。作为另一个例子,输入设备1007可以包括用于捕获音频信号的麦克风,输出设备1006可以包括用于视觉地呈现所识别的文本的显示器屏幕和/或用于可听地呈现所识别的文本的扬声器。
如图7所示,计算机1000还可以包括一个或多个网络接口(例如网络接口1010)以使得能够经由各种网络(例如网络1020)进行通信。网络的例子包括局域网或广域网,诸如企业网或因特网。这些网络可以基于任何合适的技术,可以根据任何合适的协议来操作,并且可以包括无线网络、有线网络或光纤网络。
已经描述了至少一个实施例的若干方面,应当理解,本领域技术人员将会容易地想到各种变型、修改和改进。这样的变型、修改和改进都旨在落入本公开内容的精神和范围。因此,前述描述和附图仅用作示例。
本公开内容的上述实施例可以以多种方式中的任何一种来实现。例如,实施例可以通过使用硬件、软件或其组合来实现。当用软件实现时,软件代码可以在任何合适的处理器或处理器的集合上执行,无论是设置在单个计算机中还是分布在多个计算机之间。
而且,本文概述的各种方法或过程可以被编码为可在一个或多个处理器上执行的软件,这些处理器使用多种多样的操作系统或平台中的任何一种。另外,这种软件可以通过使用多种合适的编程语言以及/或者编程或脚本工具中的任何一种来编写,并且还可以被编译为在框架或虚拟机上执行的可执行机器语言代码或中间代码。
在这方面,本文所公开的的概念可以被实现为编码有一个或多个程序的非暂态计算机可读介质(或多个计算机可读介质)(例如计算机存储器、一个或多个软盘、紧凑盘、光盘、磁带、闪存、现场可编程门阵列或其它半导体器件中的电路配置、或者其它非暂态有形计算机存储介质),当程序在一个或多个计算机或其它处理器上执行时,执行实现上述本公开内容的各种实施例的方法。计算机可读介质可以是便携式的,使得其上所存储的一个或多个程序可以被加载到一个或多个不同的计算机或处理器上以实现上述的本公开内容的各个方面。
术语“程序”或“软件”此处在一般意义上用来指可用于将计算机或其它处理器编程为实现上述的本公开内容的各个方面的任何类型的计算机代码或计算机可执行指令集。另外,应当理解,根据本实施例的一个方面,当被执行时执行本公开内容的方法的一个或多个计算机程序不需要驻留在单个计算机或处理器上,而是可以以模块化的方式分布在多个不同的计算机或处理器之间来执行本公开内容的各个方面。
计算机可执行指令可以是多种形式的,诸如由一个或多个计算机或其它设备执行的程序模块。一般而言,程序模块包括执行特定任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可以按照需要在各个实施例中组合或分布。
而且,数据结构可以为任何合适的形式存储在计算机可读介质中。为了简化说明,数据结构可以被示为具有通过数据结构中的位置关联的字段。通过用计算机可读介质中的位置为各字段分配存储可以同样地实现这种关系,该存储传送各字段之间的关系。然而,可以使用任何合适的机制来建立数据结构字段中的信息之间的关系,包括通过使用指针、标注或建立数据单元之间的关系的其它机制。
本公开内容的各种特征和方面可以单独使用、以两者或更多者的任意组合使用,或者以在前述实施例中未具体讨论的多种多样的布置使用,因此,其应用并不被限制于以上描述中所阐述的或在附图中所说明的组件的细节和布置。例如,一个实施例中所描述的各方面可以与其它实施例中所描述的各方面以任何方式被组合。
此外,本文所公开的概念可以被具体实施为方法,已经提供了该方法的示例。作为该方法的部分所执行的动作可以以任何合适的方式来排序。因此,可以构造其中以不同于所示出的次序来执行动作的实施例,这可以包括同时执行一些动作,即使在说明性的实施例中被示出为顺序的动作。
在权利要求中使用序数词(诸如“第一”、“第二”、“第三”等)来修饰权利要求元素本身并不意味着任何优先级、居先、或者一个权利要求要素相对于另一个的次序或执行方法的动作的时间次序,而是仅用作标记来区分具有某个名称的一个权利要求要素与具有同一名称的另一要素(但使用序数词),以区分权利要求要素。
此外,本文所使用的措辞和术语是出于描述的目的,而不应被理解为限制。本文所使用的“包括”、“包含”、“具有”“含有”、“涉及”以及它们的变型是指包括其后所列的项目及其等同物以及附加的项目。

Claims (24)

1.一种包括由一个或多个可执行指令编程为实现至少一个虚拟代理的至少一个处理器的装置,所述至少一个虚拟代理被编程为:
分析关于参加多方对话的第一个人的第一信息;
分析关于参加所述多方对话的不同于第一个人的第二个人的第二信息;和
至少部分地基于第一信息和第二信息向所述多方对话的参与者做出推荐。
2.根据权利要求1所述的装置,其中第一信息包括第一个人的至少一个偏好。
3.根据权利要求1所述的装置,其中第一信息包括由第一个人施加的至少一个限制。
4.根据权利要求1所述的装置,其中第一信息包括关于第一个人的一个或多个过往活动的历史信息。
5.根据权利要求1所述的装置,其中实现所述至少一个虚拟代理的所述至少一个处理器还被编程为:
对来自所述多方对话的参与者中的至少一个的用户输入进行监听;和
响应于检测到所述用户输入中的触发器,将所述至少一个虚拟代理注入到所述多方对话中以在所述多方对话中做出推荐。
6.根据权利要求5所述的装置,其中经消息通讯应用进行所述多方对话,以及其中所述至少一个处理器还被编程为:
将所述至少一个虚拟代理呈现为经所述消息通讯应用进行的所述多方对话中的参与者。
7.根据权利要求6所述的装置,其中所述至少一个处理器还被编程为:
使用包括所述参与者中的至少一个的先前多方对话的记录来提供到所述至少一个虚拟代理的输入。
8.根据权利要求1所述的装置,其中第一信息和第二信息识别第一个人和第二个人之间的关系,以及其中所述至少一个处理器被编程为:
至少部分地基于所述关系做出推荐。
9.一种包括由一个或多个可执行指令编程为实现至少一个虚拟代理的至少一个处理器的装置,所述至少一个虚拟代理被编程为:
分析关于第一个人的第一信息;
分析关于不同于第一个人的第二个人的第二信息;
识别第一个人作为优先化的人;和
至少部分地基于第一信息和第二信息为多个人做出推荐,其中所述多个人包括第一个人和第二个人,以及在做所述推荐时,相对关于第二个人的第二信息,向关于第一个人的第一信息给予优先级。
10.一种包括由一个或多个可执行指令编程为实现至少一个虚拟代理的至少一个处理器的装置,所述至少一个虚拟代理被编程为:
分析关于第一个人的第一信息;
分析关于不同于第一个人的第二个人的第二信息;
识别调用了所述至少一个虚拟代理的人;和
至少部分地基于第一信息和第二信息为多个人做出推荐,其中所述多个人包括第一个人和第二个人,以及在做所述推荐时,向关于被识别为调用了所述至少一个虚拟代理的人的信息给予优先级。
11.一种包括由一个或多个可执行指令编程为实现至少一个虚拟代理的至少一个处理器的装置,所述至少一个虚拟代理被编程为:
分析关于第一个人的第一信息;
分析关于不同于第一个人的第二个人的第二信息;和
至少部分地基于第一信息和第二信息为多个人做出推荐,其中所述多个人包括第一个人和第二个人,
其中,所述至少一个虚拟代理被编程为从多个候选项选择接收到来自所述多个人的最高数量的投票的候选项作为推荐,并且其中第一信息包括第一个人的投票,第二信息包括第二个人的投票。
12.一种包括由一个或多个可执行指令编程为实现至少一个虚拟代理的至少一个处理器的装置,所述至少一个虚拟代理被编程为:
分析关于第一个人的第一信息;
分析关于不同于第一个人的第二个人的第二信息;和
至少部分地基于第一信息和第二信息为多个人做出推荐,其中所述多个人包括第一个人和第二个人,其中所述至少一个虚拟代理包括与第一个人关联的第一虚拟代理和与第二个人关联的第二虚拟代理,第一虚拟代理和第二虚拟代理被编程为在做所述推荐时相互协商。
13.一种由实现至少一个虚拟代理的至少一个处理器执行的方法,所述方法包括以下动作:
分析关于参加多方对话的第一个人的第一信息;
分析关于参加所述多方对话的不同于第一个人的第二个人的第二信息;和
至少部分地基于第一信息和第二信息向所述多方对话的参与者做出推荐。
14.根据权利要求13所述的方法,其中第一信息包括第一个人的至少一个偏好。
15.根据权利要求13所述的方法,其中第一信息包括由第一个人施加的至少一个限制。
16.根据权利要求13所述的方法,其中第一信息包括关于第一个人的一个或多个过往活动的历史信息。
17.根据权利要求13所述的方法,所述方法还包括以下动作:
对来自所述多方对话的参与者中的至少一个的用户输入进行监听;和
响应于检测到所述用户输入中的触发器,将所述至少一个虚拟代理注入到所述多方对话中以在所述多方对话中做出推荐。
18.根据权利要求17所述的方法,其中经消息通讯应用进行所述多方对话,以及其中所述方法包括以下动作:
将所述至少一个虚拟代理呈现为经所述消息通讯应用进行的所述多方对话中的参与者。
19.根据权利要求18所述的方法,其中所述方法包括以下动作:
使用包括所述参与者中的至少一个的先前多方对话的记录来提供到所述至少一个虚拟代理的输入。
20.根据权利要求13所述的方法,其中第一信息和第二信息识别第一个人和第二个人之间的关系,以及其中做出推荐包括至少部分地基于所述关系做出推荐。
21.一种由实现至少一个虚拟代理的至少一个处理器执行的方法,所述方法包括:
分析关于第一个人的第一信息;
分析关于不同于第一个人的第二个人的第二信息;
识别第一个人作为优先化的人;和
至少部分地基于第一信息和第二信息为多个人做出推荐,其中所述多个人包括第一个人和第二个人,以及在做所述推荐时,相对关于第二个人的第二信息,向关于第一个人的第一信息给予优先级。
22.一种由实现至少一个虚拟代理的至少一个处理器执行的方法,所述方法包括:
分析关于第一个人的第一信息;
分析关于不同于第一个人的第二个人的第二信息;
识别调用了所述至少一个虚拟代理的人;和
至少部分地基于第一信息和第二信息为多个人做出推荐,其中所述多个人包括第一个人和第二个人,以及在做所述推荐时,向关于被识别为调用了所述至少一个虚拟代理的人的信息给予优先级。
23.一种由实现至少一个虚拟代理的至少一个处理器执行的方法,所述方法包括:
分析关于第一个人的第一信息;
分析关于不同于第一个人的第二个人的第二信息;
至少部分地基于第一信息和第二信息为多个人做出推荐,其中所述多个人包括第一个人和第二个人;以及
从多个候选项选择接收到来自所述多个人的最高数量的投票的候选项作为推荐,并且其中第一信息包括第一个人的投票,第二信息包括第二个人的投票。
24.一种由实现至少一个虚拟代理的至少一个处理器执行的方法,所述方法包括:
分析关于第一个人的第一信息;
分析关于不同于第一个人的第二个人的第二信息;以及
至少部分地基于第一信息和第二信息为多个人做出推荐,其中所述多个人包括第一个人和第二个人,其中所述至少一个虚拟代理包括与第一个人关联的第一虚拟代理和与第二个人关联的第二虚拟代理,第一虚拟代理和第二虚拟代理被编程为在做所述推荐时相互协商。
CN201380061246.3A 2012-12-11 2013-12-10 用于多人的虚拟代理推荐的系统和方法 Active CN104813311B (zh)

Applications Claiming Priority (17)

Application Number Priority Date Filing Date Title
US13/710,649 US9276802B2 (en) 2012-12-11 2012-12-11 Systems and methods for sharing information between virtual agents
US13/710,678 US9659298B2 (en) 2012-12-11 2012-12-11 Systems and methods for informing virtual agent recommendation
US13/710,701 2012-12-11
US13/710,721 2012-12-11
US13/710,649 2012-12-11
US13/711,036 2012-12-11
US13/711,069 2012-12-11
US13/710,701 US9262175B2 (en) 2012-12-11 2012-12-11 Systems and methods for storing record of virtual agent interaction
US13/710,897 US20140164532A1 (en) 2012-12-11 2012-12-11 Systems and methods for virtual agent participation in multiparty conversation
US13/710,721 US9560089B2 (en) 2012-12-11 2012-12-11 Systems and methods for providing input to virtual agent
US13/710,971 US20140164953A1 (en) 2012-12-11 2012-12-11 Systems and methods for invoking virtual agent
US13/710,971 2012-12-11
US13/711,069 US9148394B2 (en) 2012-12-11 2012-12-11 Systems and methods for user interface presentation of virtual agent
US13/710,897 2012-12-11
US13/710,678 2012-12-11
US13/711,036 US9679300B2 (en) 2012-12-11 2012-12-11 Systems and methods for virtual agent recommendation for multiple persons
PCT/US2013/074121 WO2014093339A1 (en) 2012-12-11 2013-12-10 System and methods for virtual agent recommendation for multiple persons

Publications (2)

Publication Number Publication Date
CN104813311A CN104813311A (zh) 2015-07-29
CN104813311B true CN104813311B (zh) 2018-06-05

Family

ID=50934891

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380061246.3A Active CN104813311B (zh) 2012-12-11 2013-12-10 用于多人的虚拟代理推荐的系统和方法

Country Status (4)

Country Link
EP (1) EP2912567A4 (zh)
KR (1) KR20150095624A (zh)
CN (1) CN104813311B (zh)
WO (1) WO2014093339A1 (zh)

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US20120309363A1 (en) 2011-06-03 2012-12-06 Apple Inc. Triggering notifications associated with tasks items that represent tasks to perform
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
EP3809407A1 (en) 2013-02-07 2021-04-21 Apple Inc. Voice trigger for a digital assistant
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
CN113093917A (zh) * 2015-09-28 2021-07-09 微软技术许可有限责任公司 统一的虚拟现实平台
US10992625B2 (en) 2015-09-28 2021-04-27 Microsoft Technology Licensing, Llc Unified messaging platform
CN113612677A (zh) * 2015-10-20 2021-11-05 索尼公司 信息处理系统和信息处理方法
EP3367250A4 (en) * 2015-10-20 2018-12-05 Sony Corporation Information processing system and information processing method
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10049666B2 (en) * 2016-01-06 2018-08-14 Google Llc Voice recognition system
US11477139B2 (en) * 2016-02-25 2022-10-18 Meta Platforms, Inc. Techniques for messaging bot rich communication
US10757048B2 (en) * 2016-04-08 2020-08-25 Microsoft Technology Licensing, Llc Intelligent personal assistant as a contact
US10158593B2 (en) * 2016-04-08 2018-12-18 Microsoft Technology Licensing, Llc Proactive intelligent personal assistant
US10945129B2 (en) 2016-04-29 2021-03-09 Microsoft Technology Licensing, Llc Facilitating interaction among digital personal assistants
US10824932B2 (en) 2016-04-29 2020-11-03 Microsoft Technology Licensing, Llc Context-aware digital personal assistant supporting multiple accounts
US20170337284A1 (en) * 2016-05-17 2017-11-23 Google Inc. Determining and using attributes of message exchange thread participants
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
US10043516B2 (en) * 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10880378B2 (en) * 2016-11-18 2020-12-29 Lenovo (Singapore) Pte. Ltd. Contextual conversation mode for digital assistant
TWI631471B (zh) * 2016-11-24 2018-08-01 正文科技股份有限公司 具備智慧型代理器的通訊系統
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US10636418B2 (en) 2017-03-22 2020-04-28 Google Llc Proactive incorporation of unsolicited content into human-to-computer dialogs
US9865260B1 (en) 2017-05-03 2018-01-09 Google Llc Proactive incorporation of unsolicited content into human-to-computer dialogs
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK201770429A1 (en) 2017-05-12 2018-12-14 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10679192B2 (en) * 2017-05-25 2020-06-09 Microsoft Technology Licensing, Llc Assigning tasks and monitoring task performance based on context extracted from a shared contextual graph
US10742435B2 (en) * 2017-06-29 2020-08-11 Google Llc Proactive provision of new content to group chat participants
KR102445382B1 (ko) * 2017-07-10 2022-09-20 삼성전자주식회사 음성 처리 방법 및 이를 지원하는 시스템
CN108171610B (zh) * 2017-12-28 2020-10-30 中国平安人寿保险股份有限公司 页面生成方法、页面生成设备、存储介质及装置
KR102361458B1 (ko) 2018-01-25 2022-02-10 삼성전자주식회사 사용자 발화 응답 방법 및 이를 지원하는 전자 장치
KR102619621B1 (ko) 2018-02-07 2023-12-29 삼성전자주식회사 챗봇과 대화하기 위한 전자 장치 및 그의 동작 방법
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
KR102185369B1 (ko) * 2018-03-28 2020-12-01 삼성전자주식회사 사용자와의 대화를 위한 정보를 생성하는 시스템 및 방법
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US20200364806A1 (en) 2019-05-15 2020-11-19 Facebook, Inc. Systems and methods for initiating conversations within an online dating service
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
CN110297702B (zh) * 2019-05-27 2021-06-18 北京蓦然认知科技有限公司 一种多任务并行处理方法和装置
DK201970511A1 (en) 2019-05-31 2021-02-15 Apple Inc Voice identification in digital assistant systems
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
CN110569352B (zh) * 2019-09-17 2022-03-04 尹浩 一种可定制外观和性格的虚拟助手的设计系统及方法
WO2021056255A1 (en) 2019-09-25 2021-04-01 Apple Inc. Text detection using global geometry estimators
CN110995936B (zh) * 2019-12-19 2021-03-19 大众问问(北京)信息科技有限公司 一种语音交互方法、装置及设备
CN111355715B (zh) * 2020-02-21 2021-06-04 腾讯科技(深圳)有限公司 待决议事件的处理方法、系统、装置、介质及电子设备
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11038934B1 (en) 2020-05-11 2021-06-15 Apple Inc. Digital assistant hardware abstraction
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
EP4220628A4 (en) * 2021-02-19 2024-05-22 Samsung Electronics Co Ltd ELECTRONIC SERVICE SUPPORT DEVICE FOR ARTIFICIAL INTELLIGENCE (AI) AGENT TALKING WITH USER

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102792320A (zh) * 2010-01-18 2012-11-21 苹果公司 智能自动化助理

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006129968A1 (en) * 2005-05-30 2006-12-07 Daumsoft, Inc. System and method of analysing a conversation using conversational agent
US20070214097A1 (en) * 2006-02-28 2007-09-13 Todd Parsons Social analytics system and method for analyzing conversations in social media
US20080240379A1 (en) * 2006-08-03 2008-10-02 Pudding Ltd. Automatic retrieval and presentation of information relevant to the context of a user's conversation
JP2008191748A (ja) * 2007-02-01 2008-08-21 Oki Electric Ind Co Ltd ユーザ間コミュニケーション方法、ユーザ間コミュニケーションプログラム、ユーザ間コミュニケーション装置
WO2009130605A2 (en) * 2008-04-21 2009-10-29 Vaka Corporation Methods and systems for customizing and embedding widgets in instant messages
US9858925B2 (en) * 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US8279779B2 (en) * 2009-12-10 2012-10-02 Verizon Patent And Licensing Inc. Method and system for virtual agent session monitoring and barge-in
US9747604B2 (en) * 2010-01-22 2017-08-29 Google Inc. Automated agent for social media systems
WO2011101527A1 (en) * 2010-02-19 2011-08-25 Osumus Recommendations Oy Method for providing a recommendation to a user
US9070117B2 (en) * 2011-05-26 2015-06-30 Google Inc. Providing contextual information and enabling group communication for participants in a conversation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102792320A (zh) * 2010-01-18 2012-11-21 苹果公司 智能自动化助理

Also Published As

Publication number Publication date
KR20150095624A (ko) 2015-08-21
WO2014093339A1 (en) 2014-06-19
CN104813311A (zh) 2015-07-29
EP2912567A1 (en) 2015-09-02
EP2912567A4 (en) 2016-05-18

Similar Documents

Publication Publication Date Title
CN104813311B (zh) 用于多人的虚拟代理推荐的系统和方法
US9148394B2 (en) Systems and methods for user interface presentation of virtual agent
CN110869969B (zh) 用于在通信会话内生成个性化响应的虚拟助手
US9262175B2 (en) Systems and methods for storing record of virtual agent interaction
US9276802B2 (en) Systems and methods for sharing information between virtual agents
US9659298B2 (en) Systems and methods for informing virtual agent recommendation
US9679300B2 (en) Systems and methods for virtual agent recommendation for multiple persons
US9560089B2 (en) Systems and methods for providing input to virtual agent
US20210407520A1 (en) Detecting user identity in shared audio source contexts
US20140164532A1 (en) Systems and methods for virtual agent participation in multiparty conversation
US20140164953A1 (en) Systems and methods for invoking virtual agent
CN108293079A (zh) 针对电话的跨设备伙伴应用
CN107493400A (zh) 向人类操作员的升级
US10079013B2 (en) Sharing intents to provide virtual assistance in a multi-person dialog
CN112313644A (zh) 基于会话数据构建定制的用户简档
Kandpal et al. Contextual Chatbot for healthcare purposes (using deep learning)
CN110168526A (zh) 用于媒体探索的智能自动化助理
CN108205627A (zh) 交互式助理模块对访问的有条件提供
CN108781175A (zh) 用于消息交换题绪的自动建议
CN108476164A (zh) 用于消息传送应用的自动建议和其他内容
US20150149182A1 (en) Sharing Intents to Provide Virtual Assistance in a Multi-Person Dialog
CN107889533A (zh) 管理对话数据提供者
Pentland et al. Human dynamics: computation for organizations
CN107113222A (zh) 基于环境的主动聊天信息系统
US11972095B2 (en) Voice assistant-enabled client application with user view context and multi-modal input support

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231031

Address after: Washington State

Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Massachusetts

Patentee before: Nuance Communications, Inc.