一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

到不同终结点的动态通信路由的制作方法

2022-06-06 04:31:47 来源:中国专利 TAG:

到不同终结点的动态通信路由
1.相关申请的交叉引用
2.本专利申请要求于2019年10月28日提交的美国临时专利申请no.62/926,773的优先权权益,该临时专利申请的公开内容通过引用并入本文中。
技术领域
3.本发明总体上涉及促进通信的路由。更具体地,提供了在配置有多通道能力的通信会话期间在机器人与用户设备之间动态路由具有特定意图的消息的技术。


技术实现要素:

4.术语实施方式和类似术语旨在广义地指代本发明和所附权利要求的所有主题。包含这些术语的陈述不应被理解为限制本文所述的主题或限制所附权利要求的含义或范围。本文所涵盖的本发明的实施方式由所附权利要求而不是本发明内容限定。本发明内容是本发明各个方面的上位概述,并介绍了一些概念,这些概念将在下面的具体实施方式部分中进一步描述。本发明内容不旨在标识所要求保护的主题的关键或必要特征,也不旨在单独用于确定所要求保护的主题的范围。应该通过参考本发明的整个说明书的适当部分、任一或全部附图以及每项权利要求来理解所述主题。
5.本发明的某些实施方式包括一种计算机实现的方法。该方法可以包括从第一用户接收消息。该消息包括问题。该方法还可以包括接收对该消息的响应。该响应包括对问题的回答。该方法还可以包括将问题和回答发布到第二用户的设备。基于第二用户的一个或多个特征为第二用户选择问题和回答。该方法还可以包括从第二用户接收后续请求。后续请求会征求关于回答的进一步信息。该方法还可以包括促进第一用户与第二用户之间的通信会话。第一用户向第二用户提供所述进一步信息。
6.本发明的某些实施方式包括一种系统。该系统可包括一个或多个数据处理器;以及非暂时性计算机可读存储介质,其包含当在所述一个或多个数据处理器上执行时使所述一个或多个数据处理器执行上述和本文所述的方法的指令。
7.本发明的某些实施方式包括一种有形地体现在非暂时性机器可读存储介质中的计算机程序产品,该计算机程序产品包括被配置为使数据处理装置执行上述和本文所述的方法的指令。
附图说明
8.结合附图描述本发明:
9.图1示出了网络交互系统的一实施方式的框图;
10.图2示出了网络交互系统的另一实施方式的框图;
11.图3a-图3c示出了包括连接管理系统的网络交互系统的其他实施方式的框图;
12.图4示出了连接组件的操作的协议栈映射的表示;
13.图5表示根据一实施方式的多设备通信交换系统;
14.图6示出了连接管理系统的一实施方式的框图;
15.图7示出了用于在通信会话期间在机器人和用户设备之间动态切换的网络环境的框图;
16.图8示出了表示用于跨多个通道环境动态选择终结点的网络环境的框图;
17.图9示出了表示用于使用机器学习技术增强终结点选择的网络环境的框图;
18.图10示出了用于在通信会话期间在机器人和用户设备之间路由消息的示例过程;
19.图11a-图11n是用于在通信会话期间在机器人和用户设备之间切换交互的图形用户界面的屏幕截图;以及
20.图12a-图12r是用于在通信会话期间在机器人之间进行切换的图形用户界面的屏幕截图。
21.在附图中,相似的组件和/或特征可以具有相同的附图标记。此外,相同类型的各种组件可以通过在附图标记后加上破折号和第二标记来区分,第二标记在相似的组件之间进行区分。如果在说明书中仅使用了第一附图标记,则该描述适用于具有相同的第一附图标记的相似组件中的任一者,而与第二附图标记无关。
具体实施方式
22.随后的描述仅提供了(一个或多个)实施方式的优选示例,并且不旨在限制本发明的范围、适用性或配置。相反,随后的(一个或多个)实施方式的优选示例的描述将向本领域技术人员提供用于实现实施方式的优选示例的使能描述。应当理解,在不脱离如所附权利要求书所阐述的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
23.图1示出了实现并支持本文中描述的特定实施方式和特征的网络交互系统100的实施方式的框图。某些实施方式涉及在网络设备105(其可以由用户110操作)与终端设备115(其可以由代理120操作)之间建立连接通道。在某些实施方式中,网络交互系统100可以包括与客户端125相关联的客户端设备130。
24.在某些实施方式中,用户110可以是浏览网站或访问由远程服务器140提供的在线服务的个人。客户端125可以是提供、操作或运行网站或在线服务的实体,或者是这种实体雇佣或由该实体指派以执行如本文中所描述的客户端125可用的任务的个人。代理120可以是个人,例如支持代理,其任务是向用户110提供有关网站或在线服务的支持或信息。在大量代理中,代理的子集可能适合于为特定客户端125提供支持或信息。代理120可以与客户端125有关或无关。每个代理可以与一个或多个客户端125相关联。在一些非限制性示例中,用户110可以是从个人计算设备在在线商店购物的个人,客户端125可以是在线销售产品的公司,并且代理120可以是由公司雇佣的代表。在各种实施方式中,用户110、客户端125和代理120可以是其他个人或实体。
25.虽然图1仅示出了单个的网络设备105、终端设备115和客户端设备130,但是交互系统100可以包括这些类型的设备中的一者或多者中的每一者的多个或许多(例如,数十个、数百个或数千个)。类似地,虽然图1仅示出了单个的用户110、代理120、和客户端125,但是交互系统100可以包括这种实体中的一者或多者中的每一者的多个或许多。因此,可能有必要确定要选择哪个终端设备与给定的网络设备进行通信。另外使事情复杂化的是,远程服务器140也可以被配置为接收并响应以选择网络设备通信。
26.连接管理系统150可以促进通信的战略路由。通信可以包括具有内容的消息(例如,基于来自实体的输入(诸如键入或口头输入)定义的消息)。该通信还可以包括:附加数据,例如关于发送设备的数据(例如,ip地址、账户标识符、设备类型和/或操作系统);目的地址;客户端的标识符;网页或网页元素(例如,在生成通信时正在访问的或以其他方式与通信相关联的网页或网页元素)的标识符或在线历史数据;时间(例如一天中的时间和/或日期);和/或目的地址。在通信中可以包括其他信息。在一些实例中,连接管理系统150将整个通信路由至另一设备。在一些实例中,连接管理系统150修改通信或生成新的通信(例如,基于初始通信)。新的或修改后的通信可以包括消息(或其经处理版本)、(例如,关于发送设备、网页或在线历史记录和/或时间的)附加数据的至少一些(或全部)和/或由连接管理系统150识别的其他数据(例如,与特定账户标识符或设备相关联的账户数据)。新的或修改后的通信也可以包括其他信息。
27.战略路由促进的一部分可以包括在网络设备105与一个或多个终端设备115之间建立、更新和使用一个或多个连接通道。例如,在从网络设备105接收到通信后,连接管理系统150可以首先估计通信对应于哪个客户端(如果有的话)。在识别客户端之后,连接管理系统150可以识别与该客户端相关联的用于与网络设备105进行通信的终端设备115。在一些实例中,该识别可以包括评估多个代理(或专家或代表)中的每一者的简介,多个代理中的每个代理(例如,代理120)与终端设备(例如,终端设备115)相关联。该评估可以涉及网络设备消息中的内容。终端设备115的识别可以包括例如在2010年3月17日递交的美国申请号12/725,799中描述的技术,出于所有目的,该申请通过引用以其整体并入本文中。
28.在一些实例中,连接管理系统150可以确定在网络设备105和与客户端(或远程服务器140)相关联的终端设备之间是否建立了任何连接通道,并且如果是,则确定是否要使用这种通道来交换包括所述通信在内的一系列通信。
29.在选择终端设备115来与网络设备105通信时,连接管理系统150可以在网络设备105和终端设备115之间建立连接通道。在一些实例中,连接管理系统150可以将消息发送到所选择的终端设备115。该消息可以请求接受所提议的与网络设备105进行通信的指派或者识别已经生成了这种指派。该消息可以包括关于网络设备105的信息(例如,ip地址、设备类型和/或操作系统)、关于相关联用户110的信息(例如,所说的语言、已经与客户端交互的持续时间、技能水平、情绪和/或主题偏好)、接收到的通信、用于生成通信并将其发送到网络设备105的代码(例如,可点击的超链接)、和/或用于生成通信并将其发送到网络设备105的指令。
30.在一个实例中,可以通过连接管理系统150来路由网络设备105与终端设备115之间的通信。这种配置可以允许连接管理系统150监控通信交换并检测问题(例如,如基于规则所定义的问题),例如任一设备的无响应或延长的延迟。此外,这种配置可以促进通信的选择性或完整存储,这可以稍后用于例如评估通信交换的质量和/或支持学习以更新或生成路由规则,从而推进特定的后通信目标。
31.在一些实施方式中,连接管理系统150可以实时监控通信交换,并且基于实时通信执行自动化动作(例如,基于规则的动作)。例如,当连接管理系统150确定通信与特定项目(例如,产品)有关时,连接管理系统150可以自动向终端设备115发送包含关于该项目的附加信息(例如,可用项目的数量、到与该项目有关的支持文档的链接、或关于该项目或类似
项目的其他信息)的附加消息。
32.在一个实例中,指定的终端设备115可以与网络设备105通信而无需通过连接管理系统150中继通信。设备105、115中的一者或两者可以(或者可以不)向连接管理系统150报告特定的通信度量或内容,以促进通信监控和/或数据存储。
33.如上所述,连接管理系统150可以将选择的通信路由到远程服务器140。远程服务器140可以被配置为以预定方式提供信息。例如,远程服务器140可以响应于通信而访问定义的一个或多个待发送的文本段落、语音记录和/或文件。远程服务器140可以基于例如对接收到的通信的分析(例如,语义或映射分析)来选择特定的文本段落、记录或文件。
34.可以基于至少部分地由一个或多个客户端设备130定义或由其提供的规则和/或数据来执行在连接管理系统150处执行的路由和/或其他确定或处理。例如,客户端设备130可以发送标识代理的优先级、终端设备类型、和/或主题/技能匹配度的通信。作为另一示例,客户端设备130可以标识一个或多个权重以应用于可能影响路由确定的各种变量(例如,语言兼容性、预测的响应时间、设备类型和能力、和/或终端设备负载平衡)。将理解的是,哪些终端设备和/或代理将与客户端相关联可以是动态的。来自客户端设备130和/或终端设备115的通信可以提供指示给定的终端设备和/或代理将作为与客户端相关联的一个终端设备和/或代理被添加或移除的信息。例如,客户端设备130可以发送具有ip地址以及关于具有该地址的终端设备是否要添加到列表中或从该列表移除的指示的通信,该列表标识与客户端相关联的终端设备。
35.每个通信(例如,设备之间的通信、设备与连接管理系统150之间的通信、远程服务器140与连接管理系统150之间的通信、或远程服务器140与设备之间的通信)可以在一个或多个网络170上进行。该一个或多个网络170中可以包括开放式或封闭式网络的任意组合。合适的网络的示例包括互联网、个人局域网、局域网(lan)、广域网(wan)或无线局域网(wlan)。其他网络也可能适用。该一个或多个网络170可以完全并入内联网、外联网或其组合内,或者可以包括内联网、外联网或其组合。在一些实例中,该一个或多个网络170中的网络包括短程通信通道,诸如蓝牙或蓝牙低功耗通道。在一个实施方式中,可以通过诸如安全套接层(ssl)或传输层安全性(tls)之类的安全通信协议来实现两个或更多个系统和/或设备之间的通信。此外,可以基于任何方便的、已知的或待开发的方式对数据和/或交易细节进行加密,这些方式例如但不限于数据加密标准(des)、三重des、rivest-shamir-adleman加密(rsa)、blowfish加密、高级加密标准(aes)、cast-128、cast-256、去相关快速密码(dfc)、微型加密算法(tea)、extended tea(xtea)、校正块tea(xxtea)和/或rc5等。
36.例如,网络设备105、终端设备115、和/或客户端设备130可以包括便携式电子设备(例如,智能电话、平板电脑、便携式计算机或智能可穿戴设备)或非便携式电子设备(例如,一个或多个台式计算机、智能家电、服务器和/或处理器)。连接管理系统150可以与网络设备、终端设备、和客户端设备分开设置,或者可以是一个或多个这样的设备的一部分(例如,通过在设备上安装应用程序)。远程服务器140可以与每个设备和连接管理系统150分开设置,和/或可以是另一设备或系统的一部分。尽管图1中的每个设备、服务器和系统被示为单个设备,但是应当理解,可以替代地使用多个设备。例如,可以使用一组网络设备来传输来自单个用户的各种通信,或者远程服务器140可以包括服务器堆栈。
37.软件代理或应用程序可以被安装在所描绘的设备、系统或服务器上和/或在所描
绘的设备、系统或服务器上可执行。在一个实例中,软件代理或应用程序被配置为使得各种描绘的元素可以互补的方式起作用。例如,可以将设备上的软件代理配置为收集关于设备使用情况的数据并将其发送到单独的连接管理系统,并且可以将单独的连接管理系统上的软件应用程序配置为接收和处理数据。
38.图2示出了另一实施方式的网络交互系统200的框图。总体上,图2示出了被配置和布置为使网络设备205能够与一个或多个终端设备215通信的各种组件。所描绘的实例包括在三个局域网235中包括的九个终端设备215。
39.在一些实例中,来自网络设备205的通信包括目的数据(例如,目的ip地址),其至少部分或全部指示哪个终端设备将接收该通信。网络交互系统200可以包括一个或多个网络间连接组件240和/或一个或多个网络内连接组件255,它们可以处理目的数据并促进适当的路由。
40.每个网络间连接组件245可以连接到多个网络235,并且可以具有安装的多个网卡(例如,每个卡连接到不同的网络)。例如,网络间连接组件245可以连接到广域网270(例如,互联网)和一个或多个局域网235。在所描绘的实例中,为了将通信从网络设备205传输到任何终端设备,在所描绘的系统中,必须由多个网络间连接组件245来处理该通信。
41.当网络间连接组件245接收到通信(或与该通信相对应的一组数据包)时,网络间连接组件245可以确定路由的至少一部分,以将该通信传递给与目的地相关联的网络。可以使用例如路由表(例如,存储在路由器处)来确定该路由,该路由表可以包括基于传入消息(例如,来自另一路由器或另一设备)生成的、或学习的一个或多个预先定义的路由。
42.网络间连接组件245的示例包括路由器260和网关265。网络间连接组件245(例如,网关265)可以被配置为在网络系统之间或协议之间进行转换。例如,网关265可以促进传输控制协议/互联网协议(tcp/ip)设备与互联网分组交换/序列分组交换(ipx/spx)设备之间的通信。
43.在局域网235处接收到通信后,可能仍需要执行进一步的路由。可以通过诸如交换机280或集线器285之类的网络内连接组件255来执行这样的网络内路由。每个网络内连接组件255可以(例如,无线地或有线地,诸如通过以太网电缆)被连接至多个终端设备215。集线器285可以被配置为将所有接收到的通信重复到它所连接到的每个设备。每个终端设备然后可以评估每个通信以确定该终端设备是否是目的设备或者该通信是否将被忽略。交换机280可以被配置为选择性地将通信仅定向到目的终端设备。
44.在一些实例中,局域网235可以被划分成多个段,每个段可以与独立的防火墙、安全规则和网络协议相关联。可以在一个、多个或所有段中的每者中提供网络内连接组件255,以促进段内路由。桥接器280可以被配置为跨段275路由通信。
45.为了跨网络或在网络内适当地路由通信,各种组件分析通信中的目的数据。例如,这样的数据可以指示通信将被路由到哪个网络、通信将被路由到网络内的哪个设备、或者终端设备将要处理(和忽略)哪些通信。然而,在一些实例中,不能立即清楚哪个终端设备(或甚至哪个网络)要参与来自网络设备的通信。
46.为了说明,可以配置一组终端设备以便提供类似类型的响应通信。因此,可以预期,可以以类似的方式来响应来自网络设备的通信中的查询,而不管该通信被路由到哪个网络设备。虽然该假设在高水平上可能是正确的,但是与终端设备有关的各种细节可能导
致特定的路由与其他路由相比是有利的。例如,所述集合中的终端设备关于(例如)以下可能彼此不同:支持哪些通信通道、与网络设备的地理和/或网络接近度、和/或相关联代理的特征(例如,知识库、经验、所说的语言、可用性、一般性格或情绪等)。因此,选择路由可以促进更快的响应,该更快的响应更准确地和/或完整地响应于网络设备通信。复杂的是,将网络设备映射至终端设备的静态路由可能无法解释通信主题、通道类型、代理可用性等的变化。
47.图3a-图3c示出了其他实施方式的包括连接管理系统的网络交互系统300a-300c的框图。为了简单起见,所描绘的系统300a-300c中的每一者仅示出了两个局域网235,但是可以理解的是,可以扩展实施方式以扩展局域网的数量。系统300a-300c中的每一者都包括连接管理系统350,该连接管理系统350可以标识哪个终端设备要与网络设备205通信,可以建立和管理(例如,保持或关闭)连接通道,可以确定是否以及何时在交换中重新路由通信等。因此,连接管理系统350可以被配置为动态地并且实时地评估通信、代理可用性、终端设备或代理的能力等,以影响路由确定。
48.在图3a中,连接管理系统350与网络设备205和远程服务器340中的每一者相关联(例如,连接管理系统350a与网络设备205相关联,而连接管理系统350b与远程服务器340相关联)。例如,可以将连接管理系统350a和/或连接管理系统350b作为应用程序分别安装或存储在网络设备205和远程服务器340中的每一者上。(一个或多个)应用程序的执行例如可以促进网络设备205与远程服务器340之间的通信,以标识被选择参与的与网络设备205的通信交换的终端设备215。可以基于一个或多个本文中公开的因素(例如,可用性、通信的主题/详细水平与代理或终端设备的知识库之间的匹配度、预测的延迟,通道类型可用性等等)来进行标识。
49.客户端设备330可以提供客户端数据,该客户端数据指示将如何进行路由确定。例如,这种数据可以包括:关于特定特征如何被加权或匹配的指示或约束或偏差(例如,与负载平衡或预测的响应延迟有关)。客户端数据还可以包括与何时建立(或关闭)通信通道或者何时将通信重新路由至不同的网络设备有关的规范。客户端数据可用于定义各种客户端特定的规则,例如用于通信路由的规则等。
50.在远程服务器340上运行的连接管理系统350b可以监控与终端设备有关(例如,与给定的客户端有关)的各种度量,例如支持哪些通信通道、与网络设备的地理和/或网络接近度、与终端设备的通信延迟和/或稳定性、终端设备的类型、终端设备的能力、终端设备(或代理)是否在先已经与给定的网络设备(或用户)通信、和/或相关联的代理的特征(例如,知识库、经验、所说的语言、可用性、一般性格或情绪等)。因此,可以使连接管理系统350b能够选择路由以促进更快的响应,该更快的响应基于度量更准确地和/或完整地响应于网络设备通信。
51.在图3a所描绘的示例中,网络设备205和远程服务器340之间的通信交换可以促进目的地址的更早识别。然后,网络设备205可以使用该目的地址来定向后续通信。例如,网络设备205可以向远程服务器340发送初始通信(例如,通过一个或多个网络间连接和广域网),并且远程服务器340可以识别一个或多个相应的客户端。然后,远程服务器340可以识别与所述一个或多个相应的客户端相关联的一组终端设备,并收集针对那些终端设备的度量。可以(例如,通过远程服务器340)评估这些度量以便选择参与通信交换的终端设备,并
且可以将与该终端设备有关的信息(例如,ip地址)发送至网络设备205。在一些实施方式中,远程服务器340可以连续地或周期性地收集和评估针对各种终端设备的度量并将评估结果存储在数据存储器中。在这种实施方式中,在识别与所述一个或多个相应的客户端相关联的一组终端设备时,远程服务器340可以从数据存储器访问存储的评估结果,并且基于存储的评估结果选择终端设备来参与通信交换。
52.在图3b中,连接管理系统350可以被配置为用作中继和/或目的地址。因此,例如,一组网络设备205可以发送通信,每个通信将连接管理系统350标识为目的地。连接管理系统350可以接收各个通信,并且可以同时监控一组终端设备(例如,以便生成针对每个终端设备的度量)。基于监控和规则,连接管理系统350可以识别其可以将各个通信中继到的终端设备215。根据该实施方式,终端设备通信可以类似地定向到一致的目的地(例如,连接管理系统350的目的地),以用于进一步中继,或者终端设备可以开始直接与相应的网络设备通信。这些实施方式可以促进有效路由和全面的通信监控。
53.图3c中描绘的实施方式类似于图3b中的实施方式。然而,在一些实施方式中,连接管理系统350直接连接至网络内组件(例如,终端设备、网络内连接或其他)。
54.应当理解,能够预期图3a-图3c的许多变型。例如,连接管理系统350可以与连接组件(例如,网络间连接组件245或网络内连接组件255)相关联,使得对应于连接管理系统350(或其一部分)的应用程序安装在该组件上。例如,可以独立地执行应用程序或通过与类似或补充的一个或多个应用程序(例如,在一个或多个其他组件、网络设备或远程服务器上执行的应用程序)通信来执行应用程序。
55.图4示出了连接组件的操作的协议栈映射400的表示。更具体地,图4标识了在开放系统交互(open systems interaction,osi)模型中的对应于各种连接组件的操作层。
56.osi模型可以包括多个逻辑层402-414。这些层布置成有序堆栈,使得层402-412中的每个层服务于较高层,而层404-414中的每个层由较低层服务。osi模型包括物理层402。物理层402可以定义参数物理通信(例如,电、光或电磁通信)。物理层402还定义连接管理协议,例如建立和关闭连接的协议。物理层402还可以定义流控制协议和传输模式。
57.链路层404可以管理节点到节点(node-to-node)的通信。链路层404可以检测并纠正错误(例如,物理层402中的传输错误)以及管理访问许可。链路层404可以包括媒体访问控制(media access control,mac)层和逻辑链路控制(logical link control,llc)层。
58.网络层406可以协调跨同一网络中的节点的(例如,作为数据报的)传输数据(例如,具有可变长度的传输数据)。网络层406可以将逻辑网络地址转换为物理机器地址。
59.传输层408可以管理发送和接收质量。传输层408可以提供用于传输数据的协议,例如传输控制协议(tcp)。传输层408可以执行用于传输的数据包的分段/重组,并且可以检测并解释在层402-406中发生的传输错误。会话层410可以发起、维持和终止本地和远程应用程序之间的连接。会话可以用作远程过程交互的一部分。表示层412可以基于已知由应用程序或网络层接受的数据类型来加密、解密和格式化数据。
60.应用层414可以与控制或管理通信的软件应用程序进行交互。通过这样的应用程序,应用层414可以(例如)识别目的地、本地资源状态或可用性和/或通信内容或格式化。各个层402-414可以执行可用并适用的其他功能。
61.网络内连接组件422被示出在物理层402中操作,网络内连接组件424被示出在链
路层404中操作。更具体地,集线器可以在物理层中操作,使得可以关于通信的接收和发送来控制操作。由于集线器缺乏寻址通信或过滤数据的能力,因此集线器几乎没有能力在更高层操作。同时,交换机可以在链路层404中操作,因为交换机能够基于地址(例如,mac地址)过滤通信帧。
62.同时,网络间连接组件426、428被示出在更高层(例如,层406-414)上操作。例如,路由器可以基于地址(例如,ip地址)过滤通信数据包。路由器可以基于地址将数据包转发至特定端口,以便将数据包定向至适当的网络。网关可以在网络层及其以上层操作,执行类似的过滤和定向以及数据的进一步转换(例如,跨协议或架构)。
63.在各种实施方式中,连接管理系统450可以与各个层中的一个、多个、全部或任何层进行交互和/或在各个层中的一个、多个、全部或任何层上操作。例如,连接管理系统450可以与集线器交互,以便动态地调整集线器与哪些终端设备通信。作为另一示例,连接管理系统450可以与桥接器、交换机、路由器或网关进行通信,以便影响该组件选择哪个终端设备作为目的地址(例如,mac、逻辑或物理地址)。作为另外的示例,连接管理系统450可以监控、控制或定向传输层408上的数据包的分段、会话层410上的会话持续时间、和/或表示层412上的加密和/或压缩。在一些实施方式中,连接管理系统450可以通过与在特定层上操作的设备(例如,在链路层404上操作的交换机)进行交换通信(例如,发送命令至该设备)、通过以特定的方式路由或修改现有通信(例如,在网络设备和终端设备之间的通信)、和/或通过基于现有通信生成包含特定信息(例如,新目的地址)的新通信来与各个层进行交互。因此,连接管理系统450可以通过与各种设备的交互和/或通过影响在各种协议栈层处的操作来影响通信路由和通道建立(或保持或终止)。
64.图5表示根据一实施方式的多设备通信交换系统500。系统500包括网络设备505,该网络设备被配置为在各种类型的通信通道上与各种类型的终端设备通信。
65.在所描绘的实例中,网络设备505可以通过蜂窝网络(例如,通过基站510)传输通信。通信可以被路由至操作网络515。操作网络515可以包括连接管理系统520,该连接管理系统接收通信并标识哪个终端设备将响应于该通信。这种确定可以取决于识别该通信所属的客户端(例如,基于指示客户端的内容分析或用户输入)并确定与该客户端相关联的一个或多个终端设备中的每个终端设备的一个或多个度量。例如,在图5中,终端设备530a-530c的每个集群可以对应于不同的客户端。终端设备可以在地理上共同定位或是分散的。可以基于存储的或学习的数据和/或(例如,基于可用性的)实时监控来确定所述度量。
66.连接管理系统520可以通过一个或多个路由器525或其他网络间连接组件或网络内连接组件与各种终端设备进行通信。连接管理系统520可以在一个或多个数据存储器处收集、分析和/或存储来自(或关于)通信、终端设备操作、客户端规则、和/或与用户相关联的动作(例如,在线活动)的数据。这种数据可能影响通信路由。
67.值得注意的是,还可以使用各种其他设备来影响通信路由和/或处理。例如,在所描绘的实例中,连接管理系统520还连接至网络服务器540。因此,连接管理系统520可以检索感兴趣的数据,例如技术项目细节等。
68.网络设备505还可以连接至网络服务器(例如,包括网络服务器545)。在一些实例中,与这种服务器的通信提供了发起与连接管理系统520的通信交换的初始选项。例如,网络设备505可以检测到在访问特定网页时通信机会是可获得的并且这种选项可以被呈现。
69.通信系统500的一个或多个元件也可以连接至社交联网服务器550。社交联网服务器550可以聚集从各种用户设备接收的数据。因此,例如,连接管理系统520可能能够估计给定用户或用户类别的一般(或用户特定)行为。
70.图6示出了连接管理系统600的实施方式的框图。消息接收器接口605可以接收消息。在一些实例中,例如,可以接收消息作为由源设备(例如,与连接管理系统600分开设置或在同一外壳内)发送的通信的一部分,所述源设备例如网络设备或终端设备。在一些实例中,通信可以是一系列通信的一部分或通信交换,其可以包括正在两个设备(例如,网络设备和终端设备)之间路由的一系列消息或消息交换。该消息或通信交换可以是设备之间的交互的一部分和/或可以定义设备之间的交互。通信通道或操作通道可以包括用于促进设备之间的路由和通信交换的一个或多个协议(例如,路由协议、任务分配协议和/或寻址协议)。
71.在一些实例中,消息可以包括基于在本地用户界面或远程用户界面接收的输入而生成的消息。例如,消息可以包括基于按钮或按键或记录的语音信号而生成的消息。在一个实例中,消息包括自动生成的消息,例如在检测到网络设备正在呈现特定的应用页面或网页或者已经提供特定输入命令(例如,键序列)时生成的消息。该消息可以包括指令或请求,例如用于发起通信交换的指令或请求。
72.在一些实例中,消息可以包括客户端的标识符或与客户端的标识符相关联。例如,消息可以明确地标识客户端(或与客户端相关联的设备);消息可以包括与客户端相关联的网页或应用程序页面,或和与客户端相关联的网页或应用程序页面相关联;消息可以包括与客户端相关联的目的地址,或和与客户端相关联的目的地址相关联;或者消息可以包括与客户端相关联的项目(例如,产品)或服务的标识,或和与上述项目(例如,产品)或服务的标识相关联。为了说明,网络设备可以呈现特定客户端的应用页面,该应用页面可以提供将通信发送至代理的选项。在接收到与消息相对应的用户输入时,可以生成包含该消息和特定客户端的标识符的通信。
73.处理引擎610可以处理所接收的通信和/或消息。处理可以包括例如提取特定的一个或多个数据元素(例如,消息、客户端标识符、网络设备标识符、账户标识符等)。处理可以包括转换格式或通信类型(例如,以与特定设备类型、操作系统、通信通道类型、协议和/或网络兼容)。
74.消息评估引擎615可以评估(例如,提取或接收的)消息。评估可以包括识别例如消息的一个或多个类别或标签。类别或标签类型的示例可以包括(例如)主题(topic)、情绪、复杂性和紧急性。对消息进行分类和标记之间的区别可以在于可以限制类别(例如,根据一组预定义的类别选项),而可以打开标签。主题可以包括例如技术问题、使用问题、或请求。例如,可以基于对消息的语义分析(例如,通过识别关键字、句子结构、重复的词、标点符号和/或非冠(non-article)词)、用户输入(例如,已经选择了一个或多个类别)、和/或与消息相关的统计信息(例如,键入速度和/或响应延迟)来确定类别或标签。
75.在一些实例中,消息评估引擎615可以确定消息的度量。度量可以包括例如字符、单词、大写字母、全大写单词或特定字符或标点符号的实例(例如,感叹号、问号和/或句号)的数量。度量可以包括比率,例如以感叹号(或问号)结尾的句子的分数、全部大写的单词的分数等等。
76.消息评估引擎615可以将消息、消息度量和/或消息统计信息存储在消息数据存储器620中。每个消息还可以与其他数据(例如,元数据)相关联地存储,其他数据例如识别相应源设备、目的设备、网络设备、终端设备、客户端、一个或多个类别、一个或多个阶段和/或与消息相关联的统计信息的数据。连接管理系统600的各种组件(例如,消息评估引擎615和/或交互管理引擎625)可以查询消息数据存储器620以检索查询响应消息、消息度量和/或消息统计信息。
77.交互管理引擎625可以确定将通信路由至哪个设备以及接收设备和发送设备将如何通信。这些确定中的每一者可以取决于例如特定的网络设备(或与特定用户相关联的任何网络设备)是否先前已与一组终端设备中的一个终端设备(例如,与连接管理系统600相关联的任何终端设备、或与一个或多个特定客户端相关联的任何终端设备)进行通信。
78.在一些实例中,当网络设备(或与同一用户或配置文件相关联的其他网络设备)先前已经与给定的终端设备进行通信时,通信路由通常可偏向于该同一终端设备。可影响路由的其他因素可以包括例如,终端设备(或相应的代理)是否可用、和/或终端设备的预测的响应延迟。这些因素可以绝对地或相对于与其他终端设备相对应的类似度量来考虑。重新路由规则(例如,针对客户端特定的或一般的规则)可以指示如何评估和加权这些因素以确定是否放弃代理一致性。
79.当网络设备(或与同一用户或账户相关联的其他网络设备)先前未与给定的终端设备进行通信时,可以基于诸如以下的因素执行终端设备的选择:例如,各种代理的知识库与通信主题对应的程度、各种代理在给定时间和/或通道类型上的可用性、终端设备(例如与客户端相关联的终端设备)的类型和/或能力。在一个实例中,规则可以标识如何为诸如这些因素的一个或多个因素确定子参数以及给每个参数分配权重。通过组合(例如,求和)加权子参数,可以确定每个代理的参数。然后可以通过比较终端设备的参数来进行终端设备的选择。
80.关于确定设备将如何通信,交互管理引擎625可以(例如)确定终端设备是否通过(例如)sms消息、语音呼叫、视频通信等来响应通信。可以基于例如以下项来选择通信类型:通信类型优先级列表(例如,至少部分地由客户端或用户来定义);先前从网络设备接收的通信的类型(例如,以便促进一致性)、接收的消息的复杂性、网络设备的能力、和/或一个或多个终端设备的可用性。显然,一些通信类型将导致实时通信(例如,期望快速消息响应的情况),而其他通信类型可能导致异步通信(例如,消息之间的延迟(例如,几分钟或几小时)是可接受的情况)。
81.此外,交互管理引擎625可以确定是否应该建立、使用或终止两个设备之间的连续通道。可以构造连续通道,以便促进从网络设备到指定终端设备的未来通信的路由。这种偏见甚至可以跨消息系列持续存在。在一些实例中,连续通道的表示(例如,标识代理)可以包括在网络设备上待呈现的呈现中。以这种方式,用户可以理解该通信将被一致地路由以便提高效率。
82.在一个实例中,可以使用本文描述的一个或多个因素和规则(例如,包括所述一个或多个因素中的每个因素的权重)来生成参数,以确定对应于给定的网络设备和终端设备的连接参数。该参数可以与整体匹配度或特定于给定的通信或通信系列的匹配度有关。因此,例如,该参数可以反映预测给定终端设备适合于对网络设备通信进行响应的程度。在一
channel)动作,使得可以更新账户数据存储器635以反映当前通道数据。例如,在建立通道时,交互管理引擎625可以通知账户引擎630该建立,并且标识网络设备、终端设备、账户和客户端中的一者或多者。账户引擎635可以(在一些实例中)随后通知用户该通道的存在,使得该用户可以意识到正在使用代理一致性。
88.交互管理引擎625还可以与客户端映射引擎640交互,客户端映射引擎640可以将通信映射至一个或多个客户端(和/或相关联的品牌(brand))。在一些实例中,从网络设备本身接收的通信包括对应于客户端的标识符(例如,客户端、网页或应用程序页面的标识符)。该标识符可以作为(例如,客户端映射引擎640可以检测的)消息的一部分而被包含或作为包含消息的通信中的其他数据而被包含。然后,客户端映射引擎640可以在客户端数据存储器645中查找该标识符,以检索关于客户端和/或客户端的标识符的附加数据。
89.在一些实例中,消息可以不特别对应于任何客户端。例如,消息可以包括一般查询。客户端映射引擎640可以例如对消息执行语义分析、识别一个或多个关键字并且标识与(一个或多个)关键字相关联的一个或多个客户端。在一些实例中,标识单个客户端。在一些实例中,标识出多个客户端。然后可以通过网络设备呈现每个客户端的标识,使得用户可以选择要与之(例如,通过相关联的终端设备)通信的客户端。
90.客户端数据存储器645可以包括与客户端相关联的一个或多个终端设备(和/或代理)的标识。终端路由引擎650可以检索或收集与一个、多个或所有的这种终端设备(和/或代理)中的每者有关的数据,以便影响路由确定。例如,终端路由引擎650可以维持终端数据存储器655,终端数据存储器655可以存储诸如终端设备的设备类型、操作系统、通信类型(communication-type)能力、安装的应用程序附件、地理位置和/或标识符(例如,ip地址)的信息。某些信息可以动态地更新。例如,基于(例如)来自终端设备的通信(例如,标识该设备是否处于睡眠状态、是关闭还是开启、是非活动还是活动,或标识是否在一段时间内已收到输入)、通信路由(例如,指示终端设备是否参与通信交换或被分配为通信交换的一部分)、或者来自网络设备或终端设备的指示通信交换已经结束或开始的通信,可以动态地更新指示终端设备是否可用的信息。
91.应当理解,在各种上下文中,参与一个或多个通信交换不一定表示终端设备不可用于参与另一通信交换。诸如通信类型(例如,消息)、客户端标识的或用户标识的目标响应时间、和/或(例如,普遍地或关于用户的)系统负载的各种因素可能影响终端设备可参与多少交换。
92.当交互管理引擎625已经标识了参与通信交换或连接通道的终端设备时,交互管理引擎625可以通知终端路由引擎650,终端路由引擎650可以从终端数据存储器655检索关于该终端设备的任何相关数据,诸如目的地址(例如ip地址)、设备类型、协议等。然后,处理引擎610可以(在一些实例中)修改该包含消息的通信或者生成新的通信(包含消息)以便具有特定的格式、遵守特定的协议,等等。在一些实例中,新的或修改后的消息可以包括附加数据,例如对应于网络设备的账户数据、消息记录和/或客户端数据。
93.然后,消息发送器接口660可以将该通信发送至终端设备。该发送可以包括例如通向容纳在单独外壳内的设备的有线或无线发送。终端设备可以包括与连接管理系统600在相同或不同网络(例如,局域网)中的终端设备。因此,将通信发送至终端设备可以包括将通信发送至网络间连接组件或网络内连接组件。
94.提供了在与网络设备(例如,由用户操作)的通信会话期间在机器人和用户设备(例如,由实时用户操作)之间动态切换的系统和方法。在一些实现方式中,机器人可以被配置为与网络设备自主通信。此外,可以针对特定能力配置机器人。能力的示例可以包括更新数据库记录、向用户提供更新、向代理提供关于用户的附加数据、确定用户的意图并基于意图将用户路由到目的系统、预测或建议对与用户通信的代理的响应、升级通信会话以包括一个或多个附加机器人或代理、以及其他合适的能力。在一些实现方式中,当机器人在通信会话期间(例如,使用启用聊天的界面)与(例如,由用户操作的)网络设备进行通信时,通信服务器可以自动且动态地确定将机器人切换为用户设备。例如,机器人可以与用户关于某些任务进行通信(例如,更新与用户关联的数据库记录),而终端设备可以与用户关于更困难的任务进行通信(例如,使用通信通道进行通信以解决技术问题)。
95.在一些实现方式中,确定是否在通信会话期间在机器人与用户设备之间切换可以基于对通信会话中的消息的一个或多个特征的分析。此外,可以生成动态情绪参数来表示消息、对话、实体、代理等的情绪。例如,在动态情绪参数表明用户对机器人感到沮丧的情况下,系统可以自动将机器人切换为用户设备,以便在线代理可以与用户进行通信。参见2016年6月2日提交的美国序列号15/171,525,其公开内容出于所有目的通过引用以其整体并入本文中。在一些示例中,确定是否在机器人和用户设备之间进行切换可以在没有来自用户的提示的情况下执行。可以基于任意数量的因素在通信服务器处自动执行该确定,这些因素包括通信会话(例如,聊天)中的当前消息的特征、用户在先前的通信会话中发送的先前消息的特征、对话中的多个消息上的特征(例如,情绪)的轨迹、或与用户相关联的附加信息(例如,简介信息、偏好信息和与用户相关联的其他合适的信息)。
96.图7示出了用于在通信会话期间在机器人和用户设备之间动态切换的网络环境的框图。在一些实现方式中,网络环境700可以包括网络设备705、通信服务器710、用户设备715和机器人720。通信服务器710可以是具有一个或多个处理器和至少一个存储设备的服务器,并且可以被配置为执行本文描述的方法和技术。例如,通信服务器710可以管理(例如,由用户操作的)网络设备和(例如,由代理操作的)终端设备之间的通信会话。通信服务器710可以在网络设备705和用户设备715之间建立通信通道,使得网络设备705和用户设备715可以在通信会话期间彼此通信。通信会话可以促进网络设备705和用户设备715之间的一个或多个消息的交换。本发明不限于通信会话期间的消息交换。通信会话可以促进其他形式的通信,例如视频通信(例如,视频馈送)和音频通信(例如,ip语音连接)。
97.在一些实现方式中,通信服务器710可以在网络设备705和机器人720之间建立通信通道。机器人720可以是在执行时被配置为与网络设备705自主通信的代码。例如,机器人720可以是自动生成消息以发起和与网络设备705相关联的用户的对话和/或自动响应来自网络设备705的消息的机器人。此外,通信服务器710可以与平台相关联。客户端(例如,平台的外部系统)可以使用平台在其内部通信系统中部署机器人。在一些示例中,客户端可以在平台中使用他们自己的机器人,这使得客户端能够将本文描述的方法和技术实施到他们的内部通信系统中。
98.在一些实现方式中,机器人可以由一个或多个源定义。例如,数据存储器730可以存储表示由通信服务器的客户端定义(例如,创建或编码)的机器人的代码。例如,已经定义了其自己的机器人的客户端可以将机器人加载到通信服务器710。客户端定义的机器人可
以存储在客户端机器人数据存储器730中。数据存储器740可以存储表示由第三方系统定义的机器人的代码。例如,第三方系统可以包括独立的软件供应商。数据存储器750可以存储表示由与通信服务器710相关联的实体定义的机器人的代码。例如,由实体编码的机器人可以加载到通信服务器710或可由通信服务器710访问,从而机器人可以被执行并自主地与用户通信。在一些实现方式中,通信服务器710可以使用云网络760访问存储在数据存储器730、数据存储器740和/或数据存储器750中的机器人。云网络760可以是任何网络,并且可以包括:开放网络,例如互联网、个人区域网、局域网(lan)、校园网(can)、城域网(man)、广域网(wan)、无线局域网(wlan);私有网络,例如内联网、外联网或其他主干网。
99.此外,用户设备715可以由用户操作。用户设备715可以是任何便携式设备(例如,移动电话、平板电脑、膝上型电脑)或非便携式设备(例如,电子亭、台式计算机等)。在某些实例中,代理可以使用在用户设备715上运行的浏览器来访问网站。例如,该网站可以包括在用户设备715的浏览器上运行的控制台或平台。代理可以使用浏览器登录到平台。在允许代理访问控制台或包含在控制台中的web应用程序之前,可以使用一个或多个登录凭证(例如,用户名、密码等)来验证代理的身份。控制台的示例可以包括包含一个或多个api(应用程序编程接口)的平台、包含一个或多个功能的控制面板、在web浏览器上运行的能够建立或加入通信会话的web托管应用程序(无需下载插件)、以及其他合适的接口。此外,控制台可以包括一个或多个可以执行的网络应用程序或功能。web应用程序或功能可以在浏览器、通信服务器710、本地服务器、远程服务器或其他合适的计算设备处执行。例如,web应用程序、本机应用程序或功能可以使代理能够与用户通信,并查看用户与一个或多个机器人之间的通信。
100.在一些实现方式中,通信服务器710可以被配置为在特定通信会话期间在机器人720和用户设备715之间动态切换。例如,通信服务器710可以促进网络设备705和机器人720之间的通信会话。机器人720可以被配置为通过在通信会话期间与网络设备705交换一个或多个消息来自主地与网络设备705通信。通信服务器710可以动态地确定是否将机器人720切换为用户设备715(或者在某些情况下,反之亦然),以便在线代理可以与网络设备705而不是机器人720进行通信。在一些实现方式中,可以执行切换无需来自网络设备705或用户设备715的提示。例如,切换可以基于在网络设备705和机器人720之间交换的消息的消息参数(例如,表示消息或一系列消息的情绪的分数),而无需提示网络设备705来请求终端设备。
101.在一些实现方式中,通信服务器710可以基于在机器人720和网络设备705之间交换的消息的特征来确定在机器人720和用户设备715之间自动地切换。在一些实例中,分析消息的文本以确定特征(例如,消息参数)可以包括对与消息相关联的文本或非文本属性的分析。例如,通信服务器710可以从网络设备705提取消息中包括的一行或多行文本。通信服务器710可以识别一行或多行文本是否包括锚点。锚点的示例包括与极性(例如,情绪或意图,单词“沮丧”对应于负极性或受挫极性、单词“高兴”对应于正极性等)相关联的文本串。例如,对于一个客户端,“争议”一词可以是负面的,但对于第二个客户端来说可以是中性的或正面的。在一些实例中,可以使用监督机器学习技术动态确定锚点。例如,可以对存储的消息执行一种或多种聚类算法以在存储的消息中找到模式。可以进一步过滤和评估聚类消息以确定锚点。此外,可以针对放大器而解析所识别的锚点附近的一个或多个单词。放大器
的示例是增加或减少与锚点的极性相关联的强度的术语,例如“真的”、“不是真的”、“有点”等等。该特征可以包括例如键入速度、消息中使用的特殊字符的数量(例如,感叹号、问号等)、消息的语义分析(例如,通过识别关键字、句子结构、重复词、标点符号和/或非冠词);用户输入(例如,已经选择了一个或多个类别);和/或与消息相关的统计信息(例如,响应延迟)。
102.作为非限制性示例,消息参数可以是指示负极性的高强度的数值(例如,在0-100的范围内的消息参数20,较低的数字表示负极性,较高的数字表示正极性)。可以使用算法来计算消息参数。例如,该算法可以基于监督机器学习技术。在另一个示例中,如果术语“有点”靠近锚点“不喜欢”(例如,如在句子“我有点不喜欢”中),则术语“有点”可以被识别为表示中等强度的负极性的放大术语。在这种情况下,可以基于对负极性的中等强度的识别来生成消息参数。作为非限制性示例,消息参数可以是指示负极性的中等强度的数值(例如,消息参数40,而不是消息参数20)。在一些实例中,消息参数可用于确定要存储通信的辅助队列。
103.在一些实现方式中,消息的特征可以是与消息相关联的情绪。消息参数可以表示消息的情绪。例如,如果消息的情绪是高兴,则消息参数可以是某个值或值的范围,而如果消息的情绪是愤怒的,则消息参数可以是另一个值或值的范围。确定是否在机器人和终端设备之间切换可以基于消息参数,该消息参数随着在通信服务器710处接收到的每条新消息而连续且自动地更新。
104.在一些实现方式中,通信服务器710可以推荐或预测对从网络设备705接收的消息的响应。例如,通信服务器710可以包括消息推荐系统,其可以评估从网络设备705接收的消息并且使用机器学习模型来推荐对那些收到的消息的响应。消息推荐系统可以在用户设备715上显示一组推荐的消息,以帮助代理与网络设备705进行通信。
105.图8示出了表示用于跨多个通信通道动态地选择终结点的网络环境800的框图。在一些实现方式中,网络环境800可以包括网络设备805、用户设备810和通信服务器820。网络设备805可以类似于网络设备705,因此,为简洁起见,这里省略了描述。用户设备810可以类似于终端设备715,因此,为了简洁起见,这里省略了描述。通信服务器820可以类似于通信服务器710,因此,为了简洁起见,这里省略了描述。
106.通信服务器820可以建立或促进建立网络设备805和用户设备810之间的通信通道。如图8所示,通信服务器820可以建立通信通道c 840,通信通道c 840使网络设备805和用户设备810能够交换一个或多个消息。作为非限制性示例,通信通道c 840可以是网站的网络聊天特征,通信通道b 835可以是在移动设备(例如,智能电话)上运行的聊天应用程序,以及通信通道a 830可以是使代理能够与用户进行通信的因特网协议语音(voice over internet protocol,voip)音频通道。
107.通信服务器820可将机器人825配置为自主地与网络设备805通信。在一些实现方式中,机器人825可访问并执行一个或多个协议,该一个或多个协议使机器人825能够使用通信通道c 840与网络设备805进行通信。继续上述非限制性示例,机器人825可以访问并执行用于通过网站的网络聊天特征进行通信的协议。在该示例中,该协议可以包括特定于网络聊天特征以用于使用该网络聊天特征来交换消息的编码语言。该协议可以包括代码,该代码在被执行时将由代理在终端设备810处输入的消息(例如,文本串或其它内容)转换成
结构化的内容(例如,分离成独立数据字段的内容),并将该结构化的内容映射到网站的网络聊天特征的元素。当在终端设备810处(例如,由代理)接收到输入时,机器人825可以将结构化的内容转换为网络聊天特征的元素,以使得能够使用该网络聊天特征来传达消息。
108.在一些实现方式中,机器人825也可以被配置为使用通信通道b 835与网络设备805通信。通信通道b 835可以是与通信通道c 840不同的通信通道。此外,通信通道b 835可能需要与通信通道c 840所需的元素相比不同的元素以促进通信。机器人825可以被配置为将结构化的内容转换为通信通道b 835的元素。继续上述非限制性示例,通信通道b 835可以是在智能手机上运行的本机应用程序的应用内聊天特征。为了促进使用通信通道b 835通信,可能需要一个或多个元素。例如,脸书即时通(facebook messenger)可以是在智能手机上运行的本机应用程序。在该示例中,facebook messenger的一个或多个元素可以是使用facebook messenger促进通信所需的特定于facebook messenger的模板。使机器人825能够使用通信通道b 835进行通信的协议可以将结构化的内容映射到facebook messenger本机应用程序的模板,以便在facebook messenger应用程序中将结构化的内容作为消息进行发送。
109.在一些示例中,移动应用程序(例如,移动本机应用程序)可以包括可执行代码(存储在移动设备中或在一个或多个外部服务器上),该可执行代码可以使用网络设备(例如智能手机)的操作系统执行。在一些示例中,移动应用程序可以包括混合移动应用程序,该混合移动应用程序由本机用户界面(ui)组件(在移动设备上生成和存储)组成,但是以解释语言(例如,使用基于web的编码语言)编写。本发明不限于移动本机应用程序或混合应用程序,因此,在本文描述的方法中可以使用任何类型的移动应用程序。
110.在一些实现方式中,机器人825也可以被配置为使用通信通道a 830与网络设备805通信。通信通道a 835可以是与通信通道c 840和通信通道b 835不同的通信通道。此外,与通信通道c 840和通信通道b 835所需的元素相比,通信通道a 830可能需要不同的元素来促进通信。机器人825可以被配置为将结构化的内容转换为通信通道a 830的元素。继续上述非限制性示例,通信通道a 830可以是网络设备805与用户设备810之间的voip音频通信链路。可能需要一个或多个元素以便促进使用通信通道a 830进行通信。所述协议可以包括结构化的内容到与通信通道a 830相关联的元素的映射。
111.在一些实现方式中,通信服务器820可以被配置为动态地、自主地和/或自动地在不同通信通道之间转移通信会话,使得机器人825可以与网络设备805连续通信,而不管通信通道如何。例如,网络设备805可以使用第一通信通道845(即,通信通道c 840)与用户设备810进行通信。网络设备805可以发送指示操作网络设备805的用户打算改变当前正在用于通信会话的通信通道的消息。例如,网络设备805可以指示第二通信通道850是用于继续与用户设备810的通信会话的目标通信通道。机器人825可以自动检测通信通道应该从第一通信通道845改变为第二通信通道850的指示。例如,机器人825可以连续评估在通信会话期间交换的消息,以检测应该改变通信通道。在检测到应该改变通信通道的指示时,通信服务器可以识别与网络设备805相关联的用户标识符。例如,用户数据数据库815可以存储各种用户的用户标识符。用户标识符可以是唯一标识网络设备的文本串和/或数字串。如果在任何给定时间,通信服务器820确定相同的用户标识符与两个活动的通信通道相关联,则通信服务器820可以识别出该网络设备正在请求继续进行通信会话,但是改变通信通道。
112.通信服务器820可以被配置为支持不同通信通道之间的连续性。例如,机器人825可以自动使用目标通信通道(例如,第二通信通道850)继续与网络设备805的通信会话,但是使用第二通信通道850而不是第一通信通道845。在一些实现方式中,机器人825可以使用第二通信通道850自动向网络设备805发送消息。向网络设备805发送消息可以向网络设备805指示通信通道的转移已完成。在一些实现方式中,通信服务器820可以自动检测到通信通道已经从第一通信通道845改变为第二通信通道850。例如,当网络设备805正在使用第一通信通道845与机器人825通信时,通信服务器820可以识别与网络设备805相关联的用户标识符。如果网络设备805开始使用第二通信通道850(例如,在通信会话期间未指示改变通信通道的意图),则通信服务器820可以自动检测到网络设备805的用户标识符当前与两个活动的通信通道(例如,第一通信通道845和第二通信通道850)相关联。通信服务器820可以检测到第一通信通道845与消息的最近历史(例如,在最后五分钟内发送或交换的消息)相关联,并且第二通信通道850与消息的最近历史(例如,在最后几分钟之内)没有关联。因此,通信服务器820可以确定网络设备805正在请求将通信会话从第一通信通道845转移到第二通信通道850。通信服务器820可以通过访问与第二通信通道850相关联的协议来实现该转移,并且使用访问的协议来执行机器人825,以使机器人825或用户设备810能够使用第二通信通道850而不是使用第一通信通道845与网络设备805通信。
113.在一些实现方式中,可以使用一种或多种机器学习技术来识别网络设备805的通信通道使用的模式。例如,可以跟踪和记录(以及存储作为历史数据)网络设备805对通信通道的使用。可以将机器学习技术应用于历史数据,以识别在与特定实体(例如,机器人、公司、终端设备、代理等)进行通信时,网络设备805最有可能使用哪个通信通道。当发起从用户设备810(或机器人825或任何其它终端设备)到网络设备805的通信时,通信服务器820可以建立网络设备805最有可能使用的类型的通信通道(基于机器学习技术的结果)。当网络设备805开始更频繁地使用不同的通信通道时,通信服务器820可以识别该变化趋势并使用最常用或最频繁使用的通信通道来发起通信会话。
114.图9示出了表示用于使用机器学习技术增强终结点选择的网络环境900的框图。网络环境900可以包括网络设备905(由用户操作)、通信服务器910、机器人915和用户设备920。通信服务器910可以促进通信通道的建立,该通信通道使网络设备905能够与至少一个机器人915以及终端设备920进行通信。
115.通信服务器910可以包括智能路由系统925、消息推荐系统930和消息数据存储器935。智能路由系统925和消息推荐系统930中的每一者可以包括具有处理器和存储器的一个或多个计算设备,该一个或多个计算设备执行指令以实施某些操作。在一些实现方式中,智能路由系统925可以是被配置为将从网络设备接收到的通信智能地路由到适当目的地的机器人。智能路由系统925可以包括一个或多个处理器,该一个或多个处理器被配置为运行使一种或多种机器学习技术或人工智能技术智能地路由消息的代码。在一些实现方式中,智能路由系统925可以执行一种或多种机器学习技术来训练模型,该模型预测与从网络设备905接收的消息相关联的目的地。
116.作为非限制性示例,智能路由系统925可以通过由通信服务器910建立或促进的通信通道(例如,被配置为使用户能够跨各种通信设备彼此通信的本机应用程序)从网络设备905接收消息。智能路由系统925可以根据上述某些实施方式评估传入消息。例如,智能路由
系统925可以使用经训练的机器学习模型来评估包含在接收的消息中的内容(例如,文本、音频剪辑、图像、表情符号或其他合适的内容)。消息的内容可以输入到机器学习模型中以生成预测的目的地(例如,特定的终端设备或机器人)。机器学习模型可以基于从网络设备905接收的反馈信号940被连续训练。在一些实现方式中,智能路由系统925可以请求来自网络设备905的预测目的地的确认。作为非限制性示例,智能路由系统925可以使用机器学习技术来评估消息,并且评估结果可以包括机器人915是消息的目的地的断定。为了确认,智能路由系统925可以自动请求反馈信号940。例如,反馈信号940可以包括请求网络设备905确认机器人915是否是消息的正确目的地(例如,“技术支持是正确目的地吗?”)。如果网络设备905发送机器人915是正确目的地(例如,操作网络设备905的用户预期的目的地)的确认,则智能路由系统925可以训练机器学习模型来预测包括与接收到的消息完全相同或相似内容(例如,相似性阈值,例如10%的内容差异)的未来消息将被路由到机器人915。然而,如果智能路由系统925接收到指示机器人915不是所接收消息的正确或预期目的地,而是用户设备920是正确的或预期目的地的反馈信号940,则智能路由系统925可以训练机器学习模型:包括与接收的消息完全相同或相似内容的未来消息将被路由到用户设备920(而不是机器人915)。在一些实现方式中,智能路由系统925可以不立即更新或训练机器学习模型来将未来消息路由到用户设备920,而是智能路由系统925可以等待阈值数量的到机器人915的不正确的路由,然后再将所有具有与接收的消息完全相同或相似内容的未来消息路由到终端设备920。作为非限制性示例,智能路由系统925可以在网络设备发送表明机器人915不是正确或预期目的地的反馈信号的五个实例后,开始将未来消息(原来预测将被路由到机器人915)路由到用户设备920而不是机器人915。
117.在一些实施方式中,智能路由系统925可以基于接收到的投标来选择将给定消息路由到何处,以处理消息中的特定请求。智能路由系统925可以向不同服务广播意图并确定谁想要对处理请求进行投标。投标方可以以他们对成功处理请求的置信度水平和执行请求处理的计划做出响应。智能路由系统925可以评估来自投标方的所有响应,并且基于机器学习策略,确定将哪个投标方用于给定消息。
118.消息数据存储器935可以存储过去从一个或多个网络设备接收的一些(例如,但不是所有)或所有消息。此外,消息数据存储器935还可以存储在与网络设备的先前通信会话期间由终端设备或机器人发送的一些或所有消息。消息数据存储器935还可以存储在通信会话期间由网络设备发送给机器人的一些或所有消息。此外,消息数据存储器935可以存储在通信会话期间由机器人发送到网络设备的一些或所有消息。在一些实现方式中,消息数据存储器935可以是通信服务器910处理的(例如,由通信服务器910发送或接收的)所有消息的数据库。
119.消息推荐系统930可以分析存储在消息数据存储器935处的消息的数据库。消息数据存储器935中的消息的数据库可以包括一个或多个问题&回答(questions-and-answers)、查询&响应(query-and-responses)、以及用户与机器人、代理或其他终结点之间的其他通信集合。通信集合还可以与对与用户成功通信的评级或评估相关联。在一些实施方式中,消息推荐系统930可以向被标识为关于问题和回答的主题具有专业知识的用户征求问题&回答。消息推荐系统930还可以向网络设备905的用户提供和呈现所选择的问题&回答集合。可以在消息数据存储器935中跟踪关于网络设备905的用户对特定问题&回答集合
的选择的信息,并且这些信息被智能路由系统925用来将网络设备905连接到与所选择的问题&回答相关联的专家的用户设备920。网络设备906和用户设备920之间的交互的成功或失败(如由分配的分数或观察到的用户满意度指标所指示)可以进一步存储在消息数据存储器935中并且随后用于改进后续的路由决策。例如,与用户设备920的专家的成功交互可用于路由更多涉及问题&回答的主题的后续对话。
120.在一些实现方式中,消息推荐系统930可以使用一种或多种机器学习算法或人工智能算法来评估在消息数据存储器935处存储的消息。例如,消息推荐系统930可以对存储在消息数据存储器935中的消息的数据库执行一种或多种聚类算法,例如k均值聚类、均值移位聚类、具有噪声的基于密度的应用空间聚类(dbscan)聚类、使用高斯混合模型(gmm)的期望最大化(em)聚类和其他合适的机器学习算法。在一些实现方式中,可以使用递归神经网络(rnn)或卷积神经网络(cnn)来预测响应消息以协助代理。在一些实现方式中,消息推荐系统930可以使用支持向量机(svm)、监督、半监督、集成技术或无监督机器学习技术来评估所有先前的消息以预测对在通信会话期间从网络设备接收的传入消息的响应。例如,消息推荐系统930可以评估从网络设备接收的消息(或在通信服务器910处从机器人或终端设备接收的消息)的内容,并将评估结果与存储在消息数据存储器935中的先前消息的一个或多个集群进行比较。一旦集群被识别,则消息推荐系统930可以基于置信度阈值识别最相关的响应消息。例如,传入消息(例如,在通信服务器910处从网络设备905接收的消息)可以基于传入消息的内容而对应于技术问题。消息推荐系统930可以基于对传入消息的内容的评估(例如,文本评估)来识别传入消息对应于技术问题。消息推荐系统930可以访问消息数据存储器935以识别与技术问题相关联的消息集群。消息推荐系统930可以基于置信度阈值在消息集群中选择一个或多个响应消息(和相关联的终结点)。例如,技术问题的专家可以被识别为在过去已经成功地解决了类似问题,并且基于该识别,可以将其动态地路由到网络设备905,该网络设备905要么进行通信,要么被观察到表现出技术问题的指标。作为非限制性示例,可以执行置信度算法以生成置信度分数。置信度分数可以是百分比值,其中百分比越低,响应是对于传入消息的良好预测的可能性越小,百分比越高,响应是对于传入消息的良好预测的可能性越大。最小置信度阈值可以定义为与每个发现的模式相关联的确定性或可信度的测度。此外,置信度算法的示例可以是apriori算法、指示两个数据集之间的相似度的相似度算法、以及其他合适的置信度算法。
121.图10示出了用于在与网络设备的通信会话期间在机器人和用户设备之间切换的示例过程。在步骤1005,从第一用户接收消息。该消息可包括问题。例如,消息可能会声称“从纽约到洛杉矶最便宜的航班是什么?”。然而,设想该问题可以涉及任何主题,例如新闻、天气、体育、购物、技术、娱乐、旅行等。
122.在步骤1010,接收对消息的响应。该响应可以包括对该问题的回答。例如,对“飞往洛杉矶最便宜的航班是什么?”问题的回答可以是“great airways的从纽约到洛杉矶的$287的航班”。在一些实施方式中,消息和响应都可以从第一用户接收。在其他实施方式中,消息和响应可以从不同用户接收。
123.在步骤1015,可以将问题和回答发布到第二用户的设备。可以基于第二用户的一个或多个特征为第二用户选择问题和回答。例如,可以为第二用户访问cookie或浏览历史信息以确定第二用户的兴趣、人口统计信息等。在上述示例中,可以确定第二用户住在纽约
并且经常旅行。因此,该特定问题和回答可以发布到第二用户的设备。
124.在步骤1020,从第二用户的设备接收后续请求。后续请求可能会征求关于回答的进一步信息。在上述示例中,后续请求可能会询问“什么时候有航班?”。在步骤1025,可以促进第一用户和第二用户之间的通信会话。第一用户可以向第二用户提供所述进一步信息。在上述示例中,进一步信息可以是“星期二早上7点”。
125.在步骤1030,可以将会话数据保存为历史数据。除了关于第一用户和第二用户之间的交互的通信和信息之外,会话数据可以包括呈现给第一用户的问题和回答、用于查看的一个或多个问题和回答的第一用户选择、与任何问题和回答相关的任何后续请求、以及与用户之间的匹配质量相关的评级或其他指标。例如,第二用户可以给出直接的数字的、分类的或其他类型的评级,以及提供对与第一用户交互的评论。在一些实施方式中,可以从对话中的随后评论或采取的进一步动作(例如,再次询问相同的问题)中推断出用户评价。此类评论或动作可以指示当前意图可能尚未得到满足,并且在此类情况下,机器人可以负责询问有关以下的问题:原始意图确定是否可能不准确或第一用户是否不满意意图,并确定为什么是或为什么不的可能原因。关于通信和交互的元数据也可以包含在会话数据中并作为历史数据存储。
126.在步骤1035中,可以根据人工智能和机器学习技术使用历史数据来改进与用户和类似用户相关的决策,包括关于匹配不同用户的问题和回答的决策、在不同用户(以及代理和机器人)之间路由对话的决策、以及切换对话的终结点的决策。因此,在示例性实施方式中,参与与机器人的对话的用户可以基于历史数据被识别为可能对某些主题感兴趣,并且因此可以实时动态将其连接到与此类主题相关的一个或多个不同终结点(例如,专门的机器人、代理、专家、品牌代表)。例如,这种识别可以基于用户当前表现出的与以上关于步骤1005-1030描述的会话一致的指标或行为模式而动态地和实时地进行。此外,可以针对用户的一个或多个意图实时动态地做出一个或多个预测,所述一个或多个意图包括与某些主题、服务或功能相关的参与或交互的意图。因此,还可以基于预测的(一个或多个)意图动态地和实时地采取响应动作。这样的动作可以包括与用户相关的不同路由或切换决策,该用户可以实时动态地连接到确定的终结点。关于终结点的确定可以基于预测以及关于用户的实时数据。因此,随着时间的推移,图10所示的方法不仅允许识别不同用户之间的专业知识领域,将专家用户与可能对此类专业知识感兴趣的其他用户联系起来,而且还可以产生反馈和其他数据,这些反馈和数据可用于通知和改进未来的决策。
127.图11a-图11n是用于在通信会话期间在机器人和用户设备之间切换交互的图形用户界面的屏幕截图。在图11a中,用户打开与系统(即机器人)的对话框。该系统可以显示多个问题。可以基于用户的人口统计信息、浏览历史、兴趣等来选择问题。在一些实施方式中,可以基于时间(例如最近提交的问题和回答)、流行度、最高评级等来选择问题。在图11b-图11e中,用户滚动查看正在显示的可用问题以确定选择哪个问题。在图11f中,用户选择他想回答的问题。在本示例中,他选择“你最喜欢布鲁克林的哪家餐厅?”。在图11g中,用户回答问题。用户还以回答质量的评级的形式接收反馈。评级可以由系统提供,或者可以从查看提交的问题和回答的其他用户征求。
128.在图11h中,系统询问用户是否有他想要向其提供另一回答的问题。在图11i中,用户询问“纽约有什么好吃的地方?”。用户被征求回答,并且在图11j中,向用户显示问题和回
答的预览。在图11k中,用户要求系统发布问题和回答,并且系统发布所述问题和回答。然后系统声称另一个用户jeff有与发布的问题和回答相关的后续问题。在图11l中,系统显示后续问题并提供按钮以打开与jeff的通信会话或拒绝与jeff交谈。在图11m中,用户决定打开与jeff的通信会话。如图11m所示,jeff能够在同一图形界面上与用户进行通信,从而不会显示电话号码或私人信息。在图11n中,用户能够回答jeff的后续问题,并且jeff关闭对话。然后将对话返回给机器人。在图11n中,用户可以评级的形式获得关于对话或他的回答的有用性的反馈。
129.图12a-图12r是用于在通信会话期间在机器人之间切换的图形用户界面的屏幕截图。在图12a之前,可以显示用户可以为其打开通信会话的多个问题和回答。在图12a中,用户要求打开与vodafone的通信会话。系统(即机器人)通知用户在与vodafone的对话终止后如何返回系统。图12b示出了用户与vodafone的对话,其中用户可以提出问题,例如,“我怎样才能降低我的账单?”。vodafone可以由单独的或相同的机器人操作,也可以由终端设备上的代理操作。图12c示出了用户设备上的对话列表。在图12d中,用户可以选择系统(即“maven(内行)”)并返回与机器人的对话。当用户声明他回来时,系统可以显示自用户打开与vodafone的对话以来已经接收或定位的进一步问题和回答。在图12e中,如果当前回答不充分或不合需要,则用户可以要求更多回答。在图12f中,系统可以显示进一步的问题和回答,并且用户可以对显示的问题和回答进行评级。用户可以进一步发起与提供回答的人的对话,以请求进一步信息。
130.在图12g中,系统打开与其他用户的通信会话并指示请求的用户如何返回系统。图12h示出了与其他用户关于问题和回答的对话。图12i示出了如何使用该系统来为商品或服务聘请问题和回答的作者。图12j示出了用于收集支付信息的界面。图12k示出了一个计时器,该计时器在按时间段付款时将专家使用的时间加起来。图12l可以将用户返回到聊天屏幕以促进进一步的对话。
131.图12m示出用户所有对话的列表。用户可以选择系统(即“maven”)以返回到与系统的对话,如图12n所示。在图12n中,系统可以显示在用户离开对话时接收到的任何新的和相关的(或不相关的)问题和回答。
132.在图12o中,用户可以选择不同的问题和回答来发起不同的对话。可以从新选择的问题和回答的作者向用户发送消息。图12p示出了作者打开的对话以及交换的问题和回答。图12q示出了用户可以从中选择新对话或返回系统(即“maven”)的所有对话的列表。用户可以声明他回到对话并且该过程可以继续。
133.可以使用计算系统来执行所公开的方法。示例计算系统可以包括处理器(例如,中央处理单元)、存储器、非易失性存储器和接口设备。存储器可以存储数据和/或一个或多个代码集、软件、脚本等。计算机系统的组件可以通过总线或通过一些其他已知或方便的设备联接在一起。处理器可以被配置为例如通过执行例如存储在存储器中的代码来执行本文描述的方法的所有或一部分。用户设备或计算机、供应商服务器或系统、或暂停数据库更新系统中的一者或多者可以包括计算系统的组件或这种系统的变型。
134.本发明设想计算机系统采用任何合适的物理形式,包括但不限于销售点系统(“pos”)。作为示例而非限制,计算机系统可以是嵌入式计算机系统、片上系统(soc)、单板计算机系统(sbc)(例如,模块计算机(com)或模块系统(som))、台式计算机系统、膝上型或
笔记本计算机系统、交互式信息亭、大型机、计算机系统网格、移动电话、个人数字助理(pda)、服务器或这些中的两者或更多者的组合。在适当的情况下,计算机系统可以包括一个或多个计算机系统;是单一的或分布式的;跨越多个位置;跨越多台机器;和/或驻留在云中,该云可以包括在一个或多个网络中的一个或多个云组件。在适当的情况下,一个或多个计算机系统可以在没有实质空间或时间限制的情况下执行本文描述或示出的一种或多种方法的一个或多个步骤。作为示例而非限制,一个或多个计算机系统可以实时或以批处理模式执行本文描述或示出的一种或多种方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统可以在不同时间或在不同位置执行本文描述或示出的一种或多种方法的一个或多个步骤。
135.处理器例如可以是传统的微处理器,例如intel pentium(英特尔奔腾)微处理器或motorola power(摩托罗拉电力)pc微处理器。相关领域的技术人员将认识到,术语“机器可读(存储)介质”或“计算机可读(存储)介质”包括处理器可访问的任何类型的设备。
136.存储器可以通过例如总线联接到处理器。作为示例而非限制,存储器可以包括随机存取存储器(ram),例如动态ram(dram)和静态ram(sram)。存储器可以是本地的、远程的或分布式的。
137.总线还可以将处理器联接到非易失性存储器和驱动单元。非易失性存储器通常是磁软盘或硬盘、磁光盘、光盘、只读存储器(rom)(例如cd-rom、eprom或eeprom)、磁卡或光卡、或用于大量数据的另一种存储形式。在计算机中运行软件期间,这些数据中的一些通常通过直接存储器访问过程写入存储器。非易失性存储器可以是本地的、远程的或分布式的。非易失性存储器是可选的,因为可以使用存储器中可用的所有适用数据创建系统。典型的计算机系统通常至少包括处理器、存储器和将存储器联接到处理器的设备(例如总线)。
138.软件可以存储在非易失性存储器和/或驱动单元中。实际上,对于大型程序,甚至可能无法将整个程序存储在存储器中。然而,应该理解,为了运行软件,如果需要,它被移动到适合处理的计算机可读位置,并且为了说明的目的,该位置在本文中被称为存储器。即使软件被移到存储器中执行,处理器也可以利用硬件寄存器来存储与软件相关联的值,以及利用理想情况下用于加速执行的本地缓存。如本文所使用的,当软件程序被称为“在计算机可读介质中实现”时,假定软件程序存储在任何已知或方便的位置(从非易失性存储器到硬件寄存器)。当与程序相关联的至少一个值存储在处理器可读的寄存器中时,处理器被认为是“配置为执行程序”。
139.总线还可以将处理器联接到网络接口设备。该接口可以包括调制解调器和网络接口中的一者或多者。应当理解,调制解调器或网络接口可以被认为是计算机系统的一部分。该接口可以包括模拟调制解调器、综合服务数字网络(isdn0)调制解调器、电缆调制解调器、令牌环接口、卫星传输接口(例如,“直接pc”)、或用于将计算机系统联接到其他计算机系统的其他接口。接口可以包括一个或多个输入和/或输出(i/o)设备。i/o设备可以包括,例如但不限于,键盘、鼠标或其他定点设备、磁盘驱动器、打印机、扫描仪、以及其他输入和/或输出设备,包括显示设备。作为示例而非限制,显示设备可以包括阴极射线管(crt)、液晶显示器(lcd)或一些其他适用的已知或方便的显示设备。
140.在操作中,计算机系统可以由包括文件管理系统(例如磁盘操作系统)的操作系统软件控制。具有相关联文件管理系统软件的操作系统软件的一个示例是来自华盛顿州雷德
蒙德(redmond)的微软公司的被称为的操作系统系列及其相关联文件管理系统。操作系统软件及其相关联文件管理系统软件的另一个示例是linux
tm
操作系统及其相关联文件管理系统。文件管理系统可以存储在非易失性存储器和/或驱动单元中,并且可以使处理器执行操作系统所需的各种动作以输入和输出数据并将数据存储在存储器中,包括将文件存储在非易失性存储器和/或驱动单元中。
141.具体实施方式的一些部分可以根据对计算机存储器内的数据位的操作的算法和符号表示来呈现。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们的工作内容传达给本领域的其他技术人员的手段。算法在这里,并且通常被认为是导致期望结果的自洽操作序列。这些操作是那些需要对物理量进行物理操纵的操作。通常,尽管不是必须的,这些量采取能够被存储、传输、组合、比较和以其他方式操纵的电或磁信号的形式。有时,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、术语、数字等已被证明是方便的。
142.然而,应该记住,所有这些和类似的术语都与适当的物理量相关联并且仅仅是应用于这些量的方便标签。除非从下面的讨论中明确指出,否则应理解,在整个说明书中,使用诸如“处理”或“计算(computing)”或“计算(calculating)”或“确定”或“显示”或“生成”等术语的讨论,指计算机系统或类似电子计算设备的动作和过程,该计算机系统或类似电子计算设备操纵计算机系统的寄存器和存储器内表示为物理(电子)量的数据,并将其转换为计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备内类似地表示为物理量的其他数据。
143.本文提出的算法和显示与任何特定的计算机或其他装置没有内在关联。根据本文的教导,各种通用系统可以与程序一起使用,或者可以证明其对于构造更专业的装置来执行一些示例的方法是方便的。各种这些系统所需的结构将在下面的描述中出现。此外,这些技术没有参考任何特定的编程语言来描述,因此各种示例可以使用各种编程语言来实现。
144.在各种实现方式中,系统作为独立设备操作或可以连接(例如,联网)到其他系统。在联网部署中,系统可以在客户端-服务器网络环境中以服务器或客户端系统的身份操作,或者在对等(或分布式)网络环境中作为对等系统操作。
145.系统可以是服务器计算机、客户端计算机、个人计算机(pc)、平板pc、膝上型计算机、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、iphone、blackberry(黑莓)、处理器、电话、web设备、网络路由器、交换机或桥接器、或任何能够执行一组指令(按顺序或其他)的系统,这些指令指定了该系统要采取的动作。
146.虽然机器可读介质或机器可读存储介质作为示例被示出为单个介质,但术语“机器可读介质”和“机器可读存储介质”应当被理解为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。术语“机器可读介质”和“机器可读存储介质”还应理解为包括能够存储、编码或携带一组供系统执行的指令并且使系统执行本文公开的任何一种或多种方法或模块的任何介质。
147.一般而言,为实现本发明的实现方式而执行的例程可以作为操作系统或称为“计算机程序”的特定应用程序、组件、程序、客体、模块或指令序列的一部分来实现。计算机程序通常包括在不同时间设置在计算机中的各种存储器和存储设备中的一个或多个指令,并且当被计算机中的一个或多个处理单元或处理器读取和执行时,使计算机执行操作以执行
涉及本发明的各个方面的要素。
148.此外,虽然已经在功能齐全的计算机和计算机系统的上下文中描述了示例,但是本领域技术人员将理解各种示例能够以各种形式作为程序客体分发,并且无论用于实际实现分发的特定类型的机器或计算机可读介质如何,本发明同样适用。
149.机器可读存储介质、机器可读介质或计算机可读(存储)介质的进一步示例包括但不限于:可记录类型的介质,例如易失性和非易失性存储设备、软盘和其他可移除磁盘、硬盘驱动器、光盘(例如,光盘只读存储器(cd rom)、数字通用光盘(dvd)等)等;以及传输类型的介质,例如数字通信链路和模拟通信链路。
150.在一些情况下,存储器设备的操作,例如从二进制一到二进制零的状态改变(或反之亦然),例如可以包括变换,例如物理变换。对于特定类型的存储器设备,这样的物理变换可以包括将物品物理变换到不同的状态或事物。例如但不限于,对于某些类型的存储器设备,状态变化可能涉及电荷的累积和存储、或存储的电荷的释放。同样,在其他存储器设备中,状态变化可以包括磁取向的物理变化或变换、或者分子结构的物理变化或变换,例如从结晶到无定形变化或变换或反之亦然。前述内容并不旨在是其中存储器设备中二进制一到二进制零(或反之亦然)的状态改变可以包括变换(例如物理变换)的所有示例的详尽列表。相反,前述内容旨在作为说明性示例。
151.存储介质通常可以是非暂时性的或包括非暂时性设备。在此上下文中,非暂时性存储介质可以包括有形的设备,这意味着该设备具有具体的物理形式,尽管该设备可以改变其物理状态。因此,例如,非暂时性是指尽管状态发生了这种变化,但设备仍然是有形的。
152.以上描述和附图是说明性的并且不应被解释为将主题限制为所公开的确切形式。相关领域的技术人员可以理解,根据上述公开内容,许多修改和变化是可能的。描述了许多具体细节以提供对本发明的透彻理解。然而,在某些实例中,没有描述众所周知的或常规的细节以避免使描述模糊不清。
153.如本文所使用的,当应用于系统的模块时,术语“连接”、“联接”或其任何变型表示两个或更多个元件之间的任何直接或间接的连接或联接;元件之间的连接或联接可以是物理的、逻辑的或它们的任意组合。此外,当在本技术中使用时,词语“本文”、“以上”、“以下”和类似含义的词语应指本技术的整体而不是本技术的任何特定部分。在上下文允许的情况下,上述具体实施方式中使用单数或复数的词语也可以分别包括复数或单数。提及两个或更多个项目的列表时,“或”一词涵盖了对该词的所有以下解释:列表中的任何项目、列表中的所有项目、或列表中的项目的任何组合。
154.本领域技术人员将理解,所公开的主题可以以下面未示出的其他形式和方式来体现。可以理解,关系术语(如果有的话),例如第一、第二、顶部和底部等,仅用于将一个实体或动作与另一个实体或动作区别开来,而不必要求或暗示此类实体或动作之间的任何此类实际关系或顺序。
155.虽然过程或块以给定顺序呈现,但替选实现方式可以执行具有不同顺序的步骤的例程,或采用具有不同顺序的块的系统,并且可以删除、移动、添加、细分、替换、组合和/或修改一些过程或块,以提供替代或子组合。这些过程或块中的每一者可以以各种不同的方式来实现。此外,虽然过程或块有时被示出为串行执行,但这些过程或块可以替代地并行执行,或者可以在不同时间执行。此外,本文指出的任何特定数字仅是示例:替选实现方式可
以采用不同的值或范围。
156.本文提供的本发明的教导可以应用于其他系统,不一定是上述系统。可以组合上述各种示例的元件和动作以提供另外的示例。
157.任何上述专利和申请以及其他参考文献(包括可能在随附文件中列出的任何文献),均通过引用并入本文。如果需要,可以修改本发明的各方面以采用上述各种参考文献的系统、功能和概念来提供本发明的又一些示例。
158.可以根据以上具体实施方式对本发明进行这些和其他改变。尽管以上描述描述了某些示例,并且描述了所设想的最佳模式,但是无论以上内容在文本中出现地多么详细,都可以以多种方式实践这些教导。系统的细节在其实现细节上可以有很大的不同,但仍被本文所公开的主题所涵盖。如上所述,在描述本发明的某些特征或方面时使用的特定术语不应被视为暗示该术语在本文中被重新定义为限于与该术语相关联的本发明的任何特定特征、特性或方面。一般而言,以下权利要求中使用的术语不应被解释为将本发明限制于说明书中公开的特定实现方式,除非上述具体实施方式部分明确定义了这些术语。因此,本发明的实际范围不仅包括所公开的实现方式,还包括实践或实现权利要求下的公开内容的所有等效方式。
159.尽管以某些权利要求形式呈现了本发明的某些方面,但是发明人预期到任何数量的权利要求形式的本发明的各个方面。任何旨在根据35u.s.c.
§
112(f)进行处理的权利要求将以表述“用于
……
的手段(means for)”开头。因此,申请人保留在递交本技术之后添加附加权利要求以寻求用于本发明的其他方面的这些附加权利要求形式的权利。
160.在本发明的上下文内,在本说明书中所使用的术语通常具有其在本领域和在每个术语所使用的特定上下文中的通常含义。用于描述本发明的特定术语在以上或者说明书中的其他地方进行讨论,以为实践者提供关于本发明的描述的附加指导。为了方便,某些术语可以被突出,例如使用大写、斜体、和/或引号。使用突出不会对术语的范围和含义有任何影响;在同一上下文中,无论术语是否被突出,该术语的范围和含义都是相同的。能够理解,同一元素可以以多于一种的方式被描述。
161.因此,针对本文所讨论的任何一个或多个术语可以使用替选语言和同义词,单不是基于术语是否在本文中详尽阐述或讨论而对其赋予任何特殊意义。提供了某些术语的同义词。一个或多个同义词的记载并不排除其他同义词的使用。包括本文所讨论的任何术语的示例在内的本说明书中任何地方的示例的使用都仅是说明性的,并且不旨在进一步限制本发明或任何示例性术语的范围和含义。同样地,本发明并不限于本说明书中所给出的各个示例。
162.下面给出根据本发明的示例的设备、装置、方法及其相关结果的示例,但不意图进一步限制本发明的范围。需要注意的是,为了阅读者方便,可以在示例中使用标题或副标题,但不以任何方式限制本发明的范围。除非另外定义,否则本文所使用的所有技术术语和科学术语具有与本发明所属领域的普通技术人员通常理解的含义相同的含义。在有冲突的情况下,将以包括定义的本文为准。
163.本说明书的一些部分描述了对信息进行操作的算法和符号表示的示例。这些算法描述和表示通常由数据处理领域的技术人员用于将其工作实质有效地传达给本领域的其他技术人员。当从功能上、从计算方面、或从逻辑上描述这些操作时,这些操作被理解成将
由计算机程序或等效电路、微代码等实现。此外,还已经证实将这些操作的布置称为模块有时是方便的,且不失通用性。所描述的操作及其相关联的模块可以体现在软件、固件、硬件、或其任意组合中。
164.本文描述的任何步骤、操作、或过程可以利用一个或多个硬件或软件模块单独地或与其他设备结合地执行或实现。在一些示例中,软件模块利用包括计算机可读介质的计算机程序客体来实现,计算机可读介质包含计算机程序代码,该计算机程序代码可由计算机处理器执行以用于执行所描述的步骤、操作、或过程中的任一者或全部。
165.示例还可以涉及用于执行本文中的操作的装置。该装置可以被专门构建以用于所需目的,和/或该装置可以包括通过计算机中存储的计算机程序选择性激活或重新配置的通用计算设备。这种计算机程序可以存储在非暂时性的有形计算机可读存储介质或适合于存储电子指令的任何类型的介质中,所述介质可以联接到计算机系统总线。此外,本说明书中提及的任何计算系统都可以包括单个处理器或者可以是采用多处理器设计以提高计算容量的架构。
166.示例还可以涉及由本文描述的计算进程形成的客体。该客体可以包括由计算进程产生的信息,其中该信息存储在非暂时性的有形计算机可读存储介质上以及可以包括计算机程序客体或本文描述的其他数据组合的任何实现方式。
167.已经主要出于可读性和指导目的而选择本说明书中所使用的语言,而不是选择这些语言来描绘或约束主题。因此,不意图通过详细描述来限制本发明的范围,而是通过基于本技术发布的任何权利要求来限制。因此,示例的公开意图是说明性的,而非对主题的范围的限制,主题的范围在所附权利要求中阐述。
168.在以上描述中给出了特定细节以提供对系统和用于上下文连接系统的组件的各种实现方式的透彻理解。然而,本领域普通技术人员应当理解,可以在没有这些细节的情况下实践上述实现方式。例如,电路、系统、网络、进程、和其他组件可以被示为框图形式的组件,以免在不必要的细节上使实施方式模糊不清。在其他情况下,可以示出公知的电路、过程、算法、结构和技术而没有不必要的细节,以避免使实施方式模糊不清。
169.另外,应当注意,各个实现方式可以被描述为过程,该过程被描绘为流程图、作业图、数据流图、结构图或框图。尽管流程图可以将操作描述为顺序过程,但是许多操作可以并行或同时执行。另外,可以重新安排操作的顺序。当一个过程的操作完成时,该过程将终止,但是可以具有未包含在图中的附加步骤。过程可以对应于方法、函数、程序、子例程、子程序等。当过程对应于函数时,其终止可对应于该函数返回到调用函数或主函数。
170.客户端设备、网络设备、和其他设备可以是计算系统,该计算系统包括一个或多个集成电路、输入设备、输出设备、数据存储设备、和/或网络接口等等。集成电路可以包括例如一个或多个处理器、易失性存储器、和/或非易失性存储器等等。输入设备可以包括例如键盘、鼠标、小键盘、触摸界面、麦克风、相机和/或其他类型的输入设备。输出设备可以包括例如显示屏、扬声器、触觉反馈系统、打印机和/或其他类型的输出设备。诸如硬盘驱动器或闪存的数据存储设备可以使计算设备能够临时地或永久地存储数据。诸如无线或有线接口的网络接口可以使计算设备能够与网络通信。计算设备的示例包括台式计算机、膝上型计算机、服务器计算机、手持计算机、平板电脑、智能电话、个人数字助理、数字家庭助理、以及已经并入计算设备的机器和装置。
171.术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光存储设备、以及能够存储、包含、或承载(一个或多个)指令和/或数据的各种其他介质。计算机可读介质可以包括非暂时性介质,该非暂时性介质中可以存储数据,并且不包括无线地或通过有线连接传播的载波和/或暂时性电信号。非暂时性介质的示例可以包括但不限于磁盘或磁带、诸如光盘(cd)或数字通用光盘(dvd)的光存储介质、闪存、存储器或存储器设备。计算机可读介质可以具有其上存储的代码和/或机器可执行指令,代码和/或机器可执行指令可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类、或者指令、数据结构或程序语句的任何组合。一代码段可以通过传递和/或接收信息、数据、自变量、参数、或存储内容而与另一代码段或硬件电路关联。信息、自变量、参数、数据等可以通过包括内存共享、消息传递、令牌传递、网络传输等的任何适当手段来进行传递、转发或传输。
172.以上讨论的各种示例还可以通过硬件、软件、固件、中间件、微代码、硬件描述语言、或它们的任何组合来实现。当以软件、固件、中间件或微代码实现时,执行必要任务的程序代码或代码段(例如,计算机程序产品)可以存储在计算机可读介质或机器可读存储介质(例如,用于存储程序代码或代码段的介质)中。在集成电路中实现的(一个或多个)处理器可以执行必要任务。
173.当组件被描述为“被配置成”执行某些操作时,这种配置可以例如通过将电子电路或其他硬件设计成执行操作、通过将可编程电子电路(例如,微处理器、或其他合适的电子电路)编程为执行操作、或者其任何组合来完成。
174.结合本文公开的实现方式描述的各种说明性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件、固件、或其组合。为了清楚地说明硬件和软件的可互换性,以上已经在其功能方面总体上描述了各种说明性组件、块、模块、电路、和步骤。这种功能被实现为硬件还是软件取决于特定应用和对整个系统施加的设计约束。技术人员可以针对每种特定应用以不同方式实现所描述的功能,但是这种实现决策不应被解释为造成偏离本发明的范围。
175.本文描述的技术也可以在电子硬件、计算机软件、固件或其任何组合中实现。这样的技术可以在多种设备中的任何一种中实现,例如通用计算机、无线通信设备手机、或具有多种用途的集成电路设备,包括在无线通信设备手机和其他设备中的应用程序。描述为模块或组件的任何特征都可以在集成逻辑设备中一起实现,或者作为分立但可互操作的逻辑设备单独实现。如果以软件实现,则该技术可以至少部分地由包括程序代码的计算机可读数据存储介质实现,该程序代码包括当被执行时,执行上述方法中的一种或多种的指令。计算机可读数据存储介质可以形成计算机程序产品的一部分,该计算机程序产品可以包括封装材料。计算机可读介质可以包括存储器或数据存储介质,例如随机存取存储器(ram),例如同步动态随机存取存储器(sdram)、只读存储器(rom)、非易失性随机存取存储器(nvram)、电可擦可编程只读存储器(eeprom)、闪存、磁或光数据存储介质等。附加地或替选地,这些技术可以至少部分地通过计算机可读通信介质来实现,该计算机可读通信介质承载或传送指令或数据结构(例如传播的信号或波)形式的程序代码并且这些指令或数据结构可以由计算机访问、读取和/或执行。
176.程序代码可以由处理器执行,处理器可以包括一个或多个处理器,诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列
(fpga)、或其他等效集成或离散逻辑电路。这种处理器可以被配置成执行本发明中描述的任何技术。通用处理器可以是微处理器;但是在替选方案中,处理器可以是任何常规处理器、控制器、微控制器、或状态机。处理器也可以实现为计算设备的组合,例如dsp和微处理器的组合、多个微处理器、与dsp核结合的一个或多个微处理器、或者任何其他这种配置。因此,本文中所使用的术语“处理器”可以是指任何前述结构、前述结构的任何组合、或适于实现本文所描述的技术的任何其他结构或装置。此外,在一些方面中,可以在被配置成用于实现暂停的数据库更新系统的专用软件模块或硬件模块内提供本文所描述的功能。
177.已经出于说明和描述的目的呈现了技术的前述详细描述。该详细描述并非详尽的,也不意图将技术限制到所公开的确切形式。鉴于以上教导可以有许多修改和变型。选择所描述的实施方式是为了最好地解释技术的原理、其实践应用,以及使本领域其他技术人员能够在各种实施方式中利用该技术并且与适用于预期的特定用途的各种修改一起利用该技术。旨在通过权利要求来限定本技术的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献