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

用于将消息收发转移到自动化的系统和方法与流程

2022-03-23 08:53:06 来源:中国专利 TAG:

用于将消息收发转移到自动化的系统和方法
1.相关申请的交叉引用
2.本技术要求于2019年8月7日提交的美国临时专利申请no.62/883,994的权益,该临时专利申请通过引用以其整体并入本文中。
技术领域
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.图10a-图10g是用于将消息收发转移到自动化的用户界面的屏幕截图;以及
19.图11是用于将消息收发转移到自动化的方法的流程图。
20.在附图中,相似的组件和/或特征可以具有相同的附图标记。此外,相同类型的各种组件可以通过在附图标记后加上破折号和第二标记来区分,第二标记在相似的组件之间进行区分。如果在说明书中仅使用了第一附图标记,则该描述适用于具有相同的第一附图标记的相似组件中的任一者,而与第二附图标记无关。
具体实施方式
21.随后的描述仅提供了(一个或多个)实施方式的优选示例,并且不旨在限制本发明的范围、适用性或配置。相反,随后的(一个或多个)实施方式的优选示例的描述将向本领域技术人员提供用于实现实施方式的优选示例的使能描述。应当理解,在不脱离如所附权利要求书所阐述的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
22.图1示出了实现并支持本文中描述的特定实施方式和特征的网络交互系统100的实施方式的框图。某些实施方式涉及在网络设备105(其可以由用户110操作)与终端设备115(其可以由代理120操作)之间建立连接通道。在某些实施方式中,网络交互系统100可以包括与客户端125相关联的客户端设备130。
23.在某些实施方式中,用户110可以是浏览网站或访问由远程服务器140提供的在线服务的个人。客户端125可以是提供、操作或运行网站或在线服务的实体,或者是这种实体雇佣或由该实体指派以执行如本文中所描述的客户端125可用的任务的个人。代理120可以是个人,例如支持代理,其任务是向用户110提供有关网站或在线服务的支持或信息。在大量代理中,代理的子集可能适合于为特定客户端125提供支持或信息。代理120可以与客户端125有关或无关。每个代理可以与一个或多个客户端125相关联。在一些非限制性示例中,用户110可以是从个人计算设备在在线商店购物的个人,客户端125可以是在线销售产品的公司,并且代理120可以是由公司雇佣的代表。在各种实施方式中,用户110、客户端125和代理120可以是其他个人或实体。
24.虽然图1仅示出了单个的网络设备105、终端设备115和客户端设备130,但是交互系统100可以包括这些类型的设备中的一者或多者中的每一者的多个或许多(例如,数十个、数百个或数千个)。类似地,虽然图1仅示出了单个的用户110、代理120、和客户端125,但是交互系统100可以包括这种实体中的一者或多者中的每一者的多个或许多。因此,可能有必要确定要选择哪个终端设备与给定的网络设备进行通信。另外使事情复杂化的是,远程服务器140也可以被配置为接收并响应以选择网络-设备通信。
25.连接管理系统150可以促进通信的战略路由。通信可以包括具有内容的消息(例如,基于来自实体的输入(诸如键入或口头输入)定义的消息)。该通信还可以包括:附加数据,例如关于发送设备的数据(例如,ip地址、账户标识符、设备类型和/或操作系统);目的地址;客户端的标识符;网页或网页元素(例如,在生成通信时正在访问的或以其他方式与
通信相关联的网页或网页元素)的标识符或在线历史数据;时间(例如一天中的时间和/或日期);和/或目的地址。在通信中可以包括其他信息。在一些实例中,连接管理系统150将整个通信路由至另一设备。在一些实例中,连接管理系统150修改通信或生成新的通信(例如,基于初始通信)。新的或修改后的通信可以包括消息(或其经处理版本)、(例如,关于发送设备、网页或在线历史记录和/或时间的)附加数据的至少一些(或全部)和/或由连接管理系统150识别的其他数据(例如,与特定账户标识符或设备相关联的账户数据)。新的或修改后的通信也可以包括其他信息。
26.战略路由促进的一部分可以包括在网络设备105与一个或多个终端设备115之间建立、更新和使用一个或多个连接通道。例如,在从网络设备105接收到通信后,连接管理系统150可以首先估计通信对应于哪个客户端(如果有的话)。在识别客户端之后,连接管理系统150可以识别与该客户端相关联的用于与网络设备105进行通信的终端设备115。在一些实例中,该识别可以包括评估多个代理(或专家或代表)中的每一者的简介,多个代理中的每个代理(例如,代理120)与终端设备(例如,终端设备115)相关联。该评估可以涉及网络-设备消息中的内容。终端设备115的识别可以包括例如在2010年3月17日递交的美国申请号12/725,799中描述的技术,出于所有目的,该申请通过引用以其整体并入本文中。
27.在一些实例中,连接管理系统150可以确定在网络设备105和与客户端(或远程服务器140)相关联的终端设备之间是否建立了任何连接通道,并且如果是,则确定是否要使用这种通道来交换包括所述通信在内的一系列通信。
28.在选择终端设备115来与网络设备105通信时,连接管理系统150可以在网络设备105和终端设备115之间建立连接通道。在一些实例中,连接管理系统150可以将消息发送到所选择的终端设备115。该消息可以请求接受所提议的与网络设备105进行通信的指派或者识别已经生成了这种指派。该消息可以包括关于网络设备105的信息(例如,ip地址、设备类型和/或操作系统)、关于相关联用户110的信息(例如,所说的语言、已经与客户端交互的持续时间、技能水平、情绪和/或主题偏好)、接收到的通信、用于生成通信并将其发送到网络设备105的代码(例如,可点击的超链接)、和/或用于生成通信并将其发送到网络设备105的指令。
29.在一个实例中,可以通过连接管理系统150来路由网络设备105与终端设备115之间的通信。这种配置可以允许连接管理系统150监控通信交换并检测问题(例如,如基于规则所定义的问题),例如任一设备的无响应或延长的延迟。此外,这种配置可以促进通信的选择性或完整存储,这可以稍后用于例如评估通信交换的质量和/或支持学习以更新或生成路由规则,从而推进特定的后通信目标。
30.在一些实施方式中,连接管理系统150可以实时监控通信交换,并且基于实时通信执行自动化动作(例如,基于规则的动作)。例如,当连接管理系统150确定通信与特定项目(例如,产品)有关时,连接管理系统150可以自动向终端设备115发送包含关于该项目的附加信息(例如,可用项目的数量、到与该项目有关的支持文档的链接、或关于该项目或类似项目的其他信息)的附加消息。
31.在一个实例中,指定的终端设备115可以与网络设备105通信而无需通过连接管理系统150中继通信。设备105、115中的一者或两者可以(或者可以不)向连接管理系统150报告特定的通信度量或内容,以促进通信监控和/或数据存储。
32.如上所述,连接管理系统150可以将选择的通信路由到远程服务器140。远程服务器140可以被配置为以预定方式提供信息。例如,远程服务器140可以响应于通信而访问定义的一个或多个待发送的文本段落、语音记录和/或文件。远程服务器140可以基于例如对接收到的通信的分析(例如,语义或映射分析)来选择特定的文本段落、记录或文件。
33.可以基于至少部分地由一个或多个客户端设备130定义或由其提供的规则和/或数据来执行在连接管理系统150处执行的路由和/或其他确定或处理。例如,客户端设备130可以发送标识代理的优先级、终端-设备类型、和/或主题/技能匹配度的通信。作为另一示例,客户端设备130可以标识一个或多个权重以应用于可能影响路由确定的各种变量(例如,语言兼容性、预测的响应时间、设备类型和能力、和/或终端-设备负载平衡)。将理解的是,哪些终端设备和/或代理将与客户端相关联可以是动态的。来自客户端设备130和/或终端设备115的通信可以提供指示给定的终端设备和/或代理将作为与客户端相关联的一个终端设备和/或代理被添加或移除的信息。例如,客户端设备130可以发送具有ip地址以及关于具有该地址的终端设备是否要添加到列表中或从该列表移除的指示的通信,该列表标识与客户端相关联的终端设备。
34.每个通信(例如,设备之间的通信、设备与连接管理系统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等。
35.例如,网络设备105、终端设备115、和/或客户端设备130可以包括便携式电子设备(例如,智能电话、平板电脑、便携式计算机或智能设备可穿戴设备)或非便携式电子设备(例如,一个或多个台式计算机、智能家电、服务器和/或处理器)。连接管理系统150可以与网络、终端、和客户端设备分开设置,或者可以是一个或多个这样的设备的一部分(例如,通过在设备上安装应用程序)。远程服务器140可以与每个设备和连接管理系统150分开设置,和/或可以是另一设备或系统的一部分。尽管图1中的每个设备、服务器和系统被示为单个设备,但是应当理解,可以替代地使用多个设备。例如,可以使用一组网络设备来传输来自单个用户的各种通信,或者远程服务器140可以包括服务器堆栈。
36.软件代理或应用程序可以被安装在所描绘的设备、系统或服务器上和/或在所描绘的设备、系统或服务器上可执行。在一个实例中,软件代理或应用程序被配置为使得各种描绘的元素可以互补的方式起作用。例如,可以将设备上的软件代理配置为收集关于设备使用情况的数据并将其发送到单独的连接管理系统,并且可以将单独的连接管理系统上的软件应用程序配置为接收和处理数据。
37.图2示出了另一实施方式的网络交互系统200的框图。总体上,图2示出了被配置和布置为使网络设备205能够与一个或多个终端设备215通信的各种组件。所描绘的实例包括在三个局域网235中包括的九个终端设备215。
38.在一些实例中,来自网络设备205的通信包括目的数据(例如,目的ip地址),其至少部分或全部指示哪个终端设备将接收该通信。网络交互系统200可以包括一个或多个网络间连接组件240和/或一个或多个网络内连接组件255,它们可以处理目的数据并促进适当的路由。
39.每个网络间连接组件245可以连接到多个网络235,并且可以具有安装的多个网卡(例如,每个卡连接到不同的网络)。例如,网络间连接组件245可以连接到广域网270(例如,互联网)和一个或多个局域网235。在所描绘的实例中,为了将通信从网络设备205传输到任何终端设备,在所描绘的系统中,必须由多个网络间连接组件245来处理该通信。
40.当网络间连接组件245接收到通信(或与该通信相对应的一组数据包)时,网络间连接组件245可以确定路由的至少一部分,以将该通信传递给与目的地相关联的网络。可以使用例如路由表(例如,存储在路由器处)来确定该路由,该路由表可以包括基于传入消息(例如,来自另一路由器或另一设备)生成的、或学习的一个或多个预先定义的路由。
41.网络间连接组件245的示例包括路由器260和网关265。网络间连接组件245(例如,网关265)可以被配置为在网络系统之间或协议之间进行转换。例如,网关265可以促进传输控制协议/互联网协议(tcp/ip)设备与互联网分组交换/序列分组交换(ipx/spx)设备之间的通信。
42.在局域网235处接收到通信后,可能仍需要执行进一步的路由。可以通过诸如交换机280或集线器285之类的网络内连接组件255来执行这样的网络内路由。每个网络内连接组件255可以(例如,无线地或有线地,诸如通过以太网电缆)被连接至多个终端设备215。集线器285可以被配置为将所有接收到的通信重复到它所连接到的每个设备。每个终端设备然后可以评估每个通信以确定该终端设备是否是目的设备或者该通信是否将被忽略。交换机280可以被配置为选择性地将通信仅定向到目的终端设备。
43.在一些实例中,局域网235可以被划分成多个段,每个段可以与独立的防火墙、安全规则和网络协议相关联。可以在一个、多个或所有段中的每者中提供网络内连接组件255,以促进段内路由。桥接器280可以被配置为跨段275路由通信。
44.为了跨网络或在网络内适当地路由通信,各种组件分析通信中的目的数据。例如,这样的数据可以指示通信将被路由到哪个网络、通信将被路由到网络内的哪个设备、或者终端设备将要处理(和忽略)哪些通信。然而,在一些实例中,不能立即清楚哪个终端设备(或甚至哪个网络)要参与来自网络设备的通信。
45.为了说明,可以配置一组终端设备以便提供类似类型的响应通信。因此,可以预期,可以以类似的方式来响应来自网络设备的通信中的查询,而不管该通信被路由到哪个网络设备。虽然该假设在高水平上可能是正确的,但是与终端设备有关的各种细节可能导致特定的路由与其他路由相比是有利的。例如,所述集合中的终端设备关于(例如)以下可能彼此不同:支持哪些通信通道、与网络设备的地理和/或网络接近度、和/或相关联代理的特征(例如,知识库、经验、所说的语言、可用性、一般性格或情绪等)。因此,选择路由可以促进更快的响应,该更快的响应更准确地和/或完整地响应于网络-设备通信。复杂的是,将网
络设备映射至终端设备的静态路由可能无法解释通信主题、通道类型、代理可用性等的变化。
46.图3a-图3c示出了其他实施方式的包括连接管理系统的网络交互系统300a-300c的框图。为了简单起见,所描绘的系统300a-300c中的每一者仅示出了两个局域网235,但是可以理解的是,可以扩展实施方式以扩展局域网的数量。系统300a-300c中的每一者都包括连接管理系统350,该连接管理系统350可以标识哪个终端设备要与网络设备205通信,可以建立和管理(例如,保持或关闭)连接通道,可以确定是否以及何时在交换中重新路由通信等。因此,连接管理系统350可以被配置为动态地并且实时地评估通信、代理可用性、终端设备或代理的能力等,以影响路由确定。
47.在图3a中,连接管理系统350与网络设备205和远程服务器340中的每一者相关联(例如,连接管理系统350a与网络设备205相关联,而连接管理系统350b与远程服务器340相关联)。例如,可以将连接管理系统350a和/或连接管理系统350b作为应用程序分别安装或存储在网络设备205和远程服务器340中的每一者上。(一个或多个)应用程序的执行例如可以促进网络设备205与远程服务器340之间的通信,以标识被选择参与的与网络设备205的通信交换的终端设备215。可以基于一个或多个本文中公开的因素(例如,可用性、通信的主题/详细水平与代理或终端设备的知识库之间的匹配度、预测的延迟,通道类型可用性等等)来进行标识。
48.客户端设备330可以提供客户端数据,该客户端数据指示将如何进行路由确定。例如,这种数据可以包括:关于特定特征如何被加权或匹配的指示或约束或偏差(例如,与负载平衡或预测的响应延迟有关)。客户端数据还可以包括与何时建立(或关闭)通信通道或者何时将通信重新路由至不同的网络设备有关的规范。客户端数据可用于定义各种客户端特定的规则,例如用于通信路由的规则等。
49.在远程服务器340上运行的连接管理系统350b可以监控与终端设备有关(例如,与给定的客户端有关)的各种度量,例如支持哪些通信通道、与网络设备的地理和/或网络接近度、与终端设备的通信延迟和/或稳定性、终端设备的类型、终端设备的能力、终端设备(或代理)是否在先已经与给定的网络设备(或用户)通信、和/或与代理相关联的特征(例如,知识库、经验、所说的语言、可用性、一般性格或情绪等)。因此,可以使连接管理系统350b能够选择路由以促进更快的响应,该更快的响应基于度量更准确地和/或完整地响应于网络-设备通信。
50.在图3a所描绘的示例中,网络设备205和远程服务器340之间的通信交换可以促进目的地址的更早识别。然后,网络设备205可以使用该目的地址来定向后续通信。例如,网络设备205可以向远程服务器340发送初始通信(例如,通过一个或多个网络间连接和广域网),并且远程服务器340可以识别一个或多个相应的客户端。然后,远程服务器340可以识别与所述一个或多个相应的客户端相关联的一组终端设备,并收集针对那些终端设备的度量。可以(例如,通过远程服务器340)评估这些度量以便选择参与通信交换的终端设备,并且可以将与该终端设备有关的信息(例如,ip地址)发送至网络设备205。在一些实施方式中,远程服务器340可以连续地或周期性地收集和评估针对各种终端设备的度量并将评估结果存储在数据存储器中。在这种实施方式中,在识别与所述一个或多个相应的客户端相关联的一组终端设备时,远程服务器340可以从数据存储器访问存储的评估结果,并且基于
存储的评估结果选择终端设备来参与通信交换。
51.在图3b中,连接管理系统350可以被配置为用作中继和/或目的地址。因此,例如,一组网络设备205可以发送通信,每个通信将连接管理系统350标识为目的地。连接管理系统350可以接收各个通信,并且可以同时监控一组终端设备(例如,以便生成针对每个终端设备的度量)。基于监控和规则,连接管理系统350可以识别其可以将各个通信中继到的终端设备215。根据该实施方式,终端设备通信可以类似地定向到一致的目的地(例如,连接管理系统350的目的地),以用于进一步中继,或者终端设备可以开始直接与相应的网络设备通信。这些实施方式可以促进有效路由和全面的通信监控。
52.图3c中描绘的实施方式类似于图3b中的实施方式。然而,在一些实施方式中,连接管理系统350直接连接至网络内组件(例如,终端设备、网络内连接或其他)。
53.应当理解,能够预期图3a-图3c的许多变型。例如,连接管理系统350可以与连接组件(例如,网络间连接组件245或网络内连接组件255)相关联,使得对应于连接管理系统350(或其一部分)的应用程序安装在该组件上。例如,可以独立地执行应用程序或通过与类似或补充的一个或多个应用程序(例如,在一个或多个其他组件、网络设备或远程服务器上执行的应用程序)通信来执行应用程序。
54.图4示出了连接组件的操作的协议栈映射400的表示。更具体地,图4标识了在开放系统交互(open systems interaction,osi)模型中的对应于各种连接组件的操作层。
55.osi模型可以包括多个逻辑层402-414。这些层布置成有序堆栈,使得层402-412中的每个层服务较高水平,而层404-414中的每个层由较低层服务。osi模型包括物理层402。物理层402可以定义参数物理通信(例如,电、光或电磁通信)。物理层402还定义连接管理协议,例如建立和关闭连接的协议。物理层402还可以定义流控制协议和传输模式。
56.链路层404可以管理节点到节点(node-to-node)的通信。链路层404可以检测并纠正错误(例如,物理层402中的传输错误)以及管理访问许可。链路层404可以包括媒体访问控制(media access control,mac)层和逻辑链路控制(logical link control,llc)层。
57.网络层406可以协调跨同一网络中的节点的(例如,作为数据报的)传输数据(例如,具有可变长度的传输数据)。网络层406可以将逻辑网络地址转换为物理机器地址。
58.传输层408可以管理发送和接收质量。传输层408可以提供用于传输数据的协议,例如传输控制协议(tcp)。传输层408可以执行用于传输的数据包的分段/重组,并且可以检测并解释在层402-406中发生的传输错误。会话层410可以发起、维持和终止本地和远程应用程序之间的连接。会话可以用作远程过程交互的一部分。表示层412可以基于已知由应用程序或网络层接受的数据类型来加密、解密和格式化数据。
59.应用层414可以与控制或管理通信的软件应用程序进行交互。通过这样的应用程序,应用层414可以(例如)识别目的地、本地资源状态或可用性和/或通信内容或格式化。各个层402-414可以执行可用并适用的其他功能。
60.网络内连接组件422被示出在物理层402中操作,网络内连接组件424被示出在链路层404中操作。更具体地,集线器可以在物理层中操作,使得可以关于通信的接收和发送来控制操作。由于集线器缺乏寻址通信或过滤数据的能力,因此集线器几乎没有能力在更高水平操作。同时,交换机可以在链路层404中操作,因为交换机能够基于地址(例如,mac地址)过滤通信帧。
61.同时,网络间连接组件426、428被示出在更高水平(例如,层406-414)上操作。例如,路由器可以基于地址(例如,ip地址)过滤通信数据包。路由器可以基于地址将数据包转发至特定端口,以便将数据包定向至适当的网络。网关可以在网络层及其以上层操作,执行类似的过滤和定向以及数据的进一步转换(例如,跨协议或架构)。
62.在各种实施方式中,连接管理系统450可以与各个层中的一个、多个、全部或任何层进行交互和/或在各个层中的一个、多个、全部或任何层上操作。例如,连接管理系统450可以与集线器交互,以便动态地调整集线器与哪些终端设备通信。作为另一示例,连接管理系统450可以与桥接器、交换机、路由器或网关进行通信,以便影响该组件选择哪个终端设备作为目的地址(例如,mac、逻辑或物理地址)。作为另外的示例,连接管理系统450可以监控、控制或定向传输层408上的数据包的分段、会话层410上的会话持续时间、和/或表示层412上的加密和/或压缩。在一些实施方式中,连接管理系统450可以通过与在特定层上操作的设备(例如,在链路层404上操作的交换机)进行交换通信(例如,发送命令至该设备)、通过以特定的方式路由或修改现有通信(例如,在网络设备和终端设备之间的通信)、和/或通过基于现有通信生成包含特定信息(例如,新目的地址)的新通信来与各个层进行交互。因此,连接管理系统450可以通过与各种设备的交互和/或通过影响在各种协议栈层处的操作来影响通信路由和通道建立(或保持或终止)。
63.图5表示根据一实施方式的多设备通信交换系统500。系统500包括网络设备505,该网络设备被配置为在各种类型的通信通道上与各种类型的终端设备通信。
64.在所描绘的实例中,网络设备505可以通过蜂窝网络(例如,通过基站510)传输通信。通信可以被路由至操作网络515。操作网络515可以包括连接管理系统520,该连接管理系统接收通信并标识哪个终端设备将响应于该通信。这种确定可以取决于识别该通信所属的客户端(例如,基于指示客户端的内容分析或用户输入)并确定与该客户端相关联的一个或多个终端设备中的每个终端设备的一个或多个度量。例如,在图5中,终端设备530a-530c的每个集群可以对应于不同的客户端。终端设备可以在地理上共同定位或是分散的。可以基于存储的或学习的数据和/或(例如,基于可用性的)实时监控来确定所述度量。
65.连接管理系统520可以通过一个或多个路由器525或其他网络间连接组件或网络内连接组件与各种终端设备进行通信。连接管理系统520可以在一个或多个数据存储器处收集、分析和/或存储来自(或关于)通信、终端-设备操作、客户端规则、和/或与用户相关联的动作(例如,在线活动)的数据。这种数据可能影响通信路由。
66.值得注意的是,还可以使用各种其他设备来影响通信路由和/或处理。例如,在所描绘的实例中,连接管理系统520还连接至网络服务器540。因此,连接管理系统520可以检索感兴趣的数据,例如技术项目细节等。
67.网络设备505还可以连接至网络服务器(例如,包括网络服务器545)。在一些实例中,与这种服务器的通信提供了发起与连接管理系统520的通信交换的初始选项。例如,网络设备505可以检测到在访问特定网页时通信机会是可获得的并且这种选项可以被呈现。
68.通信系统500的一个或多个元件也可以连接至社交联网服务器550。社交联网服务器550可以聚集从各种用户设备接收的数据。因此,例如,连接管理系统520可能能够估计给定用户或用户类别的一般(或用户特定)行为。
69.图6示出了连接管理系统600的实施方式的框图。消息接收器接口605可以接收消
息。在一些实例中,例如,可以接收消息作为由源设备(例如,与连接管理系统600分开设置或在同一外壳内)发送的通信的一部分,所述源设备例如网络设备或终端设备。在一些实例中,通信可以是一系列通信的一部分或通信交换,其可以包括正在两个设备(例如,网络设备和终端设备)之间路由的一系列消息或消息交换。该消息或通信交换可以是设备之间的交互的一部分和/或可以定义设备之间的交互。通信通道或操作通道可以包括用于促进设备之间的路由和通信交换的一个或多个协议(例如,路由协议、任务分配协议和/或寻址协议)。
70.在一些实例中,消息可以包括基于在本地用户界面或远程用户界面接收的输入而生成的消息。例如,消息可以包括基于按钮或按键或记录的语音信号而生成的消息。在一个实例中,消息包括自动生成的消息,例如在检测到网络设备正在呈现特定的应用页面或网页或者已经提供特定输入命令(例如,键序列)时生成的消息。该消息可以包括指令或请求,例如用于发起通信交换的指令或请求。
71.在一些实例中,消息可以包括客户端的标识符或与客户端的标识符相关联。例如,消息可以明确地标识客户端(或与客户端相关联的设备);消息可以包括与客户端相关联的网页或应用程序页面,或和与客户端相关联的网页或应用程序页面相关联;消息可以包括与客户端相关联的目的地址,或和与客户端相关联的目的地址相关联;或者消息可以包括与客户端相关联的项目(例如,产品)或服务的标识,或和与上述项目(例如,产品)或服务的标识相关联。为了说明,网络设备可以呈现特定客户端的应用页面,该应用页面可以提供将通信发送至代理的选项。在接收到与消息相对应的用户输入时,可以生成包含该消息和特定客户端的标识符的通信。
72.处理引擎610可以处理所接收的通信和/或消息。处理可以包括例如提取特定的一个或多个数据元素(例如,消息、客户端标识符、网络-设备标识符、账户标识符等)。处理可以包括转换格式或通信类型(例如,以与特定设备类型、操作系统、通信通道类型、协议和/或网络兼容)。
73.消息评估引擎615可以评估(例如,提取或接收的)消息。评估可以包括识别例如消息的一个或多个类别或标签。类别或标签类型的示例可以包括(例如)主题(topic)、情绪、复杂性和紧急性。对消息进行分类和标记之间的区别可以在于可以限制类别(例如,根据一组预定义的类别选项),而可以打开标签。主题可以包括例如技术问题、使用问题、或请求。例如,可以基于对消息的语义分析(例如,通过识别关键字、句子结构、重复的词、标点符号和/或非冠(non-article)词)、用户输入(例如,已经选择了一个或多个类别)、和/或与消息相关的统计信息(例如,键入速度和/或响应延迟)来确定类别或标签。
74.在一些实例中,消息评估引擎615可以确定消息的度量。度量可以包括例如字符、单词、大写字母、全大写单词或特定字符或标点符号的实例(例如,感叹号、问号和/或句号)的数量。度量可以包括比率,例如以感叹号(或问号)结尾的句子的分数、全部大写的单词的分数等等。
75.消息评估引擎615可以将消息、消息度量和/或消息统计信息存储在消息数据存储器620中。每个消息还可以与其他数据(例如,元数据)相关联地存储,其他数据例如识别相应源设备、目的设备、网络设备、终端设备、客户端、一个或多个类别、一个或多个阶段和/或与消息相关联的统计信息的数据。连接管理系统600的各种组件(例如,消息评估引擎615
和/或交互管理引擎625)可以查询消息数据存储器620以检索查询响应消息、消息度量和/或消息统计信息。
76.交互管理引擎625可以确定将通信路由至哪个设备以及接收设备和发送设备将如何通信。这些确定中的每一者可以取决于例如特定的网络设备(或与特定用户相关联的任何网络设备)是否先前已与一组终端设备中的一个终端设备(例如,与连接管理系统600相关联的任何终端设备、或与一个或多个特定客户端相关联的任何终端设备)进行通信。
77.在一些实例中,当网络设备(或与同一用户或配置文件相关联的其他网络设备)先前已经与给定的终端设备进行通信时,通信路由通常可偏向于该同一终端设备。可影响路由的其他因素可以包括例如,终端设备(或相应的代理)是否可用、和/或终端设备的预测的响应延迟。这些因素可以绝对地或相对于与其他终端设备相对应的类似度量来考虑。重新路由规则(例如,针对客户端特定的或一般的规则)可以指示如何评估和加权这些因素以确定是否放弃代理一致性。
78.当网络设备(或与同一用户或账户相关联的其他网络设备)先前未与给定的终端设备进行通信时,可以基于诸如以下的因素执行终端设备的选择:例如,各种代理的知识库与通信主题对应的程度、各种代理在给定时间和/或通道类型上的可用性、终端设备(例如与客户端相关联的终端设备)的类型和/或能力。在一个实例中,规则可以标识如何为诸如这些的一个或多个因素确定子参数以及给每个参数分配权重。通过组合(例如,求和)加权子参数,可以确定每个代理的参数。然后可以通过比较终端设备的参数来进行终端设备的选择。
79.关于确定设备将如何通信,交互管理引擎625可以(例如)确定终端设备是否通过sms消息、语音呼叫、视频通信等来响应通信。可以基于例如以下项来选择通信类型:通信类型优先级列表(例如,至少部分地由客户端或用户来定义);先前从网络设备接收的通信的类型(例如,以便促进一致性)、接收的消息的复杂性、网络设备的能力、和/或一个或多个终端设备的可用性。显然,一些通信类型将导致实时通信(例如,期望快速消息响应的情况),而其他通信类型可能导致异步通信(例如,消息之间的延迟(例如,几分钟或几小时)是可接受的情况)。
80.此外,交互管理引擎625可以确定是否应该建立、使用或终止两个设备之间的连续通道。可以构造连续通道,以便促进从网络设备到指定终端设备的未来通信的路由。这种偏见甚至可以在整个消息系列中持续存在。在一些实例中,连续通道的表示(例如,标识代理)可以包括在网络设备上待呈现的呈现中。以这种方式,用户可以理解该通信将被一致地路由以便提高效率。
81.在一个实例中,可以使用本文描述的一个或多个因素和规则(例如,包括所述一个或多个因素中的每个的权重)来生成参数,以确定对应于给定的网络设备和终端设备的连接参数。该参数可以与整体匹配度或特定于给定的通信或通信系列的匹配度有关。因此,例如,该参数可以反映预测给定终端设备适合于对网络-设备通信进行响应的程度。在一些实例中,参数分析可以用于标识要将给定通信路由到的每个终端设备以及是否建立、使用或终止连接通道。当参数分析用于处理路由决策和通道决策两者时,可以以相同、类似或不同的方式来确定与每个决策相关的参数。
82.因此,例如,将理解,根据参数用于预测长期匹配的强度还是响应特定消息查询,
可以考虑不同因素。例如,在前一种实例中,对总体时间表和时间区域的考虑可能是重要的,而在后一种实例中,立即可用性可能有更高的权重。可以针对单个网络-设备/终端-设备组合来确定参数,或者可以确定多个参数,每个参数表征给定网络设备和一不同的终端设备之间的匹配度。
83.为了说明,可以评估用于潜在通信路由的与客户端相关联的一组的三个终端设备。可以为每个终端设备生成与特定通信的匹配度有关的参数。前两个终端设备中的每者可以先前已经与已传输该通信的网络设备通信。来自网络设备的输入可以已经指示和与第一设备的(一个或多个)通信的交互相关联的正反馈。因此,第一设备、第二设备和第三设备的(如根据规则计算的)过往交互子参数可以分别是10、5和0。(负反馈度输入可以得到负的子参数。)可以确定仅第三终端设备是可用的。可以预测第二终端设备将在15分钟内可用于响应,但是第一终端设备将在第二天之前不可用于响应。因此,第一设备、第二设备和第三设备的快速响应子参数可以是1、3和10。最后,可以估计(与终端设备相关联的)代理了解通信中的主题的程度。可以确定与第三终端设备相关联的代理比与其他两个设备相关联的代理更了解,从而得到的子参数为3、4和9。在该示例中,规则不包括加权或归一化参数(虽然,在其他实例中,规则可以包括加权或归一化参数),从而得到的参数为14、11和19。因此,规则可以指示消息将被路由至具有最高参数的设备,即第三终端设备。如果到特定终端设备的路由不成功,则可以将消息路由至具有次高参数的设备,依此类推。
84.可以将参数与一个或多个绝对阈值或相对阈值进行比较。例如,可以将一组终端设备的参数相互比较以确定高参数,从而选择通信可以被路由至的终端设备。作为另一示例,可以将参数(例如,高参数)与一个或多个绝对阈值进行比较,以确定是否建立与终端设备的连续通道。用于建立连续通道的总阈值可以(但不必须)高于用于在给定的一系列消息中一致地路由通信的阈值。总阈值和用于确定是否一致地路由通信的阈值之间的这种差异可能是因为,考虑到通道的扩展效用,强匹配在连续-通道上下文中是重要的。在一些实施方式中,用于使用连续通道的总阈值可以(但不必须)低于用于建立连续通道的阈值和/或用于在给定的一系列消息中一致地路由通信的阈值。
85.交互管理引擎625可以在各种上下文中与账户引擎630交互。例如,账户引擎630可以在账户数据存储器635中查找网络设备或终端设备的标识符,以识别与该设备相对应的账户。此外,账户引擎630可以保持关于先前通信交换的数据(例如,时间、涉及的(一个或多个)其他设备、通道类型、问题解决阶段、(一个或多个)主题和/或相关联的客户端标识符)、连接通道(例如,对于一个或多个客户端中的每个客户端,指示:是否有任何通道存在、与每个通道相关联的终端设备、建立时间、使用频率、上次使用的日期、任何通道约束和/或支持的通信类型)、用户或代理偏好或约束(例如,关于终端-设备选择、响应延迟、终端-设备一致性、代理专业知识、和/或通信类型偏好或约束)、和/或用户或代理特征(例如,年龄、所说的或优选的(一种或多种)语言、地理位置、兴趣等)。
86.此外,交互管理引擎625可以向账户引擎630提醒各种连接通道(connection-channel)动作,使得可以更新账户数据存储器635以反映当前通道数据。例如,在建立通道时,交互管理引擎625可以通知账户引擎630该建立,并且标识网络设备、终端设备、账户和客户端中的一者或多者。账户引擎635可以(在一些实例中)随后通知用户该通道的存在,使得该用户可以意识到代理一致性是有用的。
87.交互管理引擎625还可以与客户端映射引擎640交互,客户端映射引擎640可以将通信映射至一个或多个客户端(和/或相关联的品牌(brand))。在一些实例中,从网络设备本身接收的通信包括对应于客户端的标识符(例如,客户端、网页或应用程序页面的标识符)。该标识符可以作为(例如,客户端映射引擎640可以检测的)消息的一部分而被包含或作为包含消息的通信中的其他数据而被包含。然后,客户端映射引擎640可以在客户端数据存储器645中查找该标识符,以检索关于客户端和/或客户端的标识符的附加数据。
88.在一些实例中,消息可以不特别对应于任何客户端。例如,消息可以包括一般查询。客户端映射引擎640可以例如对消息执行语义分析、识别一个或多个关键字并且标识与(一个或多个)关键字相关联的一个或多个客户端。在一些实例中,标识单个客户端。在一些实例中,标识出多个客户端。然后可以通过网络设备呈现每个客户端的标识,使得用户可以选择要与之(例如,通过相关联的终端设备)通信的客户端。
89.客户端数据存储器645可以包括与客户端相关联的一个或多个终端设备(和/或代理)的标识。终端路由引擎650可以检索或收集与一个、多个或所有的这种终端设备(和/或代理)中的每者有关的数据,以便影响路由确定。例如,终端路由引擎650可以维持终端数据存储器655,终端数据存储器655可以存储诸如终端设备的设备类型、操作系统、通信类型(communication-type)能力、安装的应用程序附件、地理位置和/或标识符(例如,ip地址)的信息。某些信息可以动态地更新。例如,基于(例如)来自终端设备的通信(例如,标识该设备是否处于睡眠状态、是关闭还是开启、是非活动还是活动,或标识是否在一段时间内已收到输入)、通信路由(例如,指示终端设备是否参与通信交换或被分配为通信交换的一部分)、或者来自网络设备或终端设备的指示通信交换已经结束或开始的通信,可以动态地更新指示终端设备是否可用的信息。
90.应当理解,在各种上下文中,参与一个或多个通信交换不一定表示终端设备不可用于参与另一通信交换。诸如通信类型(例如,消息)、客户端标识的或用户标识的目标响应时间、和/或系统负载(例如,大概地是或关于用户)的各种因素可能影响终端设备可参与多少交换。
91.当交互管理引擎625已经标识了参与通信交换或连接通道的终端设备时,交互管理引擎625可以通知终端路由引擎650,终端路由引擎650可以从终端数据存储器655检索关于该终端设备的任何相关数据,诸如目的地址(例如ip地址)、设备类型、协议等。然后,处理引擎610可以(在一些实例中)修改该包含消息的通信或者生成新的通信(包含消息)以便具有特定的格式、遵守特定的协议,等等。在一些实例中,新的或修改后的消息可以包括附加数据,例如对应于网络设备的账户数据、消息记录和/或客户端数据。
92.然后,消息发送器接口660可以将该通信发送至终端设备。该发送可以包括例如通向容纳在单独外壳内的设备的有线或无线发送。终端设备可以包括与连接管理系统600在相同或不同网络(例如,局域网)中的终端设备。因此,将通信发送至终端设备可以包括将通信发送至网络间连接组件或网络内连接组件。
93.提供了用于在与(例如,由用户操作的)网络设备的通信会话期间通过机器人将消息收发转移到自动化的系统和方法。用户可以使用网络设备来发起与代理的关于问题解决的对话。代理可以在相关联的终端设备上启动小组件来加速用户意图的解决。可以自动识别用户的意图,并且可以进行到机器人的转移的推荐的自动化。还可以提供关键用户信息,
例如订单号、账号等。代理可以手动或自动发起到机器人的转移,这允许代理提供关于转移推荐的反馈。此外,如果用户开始出现不满意,则代理可以使用终端设备观看转移的对话并挽救该对话。用户与机器人之间的对话可以内嵌在与代理的对话中。
94.在一些实施方式中,代理能够监控被转移到机器人的多个对话并在需要时挽救对话。可以利用情绪分数在终端设备上显示以促进挽救对话的优先级。利用人工智能的辅助功能,例如“意图提示”和“推荐的自动化”,可以在对话窗口中显示为可操作的内嵌建议。可以综合使用和分析反馈,以将数据科学用作模型的训练输入。
95.在一些实现方式中,机器人可以被配置为与网络设备自主通信。此外,可以针对特定能力配置机器人。能力的示例可以包括更新数据库记录、向用户提供更新、向代理提供关于用户的附加数据、确定用户的意图并基于意图将用户路由到目的系统、预测或建议对与用户通信的代理的响应、升级通信会话以包括一个或多个附加机器人或代理、以及其他合适的能力。在一些实现方式中,当机器人在通信会话期间(例如,使用启用聊天的界面)与(例如,由用户操作的)网络设备进行通信时,通信服务器可以自动且动态地确定将机器人切换为终端设备。例如,机器人可以与用户关于某些任务进行通信(例如,更新与用户关联的数据库记录),而终端设备可以与用户关于更困难的任务进行通信(例如,使用通信通道进行通信以解决技术问题).
96.在一些实现方式中,确定是否在通信会话期间切换到自动化可以基于对通信会话中的消息的一个或多个特征的分析。此外,可以生成动态情绪参数来表示消息、对话、实体、代理等的情绪。例如,在动态情绪参数表明用户对机器人感到沮丧的情况下,系统可以自动将机器人切换为终端设备,以便在线代理可以与用户进行通信。参见2016年6月2日提交的美国序列号15/171,525,其公开内容出于所有目的通过引用以其整体并入本文中。在一些示例中,确定是否在机器人和终端设备之间进行切换可以在没有来自用户的提示的情况下执行。可以基于任意数量的因素在通信服务器处自动执行该确定,这些因素包括通信会话(例如,聊天)中的当前消息的特征、用户在先前的通信会话中发送的先前消息的特征、对话中的多个消息上的特征(例如,情绪)的轨迹、或与用户相关联的附加信息(例如,简介信息、偏好信息和与用户相关联的其他合适的信息)。
97.图7示出了用于在通信会话期间在机器人和终端设备之间动态切换的网络环境的框图。在一些实现方式中,网络环境700可以包括网络设备705、通信服务器710、终端设备715和机器人720。通信服务器710可以是具有一个或多个处理器和至少一个存储设备的服务器,并且可以被配置为执行本文描述的方法和技术。例如,通信服务器710可以管理(例如,由用户操作的)网络设备和(例如,由代理操作的)终端设备之间的通信会话。通信服务器710可以在网络设备705和终端设备715之间建立通信通道,使得网络设备705和终端设备715可以在通信会话期间彼此通信。通信会话可以促进网络设备705和终端设备715之间的一个或多个消息的交换。本发明不限于通信会话期间的消息交换。通信会话可以促进其他形式的通信,例如视频通信(例如,视频馈送)和音频通信(例如,ip语音连接)。
98.在一些实现方式中,通信服务器710可以在网络设备705和机器人720之间建立通信通道。机器人720可以是在执行时被配置为与网络设备705自主通信的代码。例如,机器人720可以是自动生成消息以发起和与网络设备705相关联的用户的对话和/或自动响应来自网络设备705的消息的机器人。此外,通信服务器710可以与平台相关联。客户端(例如,平台
的外部系统)可以使用平台在其内部通信系统中部署不同类型的机器人。在一些示例中,客户端可以在平台中使用他们自己的机器人,这使得客户端能够将本文描述的方法和技术实施到他们的内部通信系统中。
99.在一些实现方式中,机器人可以由一个或多个源定义。例如,数据存储器730可以存储表示由通信服务器的客户端定义(例如,创建或编码)的机器人的代码。例如,已经定义了其自己的机器人的客户端可以将机器人加载到通信服务器710。客户端定义的机器人可以存储在客户端机器人数据存储器730中。数据存储器740可以存储表示由第三方系统定义的机器人的代码。例如,第三方系统可以包括独立的软件供应商。数据存储器750可以存储表示由与通信服务器710相关联的实体定义的机器人的代码。例如,由实体编码的机器人可以加载到通信服务器710或可由通信服务器710访问,从而机器人可以被执行并自主地与用户通信。在一些实现方式中,通信服务器710可以使用云网络760访问存储在数据存储器730、数据存储器740和/或数据存储器750中的机器人。云网络760可以是任何网络,并且可以包括:开放网络,例如互联网、个人局域网、局域网(lan)、校园网(can)、城域网(man)、广域网(wan)、无线局域网(wlan);私有网络,例如内联网、外联网或其他骨干网。
100.此外,终端设备715可以由代理操作。终端设备715可以是任何便携式设备(例如,移动电话、平板电脑、膝上型电脑)或非便携式设备(例如,电子亭、台式计算机等)。在某些实例中,代理可以使用在终端设备715上运行的浏览器来访问网站。例如,该网站可以包括在终端设备715的浏览器上运行的控制台或平台。代理可以使用浏览器登录到平台。在允许代理访问控制台或包含在控制台中的web应用程序之前,可以使用一个或多个登录凭证(例如,用户名、密码等)来验证代理的身份。控制台的示例可以包括包含一个或多个api(应用程序编程接口)的平台、包含一个或多个功能的控制面板、在web浏览器上运行的能够建立或加入通信会话的web托管应用程序(无需下载插件)、以及其他合适的接口。此外,控制台可以包括一个或多个可以执行的网络应用程序或功能。web应用程序或功能可以在浏览器、通信服务器710、本地服务器、远程服务器或其他合适的计算设备处执行。例如,web应用程序、本机应用程序或功能可以使代理能够与用户通信,并查看用户与一个或多个机器人之间的通信。
101.在一些实现方式中,通信服务器710可以推荐使对话在特定通信会话期间在机器人720和终端设备715之间动态切换的自动化。例如,通信服务器710可以促进网络设备705和机器人720之间的通信会话。机器人720可以被配置为通过在通信会话期间与网络设备705交换一个或多个消息来自主地与网络设备705通信。通信服务器710可以动态地确定是否将机器人720切换为终端设备715(或者在某些情况下,反之亦然),以便在线代理可以与网络设备705而不是机器人720进行通信。在一些实现方式中,可以执行切换无需来自网络设备705或终端设备715的提示。例如,切换可以基于在网络设备705和机器人720之间交换的消息的消息参数(例如,表示消息或一系列消息的情绪的分数),而无需提示网络设备705来请求终端设备。
102.在一些实现方式中,通信服务器710利用一个或多个机器学习模型或人工智能来自动确定是否将机器人720切换为终端设备715(或在一些情况下,反之亦然)。例如,网络设备705和机器人720之间交换的消息可以被一个或多个机器学习模型或人工智能用作输入以生成输出。输出可以指定网络设备705和机器人720之间的通信会话是要切换到在线代理
还是要保持。机器学习模型可以使用监督学习技术进行训练。例如,可以选择输入消息的数据集和指定适当响应实体(例如,在线代理或机器人)的相应输出来训练机器学习模型。在一些示例中,可以从通信服务器710的管理员、网络设备705的用户和可以与通信服务器710交互的其他网络设备、和/或与通信服务器710相关联的其他源获得输入消息。可以评估机器学习模型或人工智能,以基于提供给机器学习模型或人工智能的输入消息来确定机器学习模型或人工智能是否正在提供有用的输出,这些输出可用于确定相应的通信会话将由在线代理还是机器人处理。基于该评估,可以修改机器学习模型或人工智能(例如,可以更新一个或多个参数或变量)以增加机器学习模型或人工智能生成期望结果的可能性。
103.在一些实现方式中,一个或多个机器学习模型或人工智能可以生成表示输入消息或一系列消息的情绪的分数作为输出。通信服务器710可以确定所得分数是否超过与将通信会话分配给机器人720或在线代理相对应的阈值。例如,如果分数超过阈值,则通信服务器710可以确定通信会话最适合机器人720。因此,如果通信会话当前在网络设备705和终端设备715(例如,在线代理)之间,则通信服务器710可以自动将通信会话从终端设备715转换到机器人720,或者向操作终端设备715的在线代理指示机器人720可以处理与网络设备705的通信会话。替选地,如果分数没有超过该阈值,则通信服务器710可以确定通信会话最适合终端设备715(例如,在线代理)。在该示例中,如果通信会话当前在网络设备705和机器人720之间,则通信服务器710可以自动将通信会话从机器人720转换到终端设备715。在某些实例中,如果分数没有超过该阈值,则通信服务器710可以向操作终端设备715的在线代理指示其应该干预通信会话。应当注意,上述阈值和分数是说明性的,并且可以实施替选阈值和分数机制以确定是利用机器人720还是终端设备715与网络设备705进行特定通信会话。
104.在一些实例中,通信服务器710可以实现一组动态的规则或策略,这些规则或策略可以用于确定与网络设备705的给定通信会话的相关动作。该组规则可以由管理员或与通信服务器710相关联的其他授权实体提供,或者可以使用如上所述的一种或多种机器学习算法或人工智能来生成。作为说明性示例,通信服务器710可以评估网络设备705与机器人720或终端设备715之间的会话进度,以基于该组规则或策略确定是否调用替选动作(例如,诸如将通信会话从机器人720转换到终端设备715,反之亦然)。例如,如果通信服务器710基于获得的在通信会话期间交换的消息确定机器人720的置信度分数和/或网络设备705的用户的情绪分数存在波动,则通信服务器710可以基于与通信会话相关的该组规则或策略来确定适当的动作。这可以包括将通信会话从机器人720转换到终端设备715、向终端设备715发送指示其要干预通信会话的通知等。一旦采取了相关动作,通信服务器710就可以继续监控在通信会话期间交换的后续消息,以根据该组规则或策略来评估所采取的动作的影响。基于从这些后续消息和/或在会话后从用户和在线代理获得的反馈,通信服务器710可以更新用于生成该组规则或策略的机器学习算法或人工智能。这些更新可能导致该组规则或策略的动态创建或修改,以便为在通信会话期间要采取的动作提供改进的推荐。如果该组规则或策略由管理员或与通信服务器710相关联的其他授权实体定义,则通信服务器710可以向管理员或其他授权实体提供获得的反馈和一组用于更新该组规则或策略的推荐。
105.在一些实现方式中,通信服务器710可以基于在机器人720和网络设备705之间交换的消息的特征自动地确定在机器人720和终端设备715之间切换。在一些实例中,分析消息的文本以确定特征(例如,消息参数)可以包括对与消息相关联的文本或非文本属性的分
析。例如,通信服务器710可以从网络设备705提取消息中包括的一行或多行文本。通信服务器710可以识别一行或多行文本是否包括锚点。锚点的示例包括与极性(例如,情绪或意图,单词“沮丧”对应于负极性或受挫极性、单词“高兴”对应于正极性等)相关联的文本串。例如,对于一个客户端,“争议”一词可以是负面的,但对于第二个客户端来说可以是中性的或正面的。在一些实例中,可以使用监督机器学习技术动态确定锚点。例如,可以对存储的消息执行一种或多种聚类算法以在存储的消息中找到模式。可以进一步过滤和评估聚类消息以确定锚点。此外,可以针对放大器而解析所识别的锚点附近的一个或多个单词。放大器的示例是增加或减少与锚点的极性相关联的强度的术语,例如“真的”、“不是真的”、“有点”等等。该特征可以包括例如键入速度、消息中使用的特殊字符的数量(例如,感叹号、问号等)、消息的语义分析(例如,通过识别关键字、句子结构、重复词、标点符号和/或非冠词);用户输入(例如,已经选择了一个或多个类别);和/或与消息相关的统计信息(例如,响应延迟)。
106.作为非限制性示例,消息参数可以是指示负极性的高强度的数值(例如,在0-100的范围内的20的消息参数,较低的数字表示负极性,较高的数字表示正极性)。可以使用算法来计算消息参数。例如,该算法可以基于监督机器学习技术。在另一个示例中,如果术语“有点”靠近锚点“不喜欢”(例如,如在句子“我有点不喜欢”中),则术语“有点”可以被识别为表示中等强度的负极性的放大器术语。在这种情况下,可以基于对负极性的中等强度的识别来生成消息参数。作为非限制性示例,消息参数可以是指示负极性的中等强度的数值(例如,消息参数40,而不是消息参数20)。在一些实例中,消息参数可用于确定要存储通信的辅助队列。
107.在一些实现方式中,消息的特征可以是与消息相关联的情绪。消息参数可以表示消息的情绪。例如,如果消息的情绪是高兴,则消息参数可以是某个值或值的范围,而如果消息的情绪是愤怒的,则消息参数可以是另一个值或值的范围。确定是否在机器人和终端设备之间切换可以基于消息参数,该消息参数随着在通信服务器710处接收到的每条新消息而连续且自动地更新。
108.在一些实现方式中,如果通信服务器710确定对话将从机器人720切换到终端设备(例如,在线代理),则通信服务器710识别哪个终端设备(例如,代理)更可能积极地解决网络设备705的用户提出的技术问题。例如,基于从网络设备705接收到的消息的特征以及网络设备705的用户通过其消息表述的技术问题,通信服务器710可以识别与代理相关联的终端设备,该代理可能解决该技术问题同时提供与用户的积极交互的更高可能性。
109.为了识别哪个代理最适合响应用户的技术问题,通信服务器710可以使用从网络设备705接收到的消息的特征和网络设备705的用户表述的技术问题作为机器学习模型或人工智能算法的输入,机器学习模型或人工智能算法被配置为提供特定代理的选择作为输出。机器学习模型或人工智能算法可以使用与先前在用户和在线代理之间进行的对话相关联的反馈进行训练。该反馈可用于识别每个代理的某些特征。这些特征可以包括但不限于与技术问题相关的专业领域、对特定情绪的响应能力(例如,减少用户沮丧或愤怒的能力等)、响应延迟、用户满意度评级或分数等。如果需要代理干预网络设备705和机器人720之间的对话,则通信服务器710可以使用机器学习模型或人工智能算法来选择可以干预对话并提供积极用户体验的增加的可能性的特定代理。
110.在一些实现方式中,通信服务器710使用来自网络设备705的反馈来训练或更新用
于选择代理以干预网络设备和机器人之间的对话的机器学习模型或人工智能算法。例如,如果网络设备705提供指示对所选代理的负面体验的反馈,则通信服务器710可以更新机器学习模型或人工智能算法以降低对于与接收到的反馈相关联的对话具有相同或相似特征的对话的代理选择的可能性。替选地,如果网络设备705提供指示对所选代理的积极体验的反馈,则通信服务器710可以更新机器学习模型或人工智能算法以进一步增强代理积极处理相同或相似对话的能力。
111.在一些实现方式中,通信服务器710可以推荐或预测对从网络设备705接收的消息的响应。例如,通信服务器710可以包括消息推荐系统,其可以评估从网络设备705接收的消息并且使用机器学习模型来推荐对那些收到的消息的响应。消息推荐系统可以在终端设备715上显示一组推荐的消息,以帮助代理与网络设备705进行通信。
112.图8示出了根据一些实施方式的通信服务器805的框图。通信服务器805可以说明图7的通信服务器710的内部组件。通信服务器805可以包括中央处理单元(cpu)807,其包括处理器810和存储器815。通信服务器805还可以包括存储器820。
113.cpu 807可以联接到计算机可读介质825。计算机可读介质805可以具有任意数量的模块和引擎。尽管示出了五个模块和引擎,但是可以设想在计算机可读介质825中可以实现更少或更多的模块或引擎以执行本文描述的功能。如图8所示,计算机可读介质825可以包括意图确定引擎827、机器人转移引擎829、反馈模块831、用户界面(ui)配置引擎833和机器学习引擎835。
114.意图确定引擎827可以被配置为结合处理器810来接收对话请求。该请求可以从用户操作的网络设备接收。例如,可以在由代理操作的终端设备处接收该请求。意图确定引擎827还可以被配置为结合处理器810来确定对话的意图。可以从请求中确定意图。例如,请求可能声称“我想要我的订单状态”。可以从请求中提取意图为“订单_状态(order_status)”。
115.机器人转移引擎829可以被配置为结合处理器810来自动提供一个或多个选项以将对话从一种类型的机器人转移到一组不同类型的机器人。例如,将对话转移到一种类型的机器人的选项可能基于意图。选择此选项时,可以促进与相应类型的机器人的对话。对话可以手动或自动从代理操作的终端设备转移到机器人。例如,如根据机器学习技术或过去的经验确定的,对于特定类型的机器人以高置信度解决的意图,可以发生自动转移。在一些实现方式中,如果机器人转移引擎829以高置信度确定意图可以由特定类型的机器人解决,则机器人转移引擎824可以将对话从代理操作的终端设备自动转移到该特定类型的机器人,而无需提供将对话转移到该特定类型机器人的选项。这可以消除手动选择选项的需要以促进与机器人的对话。在一些实现方式中,机器人转移代理829可以利用置信度阈值来确定是否呈现上述一个或多个选项以将对话转移到某种类型的机器人。例如,如果机器人转移引擎829确定特定意图具有由一种类型的机器人解决的高置信度分数,并且该高置信度分数超过置信度阈值,则机器人转移引擎829可以自动将对话转移到这种特定类型的机器人,而不呈现将对话转移到机器人的选项。替选地,如果机器人转移引擎829确定特定意图具有不超过置信度阈值的某种类型的机器人解决的置信度分数,则机器人转移引擎829可以呈现一个或多个选项以将对话转移到机器人。
116.在一些实例中,机器人转移引擎829可以基于从对话请求确定的意图来识别一种或多种类型的机器人。例如,机器人转移引擎829可以结合智能路由系统来实施置信度分数
算法,该算法用于计算与不同类型的机器人产生对给定意图的满意响应的可能性或概率相对应的置信度分数。置信度分数可以是百分比或其他值,其中百分比或值越低,响应对传入消息的良好预测的可能性越小,百分比越高,响应对传入消息的良好预测的可能性越大信息。如果用户对与特定类型的机器人的对话表示不满意,则智能路由系统可以更新置信度分数算法,使得对于相同或相似的意图,特定类型的机器人被分配较低的置信度分数,从而用作如下的指示:相同或相似的意图更有可能被终端设备(例如,在线代理)或其他类型的机器人正确处理。作为另一个非限制性示例,如果用户对与特定类型的机器人的对话表示满意,则智能路由系统可以更新置信度分数算法,使得对于相同或相似的意图,特定类型的机器人被分配相同或更高的置信度分数,从而用作如下的指示:相同或相似的意图更有可能被特定类型的机器人正确处理。
117.在一些实现方式中,机器人转移引擎829可以动态地提供一个或多个选项以将对话从由代理操作的终端设备转移到某种类型的机器人。例如,通过可以显示在终端设备上以推荐机器人和接收反馈的界面,机器人转移引擎829可以向代理提供对于可能能够处理所识别的意图的机器人类型的一个或多个推荐。每个推荐可以包括相应的置信度分数,它表示使用相应类型的机器人可以解决意图的可能性。除了为可能能够处理请求的每种类型的机器人提供置信度分数之外,机器人转移引擎829还可以通过界面向代理提供将通信会话或对话转移到该种类型的机器人的选项。如果代理选择将通信会话转移到特定类型的机器人的选项,则机器人转移引擎829可以将通信会话转移到这种特定类型的机器人。机器人转移引擎829可以基于一个或多个因素来选择特定类型的机器人。例如,机器人转移引擎829可以选择具有足够带宽以参与与提交请求的用户的通信会话的特定类型的机器人。机器人转移引擎829可以附加地或替选地基于用户的一个或多个特征来选择特定类型的机器人。例如,机器人转移引擎829可以选择被配置为以用户的语言进行通信的特定类型的机器人。
118.在一些实现方式中,机器人转移引擎829可以进一步向代理提供选项以提供关于将对话转移到某种类型的机器人的每个推荐的反馈。例如,如果代理确定将对话转移到特定类型的机器人的特定推荐是不正确的(例如,机器人的类型不能处理识别的意图、识别出不正确的意图等),则机器人转移引擎824可以使用该反馈来训练或以其他方式更新用于计算置信度分数并基于针对给定意图和/或类似意图的不同类型机器人的置信度分数生成推荐的机器学习算法或人工智能。这可能会导致机器学习算法或人工智能针对相同或相似意图分配给该类型机器人的置信度分数较低。替选地,如果代理选择通信会话将被转移到的特定类型的机器人,则机器人转移引擎829可以使用该选择作为关于其推荐使用该特定类型的机器人的正面反馈的指示。该反馈可用于训练或以其他方式更新上述机器学习算法或人工智能,以进一步验证置信度分数和针对相同或相似意图使用特定类型的机器人的推荐。
119.在一些实现方式中,如果代理拒绝将对话转移到特定类型的机器人的特定推荐,则机器人转移引擎829可以使用机器学习算法或人工智能来生成用于基于所识别的意图将对话转移到其他类型的机器人的一个或更多个新推荐。如上所述,如果代理拒绝将对话转移到特定类型的机器人的特定推荐,则机器人转移引擎829可以使用该反馈来训练或以其他方式更新用于计算置信度分数并基于针对给定意图和/或类似意图的不同类型机器人的
置信度分数生成推荐的机器学习算法或人工智能。机器人转移引擎829可以使用更新的机器学习算法或人工智能来向代理提供针对所识别意图的新推荐。因此,机器人转移引擎829可以基于意图和如使用机器学习算法或人工智能计算的不同类型机器人的置信度分数,动态且连续地向代理提供将对话转移到这些不同类型机器人的推荐。
120.不同类型的机器人可以能够以自动化方式处理某些意图。例如,对于意图“order_status”,订单状态机器人可能能够使用提供的订单号、客户姓名、客户电子邮件地址、ip地址等来提取订单信息。一旦确定了订单信息,订单状态机器人就可以确认订单状态,并在对话中将其提供给用户。作为另一个示例,对于意图“支付_状态(payment_status)”,支付状态机器人可能能够使用提供的账号、客户姓名、客户电子邮件地址、ip地址等来提取账单信息。此外,使用账单信息,支付状态机器人可以确定客户是否已提交支付、提交的支付是否已被处理等。其他类型的机器人可能能够处理更复杂的技术问题(例如,解决硬件或软件问题、处理欺诈报告等)。
121.在一些实施方式中,网络设备和机器人之间的对话可以显示在终端设备上,以允许操作终端设备的代理干预对话。代理可以基于计算出的用户对对话的满意度的情绪分数来决定干预对话(或者对话可以自动转移回终端设备)。例如,如果用户对对话感到满意,则可以存在阈值,情绪分数应该高于该阈值。如果情绪分数低于阈值,则可以手动或自动将对话转移回终端设备。
122.情绪分数可以由机器学习引擎835计算,机器学习引擎可以被配置为利用在对话期间交换的消息作为输入来生成情绪分数。机器学习引擎835可以利用使用监督学习技术训练的一个或多个机器学习模型。例如,可以选择输入消息以及相应情绪和情绪分数的数据集来训练机器学习模型。在一些示例中,可以从通信服务器805的管理员、用户、代理和其他源获得输入消息。可以评估一个或多个机器学习模型以基于提供给一个或多个机器学习模型的输入消息来确定所述一个或多个机器学习模型是否正在提供可用于确定对话的情绪和相应情绪分数的有用输出。基于该评估,可以修改一个或多个机器学习(例如,可以更新一个或多个参数或变量)以增加所述一个或多个机器学习模型生成期望结果的可能性。
123.在一些实例中,一个或多个机器学习模型可以利用一个或多个聚类算法来确定网络设备和机器人之间的特定对话的情绪。例如,机器学习引擎835可以提取在网络设备和机器人之间的对话期间交换的消息,以识别可能与极性相关联的锚点或其他文本串。机器学习引擎835可以确定提取的消息是否对应于与已知情绪相关联的特定集群。该集群还可以与确定用户对对话的满意度的情绪分数相关联或以其他方式用于确定用户对对话的满意度的情绪分数。例如,每个集群除了对应于特定情绪之外,如上所述,还可以与可以表示极性的特定分数相关联。
124.在一些实现方式中,网络设备和机器人之间的对话可以自动转移到终端设备,而不需要操作终端设备的代理评估对话并手动干预对话。例如,如果特定对话的情绪分数低于情绪分数阈值,则机器人转移引擎829可以自动将对话从机器人转移到终端设备以使在线代理干预对话。在一些实例中,机器人转移引擎829可以利用多个阈值来确定是在终端设备处呈现对话以允许操作终端设备的代理干预对话还是自动将对话转移到终端设备。例如,如果对话的情绪分数低于第一情绪分数阈值但不低于较低的第二情绪分数阈值,则机器人转移引擎829可以在终端设备处呈现对话以允许代理干预对话(如果需要的话)。然而,
如果情绪分数低于第一情绪分数阈值和第二情绪分数阈值两者,则机器人转移引擎829可以自动将对话转移到终端设备以进行代理干预。
125.反馈模块831可以被配置为结合处理器810来接收关于对话的反馈。反馈可以由操作终端设备的代理提供。反馈可以反映机器人识别意图和/或处理用户在网络设备上表达的请求的情况。此外,反馈模块831可以从参与对话的用户获得反馈。例如,在对话结束时,反馈模块831可以向用户使用的网络设备发送请求以提供关于其与机器人和/或在线代理的对话的反馈。该请求可以以调查的形式提供,用户可以通过调查表明其关于对话的情绪,以及提供对机器人和/或在线代理的性能评估。在一些实例中,反馈模块831可以从在对话期间参与对话的用户获得反馈。例如,反馈模块831可以在对话期间评估用户响应以确定用户的情绪。例如,反馈模块831可以分析与用户消息相关联的文本或非文本属性以识别用户消息是否包括与极性相关联的锚。作为说明性示例,如果用户在消息中指示其“沮丧”或指示所提出的解决方案不正确(例如,“否”响应等),则反馈模块831可以确定该消息表示负极性,因此确定机器人未能以令人满意的方式识别意图和/或处理用户表达的请求。可以以任何合适的形式接收反馈。例如,反馈可以以字母刻度、数字刻度、通过文字、通过图标或图形的选择等来表达。显示给代理和/或用户以提供反馈和呈现对话视图的界面可以由用户界面配置引擎833结合处理器810来处理。
126.机器学习引擎835可以被配置为结合处理器810来将对话、识别的意图和提供的反馈馈送到数据库中并分析数据以得出关于某种类型的机器人和/或在线代理处理对话的情况的推断。该数据连同其他历史对话数据和反馈可用于构建模型,该模型可用于确定与一个或多个未来请求相关联的未来意图。例如,如果特定类型的机器人成功处理了“order_status”意图而使用户满意,那么未来的“order_status”意图也可以被转移到该特定类型的机器人。此外,声称“我想要我的订单状态”的未来请求可以基于正面反馈而自动与“order_status”意图相关联。然而,如果特定类型的机器人未能成功处理意图而使用户不满意,则可以将与上述意图类似的未来意图转移到终端设备以便这些未来意图由在线代理处理,或转移到另一类型的机器人,该另一类型的机器人基于其根据意图计算出的置信度分数可以更适合处理该意图。
127.作为示例,当用户第一次以“投递_状态(delivery_status)”意图联系代理时,用户可以被自动重定向到订单状态机器人。代理可以提供关于交互的一个或多个方面的反馈,例如订单状态机器人是否是将对话转移到的适当的机器人,以及订单状态机器人是否能够解决意图。此外,用户还可以提供关于交互的相似或不同方面的反馈,例如订单状态机器人是否成功地解决了用户的意图,订单状态机器人是否响应了用户的消息,来自订单状态机器人的响应是否与用户提交的意图和/或特定消息等相关等。其他技术可用于在没有来自代理和/或用户的明确反馈的情况下收集关于交互的反馈,例如通过观察代理是否必须干预对话,其可能表明订单状态机器人不是正确的机器人,对话不应该被自动转移,或者订单状态机器人无法解决意图。反馈可用于训练可应用于未来交互的模型。例如,如果确认订单状态机器人不是适当的机器人,但另一种类型的机器人(例如运输状态机器人)是适当的机器人,则未来观察到的“delivery_status”意图可以转而被转移到运输状态机器人。可以再次收集关于用户和运输状态机器人之间交互的反馈,以进一步改善应用于未来交互的模型。
128.图9示出了表示用于使用机器学习技术增强终结点选择(即,终端设备或机器人)的网络环境900的框图。网络环境900可以包括网络设备905(由用户操作)、通信服务器910、机器人915和终端设备920。通信服务器910可以促进通信通道的建立,该通信通道使网络设备905能够与至少一个机器人915以及终端设备920进行通信。
129.通信服务器910可以包括智能路由系统925、消息推荐系统930和消息数据存储器935。智能路由系统925和消息推荐系统930中的每一者可以包括具有处理器和存储器的一个或多个计算设备,该一个或多个计算设备执行指令以实施某些操作。在一些实现方式中,智能路由系统925可以是被配置为将从网络设备接收到的通信智能地路由到适当目的地的机器人。智能路由系统925可以包括一个或多个处理器,该一个或多个处理器被配置为运行使一种或多种机器学习技术或人工智能技术智能地路由消息的代码。在一些实现方式中,智能路由系统925可以执行一种或多种机器学习技术来训练预测从网络设备905接收的消息是否可以被机器人915成功寻址的模型。
130.作为非限制性示例,智能路由系统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。
131.在一些实现方式中,智能路由系统925在完成与机器人915或终端设备920的对话之后从网络设备905获得反馈信号940。例如,在用户与机器人915或使用终端设备920的代理之间的对话结束时,智能路由系统925可以请求关于机器人915和/或终端设备920(例如,在线代理)在处理用户表达的意图方面的表现的反馈。响应于该请求,网络设备905可以提
供反馈信号940,该反馈信号940指示在用户对话过程中用户对机器人915和/或终端设备920对意图的处理的满意程度。基于来自用户的该反馈,智能路由系统925可以更新或训练机器学习模型。例如,如果用户对与机器人915的对话表示不满意,则智能路由系统925可以更新或训练机器学习模型来将具有相同或相似意图的未来消息路由到终端设备920。作为另一非限制性示例,如果用户对与机器人915的对话表示满意,则智能路由系统925可以增强机器学习模型以增加将具有相同或相似意图的未来消息路由到机器人915的可能性。
132.在一些实现方式中,智能路由系统925可以实施置信度分数算法,该算法用于计算与机器人915产生对给定意图的满意响应的可能性或概率相对应的置信度分数。置信度分数可以是百分比或其他值,其中百分比或值越低,响应是对传入消息的良好预测的可能性越小,百分比越高,响应是对传入消息的良好预测的可能性越大。如果用户对与机器人915的对话表示不满意,则智能路由系统925可以更新置信度分数算法,使得对于相同或相似的意图,机器人915被分配较低的置信度分数,从而用作如下的指示:相同或相似的意图更有可能被终端设备920正确处理。作为另一非限制性示例,如果用户对与机器人915的对话表示满意,则智能路由系统925可以更新置信度分数算法,使得对于相同或相似的意图,机器人915被分配相等或更大的置信度分数,从而用作如下的指示:相同或相似的意图更有可能被机器人915正确处理。
133.在一些实现方式中,智能路由系统925在完成与机器人915或终端设备920的对话之后使用来自网络设备905的反馈信号940来确定网络设备905和智能路由系统925是否提供了对于来自网络设备905的消息的目的地的不正确的响应。例如,如果智能路由系统925最初预测机器人915是接收的消息的目的地,并且网络设备905提供了对这是消息的正确目的地的确认,但稍后确定(例如通过来自网络设备905的稍后反馈或作为代理必须干预对话的结果)机器人915不是接收的消息的正确目的地,则智能路由系统925可以更新或训练机器学习模型来将具有相同或相似意图的未来消息路由到终端设备920。此外,智能路由系统925可以放弃使用关于对应于相同或相似意图的预测的确认来训练机器学习模型,而是可以等待来自网络设备905的对话后反馈来训练或更新机器学习模型。
134.消息数据存储器935可以存储过去从一个或多个网络设备接收的一些或所有消息。此外,消息数据存储器935还可以存储在与网络设备的先前通信会话期间由终端设备或机器人发送的一些或所有消息。消息数据存储器935还可以存储在通信会话期间由网络设备发送给机器人的一些或所有消息。此外,消息数据存储器935可以存储在通信会话期间由机器人发送到网络设备的一些或所有消息。在一些实现方式中,消息数据存储器935可以是通信服务器910处理的(例如,由通信服务器910发送或接收的)所有消息的数据库。
135.消息推荐系统930可以分析存储在消息数据存储器935处的消息的数据库。在一些实现方式中,消息推荐系统930可以使用一种或多种机器学习算法或人工智能算法来评估在消息数据存储器935处存储的消息。例如,消息推荐系统930可以对存储在消息数据存储器935中的消息的数据库执行一种或多种聚类算法,例如k均值聚类、均值移位聚类、具有噪声的基于密度的应用空间聚类(dbscan)聚类、使用高斯混合模型(gmm)的期望最大化(em)聚类和其他合适的机器学习算法。在一些实现方式中,可以使用递归神经网络(rnn)或卷积神经网络(cnn)来预测响应消息以协助代理。在一些实现方式中,消息推荐系统930可以使用支持向量机(svm)、监督、半监督、集成技术或无监督机器学习技术来评估所有先前的消
息以预测对在通信会话期间从网络设备接收的传入消息的响应。例如,消息推荐系统930可以评估从网络设备接收的消息(或在通信服务器910处从机器人或终端设备接收的消息)的内容,并将评估结果与存储在消息数据存储器935中的先前消息的一个或多个集群进行比较。一旦集群被识别,则消息推荐系统930可以基于置信度阈值识别最相关的响应消息。例如,传入消息(例如,在通信服务器910处从网络设备905接收的消息)可以基于传入消息的内容而对应于技术问题。消息推荐系统930可以基于对传入消息的内容的评估(例如,文本评估)来识别传入消息对应于技术问题。消息推荐系统930可以访问消息数据存储器935以识别与技术问题相关联的消息集群。消息推荐系统930可以基于置信度阈值在消息集群中选择一个或多个响应消息。作为非限制性示例,可以执行置信度算法以生成置信度分数。置信度分数可以是百分比值,其中百分比越低,响应是对于传入消息的良好预测的可能性越小,百分比越高,响应是对于传入消息的良好预测的可能性越大。最小置信度阈值可以定义为与每个发现的模式相关联的确定性或可信度的测度。此外,置信度算法的示例可以是apriori算法、指示两个数据集之间的相似度的相似度算法、以及其他合适的置信度算法。
136.在一些实现方式中,消息推荐系统930将最相关的响应消息提供给机器人915或终端设备920(例如,在线代理)以用于与网络设备905的对话。机器人915可以从消息推荐系统930提供的响应消息中选择具有最高的置信度分数的响应消息。机器人915可以将此响应作为对话的一部分提供给网络设备905。在一些实例中,消息推荐系统930可以监控对话以识别网络设备905的用户对所选响应消息的反应。例如,消息推荐系统930可以使用该反应(例如,响应于所选响应消息而提交的消息)以进一步训练一种或多种聚类算法。作为说明性示例,如果机器人915提交被网络设备905的用户消极接收的响应消息,则消息推荐系统930可以更新聚类算法以降低特定响应消息针对来自网络设备的相同或相似传入消息被选择的可能性(例如,置信度分数)。替选地,如果机器人915提交了网络设备905的用户积极接收的响应消息,则消息推荐系统930可以更新聚类算法以进一步增强针对相同或相似传入消息选择特定响应消息。
137.如果最相关的响应消息被提供给终端设备920,则这些最相关的响应消息可以被呈现给使用终端设备920的代理,以供选择并并入到终端设备920和网络设备905之间的对话中。代理可以选择在对话中使用特定的响应消息或忽略呈现给代理的响应消息。如果代理从消息推荐系统930提供的响应消息中选择响应消息,则如上所述,消息推荐系统930可以监控对话以识别网络设备905的用户对所选响应消息的反应。然而,如果代理忽略消息推荐系统930提供的响应消息并且将其自己的响应消息提供给网络设备905,则消息推荐系统930可以记录该响应消息并将该响应消息与识别的技术问题相关联。此外,消息推荐系统930可以监控对话以确定用户对于提交的响应消息的情绪。如果代理提交的响应消息被用户积极地接收,则消息推荐系统930可以更新聚类算法以将响应消息与对应于识别的技术问题的集群相关联。然而,如果由代理提交的响应消息被用户消极地接收,则消息推荐系统930可以评估响应消息以确定响应消息是否可以与替选集群相关联,或者以其他方式将响应消息与对应于所识别的技术问题的集群解除关联。
138.图10a示出了根据一些实施方式的可以在终端设备上显示的界面的示例性屏幕截图。用户发起的对话可以出现在屏幕的一部分上。例如,用户可以操作网络设备说“嗨。我的订单在哪里?”。终端设备和/或机器人可以分析该请求以确定意图,例如订单状态。订单状
态机器人可以显示为推荐将对话转移到自动化的小组件。该小组件可以进一步显示该意图可以被机器人成功处理的置信度。例如,小组件可以显示可以指示机器人可以成功解决意图的置信度的置信度分数或评级。如图10a所示,订单状态机器人的置信度分数或评级被呈现为“高”,这可以表示订单状态机器人可以成功处理意图的高可能性。在一些实例中,小组件可以进一步显示为意图选择特定机器人的解释或理由。例如,如图10a所示,选择订单状态机器人是因为用户明确地说“我的订单在哪里?”。这可以为代理提供关于特定机器人的选择的适当上下文。小组件可以进一步显示允许代理将对话转移到机器人的交互元素(例如,按钮),以及允许代理提供关于推荐的反馈的其他交互元素。尽管示出为作为手动转移而发起,但可以设想,在一些实施方式中,可以将对话自动转移到机器人。
139.在一些实现方式中,可以基于用户提交的请求的一个或多个特征从一组终端设备(例如,代理)中选择通过其显示界面的终端设备。例如,可以基于相应代理以带来积极的用户体验的积极的方式解决所确定的意图的可能性来选择终端设备。例如,如上所述,从网络设备接收的消息的特征和网络设备的用户表达的技术问题可以用作机器学习模型或人工智能算法的输入,该机器学习模型或人工智能算法被配置为提供特定代理的选择作为输出。机器学习模型或人工智能算法可以选择可以提供积极用户体验的增加的可能性的特定代理。该界面可以被提供给与所选代理相关联的终端设备,从而为所选代理呈现用户请求和上述小组件。
140.图10b示出了根据一些实施方式的可以显示在终端设备上以便接收反馈的界面的示例性屏幕截图。对于请求“我的订单在哪里?”,可以推荐两种自动化:订单状态机器人和支付机器人。代理可以选择对支付机器人的负面反馈,并选择支付机器人不符合用户的意图。机器学习引擎可以使用此反馈来更好地改善未来推荐转移的机器人。
141.图10c示出了根据一些实施方式的可以显示在终端设备上以将对话转移到自动化的界面的示例性屏幕截图。操作终端设备的代理可以选择具有转移选项的交互元素(例如,按钮),以便将会话从终端设备转移到机器人。
142.图10d示出了根据一些实施方式的可以显示在终端设备上以推荐不同类型的机器人并接收反馈的界面的示例性屏幕截图。可能接收到声称“我的订单在哪里?几天前我被收费了”的请求。可以推荐将对话转移到的两种不同类型的机器人:订单状态机器人和支付机器人。尽管请求确实讨论了支付,但对话的意图是关于订单状态而不是支付。因此,代理可以对将对话转移到支付机器人的推荐提供负面反馈。机器学习引擎可以使用负面反馈来更好地确认未来意图并为自动化进行更好的推荐。
143.在一实施方式中,每个推荐还包括与特定类型的机器人将能够以令人满意的方式处理所识别的意图的可能性相对应的置信度分数。如上所述,置信度分数算法可用于计算与特定类型的机器人对识别的意图产生令人满意的响应的可能性或概率相对应的置信度分数。如图10d所示,订单状态机器人的置信度分数或评级被呈现为“高”,这可以表示订单状态机器人可以成功解决识别的意图的高可能性。同样,对于一不同的意图,支付机器人的置信度分数或评级被呈现为“高”。
144.在一些实例中,可以向代理提供针对所识别的一个或多个意图呈现不同类型的机器人的解释或理由。例如,如图10d所示,选择了订单状态机器人,因为用户明确地说“我的订单在哪里?”。此外,选择支付机器人是因为用户明确地说“我几天前被收费”。这可以为代
理提供关于响应于用户的给定请求(从其识别出不同意图)识别不同类型机器人的适当上下文。小组件可以进一步显示允许代理将对话转移到机器人的交互元素(例如,按钮),以及允许代理提供关于推荐的反馈的其他交互元素。
145.如上所述,代理可以提供关于将对话转移到特定类型的机器人的推荐的负面反馈。机器学习引擎可以使用负面反馈来更好地确认未来意图,并为可能能够处理这些未来意图的机器人类型进行更好的推荐。例如,如果代理指示特定类型的机器人不适合处理与用户提交的特定消息或请求相关联的实际意图,则反馈可用于训练或以其他方式更新一个或多个机器学习算法或人工智能,这一个或多个机器学习算法或人工智能被配置为从给定的通信会话中识别用户的意图,并基于此意图识别可能能够处理该意图的一种或多种类型的机器人。在一些实例中,可以更新一个或多个机器学习算法或人工智能,使得被确定为不适合特定意图的特定类型的机器人的置信度分数针对相同或相似的意图的特定类型的机器人降低。
146.在一些实现方式中,通过界面提供的推荐是基于针对所识别的意图的不同类型的机器人的对应置信度分数来选择的。例如,通过界面呈现的特定推荐可对应于针对识别的意图具有最高置信度分数的特定类型的机器人。在一些实例中,可以为置信度分数超过针对特定意图的阈值的不同类型的机器人提供推荐。这可以为代理提供额外的选项,以为获得的请求选择特定类型的机器人。
147.图10e示出了根据一些实施方式的在会话已经被转移到自动化之后可以在终端设备上显示的界面的示例性屏幕截图。代理可以选择与转移相对应的交互元素,以便将对话移动到订单状态机器人。然而,用户和机器人之间的对话仍然可以显示在终端设备上,以便代理可以在需要时“拯救”对话,即出于任何原因(例如用户的不满)进行干预。例如,如果代理确定用户对机器人提供的响应消息消极地响应,则代理可以选择机器人小组件的交互元素来干预对话并向用户提供其自己的响应消息。在一些实例中,如上所述,通信服务器还可以监控用户与机器人之间的对话,以确定是否需要代理干预对话。例如,如果通信服务器确定用户对机器人提交的响应消息消极地响应,则通信服务器可以更新机器人小组件以指示降低机器人的置信度评级或分数(例如,将置信度从“高”变为较低的值等)。这可以用作对于代理的如下指示:关于特定对话,机器人的表现正在恶化。在一些实例中,如果机器人的置信度评级或分数低于特定阈值,则通信服务器可以自动将对话转移到代理。通过该界面,通信服务器可以提醒代理该转移,这可以提示代理干预对话。
148.图10f示出了在用户和机器人之间显示的整个对话。图10g示出了可以在具有自动化推荐的终端设备上显示的界面的替选屏幕截图。在图10g中,置信水平显示为“相关性”和伴随的百分比。除了置信度水平之外,界面还可以包括一个或多个交互元素,代理可以使用这些交互元素来指示机器人推荐是否适合所识别的意图。例如,如图10g所示,对于每个自动化(例如,机器人)推荐,界面可以包括“赞成”按钮和“反对”按钮。对特定推荐的“赞成”按钮的选择可以用作对所识别的意图选择的特定机器人是适当或正确的指示。该反馈可用于训练或更新机器学习模型或人工智能算法,以进一步增强针对相同或相似意图的特定机器人的选择。然而,对特定推荐的“反对”按钮的选择可用作对所识别的意图选择的特定机器人是不适当或不正确的指示。该反馈可用于训练或更新机器学习模型或人工智能算法,以降低为相同或相似意图选择特定机器人的可能性。
149.界面还可以包括下拉菜单或其他选项,以允许代理为针对特定推荐选择反对按钮提供理由。下拉菜单或其他选项可以包括代理可以从中选择的一个或多个预定义的响应。附加地或替选地,界面可以包括用于代理提供其自己的选择反对按钮的理由或完全放弃提供理由的选项。代理提供的响应可用于进一步训练或更新机器学习模型或人工智能算法,使得特定机器人不太可能被选择用于特定意图。
150.图11是用于将消息收发转移到自动化的方法的流程图。在步骤1105,可以接收对话请求。该请求可以由寻求帮助或与操作终端设备的代理的一些其他对话的用户在网络设备处发起。可以通过选择交互元素或通过任何其他合适的方法以自然语言接收请求。
151.在步骤1110,可以确定对话的意图。可以通过分析请求来确定意图。例如,如果以自然语言接收请求,则可以对其进行解析以确定请求中的关键字并忽略其他语言。在另一示例中,可以将请求与意图数据库进行比较以确定与请求最接近的意图。在一些实施方式中,可使用机器学习来识别与请求相关联的意图。
152.在步骤1115,基于意图,可以自动提供将对话转移到机器人的选项。在选择选项时,可以促进与机器人的对话。例如,如果意图是机器人过去已成功处理的意图(根据过去接收到的反馈的机器学习模型确定),则可以在终端设备上自动提供选项以基于高成功概率转移该对话。如本文进一步讨论的,成功概率可以表示为置信度分数或相关性分数,并且可以以任何合适的形式呈现。在一些实施方式中,在对话期间,可以基于网络设备和机器人之间的对话来计算情绪分数。情绪分数可以是反映用户对对话的满意度的分数。在一些实施方式中,如果情绪分数低于阈值,则可以将对话转移回终端设备。
153.在步骤1120,可以接收关于对话的反馈。例如,代理可以继续观看网络设备的用户和机器人之间的对话,并且可以提供关于交互的各个方面的反馈。例如,代理可以基于请求的语言提供关于意图识别的反馈。代理还可以提供关于将对话转移到自动化的推荐是否合适和/或将对话转移到特定机器人的推荐是否合适的反馈。代理还可以基于例如用户满意度来提供关于机器人处理请求的情况的反馈。
154.在步骤1125,可以将反馈应用于用于确定与一个或多个未来请求相关联的未来意图的模型。例如,关于从请求中识别意图的反馈可用于进一步改善用于根据机器学习识别意图的模型。关于是否将对话转移到自动化的反馈可用于识别应该或不应该转移到自动化的未来对话。关于是否将对话转移到特定机器人的反馈可用于识别将来是否应该推荐该特定机器人,等等。
155.在以上描述中给出了具体细节以提供对实施方式的透彻理解。然而,应当理解,可以在没有这些具体细节的情况下实施实施方式。例如,可以将电路示出为框图,以免以不必要的细节使实施方式晦涩难懂。在其他实例中,可以在没有不必要的细节的情况下示出众所周知的电路、过程、算法、结构和技术,以避免使实施方式晦涩难懂。
156.上述技术、块、步骤和装置的实施可以以各种方式完成。例如,这些技术、块、步骤和装置可以以硬件、软件或它们的组合实现。对于硬件实现,处理单元可以在一个或多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器、被设计用于执行上述功能的其他电子单元和/或它们的组合内实现。
157.同时,要注意,实施方式的各个部分可以被描述为过程,该过程被描绘为流程图、
作业图、数据流图、结构图或框图。尽管流程图可以将操作描述为顺序过程,但是许多操作可以并行或同时执行。另外,可以重新安排操作的顺序。当一个过程的操作完成时,该过程将终止,但是可以具有未包含在附图中的附加步骤。过程可以对应于方法、函数、程序、子例程、子程序等。当过程对应于函数时,其终止可对应于该函数返回到调用函数或主函数。
158.此外,实施方式可以通过硬件、软件、脚本语言、固件、中间件、微代码、硬件描述语言、和/或他们的任何组合来实现。当以软件、固件、中间件、脚本语言和/或微代码实现时,执行必要任务的程序代码或代码段可以存储在诸如存储介质的机器可读介质中。代码段或机器可执行指令可表示过程、函数、子程序、程序、例程、子例程、模块、软件包、脚本、类,或指令、数据结构和/或程序描述的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数、和/或存储器内容而联接至另一代码段或硬件电路。信息、自变量、参数、数据等可以通过任何合适的方式传递、转发或传输,所述方式包括存储器共享、消息传送、票据传递、网络传输等。
159.对于固件和/或软件实现,可以利用执行本文描述的功能的模块(例如,程序、函数等)来实现方法。有形地体现指令的任何机器可读介质可用于实现本文描述的方法。例如,软件代码可以存储在存储器中。存储器可以在处理器内或处理器外部实现。如本文所使用的,术语“存储器”是指任何类型的长期、短期、易失性、非易失性或其他的存储介质,并且不限于任何特定类型的存储器或任何数量的存储器、或者上面存储有存储器的介质的类型。
160.此外,如本文中所公开的,术语“存储介质”、“存储器(storage或memory)”可以表示用于存储数据的一个或多个存储器,包括只读存储器(rom)、随机存取存储器(ram)、磁性ram、核心存储器、磁盘存储介质、光学存储介质、闪存设备和/或用于存储信息的其他机器可读介质。术语“机器可读介质”包括但不限于便携式或固定式存储设备、光学存储设备、无线通道、和/或能够存储的包含或承载(一个或多个)指令和/或数据的各种其他存储介质。
161.尽管以上已经结合具体的装置和方法描述了本发明的原理,但是应该清楚地理解,该描述仅是通过示例的方式进行的,并且不作为对本发明范围的限制。
再多了解一些

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

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

相关文献