用于改进的机器人任务处理的动态响应预测的制作方法

文档序号:22344381发布日期:2020-09-25 18:16阅读:131来源:国知局
用于改进的机器人任务处理的动态响应预测的制作方法

相关申请的交叉引用

本申请要求(1)2017年5月5日提交的美国临时专利申请no.62/502,535和(2)2017年5月5月提交的美国临时专利申请no.62/502,572中每一个的优先权,上述每个美国临时专利申请的公开内容出于所有的目的通过引用整体并入本文。

本发明总体上涉及促进通信的路由。更具体地,提供了用于在配置有多通道功能的通信会话期间在机器人(bot)与终端设备之间动态路由消息的技术。



背景技术:

可以执行机器人脚本来自动化数据处理和任务管理。但是,随着数据量规模的增长以及变得越来越动态和复杂,传统的机器人脚本表现出明显的效率不足。配置机器人脚本以正确检测任务管理的目标结果通常具有挑战性。此外,机器人脚本可能错误地处理队列中的任务,结果,整个系统负载可能变得不平衡,或者处理资源可能会变得负担过重。机器人脚本通常也无法处理多个不同环境中的任务。



技术实现要素:

术语“实施方式”和类似术语旨在宽泛地指代本发明和下面的权利要求的所有主题。包含这些术语的陈述不应理解为限制本文所述的主题或限制下面的权利要求的含义或范围。本文所涵盖的本发明的实施方式由下面的权利要求书而非本发明内容限定。本发明内容是本发明的各个方面的高阶综述,并且介绍了一些概念,这些概念在下面的详细描述部分中进一步描述。本发明内容并不旨在标识所要求保护的主题的关键或必要特征,也不旨在单独用于确定所要求保护的主题的范围。通过参考本发明的整个说明书的适当部分、任何或所有附图以及每个权利要求,应当理解本主题。

本发明的实施方式提供了解决以上提出的技术挑战的技术方案。例如,机器人(例如,使用处理器执行的机器人脚本)可以被配置为在网络设备与终端设备之间路由数据包(例如,通信、包括内容的消息、信号等)。可以将机器人配置为与编码语言无关。例如,机器人可以被编码为使用应用程序编程接口(api)来与系统进行交互,因此,可以以能够进行api调用的任何语言进行编码。随着要路由的消息规模的增长(例如达到大数据水平的规模和复杂度),机器人可能会错误地将消息路由到目的系统。作为非限制性示例,机器人可以评估从网络设备接收的通信的内容(例如,通信会话中的消息),以确定通信的目的地。评估可以使机器人基于先前的路由实例将通信路由到终端设备。然而,目标目的地(例如,由代理操作的终端设备)可能与在先前的路由实例中接收到通信的目的地不同。一个原因可能是与来自该网络设备的先前通信相比的通信环境。不正确的路由可能使网络或系统负载变得不平衡,并且不平衡的系统负载可能会引起对处理资源的不必要的负担(例如,服务器可能超负荷且无法运行,队列可能变得超负荷而导致延迟,等等)。本发明的某些实施方式提供了人工智能技术和/或机器学习技术,这些技术不断监控基于机器人的路由的准确性,并根据需要提供反馈信号以提高机器人的准确性。在上述情况下,例如,可以实施人工智能技术和/或机器学习技术,以基于机器学习模型来提高未来路由实例的机器人的准确性。

某些实施方式涉及用于在网络设备(例如,由用户操作的用户设备)和终端设备(例如,由实时代理操作)之间的通信会话期间在机器人和终端设备之间动态切换的系统和方法。在一些实现方式中,机器人可以被配置为自主地与网络设备通信。此外,可以针对特定功能配置机器人。功能的非限制性示例可以包括:将通信智能地路由到目标目的地、修改数据库中存储的数据、向用户提供更新、向代理提供关于用户的其它信息、确定用户的意图以及基于该意图将用户路由到目的系统、向与用户通信的代理预测或提议响应、以及逐步升级机器人与一个或多个终端设备之间的通信会话。在一些实现方式中,当机器人在通信会话(例如,短消息服务(sms)、本地应用的应用内聊天特征或基于网络的聊天会话)中与网络设备通信时,通信服务器可以自动且动态地确定将聊天会话转移到与代理相关联的终端设备。例如,机器人可以与网络设备关于某些任务(例如,诸如接收更新信息以及更新存储在数据库中的记录之类的任务)进行通信,而终端设备可以与网络设备关于更困难的任务(例如,解决技术问题)进行通信。在机器人可以与用户通信的单个通信会话中,通信服务器可以在机器人和终端设备之间动态切换,以便终端设备可以代替机器人与网络设备通信或者除了机器人之外终端设备也可以与网络设备通信。有利地,通信会话可以在机器人与终端设备之间动态切换,以改善与终端设备相关联的任务的平衡。

在一些实现方式中,机器人可以被配置为自动和自主地处理多个环境中和/或之间的任务。作为非限制性示例,通信服务器可以被配置为在由用户操作的移动设备(例如,网络设备)与由代理操作的台式计算机(例如,终端设备)之间建立或促进建立基于sms文本的通信通道。通信服务器可以将从台式计算机接收的输入(例如击键(keystroke))转换为sms文本消息,并将该sms文本消息发送到用户的移动电话。在通信会话期间,机器人可以协助代理与用户通信,或者机器人可以控制对话并使用通信通道直接与用户通信。然而,在代理(或机器人)与用户之间的对话期间,用户可能指示他或她希望继续使用一不同的通信通道(例如具有聊天消息收发功能的本机应用程序而不是当前正在使用的sms应用程序)进行通信。通信服务器可以自动检测用户的指示以更改通信通道。此外,通信服务器可以自动将消息从本机应用程序发送到用户的移动电话,以继续通过新的通信通道(例如,使用本机应用程序聊天功能的聊天通信会话)进行转换。在一些实现方式中,当通信服务器通过本机应用程序从移动设备接收到消息时,可以自动检测到用户想要改变通信通道(同时继续现有通信会话)的指示。使用新的通信通道(例如,不同于在现有通信会话期间使用的现有通信通道)接收消息可以通知通信服务器在新的通信通道上继续通信会话。有利地,通信服务器可以通过跨不同的通信通道自主且自动地继续通信会话来支持各个通信通道之间的连续性。

在一些实现方式中,通信服务器可以包括或访问消息推荐系统以向终端设备推荐响应消息。例如,在通信会话期间,消息推荐系统可以连续地评估从网络设备接收的消息和/或由终端设备发送的消息。可以使用机器学习技术来评估消息的内容,以预测用于推荐给由代理操作的终端设备的响应消息。在一些实现方式中,多个先前消息(从任何网络设备接收或由任何终端设备发送的消息)可以被存储在数据库中。可以使用存储在数据库中的消息来执行机器学习算法,以识别所存储的消息内的模式(例如,可以使用一种或多种聚类技术来对具有某些相似性的消息进行聚类)。所有或少于所有的消息可以标记有属性。例如,属性标签可以是附到消息上的代码(或以其它方式与消息相关联地存储的代码),并且属性标签可以是消息内容的特性。在一些示例中,标签可以是附到消息的特定代码串。在一些实现方式中,可以使用监督的机器学习技术来训练模型,该模型基于标记的消息推荐对于特定消息的响应消息。

在一些实现方式中,当与代理相关联的终端设备在通信会话期间与网络设备通信时,消息推荐系统可以查询(一个或多个)数据库以向代理提供附加数据。例如,在通信会话期间,网络设备可以发送通信,从而指示(操作网络设备的)用户正在经历特定设备的技术问题。当在通信服务器处接收到消息时,消息推荐系统对该消息进行评估以确定所述技术问题与所述特定设备相对应。例如,通信服务器可以执行基于文本的评估以确定消息的内容。消息推荐系统可以自动并自主地查询数据库中与所述特定设备有关的技术文档。查询的结果可以自动显示在终端设备上以帮助代理响应于用户。有利地,当在通信会话期间在通信服务器处接收到消息时,消息推荐系统可以自动地、自主地且连续地查询数据库。

在一些实现方式中,可以基于对在通信会话期间交换的通信的一个或多个特性的分析来确定是否在机器人与终端设备之间转移通信会话。此外,可以生成动态情绪参数(例如,分数、数值或字母值等)以表示与所接收的通信相关联的意图或情续。例如,在情绪参数指示用户对机器人感到沮丧的情况下,系统可以用由实时代理操作的终端设备自动切换机器人,以与用户进行通信。在一些示例中,可以在无需用户提示的情况下执行是否在机器人与终端设备之间切换的确定。可以基于任意数量的因素在通信服务器处自动执行该确定,所述因素包括:通信会话中的当前消息的特性、在先前通信会话中由网络设备发送的先前消息的特性、从在通信会话期间交换通信时网络设备的消息或情绪变化的轨迹中检测到的实时情绪的特性、或者与用户相关联的其它信息(例如,个人资料信息、偏好信息以及其它与用户相关联的合适的信息)。

本发明的某些实施方式包括计算机实现的方法。该方法可以包括收集用于训练机器学习模型以预测响应消息的数据集。收集所述数据集可以包括存储在网络设备和与代理相关联的终端设备之间的先前通信会话中包括的一个或多个先前消息。该方法可以包括促进终端设备与网络设备之间的通信会话,以及在该通信会话期间接收新消息。通信会话可以使终端设备和网络设备能够交换一个或多个消息。该方法还可以包括使用经训练的机器学习模型来评估新消息。例如,评估新消息可以包括评估在接收到该新消息之前交换的任何消息。该方法还可以包括预测对新消息的响应。预测响应包括使用评估的结果来确定从数据集中选择哪个先前消息作为对新消息的预测响应。该方法还可以包括促进在终端设备处显示预测响应。当选择了该预测响应时,可以在通信会话期间将该预测响应自动发送到网络设备。

本发明的某些实施方式包括系统。该系统可以包括一个或多个数据处理器、以及包含指令的非暂时性计算机可读存储介质,所述指令当在所述一个或多个数据处理器上执行指令时,使所述一个或多个数据处理器执行上述和本文所述的方法。

本发明的某些实施方式包括有形地体现在非暂时性机器可读存储介质中的计算机程序产品,包括被配置为使数据处理装置执行上述和本文所述的方法的指令。

有利地,被系统(例如,路由系统、本文描述的通信服务器以及其它合适的系统)摄取和处理的数据的越来越动态的性质将复杂性引入网络环境中。执行机器人脚本来自主并自动地处理涉及复杂的摄取数据的任务可能会使系统中的处理资源负担过重(例如,错误的消息路由可能使服务器或队列超负荷)。本发明的实施方式提供了技术优势,包括人工智能或机器学习技术的实现,以通过减少服务器或系统之间的负载不平衡以及通过机器人连续地增强任务管理来改善系统的整体功能。

附图说明

结合附图描述本发明:

图1示出了网络交互系统的实施方式的框图;

图2示出了网络交互系统的另一实施方式的框图;

图3a-图3c示出了包括连接管理系统的网络交互系统的其它实施方式的框图;

图4示出了连接部件的操作的协议栈映射的表示;

图5表示根据一实施方式的多设备通信交换系统;

图6示出了连接管理系统的实施方式的框图;

图7示出了用于在通信会话期间在机器人与终端设备之间动态切换的网络环境的框图;

图8示出了表示用于跨多个通道环境动态地提供机器人任务处理的网络环境的框图;

图9示出了表示用于使用机器学习技术来增强机器人任务处理的网络环境的框图;

图10示出了表示用于在通信会话期间实时地预测响应的网络环境的框图;

图11示出了用于在通信会话期间实时地预测响应的示例性过程;

图12示出了用于在通信会话期间在机器人和终端设备之间切换的示例性过程;以及

图13示出了至少部分地由通信服务器执行以用于执行机器人的端到端管理的示例性处理流程。

在附图中,相似的部件和/或特征可以具有相同的附图标记。此外,同一类型的各种部件可以通过在附图标记后加上破折号和区分相似部件的第二标记来区分。如果在说明书中仅使用第一附图标记,则该描述适用于具有相同的第一附图标记的任一类似部件,而与第二附图标记无关。

具体实施方式

随后的描述仅提供(一个或多个)实施方式的优选示例,并且不旨在限制本发明的范围、适用性或配置。而是,随后的(一个或多个)实施方式的优选示例的描述将向本领域技术人员提供用于实现实施方式的优选示例的使能描述。应该理解的是,在不脱离如所附权利要求书所阐述的精神和范围的情况下,可以对元件的功能和布置进行各种改变。

图1示出了实现并支持本文描述的某些实施方式和特征的网络交互系统100的实施方式的框图。某些实施方式涉及在网络设备105(网络设备105可以由用户110操作)和终端设备115(终端设备115可以由代理120操作)之间建立连接通道。在某些实施方式中,网络交互系统100可以包括与客户端125相关联的客户端设备130。

在某些实施方式中,用户110可以是浏览网站或访问由远程服务器140提供的在线服务的个人。客户端125可以是:提供、操作或运行该网站或在线服务的实体;或此类实体雇佣或指定的执行如本文所述的客户端125可用的任务个人。代理120可以是个人,例如负责向用户110提供关于网站或在线服务的支持或信息的支持代理。在大量代理中,代理的子集可能适合于为特定客户端125提供支持或信息。代理120可以与客户端125有关或无关。每个代理可以与一个或多个客户端125相关联。在一些非限制性示例中,用户110可以是从个人计算设备在在线商店购物的个人,客户端125可以是在线销售产品的公司,而代理120可以是该公司雇佣的代表。在各种实施方式中,用户110、客户端125和代理120可以是其他个人或实体。

虽然图1仅示出了单个网络设备105、终端设备115和客户端设备130,但是交互系统100可以包括这些类型的设备中的一种或多种的每一种中的多个或许多(例如,数十、数百或数千)。同样地,虽然图1仅示出了单个用户110、代理120和客户端125,但是交互系统100可以包括这些实体中的一种或多种的每一种中的多个或许多。因此,可能有必要确定要选择哪个终端设备与给定的网络设备进行通信。进一步使事情复杂化的是,远程服务器140也可以被配置为接收并响应于选择网络-设备通信。

连接管理系统150可以促进通信的策略路由。通信可以包括具有内容的消息(例如,基于来自实体的输入(诸如打字或口头输入)来定义)。通信还可以包括:附加数据,诸如关于发送设备的数据(例如,ip地址、账户标识符、设备类型和/或操作系统);目的地址;客户端的标识符;网页或网页元素(例如,当生成通信或以其它方式与通信相关联时所访问的网页或网页元素)的标识符或在线历史数据;时间(例如,一天中的时间和/或日期);和/或目的地址。其它信息可以包含在通信中。在一些实例中,连接管理系统150将整个通信路由至另一设备。在一些实例中,连接管理系统150修改通信或生成新的通信(例如,基于初始通信)。新的或修改后的通信可以包括消息(或其处理的版本)、至少一些(或全部)附加数据(例如,关于发送设备、网页或在线历史和/或时间的附加数据)和/或由连接管理系统150标识的其它数据(例如,与特定账户标识符或设备相关联的账户数据)。新的或修改后的通信还可以包括其它信息。

策略路由促进(strategic-routingfacilitation)的一部分可以包括在网络设备105与一个或多个终端设备115之间建立、更新和使用一个或多个连接通道。例如,在接收到来自网络设备105的通信时,连接管理系统150可以首先估计通信对应于哪个客户端(如果有的话)。在标识客户端时,连接管理系统150可以标识与客户端相关联的用于与网络设备105通信的终端设备115。在一些实例中,该标识可以包括评估多个代理(或专家或代表)中的每一个的简况,所述多个代理中的每个代理(例如,代理120)与终端设备(例如,终端设备115)相关联。评估可以涉及网络-设备消息中的内容。终端设备115的标识可以包括例如在2010年3月17日提交的美国申请no.12/725,799中描述的技术,其通过引用整体并入本文以用于所有的目的。

在一些实例中,连接管理系统150可以确定在网络设备105和与客户端(或远程服务器140)相关联的终端设备之间是否建立了任何连接通道,并且如果是,则确定是否将这种通道用于交换包括该通信的一系列通信。

在选择与网络设备105通信的终端设备115时,连接管理系统150可以在网络设备105和终端设备115之间建立连接通道。在一些实例中,连接管理系统150可以向所选择的终端设备115发送消息。该消息可以请求接受所建议的与网络设备105通信的分配或者识别已经产生这种分配。该消息可以包括关于网络设备105的信息(例如,ip地址、设备类型和/或操作系统)、关于相关联的用户110的信息(例如,所说的语言、已与客户端交互的持续时间、技能水平、情绪和/或主题偏好)、接收的通信、用于生成通信并向网络设备105发送该通信的代码(例如,可点击的超链接)、和/或用于生成通信并向网络设备105发送通信的指令。

在一个实例中,网络设备105和终端设备115之间的通信可以通过连接管理系统150路由。这种配置可以允许连接管理系统150监控通信交换并且检测(例如,如基于规则所定义的)问题(例如任一设备的无响应或延长的延迟)。此外,这种配置可以促进通信的选择性的或完整的存储,其可以稍后用于例如评估通信交换的质量和/或支持学习以更新或生成路由规则,以便推进特定的通信后目标(post-communicationtarget)。

在一些实施方式中,连接管理系统150可以实时监控通信交换并且基于实时通信执行自动化动作(例如,基于规则的动作)。例如,当连接管理系统150确定通信涉及特定项目(例如产品)时,连接管理系统150可以自动地向终端设备115发送包含关于该项目的附加信息的附加消息(例如,可用项目的数量、支持与项目相关的文档的链接、或关于所述项目或类似项目的其它信息)。

在一个实例中,指定的终端设备115可以与网络设备105通信而不通过连接管理系统150中继通信。设备105、115中的一者或两者可以(或可以不)向连接管理系统150报告特定的通信度量或内容,以便促进通信监控和/或数据存储。

如上所述,连接管理系统150可以将选择的通信路由至远程服务器140。远程服务器140可以被配置为以预定的方式提供信息。例如,远程服务器140可以响应于通信访问所定义的要发送的一个或多个文本段落、语音记录和/或文件。远程服务器140可以基于例如对所接收的通信的分析(例如,语义分析或映射分析)来选择特定的文本段落、记录或文件。

可以基于至少部分地由一个或多个客户端设备130定义或提供的规则和/或数据来执行在连接管理系统150处执行的路由和/或其它确定或处理。例如,客户端设备130可以发送标识代理优先级、终端-设备类型、和/或主题/技能匹配性的通信。作为另一示例,客户端设备130可以标识一个或多个权重以应用于可能影响路由确定(routingdetermination)的各种变量(例如,语言兼容性、预测的响应时间、设备类型和功能、和/或终端-设备负载平衡性)。应当理解,哪些终端设备和/或代理将与客户端相关联可以是动态的。来自客户端设备130和/或终端设备115的通信可以提供指示将给定终端设备和/或代理作为与客户端相关联的一个终端设备和/或代理添加或移除的信息。例如,客户端设备130可以发送具有ip地址以及指示的通信,所述指示关于是否要向标识与客户端相关联的终端设备的列表中添加具有该地址的终端设备或从标识与客户端相关联的终端设备的列表中移除具有该地址的终端设备。

每个通信(例如,设备之间、设备和连接管理系统150之间、远程服务器140和连接管理系统150之间、或远程服务器140和设备之间的通信)可以在一个或多个网络170上发生。开放或封闭的网络的任何组合可以包括在所述一个或多个网络170中。合适的网络的示例包括因特网、个人局域网、局域网(lan)、广域网(wan)或无线局域网(wlan)。其它网络也可能是合适的。所述一个或多个网络170可以完全并入内联网、外联网、或内联网和外联网的组合内,或者可以包括内联网、外联网或内联网和外联网的组合。在一些实例中,所述一个或多个网络170中的网络包括短程通信通道,例如蓝牙或蓝牙低能耗通道。在一实施方式中,两个或更多个系统和/或设备之间的通信可以通过安全通信协议来实现,所述安全通信协议例如安全套接层(securesocketslayer,ssl)或传输层安全(transportlayersecurity,tls)协议。此外,数据和/或交易细节可以基于任何方便的、已知的或待开发的方式加密,例如但不限于数据加密标准(dataencryptionstandard,des)、三重des、rivest-shamir-adleman加密(rsa)、河豚(blowfish)加密、高级加密标准(advancedencryptionstandard,aes)、cast-128、cast-256、解相关快速密码(decorrelatedfastcipher,dfc)、微型加密算法(tea)、扩展tea(extendedtea,xtea),校正块tea(correctedblocktea,xxtea)和/或rc5等。

网络设备105、终端设备115和/或客户端设备130可以包括例如便携式电子设备(例如,智能电话、平板电脑、笔记本电脑或智能可穿戴设备)或非便携式电子设备(例如,一个或多个台式计算机、智能家电、服务器和/或处理器)。连接管理系统150可以与网络、终端设备和客户端设备分开设置,或者可以是一个或多个这些设备的一部分(例如,通过在设备上安装应用程序)。远程服务器140可以与每个设备和连接管理系统150分开设置,和/或可以是另一设备或系统的一部分。尽管图1中将每个设备、服务器和系统示出为单个设备,但是将理解,可以替代地使用多个设备。例如,一组网络设备可以用于从单个用户发送各种通信,或者远程服务器140可以包括服务器堆栈。

可以在所描绘的设备、系统或服务器上安装和/或执行软件代理或应用程序。在一个实例中,软件代理或应用程序被配置为使得所描绘的各种元件可以以互补的方式起作用。例如,设备上的软件代理可以被配置为收集关于设备使用的数据并将其发送至单独的连接管理系统,并且该单独的连接管理系统上的软件应用程序可以被配置为接收和处理该数据。

图2示出了网络交互系统200的另一实施方式的框图。总体上,图2示出了被配置并布置成使得网络设备205能够与一个或多个终端设备215通信的各种组件。所描绘的实例包括包含在三个局域网235中的九个终端设备215。

在一些实例中,来自网络设备205的通信包括至少部分地或完全指示哪个终端设备将接收通信的目的数据(例如,目的ip地址)。网络交互系统200可以包括可以处理所述目的数据并促进适当的路由的一个或多个互联网连接组件240和/或一个或多个内联网连接组件255。

每个互联网连接组件245可以连接至多个网络235,并且可以安装有多个网卡(例如,每个网卡连接至不同的网络)。例如,互联网连接组件245可以连接至广域网270(例如,因特网)和一个或多个局域网235。在所描绘的实例中,为了将通信从网络设备205发送至任何终端设备,在所描绘的系统中,通信必须由多个互联网连接组件245处理。

当互联网连接组件245接收通信(或对应于通信的一组数据包)时,互联网连接组件245可以确定将通信传递至与目的地相关联的网络的路由的至少一部分。可以使用例如路由表(例如,存储在路由器处)来确定路由,该路由表可以包括基于传入的消息(例如,来自另一路由器或来自另一设备)生成的或学到的预定义的一个或多个路由。

互联网连接组件245的示例包括路由器260和网关265。互联网连接组件245(例如,网关265)可以被配置为在网络系统或协议之间进行转换。例如,网关265可以促进传输控制协议/互联网协议(transmissioncontrolprotocol,tcp/internetprotocol,ip)设备和互联网分组交换/序列分组交换(internetworkpacketexchange,ipx/sequencedpacketexchange,spx)设备之间的通信。

在局域网235处接收到通信时,仍可能需要执行进一步的路由。这种内联网路由可以经由内联网连接组件255(例如交换机280或集线器285)来执行。每个内联网连接组件255可以(例如,无线地或有线地,诸如通过以太网线缆)连接至多个终端设备215。集线器285可以被配置为向与其连接的每个设备重复所接收的所有通信。然后,每个终端设备可以评估每个通信以确定该终端设备是否为目的设备或者是否要忽略该通信。交换机280可以被配置为选择性地将通信仅导向至目的终端设备。

在一些实例中,局域网235可以被划分为多个段(segment),每个段可以与独立的防火墙、安全规则和网络协议相关联。可以在一个段、多个或所有段中的每个段中提供内联网连接组件255以促进段内路由。桥接器280可以被配置为跨段275路由通信。

为了跨网络或在网络内适当地路由通信,各种组件分析通信中的目的数据。例如,这种数据可以指示通信将被路由至哪个网络、通信将被路由至网络内的哪个设备或终端设备要处理(相对于忽略)哪些通信。然而,在一些实例中,不能立即明白哪个终端设备(或甚至是哪个网络)将参与来自网络设备的通信。

为了说明,可以配置一组终端设备以便提供类似类型的响应通信。因此,可以预期来自网络设备的通信中的查询可以以类似的方式被响应,而不管通信被路由至哪个网络设备。尽管该假设在高水平上可能是真的,但是与终端设备相关的各种细节可以产生与其它设备相比有利的特定路由。例如,上述组中的终端设备可以关于(例如)支持哪些通信通道、与网络设备的地理和/或网络接近度、和/或相关代理的特征(例如,知识库、经验、所说的语言、可用性、一般人格或情绪等)而彼此不同。因此,选择路由可以促进更快的响应,该更快的响应更准确地和/或完整地响应于网络-设备通信。复杂的是,将网络设备映射至终端设备的静态路由可能无法解释通信主题、通道类型、代理可用性等的变化。

图3a-图3c示出了包括连接管理系统的网络交互系统300a-300c的其它实施方式的框图。为了简单起见,所描绘的系统300a-300c中的每一个系统仅示出了2个局域网235,但是可以理解的是,可以扩展实施方式以扩展局域网的数量。系统300a-300c中的每个系统包括连接管理系统350,该连接管理系统可以标识哪个终端设备将与网络设备205通信、可以建立并管理(例如,维护或关闭)连接通道、可以确定是否以及何时在交换中重新路由通信等。因此,连接管理系统350可以被配置为动态地并且实时地评估通信、代理可用性、终端设备或代理的能力等,以便影响路由确定。

在图3a中,连接管理系统350与网络设备205以及远程服务器340中的每者相关联(例如,连接管理系统350a与网络设备205相关联,并且连接管理系统350b与远程服务器340相关联)。例如,连接管理系统350a和/或连接管理系统350b可以分别作为应用程序安装或存储在网络设备205和远程服务器340中的每者上。(一个或多个)应用程序的执行可以促进例如网络设备205和远程服务器340之间的通信,以标识被选择参与的与网络设备205进行通信交换的终端设备215。可以基于本文公开的一个或多个因素(例如,可用性、通信的主题/详细水平与代理或终端设备的知识库之间的匹配度、预测的延迟、通道类型可用性等)进行标识。

客户端设备330可以提供指示如何进行路由确定的客户端数据。例如,这种数据可以包括:关于特定特征如何被加权或匹配的指示或约束或偏差(例如,与负载平衡或预测响应延迟有关)。客户端数据还可以包括与何时建立(或关闭)通信通道或者何时将通信重新路由至不同的网络设备有关的规范。客户端数据可用于定义各种特定于客户端的规则,例如用于通信路由的规则等。

在远程服务器340上运行的连接管理系统350b可以监控与终端设备有关(例如,与给定的客户端有关)的各种度量,例如支持哪些通信通道、与网络设备的地理和/或网络接近度、与终端设备的通信延迟和/或稳定性、终端设备的类型、终端设备的功能、终端设备(或代理)是否在先已经与给定的网络设备(或用户)通信和/或与代理相关联的特征(例如,知识库、经验、所说的语言、可用性、一般人格或情绪等)。因此,可以使连接管理系统350b能够选择路由以促进更快的响应,该更快的响应基于度量更准确地和/或完整地响应于网络-设备通信。

在图3a所描绘的示例中,网络设备205和远程服务器340之间的通信交换可以促进目的地址的早期识别。然后,网络设备205可以使用该目的地址来指导后续通信。例如,网络设备205可以向远程服务器340发送初始通信(例如,经由一个或多个互联网连接和广域网),并且远程服务器340可以识别一个或多个相应的客户端。然后,远程服务器340可以识别与所述一个或多个相应的客户端相关联的一组终端设备,并收集对于那些终端设备的度量。可以(例如,通过远程服务器340)评估这些度量以便选择参与通信交换的终端设备,并且可以将与该终端设备有关的信息(例如,ip地址)发送至网络设备205。在一些实施方式中,远程服务器340可以连续地或周期性地收集和评估对于各种终端设备的度量并将评估结果存储在数据存储器中。在这种实施方式中,在识别与所述一个或多个相应的客户端相关联的一组终端设备时,远程服务器340可以从数据存储器访问存储的评估结果,并且基于存储的评估结果选择参与通信交换的终端设备。

在图3b中,连接管理系统350可以被配置为用作中继和/或目的地址。因此,例如,一组网络设备205可以发送通信,每个通信将连接管理系统350标识为目的地。连接管理系统350可以接收各个通信,并且可以同时监控一组终端设备(例如,以便生成对于每个终端设备的度量)。基于监控和规则,连接管理系统350可以识别其可以将各个通信中继到的终端设备215。根据该实施方式,终端设备通信可以类似地指向一致的目的地(例如,连接管理系统350的目的地),以用于进一步中继,或者终端设备可以开始直接与相应的网络设备通信。这些实施方式可以促进有效路由和全面的通信监控。

图3c中描绘的实施方式类似于图3b中的实施方式。然而,在一些实施方式中,连接管理系统350直接连接至内联网组件(例如,终端设备、内联网连接或其它)。

应当理解,图3a-图3c的许多变型是预期的。例如,连接管理系统350可以与连接组件(例如,互联网连接组件245或内联网连接组件255)相关联,使得对应于连接管理系统350(或其一部分)的应用程序安装在该组件上。例如,可以独立地执行应用程序或通过与类似或补充的一个或多个应用程序(例如,在一个或多个其它组件、网络设备或远程服务器上执行的应用程序)通信来执行应用程序。

图4示出了连接组件的操作的协议栈映射400的表示。更具体地,图4标识了在开放系统交互(opensystemsinteraction,osi)模型中的对应于各种连接组件的操作层。

osi模型可以包括多个逻辑层402-414。这些层以有序堆叠布置,使得层402-412中的每个层服务较高层级,而层404-414中的每个层由较低层服务。osi模型包括物理层402。物理层402可以定义参数物理通信(例如,电、光或电磁通信)。物理层402还定义连接管理协议,例如建立和关闭连接的协议。物理层402还可以定义流控制协议和传输模式。

链路层404可以管理节点到节点(node-to-node)的通信。链路层404可以检测并纠正错误(例如,物理层402中的传输错误)以及管理访问许可。链路层404可以包括媒体访问控制(mediaaccesscontrol,mac)层和逻辑链路控制(logicallinkcontrol,llc)层。

网络层406可以协调跨同一网络中的节点的(例如,作为数据报的)传输数据(例如,具有可变长度的传输数据)。网络层406可以将逻辑网络地址转换为物理机器地址。

传输层408可以管理发送和接收质量。传输层408可以提供用于传输数据的协议,例如传输控制协议(tcp)。传输层408可以执行数据包的分割/重组以用于传输,并且可以检测并解释在层402-406中发生的传输错误。会话层410可以发起、维护和终止本地和远程应用程序之间的连接。会话可以用作远程过程交互的一部分。表示层412可以基于已知由应用程序或网络层接受的数据类型来加密、解密和格式化数据。

应用层414可以与控制或管理通信的软件应用程序进行交互。通过这样的应用程序,应用层414可以(例如)识别目的地、本地资源状态或可用性和/或通信内容或格式。各个层402-414可以执行可用并适用的其它功能。

内联网连接组件422被示出在物理层402中操作,内联网连接组件424被示出在链路层404中操作。更具体地,集线器可以在物理层中操作,使得可以关于通信的接收和发送来控制操作。由于集线器缺乏处理通信或过滤数据的能力,因此集线器几乎没有能力在更高层级中操作。同时,交换机可以在链路层404中操作,因为交换机能够基于地址(例如,mac地址)过滤通信帧。

同时,互联网连接组件426、428被示出在更高层级(例如,层406-414)上操作。例如,路由器可以基于地址(例如,ip地址)过滤通信数据包。路由器可以基于地址将数据包转发至特定端口,以便将数据包指引至适当的网络。网关可以在网络层及高于网络层的层中操作,执行类似的过滤和指引以及数据的进一步转换(例如,跨协议或架构)。

在各种实施方式中,连接管理系统450可以与各个层中的一个、多个、全部或任何层进行交互和/或在各个层中的一个、多个、全部或任何层上操作。例如,连接管理系统450可以与集线器交互,以便动态地调整集线器与哪些终端设备通信。作为另一示例,连接管理系统450可以与桥接器、交换机、路由器或网关进行通信,以便影响该组件选择哪个终端设备作为目的地址(例如,mac、逻辑或物理地址)。作为另外的示例,连接管理系统450可以监控、控制或指引传输层408上的数据包的分段、会话层410上的会话持续时间、和/或表示层412上的加密和/或压缩。在一些实施方式中,连接管理系统450可以通过与在特定层上操作的设备(例如,在链路层404上操作的交换机)进行交换通信(例如,发送命令至该设备)、通过以特定的方式路由或修改现有通信(例如,在网络设备和终端设备之间的通信)、和/或通过基于现有通信生成包含特定信息(例如,新目的地址)的新通信来与各个层进行交互。因此,连接管理系统450可以通过与各种设备的交互和/或通过影响在各种协议栈层的操作来影响通信路由和通道建立(或维护或终止)。

图5表示根据一实施方式的多设备通信交换系统500。系统500包括网络设备505,该网络设备被配置为在各种类型的通信通道上与各种类型的终端设备通信。

在所描绘的实例中,网络设备505可以通过蜂窝网络(例如,经由基站510)发送通信。通信可以被路由至操作网络515。操作网络515可以包括连接管理系统520,该连接管理系统接收通信并识别哪个终端设备将响应于该通信。这种确定可以取决于识别该通信所属的客户端(例如,基于指示客户端的内容分析或用户输入)并确定与该客户端相关联的一个或多个终端设备中的每个终端设备的一个或多个度量。例如,在图5中,终端设备530a-530c的每个集群可以对应于不同的客户端。终端设备可以在地理上共同定位或分散。可以基于存储的或学习的数据和/或(例如,基于可用性的)实时监控来确定所述度量。

连接管理系统520可以经由一个或多个路由器525或其它互联网连接组件或内联网连接组件与各种终端设备进行通信。连接管理系统520可以在一个或多个数据存储器处收集、分析和/或存储来自(或关于)通信、终端-设备操作、客户端规则、和/或与用户相关联的动作(例如,在线活动)的数据。这种数据可能影响通信路由。

值得注意的是,还可以使用各种其它设备来影响通信路由和/或处理。例如,在所描绘的实例中,连接管理系统520还连接至网络服务器540。因此,连接管理系统520可以检索感兴趣的数据,例如技术项目细节等。

网络设备505还可以连接至网络服务器(例如,包括网络服务器545)。在一些实例中,与这种服务器的通信提供了发起与连接管理系统520的通信交换的初始选项。例如,网络设备505可以检测到在访问特定网页时通信机会是可获得的并且这种选项可以被呈现。

通信系统500的一个或多个元件也可以连接至社交网络服务器550。社交网络服务器550可以聚合从各种用户设备接收的数据。因此,例如,连接管理系统520可以能够估计给定用户或给定用户类别的一般(或用户特定)行为。

图6示出了连接管理系统600的实施方式的框图。消息接收器接口605可以接收消息。在一些实例中,例如,可以接收消息作为由源设备(例如,与连接管理系统600分开设置或在同一外壳内)发送的通信的一部分,所述源设备例如网络设备或终端设备。在一些实例中,通信可以是一系列通信的一部分或通信交换,其可以包括在两个设备(例如,网络设备和终端设备)之间路由的一系列消息或消息交换。该消息或通信交换可以是设备之间的交互的一部分和/或可以定义设备之间的交互。通信通道或操作通道可以包括用于促进设备之间的路由和通信交换的一个或多个协议(例如,路由协议、任务分配协议和/或寻址协议)。

在一些实例中,消息可以包括基于在本地或远程用户接口处接收的输入生成的消息。例如,消息可以包括基于钮或键按压、或记录的语音信号生成的消息。在一个实例中,该消息包括自动生成的消息,例如在检测到网络设备正在呈现特定的应用页面或网页或者已经提供特定输入命令(例如,键序列)时生成的消息。该消息可以包括指令或请求,例如用于发起通信交换的指令或请求。

在一些实例中,消息可以包括客户端的标识符或与客户端的标识符相关联。例如,消息可以明确标识客户端(或与客户端相关联的设备);该消息可以包括与客户端相关联的网页或应用页面,或和与客户端相关联的网页或应用页面相关联;该消息可以包括与客户端相关联的目的地址,或与客户端相关联的目的地址相关联;或者该消息可以包括项目(例如,产品)的标识或与客户端相关联的服务,或与项目(例如,产品)的标识或与客户端相关联的服务相关联。为了说明,网络设备可以呈现特定客户端的应用页面,该应用页面可以提供将通信发送至代理的选项。在接收到与消息对应的用户输入时,可以生成包含该消息和特定客户端的标识符的通信。

处理引擎610可以处理所接收的通信和/或消息。处理可以包括例如提取特定的一个或多个数据元素(例如,消息、客户端标识符、网络-设备标识符、账户标识符等)。处理可以包括转换格式或通信类型(例如,以与特定设备类型、操作系统、通信通道类型、协议和/或网络兼容)。

消息评估引擎615可以评估(例如,提取或接收的)消息。评估可以包括识别例如消息的一个或多个类别或标签。类别或标签类型的示例可以包括(例如)主题、情绪、复杂性和紧急性。将消息分类和给消息加标签之间的不同可以在于类别可以是有限的(例如,根据预定义的一组类别选项),而标签可以是开放的。主题可以包括例如技术问题、使用问题、或请求。例如,可以基于消息的语义分析(例如,通过识别关键字、句子结构、重复的词、标点符号和/或非文章(non-article)词)、用户输入(例如,已经选择了一个或多个类别)、和/或与消息相关的统计值(例如,键入速度和/或响应延迟)来确定类别或标签。

在一些实例中,消息评估引擎615可以确定对于消息的度量。度量可以包括例如多个字符、单词、大写字母、全部大写的单词或特定字符或标点符号的实例(例如,感叹号、问号和/或句号)。度量可以包括比率,例如以感叹号(或问号)结尾的句子的一部分、全部大写的单词的一部分等。

消息评估引擎615可以在消息数据存储器620中存储消息、消息度量和/或消息统计值。每个消息还可以与其它数据(例如,元数据)相关联地存储,所述其它数据诸如标识对应的源设备、目的设备、网络设备、终端设备、客户端、一个或多个类别、一个或多个阶段和/或与消息相关的统计值的数据。连接管理系统600的各种组件(例如,消息评估引擎615和/或交互管理引擎625)可以查询消息数据存储器620以检索查询响应消息、消息度量和/或消息统计值。

交互管理引擎625可以确定将通信路由至哪个设备以及接收设备和发送设备将如何通信。这些确定中的每个确定可以取决于例如特定的网络设备(或与特定用户相关联的任何网络设备)是否先前已与一组终端设备中的终端设备(例如,与连接管理系统600相关联的任何终端设备、或与一个或多个特定客户端相关联的任何终端设备)进行通信。

在一些实例中,当网络设备(或与同一用户或配置文件相关联的其它网络设备)在先已经与给定的终端设备进行通信时,通信路由通常可偏向于该同一终端设备。可能影响路由的其它因素可以包括,例如,终端设备(或相应的代理)是否可用、和/或终端设备的预测响应延迟。这些因素可以绝对地或相对于与其它终端设备相对应的类似度量来考虑。重新路由规则(例如,客户端特定的或一般的规则)可以指示如何评估和加权这些因素以确定是否放弃代理一致性。

当网络设备(或与同一用户或账户相关联的其它网络设备)在先未与给定的终端设备进行通信时,可以基于诸如以下的因素执行终端设备的选择:例如,各种代理的知识库与通信主题对应的程度、各种代理在给定时间和/或通道类型上的可用性、(例如,与客户端相关联的)终端设备的类型和/或功能。在一个实例中,规则可以标识如何确定对诸如这些的一个或多个因素的子参数以及分配给每个参数的权重。通过组合(例如,求和)加权的子参数,可以确定每个代理的参数。然后可以通过比较终端设备的参数来进行终端设备的选择。

关于确定设备如何通信,交互管理引擎625可以(例如)确定终端设备是否通过(例如)sms消息、语音呼叫、视频通信等来响应通信。可以基于以下项来选择通信类型:例如,通信类型优先级列表(例如,至少部分地由客户端或用户来定义)、先前从网络设备接收的通信的类型(例如,以便促进一致性)、接收的消息的复杂性、网络设备的功能、和/或一个或多个终端设备的可用性。显然,一些通信类型将导致实时通信(例如,期望快速消息响应的情况),而其它通信类型可能导致异步通信(例如,消息之间的延迟(例如,几分钟或几小时)是可接受的)。

此外,交互管理引擎625可以确定是否应该建立、使用或终止两个设备之间的连续通道。可以构造连续通道,以便促进从网络设备到指定终端设备的未来通信的路由。即使经过消息系列,这种偏向也可以持续。在一些实例中,连续通道的表示(例如,标识代理)可以包括在网络设备上待呈现的表示中。以这种方式,用户可以理解该通信将被一致地路由以便提高效率。

在一个实例中,可以使用本文描述的一个或多个因素和规则(例如,包括所述一个或多个因素中的每个的权重)来生成参数,以确定对应于给定的网络设备和终端设备的连接参数。该连接参数可以与整体匹配度或特定于给定的通信或通信系列的匹配度有关。因此,例如,该参数可以反映预测给定终端设备适合于对网络设备通信进行响应的程度。在一些实例中,参数分析可以用于标识将向其路由给定通信的每个终端设备以及是否建立、使用或终止连接通道。当参数分析用于处理路由决策和通道决策两者时,可以以相同、类似或不同的方式来确定与每个决策相关的参数。

因此,例如,将理解,根据参数是预测长期匹配的强度还是响应特定消息查询的强度,可以考虑不同因素。例如,在前一种实例中,对总体时间表和时间区域的考虑可能是重要的,而在后一种实例中,立即可用性可能有更高的权重。可以针对单个网络设备/终端设备组合来确定参数,或者可以确定多个参数,每个参数表征给定网络设备和一不同的终端设备之间的匹配度。

为了说明,可以评估用于潜在通信路由的与客户端相关联的一组的三个终端设备。可以为每个设备生成与特定通信的匹配度有关的参数。前两个终端设备中的每个终端设备可以在先已经与已传输该通信的网络设备通信。来自网络设备的输入可以已经指示和与第一设备的(一个或多个)通信的交互相关联的正面反馈。因此,第一设备、第二设备和第三设备的(根据规则计算的)过往交互子参数(past-interactsub-parameter)可以分别是10、5和0。(负面反馈输入可以产生负的子参数。)可以确定仅第三终端设备是可用的。可以预测第二终端设备将在15分钟内可用于响应,但是第一终端设备将在第二天之前不可用于响应。因此,第一设备、第二设备和第三设备的快速响应子参数(fast-responsesub-parameter)可以是1、3和10。最后,可以估计(与终端设备相关联的)代理了解通信中的主题的程度。可以确定与第三终端设备相关联的代理比与其它两个设备相关联的代理更了解,从而得到的子参数为3、4和9。在该示例中,规则不包括加权或归一化参数(虽然,在其它实例中,规则可以包括加权或归一化参数),从而得到的参数为14、11和19。因此,规则可以指示消息将被路由至具有最高参数的设备,即第三终端设备。如果到特定终端设备的路由不成功,则可以将消息路由至具有次高参数的设备,依此类推。

可以将参数与一个或多个绝对阈值或相对阈值进行比较。例如,可以将一组终端设备的参数相互比较以确定高参数,从而选择通信可以被路由至的终端设备。作为另一示例,可以将参数(例如,高参数)与一个或多个绝对阈值进行比较,以确定是否建立与终端设备的连续通道。用于建立连续通道的总阈值可以(但不必须)高于用于在给定的一系列消息中一致地路由通信的阈值。总阈值和用于确定是否一致地路由通信的阈值之间的这种差异可能是因为考虑到通道的扩展效用,强匹配在连续通道环境中是重要的。在一些实施方式中,用于使用连续通道的总阈值可以(但不必须)低于用于建立连续通道的阈值和/或用于在给定的一系列消息中一致地路由通信的阈值。

交互管理引擎625可以在各种环境中与账户引擎630交互。例如,账户引擎630可以在账户数据存储器635中查找网络设备或终端设备的标识符,以识别与该设备相对应的账户。此外,账户引擎630可以维护关于先前通信交换的数据(例如,时间、涉及的(一个或多个)其它设备、通道类型、解决阶段、(一个或多个)主题和/或相关联的客户端标识符)、连接通道(例如,对于一个或多个客户端中的每个客户端,指示:是否有任何通道存在、与每个通道相关联的终端设备、建立时间、使用频率、上次使用的日期、任何通道约束和/或支持的通信类型)、用户或代理偏好或约束(例如,关于终端设备选择、响应延迟、终端设备一致性、代理专业知识、和/或通信类型偏好或约束)、和/或用户或代理特征(例如,年龄、所说的或优选的(一种或多种)语言、地理位置、兴趣等)。

此外,交互管理引擎625可以向账户引擎630提醒各种连接通道(connection-channel)动作,使得可以更新账户数据存储器635以反映当前通道数据。例如,在建立通道时,交互管理引擎625可以通知账户引擎630的建立,并且识别网络设备、终端设备、账户和客户端中的一者或多者。(在一些实例中)账户引擎635可以随后通知用户该通道的存在,使得该用户可以意识到代理一致性是有效的。

交互管理引擎625还可以与客户端映射引擎640交互,客户端映射引擎640可以将通信映射至一个或多个客户端(和/或相关联的品牌(brand))。在一些实例中,从网络设备本身接收的通信包括对应于客户端的标识符(例如,客户端、网页或应用页面的标识符)。该标识符可以作为消息的一部分(例如,可以检测哪个客户端映射引擎640)而被包含或作为包含消息的通信中的其它数据而被包含。然后,客户端映射引擎640可以在客户端数据存储器645中查找该标识符,以检索关于客户端和/或客户端的标识符的附加数据。

在一些实例中,消息可能不特别对应于任何客户端。例如,消息可以包括一般查询。客户端映射引擎640可以例如对消息执行语义分析、识别一个或多个关键字并且标识与(一个或多个)关键字相关联的一个或多个客户端。在一些实例中,标识单个客户端。在一些实例中,标识出多个客户端。然后可以经由网络设备呈现每个客户端的标识,使得用户可以选择要与之(例如,经由相关联的终端设备)通信的客户端。

客户端数据存储器645可以包括与客户端相关联的一个或多个终端设备(和/或代理)的标识。终端路由引擎650可以检索或收集与一个、多个或所有的这种终端设备(和/或代理)中的每个终端设备(和/或代理)有关的数据,以便影响路由确定。例如,终端路由引擎650可以维护终端数据存储器655,终端数据存储器655可以存储诸如终端设备的设备类型、操作系统、通信类型(communication-type)功能、安装的应用程序附件、地理位置和/或标识符(例如,ip地址)的信息。某些信息可以动态地更新。例如,基于(例如)来自终端设备的通信(例如,标识该设备是否处于睡眠状态、是否关闭/开启、是否不活动/活动,或标识是否在一段时间内已收到输入)、通信路由(例如,指示终端设备是否参与通信交换或被分配为通信交换的一部分)、或者来自网络设备或终端设备的指示通信交换已经结束或开始的通信,可以动态地更新指示终端设备是否可用的信息。

应当理解,在各种环境中,参与一个或多个通信交换不一定表示终端设备不可用于参与另一通信交换。例如通信类型(例如,消息)、客户端标识的或用户标识的目标响应时间、和/或系统负载(例如,通常是或关于用户)的各种因素可能影响终端设备可参与多少交换。

当交互管理引擎625已经标识了参与通信交换或连接通道的终端设备时,交互管理引擎625可以通知终端路由引擎650,终端路由引擎650可以从终端数据存储器655检索关于该终端设备的任何相关数据,诸如目的地址(例如ip地址)、设备类型、协议等。然后,(在一些实例中)处理引擎610可以修改该包含消息的通信或者生成新的通信(包含该消息)以便具有特定的格式、遵守特定的协议等。在一些实例中,新的或修改后的消息可以包括附加数据,例如对应于网络设备的账户数据、消息记录和/或客户端数据。

然后,消息发送器接口660可以将该通信发送至终端设备。该发送可以包括例如通向容纳在单独外壳内的设备的有线或无线发送。终端设备可以包括在相同或不同的网络(例如,局域网)中的作为连接管理系统600的终端设备。因此,将通信发送至终端设备可以包括将通信发送至互联网连接组件或内联网连接组件。

提供了在与网络设备(例如,由用户操作)的通信会话期间在机器人和终端设备(例如,由实时代理操作)之间动态切换的系统和方法。在一些实现方式中,机器人可以被配置为自主地与网络设备通信。此外,可以针对特定功能配置机器人。功能的示例可以包括更新数据库记录、向用户提供更新、向代理提供关于用户的附加数据、确定用户的意图并基于该意图将用户路由到目的系统、预测或提议对与用户通信的代理的响应、将通信会话升级为包括一个或多个附加机器人或代理、以及其它合适的功能。在一些实现方式中,当机器人在通信会话期间(例如,使用能够聊天的界面)与网络设备(例如,由用户操作)通信时,通信服务器可以自动且动态地确定用终端设备切换机器人。例如,机器人可以与用户关于某些任务(例如,更新与用户相关联的数据库记录)进行通信,而终端设备可以与用户关于更困难的任务(例如,使用通信通道进行通信以解决技术问题)进行通信。

在一些实现方式中,可以基于对通信会话中的消息的一个或多个特征的分析来确定在通信会话期间是否在机器人与终端设备之间切换。此外,可以生成动态情绪参数来表示消息、对话、实体、代理等的情绪。例如,在动态情绪参数指示用户对机器人感到沮丧的情况下,系统可以自动用终端设备切换机器人,以便实时代理可以与用户通信。参见2016年6月2日提交的美国序列no.15/171,525,其公开内容通过引用整体并入本文以用于所有目的。在一些示例中,可以在无需用户提示的情况下执行确定是否在机器人与终端设备之间切换。可以基于许多因素在通信服务器处自动执行该确定,这些因素包括通信会话(例如,聊天)中的当前消息的特征、用户在先前通信会话中发送的先前消息的特征、对话中的多个消息的特征轨迹(例如,情续)、或与用户相关联的其它信息(例如,个人资料信息、偏好信息以及其它与用户相关联的合适的信息)。

图7示出了用于在通信会话期间在机器人与终端设备之间动态切换的网络环境的框图。在一些实现方式中,网络环境700可以包括网络设备705、通信服务器710、终端设备715和机器人720。通信服务器710可以是具有一个或多个处理器(具有至少一个存储设备)的服务器,并且可以被配置为执行本文描述的方法和技术。例如,通信服务器710可以管理网络设备(例如,由用户操作)和终端设备(例如,由代理操作)之间的通信会话。通信服务器710可以在网络设备705和终端设备715之间建立通信通道,使得网络设备705和终端设备715可以在通信会话期间彼此通信。通信会话可以促进网络设备705与终端设备715之间的一个或多个消息的交换。本发明不限于在通信会话期间的消息交换。通信会话可以促进其它形式的通信,例如,视频通信(例如,视频馈送)和音频通信(例如,ip语音(voice-over-ip)连接)。

在一些实现方式中,通信服务器710可以在网络设备705与机器人720之间建立通信通道。机器人720可以是在被执行时被配置为与网络设备705自主通信的代码。例如,机器人720可以是自动生成消息以发起和与网络设备705相关联的用户的对话和/或自动响应来自网络设备705的消息的机器人。此外,通信服务器710可以与平台相关联。客户端(例如,平台的外部系统)可以使用平台在其内部通信系统中部署机器人。在一些示例中,客户端可以在平台中使用它们自己的机器人,这使客户端能够将本文所述的方法和技术实施到其内部通信系统中。

在一些实现方式中,机器人可以由一个或多个源定义。例如,数据存储器730可以存储表示由通信服务器的客户端定义(例如,创建或编码)的机器人的代码。例如,定义了其自己的机器人的客户端可以将机器人加载到通信服务器710。可以将客户端定义的机器人存储在客户端机器人数据存储器730中。数据存储器740可以存储表示由第三方系统定义的机器人的代码。例如,第三方系统可以包括独立的软件供应商。数据存储器750可以存储表示由与通信服务器710相关联的实体定义的机器人的代码。例如,由该实体编码的机器人可以被加载到通信服务器710或由通信服务器710访问,从而使得机器人可以被执行和自主地与用户通信。在一些实现方式中,通信服务器710可以使用云网络760来访问存储在数据存储器730、数据存储器740和/或数据存储器750中的机器人。云网络760可以是任何网络,并且可以包括开放式网络、私有网络,所述开放式网络例如因特网、个人局域网、局域网(lan)、校园局域网(can)、城域网(man)、广域网(wan)、无线局域网(wlan),所述私有网络例如内联网、外联网或其它主干网。

此外,终端设备715可以由代理操作。终端设备715可以是任何便携式设备(例如,移动电话、平板电脑、笔记本电脑)或非便携式设备(例如,电子自助服务终端、台式计算机等)。在一些实例中,代理可以使用在终端设备715上运行的浏览器访问网站。例如,该网站可以包括在终端设备715的浏览器上运行的控制台或平台。代理可以使用浏览器登录该平台。在允许代理获取对控制台或包含在控制台中的网络应用程序的访问权之前,可以使用一个或多个登录凭证(例如,用户名、密码等)来验证代理的身份。控制台的示例可以包括平台(该平台包括一个或多个api(应用程序编程接口))、包括一个或多个功能的仪表板、在能够建立或加入通信会话的网页浏览器上运行的网络托管(web-hosted)应用程序(而不需要下载插件)、以及合适的其它界面。此外,控制台可以包括可以执行的一个或多个网络(web)应用程序或功能。该网络应用程序或功能可以在浏览器、通信服务器710、本地服务器、远程服务器或其它合适的计算设备上执行。例如,web应用程序、本机应用程序或功能可以使代理能够与用户通信,并查看用户与一个或多个机器人之间的通信。

在一些实现方式中,通信服务器710可以被配置为在特定通信会话期间在机器人720和终端设备715之间动态切换。例如,通信服务器710可以促进网络设备705和机器人720之间的通信会话。机器人720可以被配置为通过在通信会话期间与网络设备705交换一个或多个消息来自主地与网络设备705通信。通信服务器710可以动态地确定是否用终端设备715切换机器人720(或者在某些情况下,反之亦然),以便在线代理而不是机器人720可以与网络设备705进行通信。在一些实现方式中,可以执行切换无需来自网络设备705或终端设备715的提示。例如,在不提示网络设备705请求终端设备的情况下,切换可以基于在网络设备705和机器人720之间交换的消息的消息参数(例如,表示一个消息或一系列消息的情绪的得分)。

在一些实现方式中,通信服务器710可以基于在机器人720和网络设备705之间交换的消息的特性来自动地确定在机器人720和终端设备715之间切换。在一些实例中,分析消息文本以确定特性(例如,消息参数)可以包括对与消息相关联的文本或非文本属性的分析。例如,通信服务器710可以从网络设备705提取消息中包括的一行或多行文本。通信服务器710可以识别所述一行或多行文本是否包括锚点。锚点的示例包括与极性(例如,情绪或意图,词语“沮丧”对应于负极性或沮丧的极性,词语“高兴”对应于正极性,等等)相关联的文本串。例如,“争议”一词对于一个客户可能是负面的,但是对于第二个客户可能是中性的或正面的。在一些实例中,可以使用监督的机器学习技术动态地确定锚点。例如,可以对所存储的消息执行一种或多种聚类算法,以在所存储的消息内找到模式。可以对聚类的消息进行进一步过滤和评估,以确定锚点。此外,可以解析识别的锚点附近的一个或多个词以寻找放大器。放大器的示例是增加或减小与锚点的极性相关联的强度的术语,例如“真的”、“不完全是”、“有点”等。该特性可以包括例如打字速度、消息中使用的特殊字符(例如,感叹号、问号等)的数量、消息的语义分析(例如,通过识别关键字、句子结构、重复的词、标点符号和/或非冠词(non-article)的词)、用户输入(例如,已选择一个或多个类别)、和/或与消息相关联的统计信息(例如,响应延迟)。

作为非限制性示例,消息参数可以是指示负极性的高强度的数值(例如,在0-100的范围上的消息参数20,较低的数字指示负极性,较高的数字指示正极性)。可以使用算法来计算消息参数。例如,该算法可以基于监督的机器学习技术。在另一示例中,如果术语“有点”在锚点“不喜欢”附近(例如,如句子“我有点不喜欢”中),则术语“种类”可以被识别为指示负极性的中等强度的放大器术语。在这种情况下,可以基于对负极性的中等强度的识别来生成消息参数。作为非限制性示例,消息参数可以是指示负极性的中等强度的数值(例如,消息参数为40,这与消息参数20对照)。在一些实例中,可以使用消息参数来确定哪个辅助队列要存储通信。

在一些实现方式中,消息的特性可以是与消息相关联的情绪。消息参数可以表示消息的情绪。例如,如果消息的情绪是快乐的,则消息参数可以是某个值或值的范围,而如果消息的情绪是愤怒的,则消息参数可以是另一值或另一值的范围。可以基于消息参数来确定是否在机器人和终端设备之间切换,该消息参数随着在通信服务器710处接收到的每个新消息而连续且自动地进行更新。

在一些实现方式中,通信服务器710可以推荐或预测对从网络设备705接收的消息的响应。例如,通信服务器710可以包括消息推荐系统(图10中描述),该消息推荐系统可以评估从网络设备705接收的消息并使用机器学习模型来推荐对那些接收到的消息的响应。消息推荐系统可以在终端设备715上显示一组推荐的消息,以帮助代理与网络设备705进行通信。

图8示出了表示用于跨多个通信通道动态地提供机器人任务处理的网络环境800的框图。在一些实现方式中,网络环境800可以包括网络设备805、终端设备810和通信服务器820。网络设备805可以类似于网络设备705,因此,为简洁起见,这里省略了描述。终端设备810可以类似于终端设备715,因此,为了简洁起见,这里省略了描述。通信服务器820可以类似于通信服务器710,因此,为了简洁起见,这里省略了描述。

通信服务器820可以建立或促进建立网络设备805和终端设备810之间的通信通道。如图8所示,通信服务器820可以建立通信通道c840,通信通道c840使网络设备805和终端设备810能够交换一个或多个消息。作为非限制性示例,通信通道c840可以是网站的网络聊天特征,通信通道b835可以是在移动设备(例如,智能电话)上运行的聊天应用程序,以及通信通道a830可以是使代理能够与用户进行通信的因特网协议上的语音(voiceoverinternetprotocol,voip)音频通道。

通信服务器820可将机器人825配置为自主地与网络设备805通信。在一些实现方式中,机器人825可访问并执行一个或多个协议,该一个或多个协议使机器人825能够使用通信通道c840与网络设备805进行通信。继续上述非限制性示例,机器人825可以访问并执行用于通过网站的网络聊天特征进行通信的协议。在该示例中,该协议可以包括特定于网络聊天特征以用于使用该网络聊天特征来交换消息的编码语言。该协议可以包括代码,该代码在被执行时将由代理在终端设备810处输入的消息(例如,文本串或其它内容)转换成结构化的内容(例如,分离成独立数据字段的内容),并将该结构化的内容映射到网站的网络聊天特征的元素。当在终端设备810处(例如,由代理)接收到输入时,机器人825可以将结构化的内容转换为网络聊天特征的元素,以使得能够使用该网络聊天特征来传达消息。

在一些实现方式中,机器人825也可以被配置为使用通信通道b835与网络设备805通信。通信通道b835可以是与通信通道c840不同的通信通道。此外,通信通道b835可能需要与通信通道c840所需的元素相比不同的元素以促进通信。机器人825可以被配置为将结构化的内容转换为通信通道b835的元素。继续上述非限制性示例,通信通道b835可以是在智能手机上运行的本机应用程序的应用内聊天特征。为了促进使用通信通道b835通信,可能需要一个或多个元素。例如,脸书即时通(facebookmessenger)可以是在智能手机上运行的本机应用程序。在该示例中,facebookmessenger的一个或多个元素可以是使用facebookmessenger促进通信所需的特定于facebookmessenger的模板。使机器人825能够使用通信通道b835进行通信的协议可以将结构化的内容映射到facebookmessenger本机应用程序的模板,以便在facebookmessenger应用程序中将结构化的内容作为消息进行发送。

在一些示例中,移动应用程序(例如,移动本机应用程序)可以包括可执行代码(存储在移动设备中或在一个或多个外部服务器上),该可执行代码可以使用网络设备(例如智能手机)的操作系统执行。在一些示例中,移动应用程序可以包括混合移动应用程序,该混合移动应用程序由本机用户界面(ui)组件(在移动设备上生成和存储)组成,但是以解释语言(例如,使用基于web的编码语言)编写。本发明不限于移动本机应用程序或混合应用程序,因此,在本文描述的方法中可以使用任何类型的移动应用程序。

在一些实现方式中,机器人825也可以被配置为使用通信通道a830与网络设备805通信。通信通道a835可以是与通信通道c840和通信通道b835不同的通信通道。此外,与通信通道c840和通信通道b835所需的元素相比,通信通道a830可能需要不同的元素来促进通信。机器人825可以被配置为将结构化的内容转换为通信通道a830的元素。继续上述非限制性示例,通信通道a830可以是网络设备805与终端设备810之间的voip音频通信链路。可能需要一个或多个元素以便促进使用通信通道a830进行通信。所述协议可以包括结构化的内容到与通信通道a830相关联的元素的映射。

在一些实现方式中,通信服务器820可以被配置为动态地、自主地和/或自动地在不同通信通道之间转移通信会话,使得机器人825可以与网络设备805连续通信,而不管通信通道如何。例如,网络设备805可以使用第一通信通道845(即,通信通道c840)与终端设备810进行通信。网络设备805可以发送指示操作网络设备805的用户打算改变当前正在用于通信会话的通信通道的消息。例如,网络设备805可以指示第二通信通道850是用于继续与终端设备810的通信会话的目标通信通道。机器人825可以自动检测通信通道应该从第一通信通道845改变为第二通信通道845的指示。例如,机器人825可以连续评估在通信会话期间交换的消息,以检测应该改变通信通道。在检测到应该改变通信通道的指示时,通信服务器可以识别与网络设备805相关联的用户标识符。例如,用户数据数据库815可以存储各种用户的用户标识符。用户标识符可以是唯一标识网络设备的文本串和/或数字串。如果在任何给定时间,通信服务器820确定相同的用户标识符与两个活动的通信通道相关联,则通信服务器820可以识别出该网络设备正在请求继续进行通信会话,但是改变通信通道。

通信服务器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通信。

在一些实现方式中,可以使用一种或多种机器学习技术来识别网络设备805的通信通道使用中的模式。例如,可以跟踪和记录(以及存储作为历史数据)网络设备805对通信通道的使用。可以将机器学习技术应用于历史数据,以识别在与特定实体(例如,公司、终端设备、代理等)进行通信时,网络设备805最有可能使用哪个通信通道。当发起从终端设备810(或机器人825或任何其它终端设备)到网络设备805的通信时,通信服务器820可以建立网络设备805最有可能使用的类型的通信通道(基于机器学习技术的结果)。当网络设备805开始更频繁地使用不同的通信通道时,通信服务器820可以识别该变化趋势并使用最常用或最频繁使用的通信通道来发起通信会话。

图9示出了表示用于使用机器学习技术来增强机器人任务处理的网络环境900的框图。网络环境900可以包括网络设备905(由用户操作)、通信服务器910、以及终端设备915和920。通信服务器910可以促进建立如下通信通道,该通信通道使得网络设备905能够与终端设备915和920中的至少一者进行通信。

通信服务器910可以包括智能路由系统925、消息推荐系统930和消息数据存储器935。智能路由系统925和消息推荐系统930中的每一者可以包括一个或多个具有执行指令以实现某些操作的处理器和存储器的计算设备。在一些实现方式中,智能路由系统925可以是被配置为将从网络设备接收的通信智能地路由到适当目的地的机器人。智能路由系统925可以包括一个或多个处理器,该一个或多个处理器被配置为执行使一种或多种机器学习技术或人工智能技术智能地路由消息的代码。在一些实现方式中,智能路由系统925可以执行一种或多种机器学习技术来训练模型,该模型预测与从网络设备905接收的消息相关联的目的。

作为非限制性示例,智能路由系统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可以在将具有与接收的消息完全相同或相似内容的所有未来消息路由到终端设备920之前等待阈值数量的到终端设备915的不正确的路由。作为非限制性示例,智能路由系统925可以在网络设备发送了指示终端设备915不是正确或预期目的地的反馈信号的五个实例之后,开始向终端设备920而不是终端设备915路由未来消息(该未来消息之前被预测到将被路由到终端设备915)。

消息数据存储器935可以存储过去从一个或多个网络设备接收到的一些(例如,不是全部)或所有消息。此外,消息数据存储器935还可存储在与网络设备的先前通信会话期间由终端设备发送的一些或全部消息。消息数据存储器935还可以存储在通信会话期间由网络设备发送给机器人的一些或全部消息。此外,消息数据存储器935可以存储在通信会话期间由机器人发送到网络设备的一些或全部消息。在一些实现方式中,消息数据存储器935可以是已处理的(例如,由通信服务器910发送或在通信服务器910处接收的)所有消息的数据库。

消息推荐系统930可以分析存储在消息数据存储器935处的消息的数据库。在一些实现方式中,消息推荐系统930可以使用一种或多种机器学习算法或人工智能算法来评估存储在消息数据存储器935中的消息。例如,消息推荐系统930可以对存储在消息数据存储器935中的消息的数据库执行一种或多种聚类(clustering)算法,诸如k均值聚类、均值漂移聚类、带噪声的应用的基于密度的空间聚类(density-basedspatialclusteringofapplicationswithnoise,dbscan)聚类、使用高斯混合模型(gaussianmixturemodel,gmm)的期望最大化(expectation-maximization,em)聚类、以及其它合适的机器学习算法。在一些实现方式中,可以使用递归神经网络(rnn)或卷积神经网络(cnn)预测响应消息以对代理进行帮助。在一些实现方式中,消息推荐系统930可以使用支持向量机(svm),监督、半监督的集合技术或无监督的机器学习技术,来评估所有先前的消息,以预测对在通信会话期间从网络设备接收到的输入消息的响应。例如,消息推荐系统930可以评估从网络设备接收到的消息(或在通信服务器910处从机器人或终端设备接收到的消息)的内容,并将评估结果与存储在消息数据存储器935中的先前消息的一个或多个集群(cluster)进行比较。一旦识别出集群,消息推荐系统930就可基于置信度阈值识别出最相关的响应消息。例如,输入消息(例如,在通信服务器910处从网络设备905接收的输入消息)可以对应于基于该输入消息的内容的技术问题。消息推荐系统930可以基于对该输入消息的内容的评估(例如,文本评估)来识别出该输入消息对应于一技术问题。消息推荐系统930可以访问消息数据存储器935以识别与技术问题相关联的消息的集群。消息推荐系统930可以基于置信度阈值在消息集群中选择一个或多个响应消息。作为非限制性示例,可以执行置信度算法以生成置信度得分。置信度得分可以是一个百分比值,其中,百分比越低,响应对于输入消息的良好预测的可能性就越小,百分比越高,响应对于输入消息的良好预测的可能性就越大。最小置信度阈值可以定义为与每个发现的模式相关联的确定性或可信度的量度。此外,置信度算法的示例可以是apriori算法、指示两个数据集之间的相似度的相似度算法以及其它合适的置信度算法。

图10示出了表示用于在通信会话期间实时地预测响应的网络环境1000的框图。在一些实现方式中,网络环境1000可以包括通信服务器1010、预测系统1050、消息数据库1040和机器学习模型1060。网络设备1030可以由可以与由代理操作的终端设备1020通信的用户(例如,网站访问者、移动网站访问者或本机应用程序用户)来操作。预测系统1050可以预测要在终端设备1020的显示器上呈现的消息,并且操作终端设备的代理可以选择显示的预测消息。一旦选择了显示的预测消息,该预测消息将自动地作为下一条消息包含在聊天会话中,并发送到网络设备1030。

为了说明的目的并且作为非限制性示例,通信服务器1010可以促进在网络设备1030和终端设备1020之间建立通信通道。该通信通道可以被配置为使得网络设备1030能够与终端设备1020在通信会话(例如,用户和代理参与对话或未参与对话的时间段、同步通信会话、异步通信会话)期间进行通信(例如,通过交换消息、音频、视频或其它合适的数据)。网络设备1030可以在通信会话期间发送消息。该消息可能包括以下文本:“您能帮我解决我正在体验新abc智能手机遇到的技术问题吗?”。由于消息或消息的文本串是在通信服务器1010处实时接收的,因此预测系统1050可以自动评估实时接收到的消息或消息的一部分(例如,消息的文本的一部分)。基本上同时地(例如,同时或在接收该消息或该消息的一部分的几秒钟之内),预测系统1050可以访问机器学习模型1060以预测对接收到的消息的响应。例如,预测系统1050可以访问机器学习模型1060以识别与所接收到的消息相似的先前消息的集群。例如,预测系统1050可以将先前消息的集群与标签相关联。作为非限制性示例,消息集群之一可以被标记为消息集群“abc智能手机的技术问题”。“技术问题”集群中的一些或所有消息可以与网络设备和终端设备或机器人之间的关于项目(诸如abc智能手机)的技术问题的先前对话相关。例如,预测系统1050可以对“技术问题”集群执行置信度分析,以识别出对接收到的消息中所包含的相同或相似问题的先前的前十大响应。置信度分析可以包括执行置信度算法,该置信度算法确定所接收的消息与所识别的集群中包括的先前的代理响应之间的相似度。只要置信度阈值高于阈值(例如,高于60%),则预测系统1050可以使终端设备1020显示具有最高置信度百分比的前几个(例如,5个、10个或任何其它数量)先前的代理响应。一旦在终端设备1020处选择了一先前的代理响应,则该先前的代理响应可以作为当前通信会话的一部分被自动发送到网络设备1030。在一些实现方式中,一旦在终端设备1020处选择了一先前的代理响应,一旦选择了一先前的代理响应,就可以在终端设备1020上显示所选择的响应,并且所选择的响应可以在被发送给网络设备1030之前由代理修改。

在一些实现方式中,当在通信服务器1010处接收到消息时(消息是现有通信会话的一部分),预测系统1050可以在终端设备1020上自动显示附加数据。例如,随着消息进入网络设备1030,通信服务器1010(并且因此,终端设备1020)实时接收消息的文本串。预测系统1050可以连续地评估接收到的消息或消息的接收到的部分,以确定对数据库的查询以检索附加数据。继续上述非限制性示例,当通信服务器1010实时接收到消息(或消息的一部分)“您能帮我解决我正在体验新abc智能手机遇到的技术问题吗?”时,预测系统1050可以连续确定是否可以查询任何附加数据来支持代理响应该消息。在该示例中,即使在通信会话期间网络设备1030正在与终端设备1020进行通信,当消息在网络设备1030处被键入和/或在通信服务器1010处被接收时,预测系统1050也可以查询一个或多个数据库(未示出)以获得与abc智能手机相关联的附加数据(例如,技术规范、故障排除指南等),以便在消息在网络设备1030处被键入时在终端设备1020上显示动态变化的附加数据。在一些实现方式中,该查询是在网络设备与终端设备通信时实时发生的,但是,本发明不限于此。查询的结果显示在终端设备上,以降低代理自己进行查询的需求。

将理解,通信服务器1010可以基于在查询之后检索到的附加数据来自动执行工作流。作为非限制性示例,在通信会话期间,网络设备1030可以发送指示问题的消息。当在通信服务器1010处接收到消息时,预测系统1050可以(实时)针对与该问题相关联的数据查询一个或多个数据库。此外,预测系统1050可以执行一个或多个工作流以自动分析检索到的数据。例如,预测系统1050可以对检索到的数据执行标准偏差分析,以确定数据中包括的值的标准偏差。预测系统1050可以自动执行所述一个或多个工作流,并在终端设备1020处显示检索到的数据和/或分析检索到的数据的结果,以便实时代理不必执行那些查询以及不必自己进行分析。在一些实现方式中,工作流可以是用户定义的,或者可以基于人工智能或机器学习技术自动生成。此外,工作流可以与消息中的特定内容(例如,消息中的特定术语)相关联。如果消息包括特定术语或短语,则预测系统1050可以访问与该特定术语或短语相关联的(一个或多个)工作流。还可以基于对来自其它网络设备的历史消息的机器学习分析的结果来优化或自动修改工作流程。例如,预测系统1050可以访问消息数据库1040(其类似于消息数据存储器935)以评估来自其他用户的其它通信。预测系统1050可以确定其他代理对用户提供的数据执行了特定的工作流,或者代表用户针对特定问题进行了访问。然后,当确定未来的通信与特定问题相关联时,预测系统1050可以学习那些工作流程并为用户执行那些工作流程。在一些实现方式中,预测消息可能不与包含在消息的标记集群中的先前代理响应完全相同或相似,而是预测消息可以通过查询多个系统并构建预测消息来构造。例如,为了生成对abc智能手机问题的预测响应,预测系统1050可以针对与abc智能手机相对应的技术文档来查询第一数据库,并且针对与abc智能手机相关联的视频内容数据来查询第二数据库。可以通过包括文本以及查询的技术文档和查询的视频内容数据来构造预测响应。

机器学习模型1060可以是使用人工智能或机器学习技术生成的模型。例如,机器学习模型1060可以是使用监督、半监督或无监督的机器学习技术生成的模型。作为非限制性示例,可以对存储在消息数据存储器935中的消息的数据库使用一种或多种聚类算法,诸如k均值聚类、均值漂移聚类、带噪声的应用的基于密度的空间聚类(dbscan)聚类、使用高斯混合模型(gmm)的期望最大化(em)聚类、以及其它合适的机器学习算法。在一些实现方式中,机器学习模型1060可以使用支持向量机(svm),监督、半监督或无监督的机器学习技术,来评估所有的先前消息,以预测在通信会话期间对从网络设备接收到的输入消息的响应。

图11示出了用于预测代理响应的示例性过程1100。例如,存储在消息数据存储器935中的每个候选消息可以对应于一矩阵,该矩阵包括与该消息相关联和/或与在其中发送消息的通信会话相关联的矢量参数。矢量参数的示例可以包括消息中的字的数量、在通信会话中交换的消息的数量、消息中使用的锚点、消息的消息参数以及其它合适的参数。这些矢量参数中的每一个都可以作为该消息和/或通信会话的矢量表示形式存储在矩阵中。随着网络设备和终端设备之间的通信会话的继续以及交换新消息,矩阵可以连续不断地更新。

作为非限制性示例,还可以将包括在用户与代理之间交换的一个或多个消息的当前聊天对话1110转换为新消息矩阵1120。类似地,新消息矩阵1120可以包括当前聊天对话1110中的字的数量、字本身、以及与当前聊天对话1110中的消息相关联的矢量参数的数量。在一些实现方式中,随着新消息进入聊天对话1110,新消息矩阵1120可以被连续不断地更新。例如,每个新消息都可以包含在新消息矩阵1120中。可以为存储在消息数据存储器935中的每个消息(例如候选消息)生成并存储候选消息矩阵1130、1140和1150。

有利地,随着用户和代理之间的对话继续,可以动态地更新新消息矩阵1120。可以将新消息矩阵1120与每个候选消息矩阵(例如,矩阵1130、1140和1150)进行比较。例如,可以比较矩阵的绝对值并且可以生成相似度得分。可以选择最相似的候选消息矩阵,并且可以将与所选的候选消息矩阵相对应的候选消息用作在代理的终端设备上显示的预测消息。例如,矩阵可以包括关于消息的数据,包括消息中的字符的数量、消息中的字的数量、消息中的非词字符(诸如感叹号和问号)的数量、以及其它合适的数据。可以为矩阵的每个矢量参数生成一值。在一些实现方式中,该值可以表示矢量参数的严重性或强度。例如,值85可以表示包含在消息中的正锚点,而值-14可以表示包含在消息中的负锚点。

图12示出了用于在与网络设备的通信会话期间在机器人与终端设备之间进行切换的示例性过程1200。在框1210处,机器人可以通过使用接口交换一个或多个消息来和与用户相关联的网络设备通信。在一些实现方式中,所述机器人可以从多个机器人中选择。例如,可以将每个机器人配置为执行特定功能(例如,协助更新数据库记录)。可以基于用户(该用户可能已经发起了通信会话)的意图从所述多个机器人中选择一个机器人。可以通过分析用户发送给通信服务器的一个或多个消息来确定用户的意图。

在框1220处,通信服务器(其在网络设备与机器人之间来回中继消息)可以检测在聊天会话期间已经满足了转移规则。例如,转移规则可以是确定何时应将聊天会话移交给实时代理的阈值。例如,可以连续监控机器人与用户之间的对话的消息参数,并将其与阈值进行比较。当消息参数满足阈值时(例如,等于或小于、等于或大于、等于、小于、大于等),通信服务器可以确定已满足转移规则。在一些实现方式中,确定是否满足转移规则,可以在没有来自用户的提示的情况下(例如,在用户不需要指示用户想要与实时代理进行通信的情况下)确定。在一些实现方式中,确定是否满足转移规则可以基于满足条件的用户输入来确定。例如,如果用户指示他或她想要有关新项目的更多信息(并在聊天会话的消息中使用了该项目的名称),则可以检测到该项目名称,这满足了如下条件:满足转移规则。

在框1230处,通信服务器可以发起聊天会话从机器人到由实时代理操作的终端设备的移交(例如,在机器人与终端设备之间的切换)。在一些实现方式中,发起移交可以包括评估选择哪个终端设备来与网络设备进行通信。终端设备可以按代理的专长分组。在一些示例中,机器人和用户之间的通信会话的主题可以用于选择终端设备。在其它示例中,可以选择与机器人相关联(例如,负责管理机器人)的终端设备或将移交通知到与机器人相关联(例如,负责管理机器人)的终端设备,然后该终端设备可以无缝地与用户通信。在一些示例中,当将聊天会话移交给终端设备时,可以在该终端设备上呈现聊天信息、用户信息和任何其它附加信息,从而代理可以容易地为用户提供帮助。在框1240处,通信服务器可以促进用户和与代理相关联的终端设备之间的聊天会话。

图13示出了至少部分地由通信服务器执行以用于执行机器人的端到端管理的示例处理流程。处理流程1300可以至少部分地由通信服务器(例如,通信服务器1010)执行。处理流程1300可以在框1310处开始,在框1310中,识别机器人和/或终端设备以加载到通信服务器中。例如,通信服务器可以将机器人与终端设备视为相同。

在框1320处,可以为在框1310中识别的机器人和终端设备中的每一者定义工作流。例如,可以将每个机器人指定或配置为执行特定功能。为机器人定义以执行的工作流或任务可以与机器人的功能相对应。例如,可以为机器人定义角色和职责(例如,机器人处理地址更新、密码更新、辅助提供用户信息)。机器人任务管理可以包括将从网络设备接收的消息路由到终端设备或机器人,如本文所述。

在框1330处,可以定义用于路由去往机器人和来自机器人的消息的路由协议。例如,通信服务器可以执行路由协议以确定:来自用户的哪些消息将被路由到机器人、升级路径(例如,从机器人、到实时代理、到主管)、定义何时触发机器人通信以及何时触发实时代理通信的特定活动等。

在框1340处,可以通过为每个机器人生成质量分数来评估该机器人的任务完成参数(例如,性能度量)。在一些实现方式中,可以通过评估与机器人相关联的消息参数(例如,有意义的连接得分(mcs)得分)来评估机器人的性能。例如,如果用户始终对某个特定的机器人感到沮丧,则与该机器人相关联的消息参数可能会低。低的消息参数可以指示该机器人应该重新编程或下线。在框1350处,可以增强用于与用户通信的协议。例如,如果机器人不再用于某个目的(例如,不再需要专门的功能),则可以对该机器人进行重新编程,或者可以停用该机器人。增强用于与用户通信的协议可以包括修改被执行以实现自主机器人的机器人脚本、优化机器人的特征或方面(例如改进路由协议或通信脚本)、以及其它合适的增强。

在以上描述中给出了具体细节以提供对实施方式的透彻理解。然而,应当理解,可以在没有这些具体细节的情况下实践这些实施方式。例如,电路可以显示为框图,以免以不必要的细节模糊实施方式。在其它的实例中,公知的电路、过程、算法、结构和技术可以被示出而没有不必要的细节,以避免模糊实施方式。

可以以各种方式完成上述技术、框、步骤和手段的实现。例如,这些技术、框、步骤和手段可以以硬件、软件或硬件和软件的组合来实现。对于硬件实现,可以在一个或多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器、设计为执行上述功能的其它电子单元、和/或它们的组合内实现处理单元。

而且,值得注意的是实施方式的部分可以被描述为过程,该过程被描绘为流程图、作业图、数据流图、结构图或框图。尽管流程图可以将操作描述为顺序过程,但是许多操作可以并行或同时执行。此外,可以重新布置操作的顺序。过程在其操作完成时终止,但可以有附加的未包括在图中的步骤。过程可以与方法、函数、程序、子例程、子程序等相对应。当过程与函数相对应时,其终止与函数返回至调用函数或主函数相对应。

此外,实施方式可以通过硬件、软件、脚本语言、固件、中间件、微代码、硬件描述语言、和/或它们的任何组合来实现。当以软件、固件、中间件、脚本语言和/或微代码实现时,执行必要任务的程序代码或代码段可以存储在诸如存储介质的机器可读介质中。代码段或机器可执行指令可表示过程、函数、子程序、程序、例程、子例程、模块、软件包、脚本、类,或指令、数据结构的任何组合,和/或程序声明。代码段可以通过传递和/或接收信息、数据、参数、和/或存储器内容而联接至另一代码段或硬件电路。信息、参数、数据等可以通过任何合适的方式传递、转发或传输,所述方式包括存储器共享、消息传送、票据传递、网络传输等。

对于固件和/或软件实现,可以利用执行本文描述的功能的模块(例如,程序、函数等)来实现方法。有形地体现指令的任何机器可读介质可用于实现本文描述的方法。例如,软件代码可以存储在存储器中。存储器可以在处理器内或处理器外部实现。如本文所使用的,术语“存储器”是指任何类型的长期、短期、易失性、非易失性或其它的存储介质,并且不限于任何特定类型的存储器或任何数量的存储器、或者上面存储有存储器的介质的类型。

此外,如本文中所公开的,术语“存储介质”、“存储器”可以表示用于存储数据的一个或多个存储器,包括只读存储器(rom)、随机存取存储器(ram),磁性ram、核心存储器、磁盘存储介质、光学存储介质、闪存设备和/或用于存储信息的其它机器可读介质。术语“机器可读介质”包括但不限于便携式或固定式存储设备、光学存储设备、无线通道、和/或能够存储包含或携带(一个或多个)指令和/或数据的信息的各种其它存储介质。

虽然以上已结合特定装置和方法描述了本发明的原理,但是应该清楚地理解,该描述仅通过示例的方式进行,而不是作为对本发明的范围的限制。

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