CN116648894A - 用于双向通信中的机器人选择校准的系统和方法 - Google Patents

用于双向通信中的机器人选择校准的系统和方法 Download PDF

Info

Publication number
CN116648894A
CN116648894A CN202180088181.6A CN202180088181A CN116648894A CN 116648894 A CN116648894 A CN 116648894A CN 202180088181 A CN202180088181 A CN 202180088181A CN 116648894 A CN116648894 A CN 116648894A
Authority
CN
China
Prior art keywords
robot
score
mapping
input data
robots
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180088181.6A
Other languages
English (en)
Inventor
M·希金斯
马修·邓恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LivePerson Inc
Original Assignee
LivePerson Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LivePerson Inc filed Critical LivePerson Inc
Publication of CN116648894A publication Critical patent/CN116648894A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5051Service on demand, e.g. definition and deployment of services in real time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5093Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to messaging or chat services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/214Monitoring or handling of messages using selective forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/23Reliability checks, e.g. acknowledgments or fault reporting

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Radio Relay Systems (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明总体上涉及促进双向通信。一个示例涉及接收输入数据作为与多个机器人相关联的双向通信会话的一部分,访问来自机器人的置信度分数。然后使用机器人分数映射器根据置信度分数生成多个机器人的映射分数。使用映射分数识别所选机器人,并使用所选机器人促进双向通信会话。此外,还提供了跟踪所选机器人的表现并使用反馈和机器学习系统在机器人分数映射器中动态更新映射调整的技术。

Description

用于双向通信中的机器人选择校准的系统和方法
相关申请的交叉引用
本专利申请要求2020年12月29日提交的美国临时专利申请No.63/131,434的优先权权益,上述美国临时专利申请的公开内容通过引用并入本文。
技术领域
本发明总体上涉及促进双向通信。更具体地,提供了动态识别机器人或类似的自动化支持系统的技术,以改进双向通信中的内容,并将网络设备和终端设备之间的消息传递转移给机器人,以及在自动化期间跟踪机器人的性能。
背景技术
客户端通常使用电话系统和/或基于网络的聊天系统来处理来自寻求对产品或服务的帮助的用户的通信。支持这种用户交互的通信系统可以允许用户与客户端的现场代表交谈或聊天。这样的通信系统可以附加地或替选地使用自动机器人系统来与用户进行双向交互。
发明内容
术语“实施方式”和类似术语旨在宽泛地指代本发明和所附权利要求的所有主题。包含这些术语的陈述不应理解为限制本文所述的主题或限制所附权利要求的含义或范围。本文所涵盖的本发明的实施方式由所附权利要求书而非本发明内容限定。本发明内容是本发明的各个方面的高度概述,并且介绍了一些概念,这些概念在下面的详细描述部分中进一步描述。本发明内容并不旨在标识所要求保护的主题的关键或必要特征,也不旨在单独用于确定所要求保护的主题的范围。通过参考本发明的整个说明书的适当部分、任何或所有附图以及每个权利要求,应当理解本主题。
本文描述的示例涉及被配置为使用基于辅助计算的系统向用户提供信息的通信系统,这些基于辅助计算的系统可以被称为“机器人”。这样的系统可以被配置为提供辅助并促进用于各种各样的用户查询的双向通信。鉴于用户查询的性质涵盖了广泛的可能范围,对与系统通信相关的用户意图进行分类并识别用于响应的适当系统是为用户提供积极体验的主要关注点。
通信系统可以与许多不同的机器人相关联,以辅助进行各种各样的用户查询。由于单个机器人通常与特定的用户意图或任务相关联,因此积极的用户体验的一个方面是响应用户查询来识别有用或有效的机器人。机器人在这种情况下操作的一种方式是机器人接受输入数据(例如,来自用户查询的文本)并用置信度分数进行响应。在具有许多机器人(例如,数十个、数百个、数千个或更多机器人)的系统中,机器人返回的置信度分数不相关或不标准化。此外,尝试修改或更新机器人的反馈系统可能会对机器人的操作产生非预期的影响。
本文描述的示例使用校准系统,该校准系统可以使用本地相关反馈来调整响应于用户输入数据的机器人的校准分数。该调整可以用作映射来校正本地相关数据的校准分数,并使用从机器人提供的校准分数调整的映射分数来动态地选择机器人。映射或校准系统可以提高机器人选择过程的准确性,同时避免与修改机器人本身相关联的复杂性。相反,映射过程充当对校准分数的叠加或独立修改,以便有效地改进机器人选择。与机器人操作的独立性可以进一步允许识别机器人修改,将实时反馈结合到机器人训练和机器人使用两者中,以适当权衡反馈对映射系统的影响,并可以允许有效使用计算资源以将反馈整合到机器人选择中。如本文和整个说明书所述,附加的示例和变型也是可能的。
本发明的某些实施方式包括系统。该系统可以包括一个或多个数据处理器、以及包含指令的非暂时性计算机可读存储介质,所述指令当在所述一个或多个数据处理器上执行时,使所述一个或多个数据处理器执行上述和本文所述的方法。
本发明的某些实施方式包括有形地体现在非暂时性机器可读存储介质中的计算机程序产品,其包括被配置为使数据处理装置执行上述和本文所述的方法的指令。
附图说明
结合附图描述本发明:
图1示出了可以根据本文描述的示例使用的网络交互系统的一个实施方式的框图;
图2示出了可以根据本文描述的示例使用的网络交互系统的另一实施方式的框图;
图3A-图3C示出了可以根据本文描述的示例使用的网络交互系统的其他实施方式的框图,该网络交互系统包括连接管理系统;
图4示出了可以根据本文描述的示例使用的连接组件的操作的协议栈映射的表示;
图5表示可以根据本文描述的示例使用的多设备通信交换系统;
图6示出了可以根据本文描述的示例使用的连接管理系统的一个实施方式的框图;
图7示出了根据本文描述的示例的用于在通信会话期间在机器人和终端设备之间动态切换的网络环境的框图;
图8示出了表示可以根据本文描述的示例使用的通信的框图;
图9示出了表示根据本文描述的示例的用于使用机器学习技术进行反馈的网络环境的框图;
图10示出了根据本文描述的示例的双向通信会话和相关联的输入数据的各方面;
图11示出了使用根据本文描述的示例选择的机器人来促进的双向通信的各方面;
图12示出了根据本文描述的示例的利用自然语言理解(NLU)、机器人和反馈系统促进的双向通信;
图13是示出根据本文描述的一些示例的机器人选择校准的各方面的流程图;
图14是根据本文描述的示例的用于机器人选择校准的方法的流程图;
图15是根据本文描述的示例的计算设备的示例,该计算设备可用于实现具有机器人选择校准的双向通信系统中的设备。
在附图中,类似的部件和/或特征可以具有相同的附图标记。此外,同一类型的各种部件可以通过在附图标记后加上破折号和区分类似部件的第二标记来区分。如果在说明书中仅使用第一附图标记,则该描述适用于具有相同的第一附图标记的任一类似部件,而与第二附图标记无关。
具体实施方式
随后的描述仅提供(一个或多个)实施方式的优选示例,并且不旨在限制本发明的范围、适用性或配置。而是,随后的(一个或多个)实施方式的优选示例的描述将向本领域技术人员提供用于实现实施方式的优选示例的使能描述。应该理解的是,在不脱离如所附权利要求书所阐述的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
如上所述,示例涉及被配置为使用基于辅助计算的系统向用户提供信息的通信系统,这些基于辅助计算的系统可以被称为“机器人”。当用户(例如,企业的个人或客户)为了与客户端(例如,通过双向通信系统提供信息或服务的商家或企业)相关的信息而通过双向通信系统联系或被联系时,这样的机器人可以被配置为以完全自动的方式提供帮助,或者通过辅助代理来响应各种各样的用户查询提供帮助。鉴于用户查询的性质涵盖了广泛的可能范围,对与系统通信相关的用户意图进行分类并识别用于响应的适当系统是为用户提供积极体验的主要关注点。
通信系统可以与许多不同的机器人相关联,以辅助进行各种各样的用户查询。单个机器人通常与定制任务相关联,并且可以使用自然语言理解(NLU)通过识别机器人是否与用户查询相关来产生积极的用户体验。机器人在这种情况下操作的一种方式是机器人接受输入数据(例如,来自用户查询的文本),使用NLU系统处理数据,并用置信度分数进行响应。在具有许多机器人(例如,数十个、数百个、数千个或更多机器人)的系统中,机器人返回的置信度分数不相关或不标准化。此外,可能通过与商家的特定实现或客户集合相关联的本地数据具有不同特征的数据训练机器人。因此,基于通用训练数据确定的机器人的相关性可能不同于机器人与特定本地实现的相关性,具有相关联的不同“正确”置信度分数。
本文描述的示例使用映射或校准系统来修改机器人生成的置信度分数。本地相关反馈可用于调整机器人的校准分数。该调整可以用作映射来校正本地相关数据的校准分数,并使用从机器人提供的校准分数调整的映射分数来动态地选择机器人。映射或校准系统可以提高机器人选择过程的准确性,同时避免与修改机器人本身相关联的复杂性。相反,映射过程充当对校准分数的叠加或独立修改,以便有效地改进机器人选择。与机器人操作的独立性可以进一步允许识别机器人修改,将实时反馈结合到机器人训练和机器人使用两者中,以适当权衡反馈对映射系统的影响,并可以允许有效使用计算资源以将反馈整合到机器人选择中。
一些示例可以使用自适应反馈机制来附加地跟踪本地反馈,以寻求不同于机器人的自然置信度分数的本地相关置信度分数,所述自适应反馈机制调整在每个反馈循环中进行的调整的量,以有效地找到本地相关置信度分数,并跟踪分数随时间的变化。例如,初始反馈可以用于进行大的校准调整,并且随着接收到附加的本地反馈,校准调整的大小可以随着时间的推移而减小。此外,在一些示例中,映射系统可以识别机器人何时被改变或修订,并基于该识别重置反馈系统。例如,如果机器人开始响应于相同的输入而始终返回不同的置信度分数,则校准系统可以重置反馈系统。在一些示例中,可以从其他机器人提供的数据识别机器人修订(例如,报告机器人修订、输入命令的改变等)
图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-routing facilitation)的一部分可以包括在网络设备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-communication target)。
在一些实施方式中,连接管理系统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中的网络包括短程通信通道,例如蓝牙或蓝牙低能耗通道。在一实施方式中,两个或更多个系统和/或设备之间的通信可以通过安全通信协议来实现,所述安全通信协议例如安全套接层(secure sockets layer,SSL)或传输层安全(transport layersecurity,TLS)协议。此外,数据和/或交易细节可以基于任何方便的、已知的或待开发的方式加密,例如但不限于数据加密标准(Data Encryption Standard,DES)、三重DES、Rivest-Shamir-Adleman加密(RSA)、河豚(Blowfish)加密、高级加密标准(Advanced EncryptionStandard,AES)、CAST-128、CAST-256、解相关快速密码(Decorrelated Fast Cipher,DFC)、微型加密算法(TEA)、扩展TEA(eXtended TEA,XTEA),校正块TEA(Corrected Block TEA,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可以促进传输控制协议/互联网协议(Transmission Control Protocol,TCP/Internet Protocol,IP)设备和互联网分组交换/序列分组交换(Internetwork Packet Exchange,IPX/Sequenced PacketExchange,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标识了在开放系统交互(Open Systems Interaction,OSI)模型中的对应于各种连接组件的操作层。
OSI模型可以包括多个逻辑层402-414。这些层以有序堆叠布置,使得层402-412中的每个层服务较高层级,而层404-414中的每个层由较低层服务。OSI模型包括物理层402。物理层402可以定义参数物理通信(例如,电、光或电磁通信)。物理层402还定义连接管理协议,例如建立和关闭连接的协议。物理层402还可以定义流控制协议和传输模式。
链路层404可以管理节点到节点(node-to-node)的通信。链路层404可以检测并纠正错误(例如,物理层402中的传输错误)以及管理访问许可。链路层404可以包括媒体访问控制(media access control,MAC)层和逻辑链路控制(logical link control,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 words))、用户输入(例如,已经选择了一个或多个类别)、和/或与消息相关的统计值(例如,键入速度和/或响应延迟)来确定类别或标签。
在一些实例中,消息评估引擎615可以确定对于消息的度量。度量可以包括例如多个字符、单词、大写字母、全部大写的单词或特定字符或标点符号的实例(例如,感叹号、问号和/或句号)。度量可以包括比率,例如以感叹号(或问号)结尾的句子的比例、全部大写的单词的比例等。
消息评估引擎615可以在消息数据存储器620中存储消息、消息度量和/或消息统计值。每个消息还可以与其它数据(例如,元数据)相关联地存储,所述其它数据诸如标识对应的源设备、目的设备、网络设备、终端设备、客户端、一个或多个类别、一个或多个阶段和/或与消息相关的统计值的数据。连接管理系统600的各种组件(例如,消息评估引擎615和/或交互管理引擎625)可以查询消息数据存储器620以检索查询响应消息、消息度量和/或消息统计值。
交互管理引擎625可以确定将通信路由至哪个设备,接收设备和发送设备将如何通信,以及作为双向通信的一部分要使用或推荐给代理的任何相关机器人。这些确定中的每个确定可以取决于例如特定的网络设备(或与特定用户相关联的任何网络设备)是否先前已与一组终端设备中的终端设备(例如,与连接管理系统600相关联的任何终端设备、或与一个或多个特定客户端相关联的任何终端设备)进行通信。
交互管理引擎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地址)的信息。某些信息可以动态地更新。例如,基于(例如)来自终端设备的通信(例如,标识该设备是否处于睡眠状态、是否关闭/开启、是否不活动/活动,或标识是否在一段时间内已收到输入)、通信路由(例如,指示终端设备是否参与通信交换或被分配为通信交换的一部分)、或者来自网络设备或终端设备的指示通信交换已经结束或开始的通信,可以动态地更新指示终端设备是否可用的信息。
应当理解,在各种环境中,参与一个或多个通信交换不一定表示终端设备不可用于参与另一通信交换。例如通信类型(例如,消息)、客户端标识的或用户标识的目标响应时间、和/或系统负载(例如,通常是或关于用户)的各种因素可能影响终端设备可参与多少交换。
提供了在与网络设备(例如,由用户操作)的通信会话期间通过机器人将消息传递转移到自动化的系统和方法。用户可以使用网络设备来发起与代理关于问题解决的对话。代理可以在相关联的终端设备上启动小部件(widget)来加速对用户意图的解析。用户的意图可以被自动识别,并且可以进行所推荐的自动化向机器人的转移。还可以提供关键用户信息,例如订单号、账号等。代理可以手动或自动发起向机器人的转移,这允许代理提供关于要转移的推荐的反馈。此外,代理可以使用终端设备来观看所转移的对话并在用户开始表现出不满意的情况下,挽救该对话。用户与机器人之间的对话可以内联于与代理的对话。
在一些实施方式中,代理能够监控转移到机器人的多个对话,并在需要时挽救该对话。情绪分数可以被用来显示在终端设备上,以促进救援对话的优先级。利用人工智能的辅助特征,如“意图提示”和“推荐的自动化”,可以在对话窗口中显示为可动作的内联建议。反馈可以被综合使用和分析,以将数据科学作为训练输入应用于模型。
在一些实现方式中,机器人可以被配置为自主地与网络设备通信。此外,可以针对特定功能配置机器人。功能的示例可以包括更新数据库记录、向用户提供更新、向代理提供关于用户的附加数据、确定用户的意图并基于该意图将用户路由到目的系统、预测或提议对与用户通信的代理的响应、将通信会话升级为包括一个或多个附加机器人或代理、以及其它合适的功能。在一些实现方式中,当机器人在通信会话期间(例如,使用能够聊天的界面)与网络设备(例如,由用户操作)通信时,通信服务器可以自动且动态地确定用终端设备切换机器人。例如,机器人可以与用户关于某些任务(例如,更新与用户相关联的数据库记录)进行通信,而终端设备可以与用户关于更困难的任务(例如,使用通信通道进行通信以解决技术问题)进行通信。
在一些实现方式中,可以基于对通信会话中的消息的一个或多个特征的分析来确定在通信会话期间是否切换到自动化。此外,可以生成动态情绪参数来表示消息、对话、实体、代理等的情绪。例如,在动态情绪参数指示用户对机器人感到沮丧的情况下,系统可以自动用终端设备切换机器人,以便在线代理可以与用户通信。在一些示例中,可以在无需用户提示的情况下执行确定是否在机器人与终端设备之间切换。可以基于许多因素在通信服务器处自动执行该确定,这些因素包括通信会话(例如,聊天)中的当前消息的特征、用户在先前通信会话中发送的先前消息的特征、对话中的多个消息的特征轨迹(例如,情续)、或与用户相关联的其它信息(例如,个人资料信息、偏好信息以及其它与用户相关联的合适的信息)。
结合上述功能,在一些示例中,交互管理引擎625可以查询机器人,以使机器人返回指示机器人与特定输入数据集合的相关性的置信度分数。该查询可以与上述情绪或意图分析一起发生,或者可以是独立的。在一些示例中,查询可以是本地的,机器人在具有交互管理引擎625的共享设备或系统上操作。在一些示例中,机器人可以远程操作,例如在独立服务器上或在基于云的远程系统上操作。在这样的示例中,查询与向远程系统发送对置信度分数的请求相关联。交互管理引擎625然后可以管理置信度分数的评估,包括如下进一步描述的校准或映射操作的管理。
图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可用的一组机器人中选择。在一些示例中,当分析来自双向通信的输入数据时,通信服务器710可以实时查询任意数量的机器人,例如客户端机器人730、外部机器人740或源机器人750。机器人查询导致通信服务器710从被查询的机器人接收置信度分数。当置信度分数在通信服务器710处可用时(例如,从执行机器人730、740和/或750的远程设备接收,和/或在本地生成分数),使用本地映射校准来修改置信度分数,并且基于经修改的置信度分数来选择被选择用于促进双向通信的机器人。这些修改可以包括基于置信度阈值拒绝考虑某些机器人的过滤,或基于历史反馈的分数修改。
在一些示例中,通信服务器710可以促进网络设备705和所选机器人720之间的通信会话。机器人720可以被配置为通过在通信会话期间与网络设备705交换一个或多个消息来自主地与网络设备705通信。通信服务器710可以动态地确定是否用终端设备715切换机器人720(或者在某些情况下,反之亦然),以便在线代理而不是机器人720可以与网络设备705进行通信。在一些实现方式中,可以执行切换无需来自网络设备705或终端设备715的提示。例如,在不提示网络设备705请求终端设备的情况下,切换可以基于在网络设备705和机器人720之间交换的消息的消息参数(例如,表示一个消息或一系列消息的情绪的分数)。
在一些实现方式中,通信服务器710利用一个或多个机器学习模型或人工智能来自动确定是否用终端设备715切换机器人720(或者在某些情况下,反之亦然)。例如,在网络设备705和机器人720之间交换的消息可以被一个或多个机器学习模型或人工智能用作输入以生成输出。输出可以指定网络设备705和机器人720之间的通信会话是要切换到在线代理还是要被保持。可以使用监督学习技术来训练机器学习模型。例如,可以选择指定适当响应实体(例如,在线代理或机器人)的输入消息和相应输出的数据集来训练机器学习模型。在一些示例中,可以从通信服务器710的管理员、网络设备705和可以与通信服务器710交互的其他网络设备的用户、和/或与通信服务器710相关联的其他源获得输入消息。可以评估机器学习模型或者人工智能,以基于提供给机器学习模型或人工智能的输入消息来确定机器学习模型或人工智能是否正在提供有用的输出,该有用的输出可以用于确定相应的通信会话是由在线代理还是机器人处理。基于该评估,可以修改机器学习模型或人工智能(例如,可以更新一个或多个参数或变量),以增加机器学习模型或人工智能生成期望结果的可能性。
在一些实现方式中,一个或多个机器学习模型或人工智能可以生成表示输入消息或一系列消息的情绪的分数,作为输出。通信服务器710可以确定所得到的分数是否超过与向机器人720或在线代理分配通信会话相对应的阈值。例如,如果分数超过阈值,则通信服务器710可以确定通信会话最适合机器人720。因此,如果通信会话当前在网络设备705和终端设备715(例如,在线代理)之间,则通信服务器710可以自动地将通信会话从终端设备715转换到机器人720,或者向操作终端设备715的在线代理指示机器人720可以处理与网络设备705的通信会话。替选地,如果分数没有超过该阈值,则通信服务器710可以确定通信会话最适合终端设备715(例如,在线代理)。在该示例中,如果通信会话当前在网络设备705和机器人720之间,则通信服务器710可以自动地将通信会话从机器人720转换到终端设备715。在一些实例中,如果分数没有超过该阈值,则通信服务器710可以向操作终端设备715的在线代理指示它应该干预通信会话。应该注意的是,上述阈值和分数是说明性的,并且可以实现替选的阈值和评分机制来确定是利用机器人720还是终端设备715与网络设备705进行特定通信会话。
在一些实例中,通信服务器710可以实现可用于确定与网络设备705的给定通信会话的相关动作的一组动态规则或策略。该组规则可以由管理员或与通信服务器710相关联的其他授权实体提供,或者可以使用如上所述的一个或多个机器学习算法或人工智能来生成。作为说明性示例,通信服务器710可以评估网络设备705与机器人720或终端设备715之间的对话进度,以基于该组规则或策略来确定是否调用替选动作(例如,诸如将通信会话从机器人720转换到终端设备715,反之亦然)。例如,如果通信服务器710基于所获得的在通信会话期间交换的消息确定机器人720的置信度分数和/或网络设备705的用户的情绪分数存在变化,则通信服务器710可以基于与通信会话相关的该组规则或策略来确定适当的动作。这可以包括将通信会话从机器人720转换到终端设备715,向终端设备715发送指示其要干预通信会话的通知,等等。一旦采取了相关动作,通信服务器710就可以继续监控在通信会话期间交换的后续消息,以评估根据该组规则或策略所采取的动作的影响。基于从这些后续消息和/或从用户与在线代理会话后获得的反馈,通信服务器710可以更新用于生成该组规则或策略的机器学习算法或人工智能。这些更新可以导致该组规则或策略的动态创建或修改,以提供对在通信会话期间要采取的动作的改进的推荐。如果该组规则或策略是由管理员或与通信服务器710相关联的其他授权实体定义的,则通信服务器710可以向管理员或其他授权实体提供所获得的反馈和用于更新该组规则或者策略的一组推荐。
在一些实现方式中,通信服务器710可以基于在机器人720和网络设备705之间交换的消息的特性来自动地确定在机器人720和终端设备715之间切换。在一些实例中,分析消息文本以确定特性(例如,消息参数)可以包括对与消息相关联的文本或非文本属性的分析。例如,通信服务器710可以从网络设备705提取消息中包括的一行或多行文本。通信服务器710可以识别所述一行或多行文本是否包括锚点。锚点的示例包括与极性(例如,情绪或意图,词语“沮丧”对应于负极性或沮丧的极性,词语“高兴”对应于正极性,等等)相关联的文本串。例如,“争议”一词对于一个客户可能是消极的,但是对于第二个客户可能是中性的或积极的。在一些实例中,可以使用监督的机器学习技术动态地确定锚点。例如,可以对所存储的消息执行一种或多种聚类算法,以在所存储的消息内找到模式。可以对聚类的消息进行进一步过滤和评估,以确定锚点。此外,可以解析识别的锚点附近的一个或多个词以寻找放大器。放大器的示例是增加或减小与锚点的极性相关联的强度的术语,例如“真的”、“不完全是”、“有点”等。该特性可以包括例如打字速度、消息中使用的特殊字符(例如,感叹号、问号等)的数量、消息的语义分析(例如,通过识别关键字、句子结构、重复的词、标点符号和/或非冠词的词)、用户输入(例如,已选择一个或多个类别)、和/或与消息相关联的统计信息(例如,响应延迟)。
作为非限制性示例,消息参数可以是指示负极性的高强度的数值(例如,在0-100的范围上的消息参数20,较低的数字指示负极性,较高的数字指示正极性)。可以使用算法来计算消息参数。例如,该算法可以基于监督的机器学习技术。在另一示例中,如果术语“有点”在锚点“不喜欢”附近(例如,如句子“我有点不喜欢”中),则术语“种类”可以被识别为指示负极性的中等强度的放大器术语。在这种情况下,可以基于对负极性的中等强度的识别来生成消息参数。作为非限制性示例,消息参数可以是指示负极性的中等强度的数值(例如,消息参数为40,这与消息参数20对照)。在一些实例中,可以使用消息参数来确定哪个辅助队列要存储通信。
在一些实现方式中,消息的特性可以是与消息相关联的情绪。消息参数可以表示消息的情绪。例如,如果消息的情绪是快乐的,则消息参数可以是某个值或值的范围,而如果消息的情绪是愤怒的,则消息参数可以是另一值或另一值的范围。可以基于消息参数来确定是否在机器人和终端设备之间切换,该消息参数随着在通信服务器710处接收到的每个新消息而连续且自动地进行更新。
在一些实现方式中,如果通信服务器710确定对话将从机器人720切换到终端设备(例如,在线代理),则通信服务器710识别哪个终端设备(如代理)更有可能积极解决网络设备705的用户提出的技术问题。例如,基于从网络设备705接收的消息的特性和由网络设备705的用户通过其消息表达的技术问题,通信服务器710可以识别与可能解决该技术问题的代理相关联同时提供与用户进行积极交互的更高可能性的终端设备。
为了识别哪个代理最适合响应用户的技术问题,通信服务器710可以使用从网络设备705接收的消息的特性和由网络设备705的用户表达的技术问题作为机器学习模型或人工智能算法的输入,该机器学习模型或人工智能算法被配置为提供特定代理的选择,作为输出。机器学习模型或人工智能算法可以使用与用户和在线代理之间先前进行的对话相关联的反馈来进行训练。该反馈可以用于识别每个代理的某些特性。这些特性可以包括但不限于,与技术问题相关的专业领域、对特定情绪的响应能力(例如,减少用户沮丧或愤怒的能力等)、响应延迟、用户满意度评级或分数等。如果需要代理干预网络设备705和机器人720之间的对话,则通信服务器710可以使用机器学习模型或人工智能算法来选择可以干预对话并提供积极用户体验的增加可能性的特定代理。
在一些实现方式中,通信服务器710使用来自网络设备705的反馈来训练或更新用于选择干预网络设备和机器人之间的对话的代理的机器学习模型或人工智能算法。例如,如果网络设备705提供指示与所选代理的消极体验的反馈,则通信服务器710可以更新机器学习模型或人工智能算法,以降低代理选择与接收到的反馈相关联的对话具有相同或相似特性的对话的可能性。替选地,如果网络设备705提供指示与所选代理的积极体验的反馈,则通信服务器710可以更新机器学习模型或人工智能算法,以进一步增强代理积极处理相同或相似对话的能力。
在一些实现方式中,通信服务器710可以推荐或预测对从网络设备705接收的消息的响应。例如,通信服务器710可以包括消息推荐系统,该消息推荐系统可以评估从网络设备705接收的消息并使用机器学习模型来推荐对那些接收到的消息的响应。消息推荐系统可以在终端设备715上显示一组推荐的消息,以帮助代理与网络设备705进行通信。
图8示出了根据一些实施方式的通信服务器805的框图。通信服务器805可以示出图7的通信服务器710的内部组件。通信服务器805可以包括中央处理单元(CPU)807,中央处理单元807包括处理器810和存储器815。通信服务器805还可以包括存储装置820。
CPU 807可以联接到计算机可读介质825。计算机可读介质825可以具有任意数量的模块和引擎。尽管示出了五个模块和引擎,但是可以设想,可以在计算机可读介质825中实现更少或更多的模块或引擎以执行本文所述的功能。如图8所示,计算机可读介质825可以包括意图确定引擎827、机器人转移引擎829、反馈模块831、用户界面(UI)配置引擎833、和机器学习引擎835。
意图确定引擎827可以被配置为结合处理器810来接收对话的请求。该请求可以从用户操作的网络设备接收。例如,可以在由代理操作的终端设备处接收该请求。意图确定引擎827还可以被配置为结合处理器810来确定对话的意图。可以根据请求来确定意图。例如,请求可以陈述“我想要我的订单状态”。意图可以从请求中提取为“订单_状态(order_status)”。
校准引擎837可配置为在本文所述的双向通信会话期间管理机器人或其他源的选择。例如,使用来自意图确定引擎827的意图,可以识别可用于通信服务器805并且与所识别的意图相关的机器人的子集。对机器人子集的初始查询可以得到从机器人子集接收的一组置信度分数。校准引擎837然后可以使用利用机器学习引擎835生成的映射数据来提供要在双向通信会话中使用的机器人或源的实时选择。例如,如果系统解析输入数据以将“订单状态”识别为意图,则系统可以识别与该意图相关的五个可用机器人。机器人可以分别返回0.9、0.85、0.6、0.5和0.5的置信度分数。系统可以基于先前双向通信的反馈对这些分数应用动态校准映射,而不是选择具有返回的最高置信度分数的机器人。例如,映射可以导致0.9的置信度分数被调整为0.78的映射分数,0.85的分数被调整为0.84的映射分数。如果其余机器人的映射分数低于此,则可以选择置信度分数为0.84且映射分数为0.84的机器人来使用。
在使用该机器人期间,双向通信的参与者(例如,客户或代理人)可以提供关于机器人的反馈。积极反馈可以使调整变得更加积极(例如,对于相同或类似的输入数据,下一个映射可以从0.85到0.85,而不是到0.84)。消极反馈可以使调整变得更加消极(例如,下一个映射可以从0.85到0.83,而不是到0.84)。消极反馈还可以使用校准引擎837和机器人转移引擎829的组合,实时触发针对当前双向通信的不同机器人的动态选择。
机器人转移引擎829可被配置为结合处理器810和校准引擎837,自动提供一个或多个选项,以动态选择、更改对话或将对话转移到一组不同类型的机器人中的一种类型的机器人。例如,双向通信可能涉及代理和客户来回发送通信。在这样的通信期间,对通信的分析可能涉及发送给机器人的输入数据,以获得置信度分数。可以通过NLU处理触发器和意图分析或者通过来自代理的请求来识别输入数据。当生成高于阈值的置信度分数时,可以向代理呈现将对话从代理转移到一种类型的机器人的选项。当代理选择该选项时,可以促进与相应类型的机器人的对话。对话可以手动或自动地从由代理操作的终端设备转移到机器人。例如,根据机器学习技术或过去的经验确定,自动转移可以通过特定类型的机器人以高置信度的解决方案来实现意图。在一些实现方式中,如果机器人转移引擎829以高置信度确定意图可以由特定类型的机器人来解决,则机器人转移引擎824可以自动地将对话从由代理操作的终端设备转移到特定类型的机器人,而无需提供将对话转移到该特定类别的机器人的选项。这可以避免手动选择选项的需要以促进与机器人的对话。在一些实现方式中,机器人转移代理829可以利用置信度阈值来确定是否呈现上述一个或多个选项以将对话转移到一种类型的机器人。例如,如果机器人转移引擎829确定特定意图对于某种类型的机器人进行的解决具有高置信度分数,并且该高置信度分数超过置信度阈值,则机器人转移引擎829可以自动将对话转移到该特定类型的机器人,而无需呈现将对话转移到机器人的选项。替选地,如果机器人转移引擎829确定特定意图对于某种类型的机器人进行的解决方案具有不超过置信度阈值的置信度分数,则机器人转移引擎829可以呈现将对话转移到机器人的一个或多个选项。机器人转移引擎829在通信中使用不同机器人的操作可以与通信服务器805管理通信的其他方面同时发生。例如,当客户正在键入或发送响应作为通信的一部分时,机器人转移引擎可以同时处理先前的数据并将通信转移到新的机器人,或者启动新机器人的执行作为通信的一部分。可以实时分析来自客户的新通信,以动态地通知机器人转移引擎829做出的转移决策,并且转移决策可以在当前机器人执行通信的操作的同时发生。因此,机器人可以执行通信的操作(例如,生成通信文本或其他通信响应),同时机器人转移引擎829选择新机器人。在一些方面,在机器人转移引擎829选择了新机器人后,新机器人可以开始分析通信数据,以制定后续输出或响应作为双向通信的一部分,同时当前机器人在转移到新机器人之前完成最终通信。在一些方面中,机器人转移引擎829可以确定多个机器人应当作为通信的一部分同时操作,并且这些机器人可以被配置为在并行执行分析操作的同时与客户串行通信。在这样的操作中,一个机器人可以使用处理资源来辅助通信,同时不同的机器人也在使用处理资源来辅助相同的通信。机器人转移引擎829然后可以管理来自不同机器人的要被传送给客户的输出。此外,如本文所述,任意数量的客户可以同时与通信服务器805交互,使得(一个或多个)机器人转移引擎829可以操作以辅助机器人选择并同时用于任意数量的与客户的双向通信。
在一些实例中,机器人转移引擎829可以基于从对话请求中确定的意图来识别一种或多种类型的机器人。例如,机器人转移引擎829可以实现置信度分数算法,该置信度分数算法用于计算与不同类型的机器人对给定意图产生满意响应的可能性或概率相对应的置信度分数。置信度分数可以是百分比或其他值,其中,该百分比或值越低,响应是对传入消息的良好预测的可能性就越小,该百分比越高,响应是对传入消息的良好预测的可能性就越大。如果用户已经表达了对与特定类型的机器人的对话的不满,则智能路由系统可以更新置信度分数算法,使得对于相同或相似的意图,该特定类型的机器认被分配较低的置信度分数,从而用作相同或相似的意图更有可能被终端设备(例如,在线代理)或另一类型的机器人正确处理的指示。作为另一个非限制性示例,如果用户已经对与特定类型的机器人的对话表示满意,则智能路由系统可更新置信度分数算法,使得对于相同或相似的意图,该特定类型的机器人被分配相等或更大的置信度分数,从而用作相同或相似意图更有可能被该特定类型的机器人正确处理的指示。
在一些实现方式中,机器人转移引擎829可以动态地提供一个或多个选项,以将对话从由代理操作的终端设备转移到一种类型的机器人。例如,通过可以显示在终端设备上以推荐机器人并接收反馈的界面,机器人转移引擎829可以向代理提供针对能够处理所识别的意图的机器人类型的一个或多个推荐。每个推荐可以包括相应的置信度分数,该置信度分数指示使用相应类型的机器人可以解决意图的可能性。除了为能够处理请求的每种类型的机器人提供置信度分数外,机器人转移引擎829通过该界面,可以向代理提供将通信会话或对话转移到该类型的机器人的选项。如果代理选择了将通信会话转移到特定类型的机器人的选项,则机器人转移引擎829可以将通信会话转移到该特定类型的机器人。机器人转移引擎829可以基于一个或多个因素来选择特定类型的机器人。例如,机器人转移引擎829可以选择具有足够带宽以参与与提交请求的用户的通信会话的特定类型的机器人。机器人转移引擎829可以附加地或替选地基于用户的一个或多个特性来选择特定类型的机器人。例如,机器人转移引擎829可以选择被配置为以用户的语言进行通信的特定类型的机器人。
在一些实现方式中,机器人转移引擎829还可以向代理提供一选项,该选项用于提供关于将对话转移到某种类型的机器人的每个推荐的反馈。例如,如果代理确定将对话转移到特定类型的机器人的特定推荐是不适当的(例如,该类型的机器人不能处理所识别的意图、识别了不正确的意图等),则机器人转移引擎824可以使用该反馈来训练或以其他方式更新机器学习算法或人工智能,所述机器学习算法或者人工智能用于计算置信度分数,并且基于针对给定意图和/或类似意图的不同类型的机器人的置信度分数来生成推荐。这可以导致机器学习算法或人工智能为相同或相似的意图分配给该类型机器人的置信度分数较低。替选地,如果代理选择通信会话将被转移到的特定类型的机器人,则机器人转移引擎829可以使用该选择作为关于其使用该特定类型机器人的推荐的积极反馈的指示。该反馈可用于训练或以其他方式更新上述机器学习算法或人工智能,以进一步验证置信度分数和针对相同或相似意图使用特定类型机器人的推荐。
在一些实现方式中,如果代理拒绝将对话转移到特定类型的机器人的特定推荐,则机器人转移引擎829可以使用机器学习算法或人工智能来生成一个或多个用于基于所识别的意图将对话转移至其他类型的机器人的新推荐。如上所述,如果代理拒绝将对话转移到特定类型的机器人的特定推荐,则机器人转移引擎829可以使用该反馈来训练或以其他方式更新机器学习算法或人工智能,所述机器学习算法或者人工智能用于计算置信度分数并且基于针对给定意图和/或类似意图的不同类型的机器人的置信度分数来生成推荐。机器人转移引擎829可以使用经更新的机器学习算法或人工智能来针对所识别的意图向代理提供新推荐。因此,机器人转移引擎829可以基于使用机器学习算法或人工智能计算的这些不同类型的机器人的意图和置信度分数,动态且连续地向代理提供用于将对话转移到不同类型的机器人的推荐。
不同类型的机器人能够以自动化的方式处理某些意图。例如,对于意图“order_status”,订单状态机器人能够使用所提供的订单号、客户名称、客户电子邮件地址、IP地址等提取订单信息。一旦确定了订单信息,订单状态机器人就可以确定订单状态,并在对话中提供给用户。作为另一个示例,对于意图“支付_状态(payment_status)”,支付状态机器人能够使用所提供的账号、客户名称、客户电子邮件地址、IP地址等提取计费信息。此外,使用计费信息,支付状态机器人可以确定客户是否已经提交了支付、提交的支付是否已经被处理、等等。其他类型的机器人能够处理更复杂的技术问题(例如,解决硬件或软件问题、处理欺诈报告等)。
在一些实施方式中,网络设备和机器人之间的对话可以显示在终端设备上,以允许操作终端设备的代理干预对话。代理可以基于计算出的用户对对话的满意度的情绪分数来决定干预对话(或者对话可以被自动转移回终端设备)。例如,如果用户对对话感到满意,则可以存在如下阈值,情绪分数应该高于该阈值。如果情绪分数低于阈值,则可以手动或自动将对话转移回终端设备。
情绪分数可由机器学习引擎835计算,机器学习引擎835可被配置为利用对话期间交换的消息作为输入来生成情绪分数。机器学习引擎835可以利用使用监督学习技术训练的一个或多个机器学习模型。例如,可以选择输入消息以及相应的情绪和情绪分数的数据集来训练机器学习模型。在一些示例中,可以从通信服务器805的管理员、用户、代理和其他源获得输入消息。可以评估一个或多个机器学习模型,以基于提供给一个或多个机器学习模型的输入消息来以确定该一个或多个机器学习模型是否正在提供有用的输出,该有用的输出可用于确定对话的情绪和相应的情绪分数。基于该评估,可以修改一个或多个机器学习(例如,可以更新一个或多个参数或变量),以增加该一个或多个机器学习模型生成期望结果的可能性。
在一些实例中,一个或多个机器学习模型可以利用一个或多个聚类算法来确定网络设备和机器人之间的特定对话的情绪。例如,机器学习引擎835可以提取在网络设备和机器人之间的对话期间交换的消息,以识别可以与极性相关联的锚点或其他文本串。机器学习引擎835可以确定所提取的消息是否对应于与已知情绪相关联的特定集群。集群还可以与用户对对话的满意度的情绪分数相关联或以其他方式用于确定用户对对话的满意度的情绪分数。例如,每个集群除了对应于特定情绪之外,还可以与可以表示极性的特定分数相关联,如上所述。
在一些实现方式中,网络设备和机器人之间的对话可以自动转移到终端设备,而不需要操作终端设备的代理评估对话并手动干预对话。例如,如果特定对话的情绪分数低于情绪分数阈值,则机器人转移引擎829可以自动将对话从机器人转移到终端设备,以使在线代理干预对话。在一些实例中,机器人转移引擎829可以利用多个阈值来确定是在终端设备处呈现对话以允许操作终端设备的代理干预对话还是自动将对话转移到终端设备。例如,如果对话的情绪分数低于第一情绪分数阈值但不低于较低的第二情绪分数阈值,则机器人转移引擎829可以在终端设备处呈现对话,以允许代理在需要时干预对话。然而,如果情绪分数低于第一情绪分数阈值和第二情绪分数阈值,则机器人转移引擎829可以自动将对话转移到终端设备以进行代理干预。使用映射分数而不是机器人的置信度分数被选择的特定机器人的情绪分数可以用作映射的反馈。高情绪分数可以增加映射调整的值,而低情绪分数可以降低映射调整的值。
反馈模块831可以被配置为结合处理器810来接收关于对话的反馈。这种反馈可以被馈送到校准引擎837,以在不改变机器人的情况下使用本地数据改变机器人的映射调整。反馈可以由操作终端设备的代理、自动情绪系统、客户或任何其他此类源来提供。反馈可以反映机器人识别意图和/或处理用户在网络设备上表达的请求有多么好。此外,反馈模块831可以从参与对话的用户获得反馈。例如,在对话结束时,反馈模块831可以向用户使用的网络设备发送提供关于其与机器人和/或在线代理的对话的反馈的请求。该请求可以以调查的形式提供,通过该调查,用户可以指示其关于对话的情绪,以及提供机器人和/或在线代理的表现评估。在一些实例中,反馈模块831可以在对话期间从参与对话的用户获得反馈。例如,反馈模块831可以评估对话期间的用户响应,以确定用户的情绪。例如,反馈模块831可以分析与用户消息相关联的文本或非文本属性,以识别用户消息是否包括与极性相关联的锚点。作为说明性示例,如果用户在消息中指示其“沮丧”或指示所提出的解决方案不正确(例如,“否”响应等),则反馈模块831可以确定该消息表示负极性,因此,确定机器人未能以令人满意的方式识别意图和/或处理用户表达的请求。反馈可以以任何合适的形式被接收。例如,反馈可以用字母大小、数字大小、单词、图标或图形的选择等来表达。显示给代理和/或用户以提供反馈和呈现对话视图的界面可以由用户界面配置引擎833结合处理器810来处理。
机器学习引擎835可以被配置为结合处理器810,将对话、识别的意图和提供的反馈馈送到数据库中,并分析数据以推断某种类型的机器人和/或在线代理处理对话有多好。该数据以及其他历史对话数据和反馈可用于建立模型,该模型可用于确定与一个或多个未来请求相关联的未来意图。例如,如果特定类型的机器人成功地处理了“order_status”意图而使用户满意,则未来的“order_status”意图也可以转移到该特定类型的机器人。此外,陈述“我想要我的订单状态”的未来请求可以基于积极反馈自动与“order_status”意图相关联。然而,如果特定类型的机器人未能成功地处理意图而使用户不满,则类似于上述意图的未来意图可以被转移到终端设备,以便这些未来意图由在线代理来处理,或者被转移到可能更适合于基于另一类型的机器人的置信度分数(基于意图来计算的置信度分数)来处理意图的另一类型的机器人。
例如,当用户第一次以“递送_状态(delivery_status)”的意图联系代理时,系统可以查询相关机器人,基于校准(例如,映射)系统的当前实时状态调整从机器人接收的置信度值,并基于订单状态机器人的映射分数从可用机器人中选择订单状态机器人。然后,在双向通信期间(例如,作为双向通信的一部分),用户可以实时自动重定向到订单状态机器人。在双向通信完成后,管理向机器人的转移的代理可以提供关于交互的一个或多个方面的反馈,例如订单状态机器人是否是将对话转移到的适当机器人,以及订单状态机器人能否解决意图,以及当订单状态机器人处于活动状态时双向通信进行得有多好的代理评级。此外,用户还可以提供关于交互的类似或不同方面的反馈,例如订单状态机器人是否成功地解决了用户的意图,订单状态机器人是否响应于用户的消息,来自订单状态机器人的响应是否与意图和/或用户提交的特定消息相关,等等。其他技术可以用于收集在没有来自代理和/或用户的明确反馈的情况下的关于交互的反馈,例如通过观察代理是否必须干预对话来进行,这可以指示订单状态机器人不是正确的机器人,对话不应该被自动转移,或者订单状态机器人无法解决意图。反馈可以用于训练可以应用于未来交互的模型。然后,这些信息可用于调整订单状态机器人的映射值。经更新的调整然后将动态地用于未来选择机器人,这些机器人与应用于未来交互的模型的相同或类似输入数据(例如,与“递送状态”或NLU识别的递送状态意图相匹配或相关联的输入)相关。
图9示出了表示用于使用机器学习技术来增强终结点选择(即,终端设备或机器人)的网络环境900的框图。网络环境900可以包括网络设备905(由用户操作)、通信服务器910、机器人915、以及终端设备920。通信服务器910可以促进建立如下通信通道,该通信通道使得网络设备905能够与机器人915和终端设备920中的至少一者进行通信。
通信服务器910可以包括智能路由系统925、消息推荐系统930和消息数据存储器935。在这样的系统中,智能路由系统925可以包括校准或映射引擎,以查询机器人的置信度分数,并在双向通信期间管理所选机器人和代理终端之间的通信的选择和转移。智能路由系统925和消息推荐系统930中的每一者可以包括一个或多个具有处理器和存储器的计算设备,这些计算设备执行指令以实现某些操作。在一些实现方式中,智能路由系统925可以是被配置为实现机器人校准和将从网络设备接收的通信智能地路由到适当目的地的机器人。智能路由系统925可以包括被配置为执行代码的一个或多个处理器,使得一种或多种机器学习技术或人工智能技术结合消息的实时智能路由,为校准和机器人选择操作提供动态反馈。在一些实现方式中,智能路由系统925可以执行一种或多种机器学习技术来训练模型,该模型预测从网络设备905接收的消息是否可以由机器人915成功处理。
作为非限制性示例,智能路由系统925可以通过由通信服务器910(例如,被配置为使用户能够跨各种设备彼此通信的本机应用程序)建立或促进的通信通道从网络设备905接收消息。根据上述某些实施方式,智能路由系统925可以评估传入的消息。例如,智能路由系统925可以使用经训练的机器学习模型来评估包括在接收到的消息中的内容(例如,文本、音频剪辑片段、图像、表情符号或其它合适的内容),以识别意图。输入数据(例如,通信文本和/或意图数据)可以被发送到可用的机器人以接收置信度分数,并且智能路由系统925然后可以校准接收到的置信度分数。置信度分数可以用于将通信引导到所选择的机器人915,或者如果没有选择机器人(例如,没有映射分数超过阈值,显著不同类型的机器人具有高于阈值的置信度分数等),则使用终端设备920将通信路由到代理。来自智能路由的数据可以存储在消息数据存储器935中,并使用消息推荐系统930与各种反馈系统整合在一起。
在一些实现方式中,智能路由系统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的不正确的路由。
消息数据存储器935可以存储过去从一个或多个网络设备接收到的一些或所有消息。此外,消息数据存储器935还可存储在与网络设备的先前通信会话期间由终端设备或机器人发送的一些或全部消息。消息数据存储器935还可以存储在通信会话期间由网络设备发送给机器人的一些或全部消息。此外,消息数据存储器935可以存储在通信会话期间由机器人发送到网络设备的一些或全部消息。在一些实现方式中,消息数据存储器935可以是已处理的(例如,由通信服务器910发送或在通信服务器910处接收的)所有消息的数据库。
消息推荐系统930可以分析存储在消息数据存储器935处的消息的数据库。在一些实现方式中,消息推荐系统930可以使用一种或多种机器学习算法或人工智能算法来评估存储在消息数据存储器935中的消息。例如,消息推荐系统930可以对存储在消息数据存储器935中的消息的数据库执行一种或多种聚类(clustering)算法,诸如K均值聚类、均值漂移聚类、带噪声的应用的基于密度的空间聚类(Density-Based Spatial Clustering ofApplications with Noise,DBSCAN)聚类、使用高斯混合模型(Gaussian Mixture Model,GMM)的期望最大化(Expectation-Maximization,EM)聚类、以及其它合适的机器学习算法。在一些实现方式中,可以使用递归神经网络(RNN)或卷积神经网络(CNN)预测响应消息以对代理进行帮助。在一些实现方式中,消息推荐系统930可以使用支持向量机(SVM),监督、半监督的集合技术或无监督的机器学习技术,来评估所有先前的消息,以预测对在通信会话期间从网络设备接收到的传入消息的响应。例如,消息推荐系统930可以评估从网络设备接收到的消息(或在通信服务器910处从机器人或终端设备接收到的消息)的内容,并将评估结果与存储在消息数据存储器935中的先前消息的一个或多个集群(cluster)进行比较。一旦识别出集群,消息推荐系统930就可基于置信度阈值识别出最相关的响应消息。例如,传入消息(例如,在通信服务器910处从网络设备905接收的传入消息)可以对应于基于该传入消息的内容的技术问题。消息推荐系统930可以基于对该传入消息的内容的评估(例如,文本评估)来识别出该传入消息对应于一技术问题。消息推荐系统930可以访问消息数据存储器935以识别与技术问题相关联的消息的集群。消息推荐系统930可以基于置信度阈值在消息集群中选择一个或多个响应消息。作为非限制性示例,可以执行置信度算法以生成置信度分数。置信度分数可以是一个百分比值,其中,百分比越低,响应是对传入消息的良好预测的可能性就越小,百分比越高,响应是对传入消息的良好预测的可能性就越大。最小置信度阈值可以定义为与每个发现的模式相关联的确定性或可信度的量度。此外,置信度算法的示例可以是Apriori算法、指示两个数据集之间的类似度的类似度算法以及其它合适的置信度算法。
图10示出了根据本文所描述的示例的双向通信会话和相关联的输入数据的各方面。图10示出了如上所述的机器人校准的各方面。在图10的图表中,接收输入数据1010(例如,作为双向通信的一部分的用户输入)。在一些示例中,用户输入是文本数据,但在其他示例中,用户输入可以是任何这样的数据,包括语音数据、转换为文本数据的语音数据、以及来自自然语言处理系统的结构化输出数据。多个机器人1020,如机器人A 1020A、机器人B1020B、机器人C1020C和机器人D 1020D所示,然后被查询置信度分数。机器人提供的置信度分数是每个机器人对输入数据的响应的独立(例如,异构)表示。当接收到置信度分数时,它们在机器人校准器1022中被用于(例如,使用机器人分数映射器)生成映射分数并基于映射分数选择机器人。如图所示,每个机器人1020具有作为机器人校准器1022的一部分的相关联的机器人分数映射器1030。在其他实现方式中,共享的机器人分数映射器1030可以用于确定不同机器人的相对置信度分数。在一些方面中,所使用的机器人校准器可以基于被校准的机器人的集合。例如,在仅使用机器人A 1020A和机器人B 1020C的实现方式中,可以使用与使用所有机器人A-D 1020A-1020D的另一系统不同的校准器或校准。这种不同的校准器可以基于机器人的先前使用的反馈和使用机器人的通信的结果进行独立训练,以生成与特定机器人集合相比的相对校准分数。在其他实现方式中,通用校准系统用于系统可用的所有机器人,而不管在系统操作的给定实例中使用的特定机器人如何。在操作1040中,机器人校准器从(一个或多个)机器人映射器1030识别映射分数中的最高映射分数,并选择多个机器人1020中的与最高映射分数相关联的机器人。在操作1050中,所选择的具有最高映射分数的机器人被评估以用于路由到用户。在一些方面中,这可以简单地涉及将机器人连接到用户(例如,机器人被路由到用户,然后在操作1080中用于促进双向通信)。在其他示例中,可以使用附加逻辑来确定机器人是否必须直接与用户交互,或者在操作1060和1065中确定是否具有机器人的使用标准和/或代理评估。所述促进可以涉及将双向通信重定向到所选的机器人(例如,将双向通信从代理或处理机器人路由到所选机器人,因此双向通信变成客户和执行所选机器人的设备之间的通信)。在双向通信期间,可以实时收集关于所选机器人的信息,以便在操作1090中用于机器学习或其他反馈机制,从而更新所选机器人的机器人映射。反馈信息可以包括在操作1085中分析的双向通信中的数据的元数据、调查或分析。反馈信息还可以包括在操作1065中由代理对机器人表现和选择的分析。在图10的示例中,在路由双向通信以使用所选择的机器人之后,对照机器人使用标准来检查映射分数,以确定是否要使用所选机器人。在操作1060中,机器人使用标准可以是机器人特定阈值。如果阈值触发了代理分析,则在操作1065中,代理分析数据(例如,输入数据、机器人操作或功能的描述、或关于机器人的其他数据)以提供附加反馈。在一些这样的示例中,如果代理反对选择,或者提供消极反馈,则可以选择另一个机器人,并且可以更新机器人校准器(例如,生成所选机器人的映射分数的机器人分数映射器1030)中的机器人特定信息,以消极地调整输入数据或类似数据(例如,具有类似意图值的输入数据)与所选机器人之间的关联。在操作1060中,机器人使用标准可以是基于置信度分数或映射置信度分数(例如单独或与其他数据组合)来确定所选机器人是否满足基本错误检查或合理相关性检查的任何标准。如果所选机器人未通过使用检查,则机器人校准器可以将所选机器人从考虑中移除,并返回操作1040以选择另一个机器人。在一些示例中,如果阈值数量的机器人(例如,两个机器人、三个机器人、五个机器人等)未满足使用标准,则系统可以假设没有机器人或相关信息可通过自动化系统获得,并保持与当前人工代理的双向通信或基于对输入数据的NLU分析来将通信路由到人工代理。
在一些示例中,可以执行干预分析,而不是在操作1050中将用户路由到所选机器人。干预分析可以是手动代理分析,也可以是针对阈值的自动检查。在一些示例中,如果所选机器人的映射置信度分数低于阈值,则可以在用户被路由到机器人之前,使用代理来确认对机器人的选择。在一些示例中,选择多个机器人,并将其发送给代理,以便代理从(一个或多个)分数映射器1030提供的映射分数中选择或拒绝排名靠前的机器人。在一些示例中,对排名靠前的映射分数进行分析,以识别所识别的机器人中的不常规性。例如,如果多个不相关的机器人的映射分数高于某个阈值,则可以使用代理来确认所选择的机器人适合双向通信。
在一些示例中,服务器设备或服务器系统可以同时执行图10中描述的分析的许多不同实例,不同实例同时执行不同步骤,这取决于与给定实例或通信类型相关联的通信的当前状态。例如,如上所述,与某些意图值相关联的某些通信可以具有不同的关联机器人分数集合,因为某些机器人可以为不同的客户意图提供不同的表现。通信服务器可以针对不同的标准(例如,意图值、客户问题值等)主动管理多个不同的机器人校准会话。在一些这样的系统中,可以针对不同标准同时动态实时地执行不同标准的机器人分数映射,其中机器人分数更新和标准分别用于不同标准。于是当从相关联的通信会话收集针对给定标准的数据时,可以由同一设备或系统同时执行针对不同标准的不同机器人校准器的更新。
在一个示例中,机器人A 1020A可以是辅助预约安排销售的机器人,机器人B1020B可以是辅助预约安排服务呼叫的机器人,机器人C 1020C可以是辅助从产品“小部件”的数据库中查找信息的机器人,机器人D 1020D可以是辅助将用户连接到技术支持的机器人。用户输入可以是从客户到呼叫中心的语音输入,该语音输入已被语音转文本系统转换为文本,并被输入为“我需要帮助安排处理我的小部件的问题”。该信息可以被提交给每个机器人1020,并且每个机器人可以输出未校准的相关性分数。例如,机器人A1020A可以返回分数200,机器人B 1020B可以返回分数9,机器人C可以返回分数50,机器人D可以返回分数15。机器人A-D的机器人映射器1030然后可以作为机器人校准器1022的一部分接受这些分数,并输出标准化分数。来自机器人A1020A的分数可以基于1000分制,并且由分数映射器映射到1000的标准化分制,其中基于具有相似输入数据的历史数据的调整从200的标准化分数下降到90的经调整的标准化分数。分数映射器中的标准化分数可以是简单地标准化分数的基本分制的分数(例如,从20的最大分数改变为1000的最大分数或者任何其他这样的最大分数)。调整可以是基于历史数据的机器学习驱动的调整,其使用反馈来改变分数。例如,选择了哪一个机器人,并且反馈数据指示该机器人不适合用户输入,分数映射器可以接收输入以在未来接收到类似的用户输入数据时为该机器人创建负调整值。
回到示例,来自机器人B的分数可以基于10分制,分数映射器1030可以生成900的标准化分数,基于先前的积极结果,经调整的分数为950(例如将子术语“安排援助”从输入数据映射到历史数据中的用于在机器人B的分数映射器1030中创建积极调整的积极结果)。来自机器人C的分数可以基于100分制,并且机器人映射器可以生成标准化分数500和经调整的分数500(例如,没有基于历史数据的调整)。来自机器人D的分数可以基于20分制,并基于与(“我的小部件的问题”)相关联的历史数据生成标准化分数750和经调整的分数850。
然后,机器人校准器1022可以识别具有最高经调整的标准化分数的机器人,在这种情况下,它将是机器人B,经调整的分数为950(满分1000)。在操作1050中,机器人路由可以针对附加标准来分析所选机器人的特性。在一些实现方式中,在操作1080中,可以将机器人直接路由到用户以继续机器人/用户对话。在其他实现方式中,可以实施附加标准。例如,如果客户端(例如,与机器人和“小部件”产品相关联的商家)实施在与人工代理相关联的任何机器人(例如,机器人A、B和D,其涉及人工代理的安排或连接)之前使用自动机器人(例如机器人C)的标准,则在操作1060中,机器人B将因与人工代理相关联而被拒绝,并且机器人C将基于使用自动机器人的标准而被选择。在一些方面中,作为操作1060的标准分析的一部分,人工代理可以分析用户输入1010和附加信息(例如,与用户输入1010相关联的客户的反复地请求关于修复小部件的信息的历史),并且推翻使用标准以允许使用安排的机器人B。在其他方面,可以基于使用准则来使用机器人C。在一些实现方式中,机器人C的操作可以具有机器人C识别出机器人C无法解决客户问题的终点,并且可以使用附加的机器人选择。附加的机器人选择可以使用存储在存储器中的先前校准分数以及与自动机器人相关联的标准。指示自动机器人已经被使用并且已经失败的历史数据然后可以被用作机器人使用标准操作1060的一部分,以允许基于自动机器人(例如与人工代理交互不相关联的机器人)的失败来选择具有最高分数但与人工代理相关联的先前机器人B。
在与机器人选择相关联的通信的解决(例如,完成或延迟)之后,任何数据,包括用户输入数据1010、来自机器人/用户对话操作1080的数据、来自机器人校准器1022和(一个或多个)分数映射器1030的校准分数、来自操作1065的任何人工代理输入或来自操作1060的系统中的使用标准决策,可以与从操作1085接收的反馈数据一起使用。然后,在操作1090中,所有这样的数据可以用于更新机器人映射器。在一些方面中,操作1090中对机器人映射器的更新可以使用机器学习来更新(一个或多个)给定机器人映射器的训练。在一些实现方式中,在给定的时间段内收集历史数据,并且以周期性的间隔使用更新的数据对(一个或多个)机器人映射器1030进行再训练。在一些实现方式中,数据是实时收集的,使得当使用机器人校准器1022的系统同时与数百或数千个客户交互时,来自与客户的每个通信的数据被实时馈送到机器人映射器训练系统中,并且在机器人映射器被用于校准系统接收的新用户输入的分数的同时,可以使用实时反馈数据来动态更新机器人映射器。然后对新用户输入进行评估,以选择用于新用户输入的机器人,并且将来自这些通信的反馈类似地馈送到机器人分数映射器训练中(例如,作为对与特定用户输入相关联的标准化分数的调整的修改),以通过改进用于解决客户问题的机器人的选择来改进系统操作。
图11示出了使用根据本文描述的示例选择的机器人来促进双向通信的各方面。图11示出了使用本文所述的机器人校准的采用双向通信中的每个回合(例如,作为用户/客户端与代理或机器人之间的双向通信的一部分的通信或动作)的分析。
如图11所示,每个回合的输入数据产生一组对话编排操作1100。回合的输入数据初始由NLU服务1110处理。这样的NLU服务可以识别意图值、关键字或其他这样的输入数据。可以通过利用一个或多个NLU服务(包括本地NLU服务或远程NLU服务)来生成意图值。这种NLU分析是实时或接近实时执行的,使得一个回合的NLU分析可以在另一个回合发生时处于进行中,并且附加回合可以与用于双向通信的进行中的NLU分析整合,或者附加NLU分析可以实时发生在新的回合中。然后在对话规划1120中使用NLU数据(例如意图值)。对话规划可以使用来自NLU服务的NLU数据来识别对话“类型”或响应计划。此外,对话规划1120可以识别多意图双向通信(例如,用户想要既安排新的预约又接收先前预约的列表,或者采取可以使用不同系统服务(例如多个不同机器人)的任何这样的多个不同动作的情况)。对话规划1120可以根据通过NLU服务1110或初始机器人识别的初始意图来识别脚本,以管理附加信息的收集或支持以促进双向通信。
然后动态执行提供者发现1130,以基于对话规划1120和来自NLU服务1110的NLU数据来识别用于双向通信的最佳资源。提供者发现1130可以包括上面在图10中描述的查询机器人、接收机器人置信度分数、以及映射置信度分数的操作。提供者发现还可以将所识别的机器人与附加选项进行比较,所述附加选项例如:与NLU数据相关联的人工代理(例如,具有与意图相关联的专门信息的代理)、可以促进双向通信的非机器人应用程序、代理或客户的信息内容、或其他此类数据。例如,如上所述的映射或校准系统不仅可以从机器人接收校准数据,还可以访问其他资源(例如与NLU数据相关联的静态帮助文本、或与NLU信息相关联的代理简档)的值或置信度分数。可以使用各种标准来确定何时向客户而不是已识别的机器人提供非机器人资源。例如,如上所述,如果没有机器人具有高于阈值水平的映射分数,则可以识别代理资源,或者可以向当前代理提供资源列表以供当前代理选择,这些资源包括信息文本、机器人、脚本、或这些资源的任何组合。
在下一动作选择1140中,提供者发现1130中识别的资源用于选择下一动作。例如,在以上使用机器人阈值选择标准的实现方式中,如果机器人确实具有高于阈值的映射分数,则下一动作选择1140可以自动选择具有最高映射分数的机器人。在另一示例中,向当前代理呈现由提供者发现1130识别的一个或多个选项,并且代理在选择1140中从可用选项中选择下一动作。一旦选择1140发生,则在调度操作1150中执行所选择的资源。调度1150可以包括将客户路由到与所选择的机器人的连接,向客户提供所识别的信息,或者与在下一动作选择1140中选择的资源相关联的任何其他这样的动作。从NLU服务1110到调度1150的所有这样的操作实时动态地发生,这包括如果用户如下面关于图12所描述的那样进行多个回合,则多个这样的线程同时发生。例如,对话规划1120可以管理多意图通信中多个不同资源的呈现,以及管理对通信中使用的资源的反馈(例如,当用户对调度的机器人提供消极反馈时重新计划)。对话编排1100的实时性质允许客户作为双向通信的一部分快速接收响应,而动态性质允许对话编排1100在双向通信中适应或响应来自客户的多个回合。通过提供者发现识别的机器人提供对标准客户请求的有效响应,并且利用NLU服务1110和计划1120的动态分析允许对话编排1100使用各种资源以及利用人工代理进行复杂交互,以提高系统的效率以及通过双向通信系统提供给客户的信息和服务的质量。
学习操作1160还可以从对话编排1100的每一回合收集主动和被动反馈,以及用于系统操作的聚合数据(例如,文本、元数据、代理分析、客户轮询数据等)。如上所述,这样的信息可以由系统用来改进对话编排1100的每个步骤。本文所描述的示例特别使用来自学习操作1160的反馈来更新映射数据,所述映射数据用于从机器人校准数据生成映射分数,如上文在图10中所描述的。该反馈可用于调整将NLU数据和/或输入数据与特定机器人相关联的映射表或映射文件中的分数,以及调整机器人校准分数以动态生成映射分数。系统可以通过响应于反馈实时调整映射表数据来实时更新映射表或其他这样的映射系统,而没有用于更新的停机时间。实时反馈允许来自第一双向通信的数据通知在与第一双向通信同时发生的第二双向通信中机器人的选择。一旦接收到来自第一双向通信的反馈,映射分数就可以被更新以反映该反馈,并且如果接收到在针对第二双向通信的回合的发现1130的操作中分析相同机器人的相关联输入,则映射分数可以被更新以提供用于第二双向通信的映射。
映射文件不仅可以存储与NLU数据、输入数据、和特定机器人相关的调整数据,还可以存储反馈历史数据,这些反馈历史数据可用于确定如何响应于反馈进行未来调整。例如,当在输入数据和机器人之间进行初始关联时,可能不存在映射数据,因此可以在不进行调整的情况下使用来自机器人的置信度分数。响应于第一系统识别的初始反馈或响应于输入数据的机器人的选择,可以用于响应于相同或类似的输入数据对机器人的未来选择进行大的调整校准。由于系统看到响应于类似输入数据对相同机器人的附加选择,响应于反馈而允许的调整幅度可能会受到限制,因为反馈系统跟踪与机器人直接生成的置信度不同的本地置信度。
在一些示例中,机器人可以集成反馈以及映射系统。在这样的示例中,映射系统可以跟踪机器人置信度分数的变化,使得映射系统识别被调整的本地分数,而不是提供对机器人分数的调整。例如,“日程”机器人响应于输入数据“预约”,可能会返回0.95的置信度分数。映射系统可以识别输入数据和机器人的组合的映射分数为0.8。映射器可以将目标定为0.8,而不是简单地将该组合的置信度分数调整-0.15,这样,如果日程机器人集成的更新和反馈将日程机器人对预约的置信度响应降低到0.88,则映射系统将保持映射分数为0.8。在其他示例中,可以在映射系统中跟踪调整,并且映射系统可以在机器人的置信度分数响应于相同的输入而改变时重置反馈分析,以反映机器人操作的改变。通过跟踪同一输入数据随时间生成的置信度分数,映射系统可以自动响应机器人的更新。例如,如果映射系统识别出一个特定输入数据的校准分数的更新,则可以针对与机器人相关联的所有输入来调整或重置分析阈值,直到映射系统识别出机器人的改变的程度为止。即使在识别出机器人的改变之后,对机器人的微小改变也可以允许使用历史数据,而对机器人的重大改变可能导致机器人的历史数据被丢弃,并且映射系统将机器人视为没有历史的新机器人。映射系统然后可以随着时间的推移动态跟踪经更新的机器人,以利用本地数据寻求本地置信度分数,直到机器人发生另一重大更新或改变。
图12示出了根据本文描述的示例的利用自然语言理解(NLU)、机器人和反馈系统促进的双向通信。图12示出了用于双向通信的用户界面1200。界面1200可以包括元数据,例如用于双向通信中的参与者的时间戳和识别信息。界面1200还可以包括用于交互的每个回合的文本输入数据。如图12所示,界面1200包括用于由标记为“访问者”的客户依次进行的两个回合的输入数据1210和输入数据1220。如上所述,根据对话编排1100,每个回合可以被单独处理。在图12的示例中,可以独立于输入数据1220“退货策略”来处理输入数据1210“订单状态”。这些输入数据中的每一条都可以使用上面在图11中描述的流程来处理,其中NLU服务1110识别NLU数据,对话规划1120标识用于输入数据响应的计划,以及提供者发现1130识别与输入数据相关联的可能资源。
图13示出了用于提供者发现1130系统向代理呈现用于上面的每一条输入数据1210和1220的排名靠前的资源的实现方式的用户界面1300。响应元素1310呈现“订单状态”输入数据1210以及所识别的机器人“订单机器人(orderBot)”。可以通过查询系统中的机器人,映射从系统机器人接收的校准分数,以及选择orderBot作为具有最高映射分数(例如,图13的样本中为96%)的机器人,来识别orderBot。类似地,可以用相同的分析来处理输入数据1210。然而,不是识别机器人,而是识别具有与输入数据1220“退货政策”相关的信息的文章。在提供者发现1130操作中,具有阈值或更高相关性或置信度分数的机器人没有被识别,因此“退货策略”文章资源被识别为响应于所识别的输入数据“退货策略”来促进双向通信的最佳资源。响应元素1320在代理用户界面1300中将关于文章的信息呈现给代理,其中输入界面元素允许使用资源来促进双向通信。在图13的示例中,参与双向通信的代理可以通过选择响应元素1320的“使用文章”元素来提供关于退货策略的信息,从而对连续的客户回合所采取的两个输入进行响应,并且然后可以通过选择响应元素1310的“加入”元素来将用户路由到orderBot。
在其他示例中,对话的机器人或其他机器管理员可以自动将识别的资源整合到双向通信中,而不是向用户界面1300提供人工代理来管理双向通信。在任何一种情况下,双向通信中来自客户的反馈数据都可以用于动态地选择替选资源,并提供实时反馈以改变双向通信的流或对话计划(例如,用于对话规划1120的)。
图14是根据本文描述的示例的用于机器人选择校准的方法1400的流程图。方法1400可以由参与双向通信的任何设备来实现,例如连接管理系统150或450、交互管理引擎625、通信服务器710或805、或者包括存储器和被配置为执行方法1400的一个或多个处理器的任何其他这样的设备。在一些示例中,代理终端或用户设备可以整合方法1400的功能。在一些示例中,方法1400被实现为存储在非暂时性计算机可读介质中的指令,该指令在由设备的一个或多个处理器执行时,使得设备执行包括方法1400的操作。
方法1400包括操作1402:接收输入数据作为双向通信会话的一部分,其中双向通信与多个机器人相关联。方法1400包括操作1404,操作1404包括:访问与第一机器人和输入数据相关联的第一置信度分数,其中第一置信度分数是通过第一机器人对输入数据的分析生成的,并且其中,该分析异构地表示第一机器人和输入数据之间的关联强度。方法1400包括操作1406,操作1406包括:访问与第二机器人和输入数据相关联的第二置信度分数,其中第二置信度分数是通过第二机器人对输入数据的分析生成的,并且其中,该分析异构地表示第二机器人与输入数据之间的关联强度。方法1400包括操作1408,操作1408包括:生成多个机器人的映射分数,所述映射分数至少包括与第一置信度分数相关联的第一映射分数和与第二置信度分数相关联的第二映射分数,其中所述映射分数是通过使用机器人分数映射器至少对所述第一置信度分数和所述第二置信度分数的分析生成的,以校准从所述多个机器人接收的异构的置信度分数。方法1400包括操作1410,操作1410包括:基于映射分数识别多个机器人中的所选机器人。方法1400包括操作1412,操作1412包括:使用所选机器人来促进双向通信会话。
在一些示例中,所选机器人在多个机器人生成的自生成置信度分数中不具有最高置信度分数,而所选机器人具有多个机器人的映射分数中的最高映射分数。在一些示例中,方法1400还可以包括当第一映射分数是映射分数中的最高值分数时将第一映射分数与机器人特定阈值进行比较,并且当第一映射分数低于机器人特定阈值时拒绝第一映射分数。
在一些示例中,方法1400还可以包括:接收对所选机器人的反馈数据,并基于反馈数据动态更新与用户输入数据和机器人分数映射器的所选机器人相关联的映射调整值。
在一些示例中,方法1400还可以包括:重复接收和与用户输入数据相关联的输入数据类型相关联的反馈,并基于该反馈动态更新与该用户输入数据和机器人分数映射器的所选机器人相关联的映射调整值,其中,所述映射调整值的最大调整是基于对所选机器人的映射调整值先前的多次调整来选择的,其中,所选机器人基于与所述用户输入数据的接收相关联的机器人分数映射器的实时反馈状态。
在一些示例中,方法1400还可以包括:基于反馈数据更新与用户输入数据和机器人分数映射器的所选机器人相关联的映射调整值,其中反馈数据是根据双向通信会话的元数据和双向对话数据自动生成的。
在一些示例中,方法1400还可以包括:基于反馈数据更新与用户输入数据和机器人分数映射器的所选机器人相关联的映射调整值,其中反馈数据是由参与双向通信会话的代理提供的手动反馈。
在一些示例中,方法1400还可以包括:接收拒绝所选机器人的代理输入,并基于不包括所选机器人的分数的映射分数选择第二所选机器人。一些示例可以在多个机器人包括一个或多个客户端机器人、一个或多个源机器人、和一个或多个外部机器人的情况下操作。
在一些示例中,方法1400还可以包括:发送一个或多个置信度分数请求,其中,当执行一个或多个机器人的服务器接收到该一个或多个置信度分数请求时,服务器生成一个或多个机器人的置信度分数,置信度分数包括第一置信度分数和第二置信度分数。
在一些示例中,方法1400还可以包括:使用设备的一个或多个处理器执行用于第一机器人和第二机器人的指令,并使用设备的该一个或多个处理器生成第一置信度分数和第二置信度分数。一些示例可以在用户输入数据是文本数据的情况下进行操作。
在一些示例中,对于许多不同的通信,可以同时执行方法1400的任何操作,使得方法1400的一个实例的操作可以与方法1400的另一实例的操作同时执行。如上所述,这样的示例允许针对不同的机器人标准(例如不同的意图值或客户问题值)使用不同的机器人分析和校准。不同的机器人校准可以包括单个设备或系统,该设备或系统针对一组标准执行机器人校准,同时针对不同的一组标准进行机器人校准。此外,本文所述的机器人校准和其他这样的操作可以与任何数量的通信会话同时发生,其中在系统正在促进任何数量的通信会话时,来自通信会话的数据和反馈被实时用于更新用于训练的数据集。
以上描述中给出了具体细节,以提供对实施方式的透彻理解。然而,应当理解,可以在没有这些具体细节的情况下实践实施方式。例如,电路可以示出为框图,以免在不必要的细节上使实施方式模糊不清。在其他情况下,可以示出公知的电路、进程、算法、结构和技术而没有不必要的细节,以避免使实施方式模糊不清。此外,一些示例可以通过重复或干预操作来操作,并且多个操作实例可以通过响应于实时反馈而进行的动态调整来发生,以更新机器人分数映射器的数据,从而改变对置信度分数的调整以及改变为促进双向通信而选择的资源(例如,机器人、文章、人工代理等)的选择。
可以通过各种方式实现上述技术、框、步骤和手段。例如,这些技术、框、步骤和手段可以用硬件、软件或其组合来实现。对于硬件实现,处理单元可以在一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、被设计用于执行上述功能的其它电子单元、和/或其组合中实现。
另外,应当注意,一部分实施方式可以被描述为过程,该过程被描绘为流程图、作业图、数据流图、结构图或框图。尽管流程图可以将操作描述为顺序过程,但是许多操作可以并行或同时执行。另外,可以重新安排操作的顺序。当一个过程的操作完成时,该过程将终止,但是可以具有未包含在附图中的附加步骤。过程可以对应于方法、函数、程序、子例程、子程序等。当过程对应于函数时,其终止对应于该函数返回到调用函数或主函数。
此外,实施方式可以通过硬件、软件、脚本语言、固件、中间件、微代码、硬件描述语言和/或其任意组合来实现。当以软件、固件、中间件、脚本语言和/或微代码实现时,用于执行必要任务的程序代码或代码段可以存储在诸如存储介质之类的机器可读介质中。代码段或机器可执行指令可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、脚本、类、或者指令、数据结构和/或程序语句的任何组合。一代码段可以通过传递和/或接收信息、数据、自变量、参数、和/或存储内容而与另一代码段或硬件电路关联。信息、自变量、参数、数据等可以通过包括存储器共享、消息传递、票据传递、网络传输等的任何适当手段来进行传递、转发或传输。
对于固件和/或软件实现,方法可以用执行本文所述功能的模块(例如,过程、函数等)来实现。任何有形地包含指令的机器可读介质都可以用于实现本文所描述的方法。例如,软件代码可以存储在存储器中。存储器可以在处理器内实现,也可以在处理器外部实现。如本文所使用的,术语“存储器”是指任何类型的长期、短期、易失性、非易失性存储介质或其他存储介质,并且不限于任何特定类型的存储器或特定数量的存储器,或存储存储器的介质类型。
此外,如本文所公开的,术语“存储介质”、“存储装置”或“存储器”可以表示用于存储数据的一个或多个存储器,包括只读存储器(ROM)、随机存取存储器(RAM)、磁性RAM、核心存储器、磁盘存储介质、光学存储介质、闪存设备和/或用于存储信息的其他机器可读介质。术语“机器可读介质”包括但不限于便携式或固定存储设备、光学存储设备、无线信道、和/或能够存储包含或携带指令和/或数据的各种其他存储介质。
尽管以上结合特定装置和方法描述了本发明的原理,但应清楚地理解,本描述仅作为示例而非对本发明的范围的限制。

Claims (30)

1.一种计算机实现的方法,包括:
接收输入数据作为双向通信会话的一部分,其中,所述双向通信会话与多个机器人相关联;
访问与第一机器人和所述输入数据相关联的第一置信度分数,其中,所述第一置信度分数是通过所述第一机器人对所述输入数据的第一分析生成的,并且其中,所述第一分析异构地表示所述第一机器人和所述输入数据之间的第一关联强度;
访问与第二机器人和所述输入数据相关联的第二置信度分数,其中,所述第二置信度分数是通过所述第二机器人对所述输入数据的第二分析生成的,并且其中,所述第二分析异构地表示所述第二机器人与所述输入数据之间的第二关联强度;
生成所述多个机器人的映射分数,所述映射分数至少包括与所述第一置信度分数相关联的第一映射分数和与所述第二置信度分数相关联的第二映射分数,其中,所述映射分数是通过使用机器人分数映射器至少对所述第一置信度分数和所述第二置信度分数的分析生成的,以校准从所述多个机器人接收的异构的置信度分数;
基于所述映射分数识别所述多个机器人中的所选机器人;以及
使用所述所选机器人来促进所述双向通信会话。
2.根据权利要求1所述的计算机实现的方法,
其中,所述所选机器人不具有所述多个机器人生成的自生成置信度分数中的最高置信度分数;以及
其中,所述所选机器人具有所述多个机器人的映射分数中的最高映射分数。
3.根据权利要求1所述的计算机实现的方法,还包括:
当所述第一映射分数是所述映射分数中的最高值分数时,将所述第一映射分数与机器人特定阈值进行比较;以及
当所述第一映射分数低于机器人特定阈值时,拒绝所述第一映射分数。
4.根据权利要求1所述的计算机实现的方法,还包括:
接收对所述所选机器人的反馈数据;以及
基于所述反馈数据动态更新与所述输入数据和所述机器人分数映射器的所述所选机器人相关联的映射调整值。
5.根据权利要求1所述的计算机实现的方法,还包括:
重复接收和与所述输入数据相关联的输入数据类型相关联的反馈;以及
基于所述反馈动态更新与所述输入数据和所述机器人分数映射器的所述所选机器人相关联的映射调整值,其中,所述映射调整值的最大调整是基于对所述所选机器人的映射调整值先前的多次调整来选择的;
其中,所述所选机器人基于与所述输入数据的接收相关联的所述机器人分数映射器的实时反馈状态。
6.根据权利要求1所述的计算机实现的方法,还包括:
基于反馈数据更新与所述输入数据和所述机器人分数映射器的所述所选机器人相关联的映射调整值,其中,所述反馈数据是根据所述双向通信会话的元数据和双向对话数据自动生成的。
7.根据权利要求1所述的计算机实现的方法,还包括:
基于反馈数据更新与所述输入数据和所述机器人分数映射器的所述所选机器人相关联的映射调整值,其中,所述反馈数据是由参与所述双向通信会话的代理提供的手动反馈。
8.根据权利要求1所述的计算机实现的方法,还包括:
接收拒绝所述所选机器人的代理输入;以及
基于不包括所述所选机器人的分数的所述映射分数选择第二所选机器人。
9.根据权利要求1所述的计算机实现的方法,其中,所述多个机器人包括一个或多个客户端机器人、一个或多个源机器人、和一个或多个外部机器人。
10.根据权利要求1所述的计算机实现的方法,还包括:
发送一个或多个置信度分数请求,其中,当执行一个或多个机器人的服务器接收到所述一个或多个置信度分数请求时,所述服务器生成所述一个或多个机器人的置信度分数,所述置信度分数包括所述第一置信度分数和所述第二置信度分数。
11.根据权利要求1所述的计算机实现的方法,还包括:
使用设备的一个或多个处理器执行用于所述第一机器人和所述第二机器人的指令;以及
使用所述设备的所述一个或多个处理器生成所述第一置信度分数和所述第二置信度分数。
12.根据权利要求1所述的计算机实现的方法,其中,所述输入数据是文本数据。
13.一种系统,包括:
存储器;以及
一个或多个处理器,所述一个或多个处理器联接到所述存储器,所述一个或多个处理器被配置为执行操作,所述操作包括:
接收输入数据作为双向通信会话的一部分,其中,所述双向通信会话与多个机器人相关联;
访问与第一机器人和所述输入数据相关联的第一置信度分数,其中,所述第一置信度分数是通过所述第一机器人对所述输入数据的第一分析生成的,并且其中,所述第一分析异构地表示所述第一机器人和所述输入数据之间的关联强度;
访问与第二机器人和所述输入数据相关联的第二置信度分数,其中,所述第二置信度分数是通过所述第二机器人对所述输入数据的第二分析生成的,并且其中,所述第二分析异构地表示所述第二机器人与所述输入数据之间的关联强度;
生成所述多个机器人的映射分数,所述映射分数至少包括与所述第一置信度分数相关联的第一映射分数和与所述第二置信度分数相关联的第二映射分数,其中,所述映射分数是通过使用机器人分数映射器至少对所述第一置信度分数和所述第二置信度分数的分析生成的,以校准从所述多个机器人接收的异构的置信度分数;
基于所述映射分数识别所述多个机器人中的所选机器人;以及
使用所述所选机器人来促进所述双向通信会话。
14.根据权利要求13所述的系统,
其中,所述所选机器人不具有所述多个机器人生成的自生成置信度分数中的最高置信度分数;以及
其中,所述所选机器人具有所述多个机器人的映射分数中的最高映射分数。
15.根据权利要求13所述的系统,还包括:
当所述第一映射分数是所述映射分数中的最高值分数时,将所述第一映射分数与机器人特定阈值进行比较;以及
当所述第一映射分数低于机器人特定阈值时,拒绝所述第一映射分数。
16.根据权利要求13所述的系统,还包括:
接收对所述所选机器人的反馈数据;以及
基于所述反馈数据动态更新与所述输入数据和所述机器人分数映射器的所述所选机器人相关联的映射调整值。
17.根据权利要求13所述的系统,还包括:
重复接收和与所述输入数据相关联的输入数据类型相关联的反馈;以及
基于所述反馈动态更新与所述输入数据和所述机器人分数映射器的所述所选机器人相关联的映射调整值,其中,所述映射调整值的最大调整是基于对所述所选机器人的映射调整值先前的多次调整来选择的;
其中,所述所选机器人基于与所述输入数据的接收相关联的所述机器人分数映射器的实时反馈状态。
18.根据权利要求13所述的系统,还包括:
基于反馈数据更新与所述输入数据和所述机器人分数映射器的所述所选机器人相关联的映射调整值,其中,所述反馈数据是根据所述双向通信会话的元数据和双向对话数据自动生成的。
19.根据权利要求13所述的系统,还包括:
基于反馈数据更新与所述输入数据和所述机器人分数映射器的所述所选机器人相关联的映射调整值,其中,所述反馈数据是由参与所述双向通信会话的代理提供的手动反馈。
20.根据权利要求13所述的系统,还包括:
接收拒绝所述所选机器人的代理输入;以及
基于不包括所述所选机器人的分数的所述映射分数选择第二所选机器人。
21.根据权利要求13所述的系统,其中,所述多个机器人包括一个或多个客户端机器人、一个或多个源机器人、和一个或多个外部机器人。
22.根据权利要求13所述的系统,还包括:
发送一个或多个置信度分数请求,其中,当执行一个或多个机器人的服务器接收到所述一个或多个置信度分数请求时,所述服务器生成所述一个或多个机器人的置信度分数,所述置信度分数包括所述第一置信度分数和所述第二置信度分数。
23.根据权利要求13所述的系统,还包括:
使用所述系统的一个或多个处理器执行用于所述第一机器人和所述第二机器人的指令;以及
使用所述系统的所述一个或多个处理器生成所述第一置信度分数和所述第二置信度分数。
24.根据权利要求13所述的系统,其中,所述输入数据是文本数据。
25.一种非暂时性计算机可读介质,包括指令,所述指令当由设备的一个或多个处理器执行时,使得所述设备执行操作,所述操作包括:
接收输入数据作为双向通信会话的一部分,其中,所述双向通信会话与多个机器人相关联;
访问与第一机器人和所述输入数据相关联的第一置信度分数,其中,所述第一置信度分数是通过所述第一机器人对所述输入数据的第一分析生成的,并且其中,所述第一分析异构地表示所述第一机器人和所述输入数据之间的关联强度;
访问与第二机器人和所述输入数据相关联的第二置信度分数,其中,所述第二置信度分数是通过所述第二机器人对所述输入数据的第二分析生成的,并且其中,所述第二分析异构地表示所述第二机器人与所述输入数据之间的关联强度;
生成所述多个机器人的映射分数,所述映射分数至少包括与所述第一置信度分数相关联的第一映射分数和与所述第二置信度分数相关联的第二映射分数,其中,所述映射分数是通过使用机器人分数映射器至少对所述第一置信度分数和所述第二置信度分数的分析生成的,以校准从所述多个机器人接收的异构的置信度分数;
基于所述映射分数识别所述多个机器人中的所选机器人;以及
使用所述所选机器人来促进所述双向通信会话。
26.根据权利要求25所述的非暂时性计算机可读介质,
其中,所述所选机器人不具有所述多个机器人生成的自生成置信度分数中的最高置信度分数;以及
其中,所述所选机器人具有所述多个机器人的映射分数中的最高映射分数。
27.根据权利要求25所述的非暂时性计算机可读介质,还包括:
当所述第一映射分数是所述映射分数中的最高值分数时,将所述第一映射分数与机器人特定阈值进行比较;以及
当所述第一映射分数低于机器人特定阈值时,拒绝所述第一映射分数。
28.根据权利要求25所述的非暂时性计算机可读介质,还包括:
接收对所述所选机器人的反馈数据;以及
基于所述反馈数据动态更新与所述输入数据和所述机器人分数映射器的所述所选机器人相关联的映射调整值。
29.根据权利要求25所述的非暂时性计算机可读介质,还包括:
重复接收和与所述输入数据相关联的输入数据类型相关联的反馈;以及
基于所述反馈动态更新与所述输入数据和所述机器人分数映射器的所述所选机器人相关联的映射调整值,其中,所述映射调整值的最大调整是基于对所述所选机器人的映射调整值先前的多次调整来选择的;
其中,所述所选机器人基于与所述输入数据的接收相关联的所述机器人分数映射器的实时反馈状态。
30.根据权利要求25所述的非暂时性计算机可读介质,还包括:
基于反馈数据更新与所述输入数据和所述机器人分数映射器的所述所选机器人相关联的映射调整值,其中,所述反馈数据是根据所述双向通信会话的元数据和双向对话数据自动生成的。
CN202180088181.6A 2020-12-29 2021-12-28 用于双向通信中的机器人选择校准的系统和方法 Pending CN116648894A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063131434P 2020-12-29 2020-12-29
US63/131,434 2020-12-29
PCT/US2021/065354 WO2022147019A1 (en) 2020-12-29 2021-12-28 Systems and methods for bot selection calibration in two-way communications

Publications (1)

Publication Number Publication Date
CN116648894A true CN116648894A (zh) 2023-08-25

Family

ID=79927319

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180088181.6A Pending CN116648894A (zh) 2020-12-29 2021-12-28 用于双向通信中的机器人选择校准的系统和方法

Country Status (8)

Country Link
US (2) US11489739B2 (zh)
EP (1) EP4272404A1 (zh)
JP (1) JP2024501052A (zh)
CN (1) CN116648894A (zh)
AU (1) AU2021413748A1 (zh)
CA (1) CA3200890A1 (zh)
IL (1) IL303539A (zh)
WO (1) WO2022147019A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3928478A1 (en) * 2019-02-22 2021-12-29 Liveperson, Inc. Dynamic text message processing implementing endpoint communication channel selection
JP2024501052A (ja) * 2020-12-29 2024-01-10 ライブパーソン, インコーポレイテッド 双方向通信におけるボット選択較正のためのシステムおよび方法
US11907232B2 (en) * 2021-01-12 2024-02-20 Adobe Inc. Facilitating efficient identification of relevant data
US11809171B2 (en) * 2021-08-05 2023-11-07 Bank Of America Corporation Virtual assistant factory computing platform
US11621928B2 (en) * 2021-08-25 2023-04-04 Kyndryl, Inc. Reducing toil in chat environments

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102047010B1 (ko) * 2017-12-21 2019-11-20 주식회사 카카오 중계 챗봇을 이용하여 인스턴트 메시징 서비스를 제공하는 서버, 단말 및 방법
US10832002B2 (en) 2018-05-08 2020-11-10 International Business Machines Corporation System and method for scoring performance of chatbots
US11288566B2 (en) * 2018-05-31 2022-03-29 International Business Machines Corporation Building a gossip group of domain-specific chatbots
US11012381B2 (en) * 2018-10-31 2021-05-18 Bryght Ai, Llc Computing performance scores of conversational artificial intelligence agents
US11657797B2 (en) * 2019-04-26 2023-05-23 Oracle International Corporation Routing for chatbots
US10951768B2 (en) 2019-05-03 2021-03-16 Genesys Telecommunications Laboratories, Inc. Measuring cognitive capabilities of automated resources and related management thereof in contact centers
US11663255B2 (en) * 2019-05-23 2023-05-30 International Business Machines Corporation Automatic collaboration between distinct responsive devices
JP2024501052A (ja) * 2020-12-29 2024-01-10 ライブパーソン, インコーポレイテッド 双方向通信におけるボット選択較正のためのシステムおよび方法

Also Published As

Publication number Publication date
IL303539A (en) 2023-08-01
AU2021413748A1 (en) 2023-07-06
WO2022147019A1 (en) 2022-07-07
EP4272404A1 (en) 2023-11-08
US20220210033A1 (en) 2022-06-30
CA3200890A1 (en) 2022-07-07
US20230129324A1 (en) 2023-04-27
US11489739B2 (en) 2022-11-01
JP2024501052A (ja) 2024-01-10

Similar Documents

Publication Publication Date Title
CN111713086B (zh) 用于改进的机器人任务处理的动态响应预测
CN113615135B (zh) 到不同端点的动态通信路由
CN114223185B (zh) 用于将消息收发转移到自动化的系统和方法
CN114051740B (zh) 用于外部系统集成的系统和方法
US11489739B2 (en) Systems and methods for bot selection calibration in two-way communications
AU2020328581B2 (en) Systems and methods for managing interaction invitations
US11888792B2 (en) Bot supervision

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination