CN114830614B - 用于双向通信系统的功能即服务云聊天机器人 - Google Patents

用于双向通信系统的功能即服务云聊天机器人 Download PDF

Info

Publication number
CN114830614B
CN114830614B CN202080086394.0A CN202080086394A CN114830614B CN 114830614 B CN114830614 B CN 114830614B CN 202080086394 A CN202080086394 A CN 202080086394A CN 114830614 B CN114830614 B CN 114830614B
Authority
CN
China
Prior art keywords
function
server
communication
cloud
communication session
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202080086394.0A
Other languages
English (en)
Other versions
CN114830614A (zh
Inventor
克里斯蒂安·图姆
R·瑞兹
A·吉尔克里斯特
A·罗塔鲁
S·派尔采尔
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
Priority claimed from PCT/US2020/064532 external-priority patent/WO2021119441A1/en
Publication of CN114830614A publication Critical patent/CN114830614A/zh
Application granted granted Critical
Publication of CN114830614B publication Critical patent/CN114830614B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明总体上涉及用于使用配置在功能即服务(FaaS)系统中的、无服务器的基于云的函数来促进双向通信会话的系统和方法。一个示例包括:访问被配置为基于事件执行响应的模板;促进与用户设备的双向通信会话;以及处理所述双向通信会话的数据以识别与所述模板相对应的事件触发。请求执行与所述事件触发相关联的无服务器的基于云的函数,以及将与所述事件触发相关联的所述无服务器的基于云的函数的一个或多个输出整合到所述双向通信会话中。

Description

用于双向通信系统的功能即服务云聊天机器人
相关申请的交叉引用
本申请要求于2019年12月13日提交的美国临时专利申请No.62/948,038的优先权权益,该美国临时专利申请的公开内容出于所有目的通过引用整体并入本文中。
技术领域
本发明总体上涉及双向通信,例如涉及呼叫中心的那些双向通信。更具体地,提供了部署与通信环境整合的无服务器功能即服务(FaaS)平台以提供无服务器的基于云的函数来促进或改进双向通信会话的技术。
背景技术
公司根据他们的品牌特定需求定制通用软件即服务(SaaS)平台。SaaS平台通常会产生定制特征和增强要求,其中许多与和公司自己的后端系统的整合有关。这些特征要求实现起来很复杂,需要大量时间在国内和国际获得,使得整个过程非常昂贵和缓慢,从而无法及时满足客户需求。
此外,过去的环境并不是专门为联络中心行业设计的。过去的环境与一组特定的用例或特定行业无关。现有环境的主要目标是为某些编程语言提供执行运行时间。例如,Amazon Lambda允许通过唯一的统一资源定位符(URL)部署JavaScript函数。例如,通过调用URL,从URL接收到的函数被执行,并且函数开发人员被收取执行时间的费用。
发明内容
术语实施方式和类似术语意图广泛地指代本发明和所附权利要求的所有主题。包含这些术语的表述不应当被理解为限制本文所描述的主题或者限制所附权利要求的含义或范围。本文涵盖的本发明的实施方式由所附权利要求限定,而不由本发明内容限定。本发明内容是本发明的各个方面的高度概括并且介绍了在以下具体实施方式部分进一步描述的一些概念。本发明内容不意图标识所要保护的主题的关键或本质特征,也不意图单独用于确定所要保护的主题的范围。应当通过参考本发明的整个说明书的合适部分、任一或所有附图以及每项权利要求来理解该主题。
本文描述的示例涉及“无服务器”计算。无服务器计算是云计算执行模型,其中云提供商运行服务器,而云提供商的用户在没有由用户管理的服务器的情况下操作(例如,用户由于依赖云提供商的服务器而是无服务器的)。无服务器计算允许对来自云提供商的机器资源进行动态管理。本文描述的示例为双向通信系统提供改进的无服务器操作。示例通过在动态管理的FaaS平台中结合事件管理和无服务器代码模板来改进双向通信系统和在此类系统中的设备的操作,该FaaS平台可以被访问以在双向通信会话中改进实时自动化和对代理的机器辅助。此外,与明确地基于在诸如互联网的广域网(WAN)上调用统一资源定位符(URL)的SaaS平台不同,本文描述的示例允许可以对应于双向通信会话中的事件的灵活调用,从而改进双向通信系统中设备和网络的操作。
例如,通信系统中的设备可以使用自然语言处理(NLP)来识别双向通信中的事件,然后可以调用来自FaaS系统的函数来辅助双向通信。不同的系统实现可以使用不同的意图分组和函数类别。例如,可以配置一个函数来解决用户的与医学相关的问题,并且可以配置另一个函数来为硬件设备提供用户支持。这样的系统可以另外具有进一步的专门函数。尽管医疗系统的通信系统可能针对事件触发具有不同的相关联函数,例如“安排预约”、“获取测试结果”和“重新开处方”,但是设备支持系统可以具有替选类别的函数,例如“获取操作说明”、“请求保修维修”、“与技术人员交谈”或“获取故障排除帮助”。当在双向通信会话中使用触发模板来识别时,这些事件中的每一个都可用于从基于云的FaaS系统调用无服务器函数。使用这种无服务器系统允许通信管理系统基于系统负载动态分配资源,系统负载可能随着时间的推移而发生巨大变化。此外,通过在FaaS系统中配置无服务器函数模板,可以在双向通信系统操作时通过更新基于云的模板来在FaaS云中更新可用函数,从而允许在准备好时通过云访问更新的函数,而不是处理系统内更新。
本发明的某些示例包括计算机实现的方法。该方法可以包括:访问被配置为基于事件执行响应的模板;促进与用户设备的双向通信会话;以及处理双向通信会话的数据以识别与模板相对应的事件触发。请求执行与事件触发相关联的无服务器的基于云的函数,并且将与事件触发相关联的无服务器的基于云的函数的一个或多个输出整合到双向通信会话中。
其他示例包括系统、设备、计算机可读介质以及本文描述的其他实现方式。在参考以下说明书、权利要求书和附图的基础上,前述内容连同其他特征和实施方式将变得更加明显。
附图说明
结合附图描述本发明:
图1A示出了根据本技术的一些方面的通信系统的示例实施方式;
图1B示出了根据本技术的一些方面的具有包括功能即服务(FaaS)方面的服务云的通信系统的示例实施方式;
图2示出了根据本技术的一些方面的通信系统的示例实施方式;
图3A、图3B和图3C示出了根据本技术的一些方面的包括连接管理系统的通信系统的示例实施方式;
图4示出了根据本技术的一些方面的连接组件的操作的协议栈映射的表示;
图5A示出了根据本技术的一些方面的通信系统的方面;
图5B示出了根据本技术的一些方面的通信系统的方面;
图6示出了根据本技术的一些方面的连接管理系统的示例实施方式;
图7示出了根据本技术的一些方面的部署FaaS机器人模板的对话的方面;
图8示出了根据本技术的一些方面的在FaaS系统中使用的函数的属性和配置的示例;
图9示出了根据本技术的一些方面的控制器机器人的示例;
图10示出了根据本技术的一些方面的函数模板创建的方面;
图11示出了根据本技术的方面的函数模板的编辑和创建的示例;
图12示出了根据本技术的方面的双向通信的方面;
图13示出了根据本技术的方面的函数部署和移除的方面;
图14示出了根据本技术的一些方面的方法实施方式的流程图;
图15示出了表示用于使用机器学习技术来增强本文描述的实施方式的网络环境的框图;
图16示出了根据本技术的一些实现方式的可以用于实现意图驱动的通信系统的方面的示例计算设备。
在附图中,相似的组件和/或特征可以具有相同的附图标记。此外,相同类型的各种组件可以通过在附图标记后加上破折号和第二标记来区分,第二标记在相似的组件之间进行区分。如果在说明书中仅使用了第一附图标记,则该描述适用于具有相同的第一附图标记的相似组件中的任一者,而与第二附图标记无关。
具体实施方式
随后的描述提供了示例,并且不意图限制本发明的范围、适用性或配置。相反,随后的示例的描述将向本领域技术人员提供用于实现示例的使能描述。应当理解,在不脱离如所附权利要求书所阐述的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
本文描述的示例涉及被配置为通过双向通信系统向用户提供信息的通信系统。这样的通信系统可以包括连接管理系统以将用户与代理配对,以使代理能够向用户提供信息。在一些示例中,代理可以是人类代理,具有人工智能(AI)代理、机器分析驱动系统或此类代理的任何组合。例如,此类系统可以使用自然语言处理(NLP)、自然语言分析(NLA)、神经网络、以及各种人工智能和机器学习工具来分析和改进通信系统。
如本文所述,此类工具可用于分析双向通信的方面以获得可用于从云服务调用函数的触发。这样的函数可以被构造为如本文所述的功能即服务(FaaS)系统的一部分。如上所述,通过使用无服务器的基于云的函数供应系统,可以改进双向通信系统和这种系统内的设备的操作。改进可以包括在动态管理的FaaS平台中结合事件管理和无服务器代码模板的函数改进,可以访问该FaaS平台以改进双向通信会话中的实时自动化和代理的机器辅助。所描述的FaaS结构可以改进对系统的动态供应,既提供了在FaaS系统操作期间可以实时更新和更改的各种函数,又允许在系统操作期间使用无服务器云供应来动态且实时地更新各个函数。此外,与明确基于在诸如互联网的广域网(WAN)上调用统一资源定位符(URL)的SaaS平台不同,本文描述的示例允许可对应于在双向通信会话中的事件的灵活调用,从而通过灵活通信选项改进双向通信系统中设备和网络的操作。各个方面可以具体地用于具有连接管理系统的通信系统中,以管理数量增加的用户和代理之间的连接、数量增加的机器或人工智能代理或人类代理的基于机器的辅助、以及通过双向通信提供的改进的性能和信息质量。
图1A示出了实现并支持本文中描述的特定实施方式和特征的通信系统100A的实施方式的框图。特别地,特定实施方式涉及在用户设备105(其可以由用户110操作)与终端设备115(其可以由代理120操作)和/或客户端设备130(其由客户端125操作)之间建立连接。连接管理系统150既可以帮助将用户设备105与终端设备115匹配,也可以帮助访问从服务云180调用的函数。
在一些实施方式中,用户110可以是浏览网站或访问由远程服务器140提供的在线服务的个人。在一些实施方式中,用户110可以是希望代表他们执行服务的个人。这样的服务可以包括回答问题、操作另一设备、从代理获得任务或服务的帮助、进行交易等。
客户端125可以是提供、操作或运行网站或在线服务的实体,或者是这种实体雇佣或由该实体分配以执行如本文中所描述的客户端125可用的任务的个人。
代理120可以是个人,例如支持代理或销售助理,其任务是向用户110提供有关网站或在线服务的支持或信息(例如,关于在线商店的可用产品的信息)。在大量代理中,代理的子集可能适合于为特定客户端125提供支持或信息。代理120可以与客户端125有关或无关。每个代理可以与一个或多个客户端125相关联。在一些非限制性示例中,用户110可以是从个人计算设备在在线商店购物的个人,客户端125可以是在线销售产品的公司,代理120可以是公司雇佣的销售助理。在各种实施方式中,用户110、客户端125和代理120可以是其他个人或实体。
尽管图1A仅示出了单个的用户设备105、终端设备115和客户端设备130,但是通信系统100A可以包括这些类型的设备中的一种设备或多种设备中的每一者的多个或许多(例如,数十个、数百个或数千个)。类似地,虽然图1A仅示出了单个用户110、代理120和客户端125,但是通信系统100A可以包括这种实体中的一者或多者中的每一者的多个或许多。因此,可能有必要确定要选择哪个终结点与给定的网络设备进行通信。另外使事情复杂化的是,远程服务器140也可以被配置为接收并响应以选择与用户设备105的通信。
连接管理系统150可以促进通信的战略路由。通信可以包括具有内容的消息(例如,基于来自实体的输入(诸如键入或口头输入)定义的消息)。该通信还可以包括:附加数据,例如关于发送设备的数据(例如,IP地址、账户标识符、设备类型和/或操作系统);目的地址;客户端的标识符;网页或网页元素(例如,在生成通信时或以其他方式与通信相关联的正在访问的网页或网页元素)的标识符或在线历史数据;时间(例如一天中的时间和/或日期);和/或目的地址。在通信中可以包括其他信息。在一些实施方式中,连接管理系统150将整个通信路由至另一设备。在一些实施方式中,连接管理系统150修改通信或生成新的通信(例如,基于初始通信)。新的或修改后的通信可以包括消息(或其经处理版本)、(例如,关于发送设备、网页或在线历史记录和/或时间的)附加数据的至少一些(或全部)和/或由连接管理系统150识别的其他数据(例如,与特定账户标识符或设备相关联的账户数据)。新的或修改后的通信也可以包括其他信息。
战略路由促进的一部分可以包括在用户设备105与一个或多个终端设备115之间建立、更新和使用一个或多个连接。例如,在从用户设备105接收到通信后,连接管理系统150可以估计通信对应于哪个客户端(如果有的话)。在识别客户端之后,连接管理系统150可以识别与该客户端相关联的用于与用户设备105进行通信的终端设备115。在一些实施方式中,该识别可以包括评估多个代理(或专家或代表)中的每一者的简介,多个代理中的每个代理(例如,代理120)与终端设备(例如,终端设备115)相关联。该评估可以涉及网络设备消息中的内容。终端设备115的识别可以包括例如在2010年3月17日提交的美国申请No.12/725,799中描述的技术,该美国申请出于所有目的通过引用整体并入本文。
在一些实施方式中,连接管理系统150可以确定在用户设备105和与客户端(或远程服务器140)相关联的终结点之间是否建立了任何连接,并且如果是,则确定是否要使用这种通道来交换包括所述通信在内的一系列通信。
在选择终结点来与用户设备105通信时,连接管理系统150可以在用户设备105和终结点之间建立连接。在一些实施方式中,连接管理系统150可以将消息发送到所选择的终结点。该消息可以请求接受所提议的与用户设备105进行通信的分配或者识别已经生成了这种分配。该消息可以包括关于用户设备105的信息(例如,IP地址、设备类型和/或操作系统)、关于相关联用户110的信息(例如,所说的语言、已经与客户端交互的持续时间、技能水平、情绪和/或主题偏好)、接收到的通信、用于生成通信并将其发送到用户设备105的代码(例如,可点击的超链接)、和/或用于生成通信并将其发送到用户设备105的指令。
在一些实施方式中,可以通过连接管理系统150来路由用户设备105与终结点(例如用户设备)之间的通信。这种配置可以允许连接管理系统150监控通信交换并检测问题(例如,如基于规则所定义的问题),例如任一设备的无响应或延长的延迟。此外,这种配置可以促进通信的选择性存储或完整存储,这可以稍后用于例如评估通信交换的质量和/或支持学习以更新或生成路由规则,从而促进特定的后通信目标。如本文将进一步描述的,这样的配置可以促进用户110与一个或多个终结点之间的对话的管理。
在一些实施方式中,连接管理系统150可以实时监控通信交换,并且基于实时通信执行自动化动作(例如,基于规则的动作、源自人工智能的动作等)。例如,当连接管理系统150确定通信与特定产品有关时,连接管理系统150可以自动向终结点发送包含关于该产品的附加信息(例如,库存产品的数量、到与该产品有关的支持文档的链接、或关于该产品或类似产品的其他信息)的附加消息。
在一些实施方式中,指定的终结点可以与用户设备105通信而无需通过连接管理系统150中继通信。设备105、115中的一者或两者可以(或者可以不)向连接管理系统150报告特定的通信度量或内容,以促进通信监控和/或数据存储。
连接管理系统150可以将选择的通信路由到远程服务器140,除了使用服务云180外,远程服务器140可以被配置为以预定方式提供信息。例如,服务云180提供的函数可以响应于与远程服务器140相关联的通信而访问定义的一个或多个待发送的文本段落、语音记录和/或文件。这种操作可以基于例如对接收到的通信的分析(例如,语义或映射分析)来选择特定的文本段落、记录或文件。本文描述的示例可以使用与远程服务器140协作的服务云中的FaaS系统的组合来促进或增强双向通信(例如,在用户设备105和终端设备115之间)。
可以基于至少部分地由一个或多个客户端设备130定义或由其提供的规则和/或数据来执行在连接管理系统150处执行的路由和/或其他确定或处理。例如,客户端设备130可以发送标识代理的优先级、终端设备类型、和/或主题/技能匹配度的通信。作为另一示例,客户端设备130可以标识一个或多个权重以应用于可能影响路由确定的各种变量(例如,语言兼容性、预测的响应时间、设备类型和能力、和/或终端设备负载平衡)。将理解的是,哪些终端设备和/或代理将与客户端相关联可以是动态的。来自客户端设备130和/或终端设备115的通信可以提供指示以下内容的信息:给定的终端设备和/或代理将作为与客户端相关联的一个终端设备和/或代理被添加或移除。例如,客户端设备130可以发送具有IP地址以及关于具有该地址的终端设备是要添加到列表中还是从该列表移除的指示的通信,该列表标识与客户端相关联的终端设备。
每个通信(例如,设备之间的通信、设备与连接管理系统150之间的通信、服务云180与连接管理系统150之间的通信等)可以在一个或多个网络170上进行。该一个或多个网络170中可以包括开放式或封闭式网络的任意组合。合适的网络的示例包括互联网、个人局域网、局域网(LAN)、广域网(WAN)或无线局域网(WLAN)。其他网络也可能适用。该一个或多个网络170可以完全并入内联网、外联网或其组合内,或者可以包括内联网、外联网或其组合。在一些实施方式中,该一个或多个网络170中的网络包括短程通信通道,诸如蓝牙或蓝牙低功耗通道。在一个实施方式中,可以通过诸如安全套接层(SSL)或传输层安全性(TLS)之类的安全通信协议来实现两个或更多个系统和/或设备之间的通信。此外,可以基于任何方便的、已知的或待开发的方式对数据和/或交易细节进行加密,这些方式例如但不限于数据加密标准(DES)、三重DES、Rivest-Shamir-Adleman加密(RSA)、Blowfish加密、高级加密标准(AES)、CAST-128、CAST-256、去相关快速密码(DFC)、微型加密算法(TEA)、eXtendedTEA(XTEA)、校正块TEA(XXTEA)和/或RC5等。
例如,用户设备105、终端设备115和/或客户端设备130可以包括便携式电子设备(例如,智能电话、平板电脑、便携式计算机或智能可穿戴设备)或非便携式电子设备(例如,一个或多个台式计算机、智能家电、服务器和/或处理器)。连接管理系统150可以与网络、终端、IOT(物联网)和客户端设备分开设置,或者可以是一个或多个这样的设备的一部分(例如,通过在设备上安装应用程序)。远程服务器140可以与每个设备和连接管理系统150分开设置,和/或可以是另一设备或系统的一部分。尽管图1A中的每个设备、服务器和系统被示为单个设备,但是应当理解,可以替代地使用多个设备。例如,可以使用一组网络设备来传输来自单个用户的各种通信,或者远程服务器140可以包括服务器堆栈。
软件代理或应用程序可以被安装在所描绘的设备、系统或服务器上和/或在所描绘的设备、系统或服务器上可执行。在一种情况中,软件代理或应用程序被配置为使得描绘的各个元素可以互补的方式起作用。例如,可以将设备上的软件代理配置为收集关于设备使用情况的数据并将其发送到单独的连接管理系统,并且可以将单独的连接管理系统上的软件应用程序配置为接收和处理该数据。
在不同的示例中,在用户设备105或终端设备115上操作的软件代理或应用程序可以识别用于从服务云180调用函数的触发作为FaaS系统操作的一部分。在其他示例中,连接管理系统150可以识别这样的触发。在另外的实施方式中,任何这种触发识别的组合可以发生在通信系统100A或100B中的任何地方以用于不同的函数调用。这种函数调用的具体细节将在下面更详细地描述。
图1B示出了根据本技术的一些方面的具有包括功能即服务(FaaS)方面的服务云的通信系统100B的示例实施方式。通信系统100B示出了如图1A中的通信系统100A所示的通信系统100的替选方面。图1B示出了根据一些示例的作为服务云180中的FaaS云190的功能即服务(FaaS)云系统的拓扑的示例。如图1B所示,在某些情况下,FaaS云190系统可以利用事件和实现为函数191-196的无服务器代码模板的组合来改进对话商务设置。
服务云180系统可以是无服务器环境,其可以允许品牌和公司定制对话商务平台以适应其对服务(例如,服务181、182、183、184、185、186)的特定业务需求,并且,根据本文描述的示例,适应其对函数(例如,函数191、192、193、194、195、196)的特定业务需求。如本文所述的服务云180内的FaaS云190系统可以为开发人员提供他们需要的工具来创新和快速增强对话体验。
FaaS云190平台可以代表由客户端125和客户端设备130表示的客户来实现函数191-196(例如,代码片段或模板)。函数191-196可以在定义的功能内执行,而无需为客户端125设置客户端服务器来承载这些函数。FaaS云190平台还可以在基于云的系统(例如,服务云180)内部署和执行定制代码,并且作为本文描述的双向通信系统的一部分完全整合到核心系统中。作为下文描述的被管理通信系统的一部分的FaaS云190系统可以有效地进行设备供应和更新,同时减少更新或部署机器人资源的时间和资源(例如,可以增强双向通信系统中的对话体验的特定对话生命周期事件的组合)或通信系统中的其他此类功能。
图2示出了另一个实施方式的通信系统200的框图。总体上,图2示出了被配置和布置为使网络设备205能够与一个或多个终端设备215通信的各种组件。所描绘的实例包括在三个局域网235中包括的九个终端设备215。
在一些实施方式中,来自网络设备205的通信包括目的数据(例如,目的IP地址),其至少部分或全部指示哪个终端设备将接收该通信。通信系统200可以包括可以处理目的数据并促进适当的路由的一个或多个网络间连接组件245和/或一个或多个网络内连接组件255。
每个网络间连接组件245可以连接到多个网络235,并且可以具有安装的多个网卡(例如,每个卡连接到不同的网络)。例如,网络间连接组件245可以连接到广域网270(例如,互联网)和一个或多个局域网235。在所描绘的实例中,为了将通信从网络设备205发送到任何终端设备,在所描绘的系统中,通信必须由多个网络间连接组件245来处理。
当网络间连接组件245接收到通信(或与该通信相对应的一组数据包)时,网络间连接组件245可以确定路由的至少一部分,以将该通信传递给与目的地相关联的网络。可以使用例如路由表(例如,存储在路由器处)来确定该路由,该路由表可以包括基于传入消息(例如,来自另一路由器或另一设备)生成的、或学习的一个或多个预先定义的路由。
网络间连接组件245的示例包括路由器260和网关265。网络间连接组件245(例如,网关265)可以被配置为在网络系统之间或协议之间转换。例如,网关265可以促进传输控制协议/互联网协议(TCP/IP)设备与互联网分组交换/序列分组交换(IPX/SPX)设备之间的通信。
在局域网235处接收到通信后,可能仍需要执行进一步的路由。可以通过诸如交换机280或集线器285之类的网络内连接组件255来执行这样的网络内路由。每个网络内连接组件255可以(例如,无线地或有线地,诸如通过以太网电缆)被连接至多个终端设备215。集线器285可以被配置为将所有接收到的通信重复到它所连接到的每个设备。每个终端设备然后可以评估每个通信以确定该终端设备是否是目的设备或者该通信是否将被忽略。交换机280可以被配置为选择性地将通信仅定向到目的终端设备。
在一些实施方式中,局域网235可以被划分成多个段,每个段可以与独立的防火墙、安全规则和网络协议相关联。可以在一个、多个或所有段中的每者中提供网络内连接组件255,以促进段内路由。桥接器290可以被配置为跨段275路由通信。
为了跨网络或在网络内适当地路由通信,各种组件分析通信中的目的数据。例如,这样的数据可以指示通信将被路由到哪个网络、通信将被路由到网络内的哪个设备、或者终端设备将要处理(和忽略)哪些通信。然而,在一些实施方式中,不能立即清楚哪个终端设备(或甚至哪个网络)要参与来自网络设备的通信。
为了说明,可以配置一组终端设备以便提供类似类型的响应通信。因此,可以预期,可以以类似的方式来响应来自网络设备的通信中的查询,而不管该通信被路由到哪个网络设备。虽然该假设在高水平上可能是正确的,但是与终端设备有关的各种细节可能导致特定的路由与其他路由相比是有利的。例如,所述集合中的终端设备关于(例如)以下可能彼此不同:支持哪些通信通道、与网络设备的地理和/或网络接近度、和/或相关联代理的特征(例如,知识库、经验、所说的语言、可用性、一般性格或情绪等)。因此,选择路由可以促进更快的响应,该更快的响应更准确地和/或完整地响应于网络设备通信。复杂的是,将网络设备映射至终端设备的静态路由可能无法解释通信主题、通道类型、代理可用性等的变化。
图3A、图3B、图3C示出了包括连接管理系统350(包括示例连接管理系统350A和350B)的通信系统300a、300b、300c的其他实施方式的框图。为了简单起见,所描绘的系统300a、300b、300c中的每一者仅示出了两个局域网235,然而可以理解的是,可以扩展实施方式以扩展局域网的数量。系统300a、300b、300c中的每一者都包括连接管理系统150,该连接管理系统150可以标识哪个终端设备要与网络设备205通信,可以建立和管理(例如,保持或关闭)连接,可以确定是否以及何时在交换中重新路由通信等。因此,连接管理系统150可以被配置为动态地并且实时地评估通信、代理可用性、终端设备或代理的能力等,以影响路由确定。
在图3A中,连接管理系统150与网络设备205和远程服务器340中的每一者相关联(例如,连接管理系统150a与网络设备205相关联,而连接管理系统150b与远程服务器340相关联)。例如,可以将连接管理系统150a和/或连接管理系统150b作为应用程序分别安装或存储在网络设备205和远程服务器340中的每一者上。(一个或多个)应用程序的执行例如可以促进网络设备205与远程服务器340之间的通信,以标识被选择参与与网络设备205的通信交换的终端设备215。可以基于一个或多个本文中公开的因素(例如,可用性、通信的主题/详细水平与代理或终端设备的知识库之间的匹配度、预测的延迟、通道类型可用性等等)来进行标识。
客户端设备330可以提供客户端数据,该客户端数据指示将如何进行路由确定。例如,这种数据可以包括:关于特定特征如何被加权或匹配的指示或约束或偏差(例如,与负载平衡或预测的响应延迟有关)。客户端数据还可以包括与何时建立(或关闭)通信通道或者何时将通信重新路由至不同的网络设备有关的规范。客户端数据可用于定义各种客户端特定的规则,例如用于通信路由的规则等。
在远程服务器340上运行的连接管理系统150b可以监控与终端设备有关(例如,与给定的客户端有关)的各种度量,例如支持哪些通信通道、与网络设备的地理和/或网络接近度、与终端设备的通信延迟和/或稳定性、终端设备的类型、终端设备的能力、终端设备(或代理)是否在先已经与给定的网络设备(或用户)通信、和/或与代理相关联的特征(例如,知识库、经验、所说的语言、可用性、一般性格或情绪等)。因此,可以使通信管理系统150b能够选择路由以促进更快的响应,该更快的响应基于度量更准确地和/或完整地响应于网络设备通信。
在图3A所描绘的示例中,网络设备205和远程服务器340之间的通信交换可以促进目的地址的更早识别。然后,网络设备205可以使用该目的地址来定向后续通信。例如,网络设备205可以向远程服务器340发送初始通信(例如,通过一个或多个网络间连接和广域网),并且远程服务器340可以识别一个或多个相应的客户端。然后,远程服务器340可以识别与所述一个或多个相应的客户端相关联的一组终端设备,并收集针对那些终端设备的度量。可以(例如,通过远程服务器340)评估这些度量以便选择参与通信交换的终端设备,并且可以将与该终端设备有关的信息(例如,IP地址)发送至网络设备205。在一些实施方式中,远程服务器340可以连续地或周期性地收集和评估针对各种终端设备的度量并将评估结果存储在数据存储器中。在这种实施方式中,在识别与所述一个或多个相应的客户端相关联的一组终端设备时,远程服务器340可以从数据存储器访问存储的评估结果,并且基于存储的评估结果选择终端设备来参与通信交换。
在图3B中,连接管理系统150可以被配置为用作中继和/或目的地址。因此,例如,一组网络设备205可以发送通信,每个通信将连接管理系统150标识为目的地。连接管理系统150可以接收各个通信,并且可以同时监控一组终端设备(例如,以便生成针对每个终端设备的度量)。基于监控和规则,连接管理系统150可以识别其可以将各个通信中继到的终端设备215。根据该实施方式,终端设备通信可以类似地定向到一致的目的地(例如,连接管理系统150的目的地),以用于进一步中继,或者终端设备可以开始直接与相应的网络设备通信。这些实施方式可以促进有效路由和全面的通信监控。
图3C中描绘的实施方式类似于图3B中的实施方式。然而,在一些实施方式中,连接管理系统150直接连接至网络内组件(例如,终端设备、网络内连接或其他)。
应该理解,图3A-图3C的许多变型是预期的。例如,连接管理系统150可以与连接组件(例如,网络间连接组件245或网络内连接组件255)相关联,使得对应于连接管理系统150(或其一部分)的应用程序安装在该组件上。例如,可以独立地执行应用程序或通过与类似或补充的一个或多个应用程序(例如,在一个或多个其他组件、网络设备或远程服务器上执行的应用程序)通信来执行应用程序。
图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、404、406中发生的传输错误。会话层410可以发起、维持和终止本地应用程序和远程应用程序之间的连接。会话可以用作远程过程交互的一部分。表示层412可以基于已知由应用程序或网络层接受的数据类型来加密、解密和格式化数据。
应用层414可以与控制或管理通信的软件应用程序进行交互。通过这样的应用程序,应用层414可以(例如)识别目的地、本地资源状态或可用性和/或通信内容或格式化。各个层402、404、406、408、410、412、414可以执行可用并适用的其他功能。
网络内连接组件422被示出在物理层402中操作,网络内连接组件424被示出在链路层404中操作。更具体地,集线器可以在物理层中操作,使得可以关于通信的接收和发送来控制操作。由于集线器缺乏寻址通信或过滤数据的能力,因此集线器几乎没有能力在更高水平操作。同时,交换机可以在链路层404中操作,因为交换机能够基于地址(例如,MAC地址)过滤通信帧。
同时,网络间连接组件426、428被示出在更高层(例如,层406、408、410、412、414)上操作。例如,路由器可以基于地址(例如,IP地址)过滤通信数据包。路由器可以根据地址将数据包转发至特定端口,以便将数据包定向至适当的网络。网关可以在网络层及其以上操作,执行类似的过滤和定向以及数据的进一步转换(例如,跨协议或架构)。
在各种实施方式中,连接管理系统450可以与各个层中的一个、多个、全部或任何层进行交互和/或在各个层中的一个、多个、全部或任何层上操作。例如,连接管理系统450可以与集线器交互,以便动态地调整集线器与哪些终端设备通信。作为另一示例,连接管理系统450可以与桥接器、交换机、路由器或网关进行通信,以便影响该组件选择哪个终端设备作为目的地址(例如,MAC、逻辑或物理地址)。作为另外的示例,连接管理系统450可以监控、控制或定向传输层408上的数据包的分段、会话层410上的会话持续时间、和/或表示层412上的加密和/或压缩。在一些实施方式中,连接管理系统450可以通过与在特定层上操作的设备(例如,在链路层404上操作的交换机)进行交换通信(例如,发送命令至该设备)、通过以特定的方式路由或修改现有通信(例如,在网络设备和终端设备之间的通信)、和/或通过基于现有通信生成包含特定信息(例如,新目的地址)的新通信来与各个层进行交互。因此,连接管理系统450可以通过与各种设备的交互和/或通过影响在各种协议栈层处的操作来影响通信路由和通道建立(或维持或终止)。
图5A示出了根据本技术的一些方面的通信系统的方面。图5A示出了用户设备105、连接管理系统150、客户端设备130和服务云180(以及服务云180内的FaaS云190)之间的操作和通信。图5A示出了根据本文针对单个客户端设备描述的示例并且具有列出的各个元素的用于通过FaaS云调用和使用函数的操作和通信。使用一个或多个连接管理系统和服务云结构的任何结构或组合,可以使用附加示例来为任何数量的客户端和用户设备提供类似的功能。
图5A的示例示出了连接管理系统150和客户端设备130为操作502交换通信503以配置模板和触发。连接管理系统150然后交换通信513作为操作512的一部分以供应FaaS系统。这样的操作和通信可以包括服务质量、可用操作、模板以及用于访问和更新系统中的模板或函数的命令的构建、或者本文描述的任何其他这样的操作。在FaaS供应操作512完成之后,服务云180被配置为接受FaaS调用通信(例如,FaaS请求操作528)并提供函数输出,或执行任何其他此类触发动作作为本文所述的FaaS系统的一部分。图5A描述了通过连接管理系统150在服务云180中实现FaaS功能的客户端设备130。在其他示例中,客户端设备130可以直接与服务云180或FaaS云190的接口交互以允许客户端业务更新函数操作、或者通过通信系统直接或通过任何中间步骤(例如,通过连接管理系统150或其他这样的中间系统)影响客户端服务的功能的任何方面。
在完成向服务云180供应FaaS设置之后,用户设备105参与由连接管理系统150管理的双向通信。双向通信可以是与代理系统(例如,终端设备115)或由连接管理系统150管理的任何其他设备的通信。双向通信开始于操作522以发起双向通信,操作522开始于(一个或多个)通信523。双向通信可以由用户设备105发起,例如,当用户在商家(例如,与客户端设备130相关联的商家)的销售网站中选择双向通信接口时发起。双向通信也可以由连接管理系统150发起,例如,通过使用与商家管理的客户端设备130相关联的销售线索进行自动连接请求来发起。
然后,如果发起方和目标方都同意双向通信会话,则双向通信系统继续进行通信会话的操作524和526以及相关联的通信527。在通信会话操作526期间的某个时间点,操作528识别操作528中的触发。触发可以在用户设备105或连接管理系统150处识别。触发是在操作502和512中在服务云180中配置和供应的触发。一旦识别到触发,就使用FaaS请求操作530调用相关联函数,操作530包括通信531中的请求通信。服务云180内的FaaS云接收请求并在操作532中执行相关联函数。如本文所述,执行的函数可以作为通信531的一部分与请求一起发送,也可以预先与标识符一起构建在服务云180中,其中通信531识别预先提供的函数。
不管如何提供函数的细节,在操作534中从服务云180生成函数输出。来自操作534的函数输出数据在通信535中被发送到连接管理系统150,并作为FaaS输出数据在操作536中进行管理。这样的信息可以包括关于与触发相关联的响应的细节、自动化工具数据、或被配置用于双向通信并且与给定触发相关联的任何其他这样的信息。在操作536中接收到的数据利用通信541整合到操作538中的双向通信会话中,并且用于促进通信会话的各个方面。该促进可以包括提供信息、提供机器接口工具、协助将双向通信的一方转移到更合适的对方(例如,不同的客户端或客户端的不同定制机器人)、或本文所描述的任何其他此类促进,以改善用户体验和与通信系统的接口。触发和输出数据响应可以在双向通信中重复任意次数。此外,通信系统可以包括大量用户设备与终端之间(例如,用户与代理之间)的许多双向通信,其中,每个会话使用针对具有不同触发集合的不同客户端(例如,商家服务提供商)系统定制的触发。
图5B示出了根据本技术的一些方面的通信系统的方面。图5B示出了与图5A相同的系统的操作的附加示例,其中FaaS服务预先已被配置(例如,由客户端设备130配置),并且终端设备115被示出为参与使用双向通信系统进行的与用户设备105的双向通信的调用和相关联的促进,该双向通信系统包括连接管理系统150和服务云180(以及FaaS云190)。
图5B示出了由连接管理系统管理的用户设备105和终端设备115之间的双向通信。双向通信会话开始于在用户设备105和终端设备115之间建立通信会话的操作552和通信553。在会话发起时,双向通信也可以与如在会话开始之前供应的定制的触发和函数集合相关联,该定制的触发和函数集合与特定客户端相关联。当会话通过客户端(例如,商家)网站发起时,或作为针对特定客户端并使用客户端的专用触发集合发起销售线索的连接管理系统150的一部分时,可以识别特定的触发集合。
一旦通信会话被建立并且通过通信557继续操作554,连接管理系统150就在操作556中识别与触发相关联的通信会话的细节。如本文所述,触发可以来自双向通信会话中的文本(例如,如图7和下面的相关描述所示),或者来自系统的其他此类操作。例如,在一些实现方式中,与特定商家相关联的连接发起可以在用户设备105和任何终端设备115之间的任何通信发生之前触发一个或多个函数。在图5B的示例中,利用在通信559中发送的FaaS请求操作558来调用函数。服务云180然后在操作560中开始执行函数,该函数可以通过双向通信会话继续以实时执行,其中在通信559和561中发送的任意数量的附加数据集和函数输出。连接管理系统150在操作562中接收输出并基于输出在操作564中采取动作,这可以导致通信565,其促进作为操作566和/或554的一部分的通信会话。例如,操作556中的触发可以调用专门的辅助机器(例如,机器人),该辅助机器被配置为针对特定的专门主题执行自然语言处理,并且提供对针对特定主题或商家类别定制的对用户输入的响应。机器人可以通过服务云180实时执行,其中云资源被供应给机器人用于特定的双向通信,直到双向通信会话在操作570和通信571和573中终止。当通信会话终止时,连接管理系统150执行操作572以在通信573中向服务云180发送信号以在操作572中结束函数的执行。在上面的机器人示例中,被供应以为定制主题提供实时专门自然语言处理的资源将被终止。然后可以将资源返回到云资源池以供其他操作使用。使用相同机器人的未来通信将调用服务云180中机器人函数的新实例,并为新实例提供资源。
图6示出了连接管理系统600的实施方式的框图。在一些示例中,连接管理系统600可以用作连接管理系统150或任何其他这样的连接管理系统。消息接收器接口605可以接收消息。在一些实施方式中,例如,可以接收消息作为由源设备(例如,与连接管理系统150分开设置或在同一外壳内)发送的通信的一部分,所述源设备例如网络设备或终结点。在一些实施方式中,该通信可以是一系列通信的一部分或通信交换的一部分,该一系列通信或通信交换可以包括正在两个设备(例如,网络设备和终结点)之间路由的一系列消息或通信交换。该消息或通信交换可以是设备之间的交互的一部分和/或可以定义设备之间的交互。通信通道或操作通道可以包括用于促进设备之间的路由和通信交换的一个或多个协议(例如,路由协议、任务分配协议和/或寻址协议)。
在一些实施方式中,消息可以包括基于在用户界面处接收的输入而生成的消息。例如,消息可以包括基于按钮或按键或记录的语音信号或语音转文本软件生成的消息。在一种情况中,消息包括自动生成的消息,例如在检测到网络设备正在呈现特定的应用程序页面或网页,或者已经提供特定输入命令(例如,键序列)时生成的消息。该消息可以包括指令或请求,例如用于发起通信交换的指令或请求。
在一些实施方式中,消息可以是自然语言通信,无论是口头的还是键入的。如本文所使用的,自然语言通信是指用于在人类之间进行通信的语言的普通使用,并且与使用由与特定虚拟助手或人工智能工具进行通信所需的协议定义的语言形成对比。自然语言通信不应要求诸如以下的约束:使用唤醒词来提醒人工智能工具通信是针对人工智能的。此外,自然语言通信不应要求用户识别特定关键字、特定短语或明确命名服务以了解如何为通信提供服务。在一些实施方式中,自然语言可以包括表情符号和其他形式的现代通信。
虽然本技术利用自然语言通信,但该通信可以识别特定关键字、特定短语或明确命名服务。例如,消息可以包括客户端的标识符或与客户端的标识符相关联。例如,消息可以明确地标识客户端(或与客户端相关联的设备);消息可以包括与客户端相关联的网页或应用,或和与客户端相关联的网页或应用相关联;消息可以包括与客户端相关联的目的地址,或和与客户端相关联的目的地址相关联;或者消息可以包括与客户端相关联的项目(例如,产品)或服务(例如,被客户端要约出售的、已被客户端出售的或客户端所服务的)的标识,或和与上述项目(例如,产品)或服务的标识相关联。为了说明,网络设备可以呈现特定客户端的应用页面,该应用页面可以提供将通信发送至代理的选项。在接收到与消息相对应的用户输入时,可以生成包含该消息和特定客户端的标识符的通信。
处理引擎610可以处理所接收的通信和/或消息。处理可以包括例如提取特定的一个或多个数据元素(例如,消息、客户端标识符、网络设备标识符、账户标识符等)。处理可以包括转换格式或通信类型(例如,以与特定设备类型、操作系统、通信通道类型、协议和/或网络兼容)。
客户端设备或系统操作者可以使用模板选择引擎614来识别或修改要在通信系统中使用的触发模板或函数模板。处理引擎610可以与模板选择引擎一起工作来利用使用模板选择引擎614选择的模板配置系统。处理可以包括将选择的模板推送到连接管理系统、终端设备或用户设备以供在检查作为双向通信会话的一部分的函数触发时使用。该过程还可以包括将函数推送到任何此类设备,或者如果函数被存储在云系统中,则将函数推送到云并且将标识符推送到触发设备(例如,以允许诸如终端设备的触发设备来识别当调用通信被发送到FaaS云时要使用的函数)。
触发管理引擎615可以评估(例如,提取的或接收的)消息。该消息可以从消息数据存储器620访问,该消息数据存储器620管理由接口605接收并由触发管理引擎615评估的消息。评估可以包括识别例如该消息的一个或多个触发。触发的示例可以包括(例如)指示特定主题、情绪、复杂性和紧急性的文本。主题可以包括但不限于话题、产品、服务、技术问题、使用问题、投诉、退款请求或购买请求等。在一些示例中,例如,可以基于对消息的语义分析(例如,通过识别关键字、句子结构、重复的词、标点符号和/或非冠词)、用户输入(例如,已经选择了一个或多个类别)、和/或与消息相关联的统计数据(例如,键入速度和/或响应延迟)来确定触发。触发管理引擎615的方面可以使用机器学习来生成和修改用于将来自用户的传入通信(例如文本)与意图类别相关联的系统。例如,机器学习模型可以使用传入通信中单词和短语之间的先前数据和关联结果以及来自当前和历史通信的自然语言数据来生成和更新单词和意图类别之间的关联。学习可以通过监督学习与构建的数据集和历史数据的任意组合、基于系统中当前路由路径的预期或预测模型的无监督学习和系统使用目标来完成。任何此类数据都可用于自然语言处理操作(例如自然语言理解、自然语言推理等),以生成自然语言数据或更新机器学习模型。然后,客户端系统可以使用此类数据或与运行在网络设备或服务器上的应用程序共享这些数据,以改进动态消息处理(例如,改进意图指示符数据结果或响应消息生成)。在一些示例中,卷积神经网络可以与传入单词和短语的集合以及输出意图类别一起使用。这样的神经网络可以通过输入单词和短语进行训练,并输出与意图类别的相关性。然后,实时系统操作可以使用这种神经网络的实例来生成有关传入用户通信和用户通信中的单词与系统中的意图类别之间的关联的数据。基于这种神经网络的输出,可以将意图类别分配给通信中涉及的用户或用户账户,并且可以分配相关联的动作。在一些实现方式中,可以利用来自使用的实时动态反馈来修改神经网络设置以改变用户通信中的单词与基于这些单词选择的意图类别和动作之间的关联。这些选择可以是概率性的,因此人工智能和机器学习系统可以通过整合用户反馈和使用数据来自动跟踪用户预期的改变,以提高系统性能。例如,当用户被引导到特定意图类别或子类别的终结点动作时,用户可以提供指示用户正在寻找不同的动作的反馈通信。这可以用作系统中的实时反馈,以改变与未来意图类别分配相关联的概率和注释。
在一些实施方式中,触发可以调用用于通过使用户110参与可以包括澄清问题或简单地请求附加信息的对话来澄清用户意图的函数。这样的函数可以具有专门针对被调用函数并基于相关联细节专门化以将函数与双向通信的意图匹配的相关联的附加触发。因此这样的示例可以包括条件触发,使得调用的函数可以与仅作为函数操作的一部分活动的条件触发相关联,并且当函数终止时(例如,通过路由双向通信),相关联的触发不再活动。如上所述,各种机器学习和人工智能系统可用于生成和更新系统以响应用户。例如,在某些系统中,每个意图类别和子类别可以具有不同的相关联卷积神经网络。在一些示例中,响应于处理来自用户的单词而采取的动作是将意图类别和用于该意图类别的神经网络和与用户的通信相关联,并且使用分配的神经网络来处理用户通信。如本文所述,可以在对话过程(例如,用户和系统之间的多次来回通信)中使用多个不同的神经网络,并且用于此类通信的数据可以用于机器学习操作以更新神经网络或用于与用户的未来交互和操作的其他系统,以将意图类别和动作与来自用户通信的单词相关联。用户的使用数据可用于调整神经网络中的权重,以改进意图类别分配并跟踪用户意图趋势的变化(例如,与基于初始用户通信的分配意图相比,在与系统的用户对话结束时确定的最终用户意图结果)。意图管理引擎615生成的数据可以与相关联的消息数据一起存储在消息数据存储器620中,并且该数据可以用于各种更新,包括管理用于连续实时分析更新或对系统的其他动态反馈和修改的数据,如本文所述。
交互管理引擎625可以确定将通信路由至哪个终结点以及接收设备和发送设备将如何通信。这些确定中的每一者可以取决于例如特定的网络设备(或与特定用户相关联的任何网络设备)是否先前已与一组终结点中的终结点(例如,与连接管理系统150相关联的任何终结点、或与一个或多个特定客户端相关联的任何终结点)进行通信。在一些示例中,交互管理引擎625作为动作被调用,以基于意图、触发、或分配给用户通信并用于将特定触发与双向通信会话的子部分(例如,某些触发适用于会话的一部分但不适用于其他部分)相关联的函数类别将用户通信路由到不同终结点。此类示例可以涉及对在与用户的对话期间正在使用的终结点(例如特定代理或AI机器人资源)进行更新,其中触发仅与会话相关联,直到到达终结点。
在一些实施方式中,当网络设备(或与同一用户或账户相关联的其他网络设备)先前已经与给定终结点进行通信(例如,与特定代理或AI系统关于与特定主题或系统客户或业务相关的事项进行通信)时,通信路由通常可偏向于该同一终结点。可影响路由的其他因素可以包括:例如,与先前通信有关的推断或识别的用户或代理情绪;当前通信的主题(例如,以及与先前通信的主题和/或与一个或多个终结点相关联的知识库相关的程度);终结点是否可用;和/或终结点的预测的响应延迟。这些因素可以绝对地或相对于与其他终结点相对应的类似度量来考虑。重新路由规则(例如,特定于客户端的或一般的规则)可以指示如何评估和加权这些因素以确定是否放弃代理一致性。就像上面的意图类别分配一样,人工智能分析可用于确定系统中的重新路由规则。例如,当机器学习系统处理的历史数据识别出某些类型的用户通信和某些重新路由操作之间没有相关性时,可以中断这种重新路由操作。相比之下,当此类机器学习分析识别出与重新路由规则相关的积极结果时,可以强调或加强此类规则,以优先考虑重新路由(例如,将附加系统专用于重新路由,在代理分配中优先考虑重新路由选项等)。在一些示例中,触发可以由如上所述的机器学习系统标记或标识为与成功的终结点路由相关联。
关于确定设备将如何通信,交互管理引擎625可以(例如)确定终结点是否通过(例如)电子邮件、网上聊天、SMS消息、语音呼叫、视频聊天等来响应通信。可以基于例如以下项来选择通信类型:通信类型优先级列表(例如,至少部分地由客户端或用户来定义);先前从网络设备接收的通信的类型(例如,以便促进一致性)、接收的消息的复杂性、网络设备的能力、和/或一个或多个终结点的可用性。显然,一些通信类型将导致实时通信(例如,期望快速消息响应的情况),而其他通信类型可能导致异步通信(例如,消息之间的延迟(例如,几分钟或几小时)是可接受的情况)。
在一些实施方式中,通信类型可以是文本消息收发或聊天应用程序。这些通信技术的好处是无需在用户的网络设备上下载和执行新软件。在一些示例中,通信类型可以是语音通信类型。在这样的示例中,语音转文本系统可以用于将语音通信处理成单词以由本文描述的示例系统分析。在一些示例中,系统分析的单词可以包括由音频数据表示的单词。因此,如本文所述,单词可以由存储在存储器中的符号的组合表示(例如美国信息交换标准代码(ASCII)数据)或可以由音频数据表示(例如表示声音组合的数据)。
交互管理引擎625可以在各种上下文中与账户引擎630交互。例如,账户引擎630可以在账户数据存储器635中查找网络设备或终结点的标识符,以识别与该设备相对应的账户。此外,账户引擎630可以维持关于先前通信交换的数据(例如,时间、涉及的(一个或多个)其他设备、通道类型、问题解决阶段、(一个或多个)主题和/或相关联的客户端标识符)、通信通道(例如,对于一个或多个客户端中的每个客户端,指示:是否有任何通道存在、与每个通道相关联的终结点、建立时间、使用频率、上次使用的日期、任何通道约束和/或支持的通信类型)、用户或代理偏好或约束(例如,关于终端设备选择、响应延迟、终端设备一致性、代理专业知识、和/或通信类型偏好或约束)、和/或用户或代理特征(例如,年龄、所说的或优选的(一种或多种)语言、地理位置、兴趣等)。
此外,交互管理引擎625可以向账户引擎630提醒各种连接通道(connection-channel)动作,使得可以更新账户数据存储器635以反映当前通道数据。例如,在建立通道时,交互管理引擎625可以通知账户引擎630该建立,并且标识网络设备、终结点、账户和客户端中的一者或多者。账户引擎630可以随后通知用户该通道的存在,使得该用户可以意识到代理一致性是可用的。
交互管理引擎625还可以与客户端映射引擎640交互,客户端映射引擎640可以将通信映射至一个或多个客户端(和/或相关联的品牌(brand))。在一些实施方式中,从网络设备本身接收的通信包括对应于客户端的标识符(例如,客户端、产品、服务、网页或应用页面的标识符)。该标识符可以作为(例如,客户端映射引擎640可以检测的)消息的一部分而被包含或作为包含消息的通信中的其他数据而被包含。然后,客户端映射引擎640可以在客户端数据存储器645中查找该标识符,以检索关于客户端和/或客户端的标识符的附加数据。
在一些实施方式中,消息可以不特别对应于任何客户端。例如,消息可以包括一般查询。客户端映射引擎640可以例如对消息执行语义分析、识别一个或多个关键字并且标识与(一个或多个)关键字相关联的一个或多个客户端。在一些实施方式中,标识出单个客户端。在一些实施方式中,标识出多个客户端。然后可以通过网络设备呈现每个客户端的标识,使得用户可以选择要与之(例如,通过相关联的终结点)通信的客户端。
客户端数据存储器645可以包括与客户端相关联的一个或多个终结点(和/或代理)的标识。终端路由引擎650可以检索或收集与一个、多个或所有的这种终结点(和/或代理)中的每一者有关的数据,以便影响路由确定。例如,终端路由引擎650可以维持终结点数据存储器655,终结点数据存储器655可以存储诸如终结点的设备类型、操作系统、通信类型(communication-type)能力、安装的应用程序附件、地理位置和/或标识符(例如,IP地址)的信息。信息还可以包括代理信息,例如经验水平、职位、技能水平、知识库(例如,代理所了解的主题和/或各种主题的了解水平)、性格度量、工作时间、所说的(一种或多种)语言和/或人口统计信息。某些信息可以动态地更新。例如,基于(例如)来自终结点的通信(例如,标识该设备是否处于睡眠状态、是否关闭/开启、空闲/活动,或标识是否在一段时间内已接收到输入)、通信路由(例如,指示终结点是否参与通信交换的一部分或被分配为通信交换的一部分)、或者来自网络设备或终结点的指示通信交换已经结束或开始的通信,可以动态地更新指示终结点是否可用的信息。
应当理解,在各种上下文中,参与一个或多个通信交换不一定表示终结点不可用于参与另一通信交换。诸如通信类型(例如,文本、消息、电子邮件、聊天、电话)、客户端标识的或用户标识的目标响应时间、和/或(例如,一般的或关于用户的)系统负载的各种因素可能影响终结点可参与多少交换。
当交互管理引擎625已经识别了参与通信交换或连接的终结点时,交互管理引擎625可以通知终端路由引擎650,终端路由引擎650可以从终结点数据存储器655检索关于该终结点的任何相关数据,诸如目的地址(例如IP地址)、设备类型、协议等。然后,处理引擎610可以修改该包含消息的通信或者生成新的通信(包含消息)以便具有特定的格式、遵守特定的协议等。在一些实施方式中,新的或修改后的消息可以包括附加数据,例如对应于网络设备的账户数据、消息记录和/或客户端数据。
然后,消息发送器接口660可以将该通信发送至终结点。该发送可以包括例如到容纳在单独外壳内的设备的有线或无线发送。终结点可以包括与连接管理系统150在相同或不同网络(例如,局域网)中的终结点。因此,将通信发送至终结点可以包括将通信发送至网络间连接组件或网络内连接组件。
图7示出了根据本技术的一些方面的部署FaaS机器人702模板的对话的方面。FaaS系统可以从标准消息收发事件中调用FaaS函数。例如,可以选择一个新的对话开始事件作为触发来调用函数。图7示出了包括标题710、文本712、FaaS触发714和文本716的通信。FaaS触发714可以是作为与触发模板匹配的通信的一部分的特定文本集。当接收到通信时,将一组触发模板与文本进行比较以识别FaaS触发714。如上所述,该一组触发模板可以包括用于系统的所有客户端的触发,或者可以由客户端定制。在一些示例中,客户端设备可以访问系统,以在系统操作时动态实时地更新该一组模板,或者修改或改变各个模板。当更新发生时,服务云中的现有函数执行(例如,云180中的操作560)可以继续运行旧函数,而一旦更新完成,服务云中的新调用就将使用更新后的函数。如果函数触发调用发送到服务云的通信(例如,使用执行函数的代码),则对调用函数的用户设备或终端设备的更新将类似地允许对用户设备和终端设备上的系统进行此类动态实时更新。
图7的示例描述了从消息文本中识别触发,但是可以使用任何其他这样的触发,包括标题710的细节,或者如本文描述的系统中的通信的任何其他这样的可识别元素。
当FaaS触发714如上所述被识别时,识别FaaS触发714的设备通过发起用于函数访问722的通信720来调用相应的函数。与调用一起,可以在通信720中将函数和包含与新对话相关的元数据的有效载荷发送到FaaS系统。在其他示例中,函数或函数模板可以预先配置在FaaS系统(例如,FaaS云190)中,并且简单地通过由触发发起的调用通信来识别。在任何这样的示例中,有效载荷然后可以在由FaaS系统(例如,FaaS云190)在函数执行以及任何进一步处理和引用中执行的函数中使用。FaaS系统可以支持各种编程语言,例如JavaScript、Python、结构化查询语言、PHP、Ruby、C、C++、C Sharp、Visual Basic、Java、Objective-C、Perl、或任何其他适合预期目的并且为本领域普通技术人员所理解的编程语言。函数的结果或输出在通信724中返回,并可用于促进或影响文本716,以生成要作为双向通信会话的一部分进行传送的新文本或数据,或采取任何其他动作来促进改进通信系统的操作。
FaaS系统可以响应于FaaS平台中的事件来执行具有定制逻辑的定制函数。事件一直在发生,并且可以包括诸如“对话开始”、“对话调查已提交”、“代理登录/退出平台”的事件、以及可以引发适合预期目的并被本领域的普通技术人员所理解的触发的任何其他事件。这些事件可以配置为定制的以定义定制逻辑。开发人员可以进一步准备和编写简单和复杂的函数来进一步改进对话体验。通过点击按钮,可以部署基于云的平台,例如LivePerson Cloud或其他云服务。FaaS系统还可以支持服务器供应、安全性、部署和扩展,以支持开发人员和公司实施代码模板以获得更好的对话体验。
FaaS系统可以在构成系统的组件的实现中包括各种元素。例如,“事件网关”可以允许平台事件用作触发,以在消息收发对话中发生感兴趣的事情(例如,对话变得空闲、参与者加入/离开等)时调用函数。事件网关可以允许外部开发人员通过附加代码更轻松地连接和扩展FaaS平台。
FaaS环境可以使用户和开发人员能够在处于对话商务环境中的同时在联络中心上下文中组合事件触发和编码模板。FaaS平台可以提供面向联络中心行业的事件类型。例如,当消费者在工作时间开始的对话中编写消息时,可以触发“非工作时间消息收发线”,但与此同时联络中心已切换到非工作时间。在FaaS平台上,可以触发JavaScript函数来响应上述提到的事件。其他无服务器提供商无法对类似事件提供这种响应。FaaS平台可以提供各种模板来响应特定于联络中心行业的任何给定数量的事件。
本文描述的FaaS系统和方法不仅为其无服务器环境提供联络中心特定事件,FaaS系统还可以为任何适合于预期目的并为本领域的普通技术人员所理解的行业的事件提供工作代码模板。如果函数开发人员选择“非工作时间消息收发线”事件,则FaaS平台可以提供一个随时可用的代码模板,该模板可在收到时进行配置。这样的示例使函数开发人员能够利用现有基础设施,通过减少生成模板所花费的时间来改进相关联计算设备的操作。还产生了改进的设备功能,以便函数开发人员还可以定制模板以满足他们的需求并为事件提供额外的响应。
具有两个可能的(互斥)关联元数据片段的触发事件的一个示例是触发1.消息收发对话以元数据A.代理关闭对话或B.消费者关闭对话结束。具有两个(不互斥)相关元数据的片段的触发事件的另一个示例是触发2.消息收发对话由于元数据选项A.代理无响应和/或B.消费者无响应而空闲。如上所述,触发可以被识别为双向对话的一部分、或通过连接管理系统或系统的任何其他部分中的系统事件来识别,并用于调用FaaS系统处的函数。与FaaS系统的通信可以识别先前在FaaS系统中配置的函数,或者可以包括要由为FaaS操作配置的服务云的无服务器资源执行的函数。通信还可以包括可由FaaS系统使用的元数据(例如,指示对话结束事件是由消费者关闭双向通信触发的)。在其他示例中,上述附加信息是模板的一部分,以用于识别单独但相关的触发,因此上述1.A.将是与1.B.消费者关闭对话的情况具有代理关闭对话的不同关联函数的不同触发。在这样的示例中,由调用通信标识或包括在调用通信中的函数对于不同的触发将是不同的。单独的触发(例如,双触发)示例与前面的示例形成对比,在前面的示例中,单个触发(例如,消息对话结束)具有不同的元数据选项。触发示例的附加非详尽列表包括以下触发:3.消息收发对话路由;4.非工作时间消息收发线;5.消息收发新对话;6.消息收发参与者更改;7.消息收发响应时间(TTR);和8.聊天后调查电子邮件记录(CSAT规则)。
上述触发中的每一者或任何其他这样的触发可以具有任何数量的标识响应于该触发而使用的关联信息或关联函数的关联元数据片段。其他示例可以包括此类触发的不同变型。例如,触发6(例如,参与者更改)可以识别不同类别的参与者,基于新旧参与者的组合以及相关联的参与者类别具有不同的触发。
在一些示例中,系统可以配置有用于函数调用的消息收发事件(例如,基于没有关联的双向通信数据的消息收发事件或其他此类消息收发事件的触发)。在一些这样的示例中,FaaS平台可以覆盖某些消息收发事件。以下“对话状态更改事件”是可用于触发函数执行的示例:
9.新对话
A.如果消费者创建了新对话,则可以执行此事件;
10.TTR改变
A.消费者可以通过将对话标记为紧急或反之来触发事件;
B.代理可以通过改变TTR来触发事件;
11.参与者更改
A.如果有人加入或离开对话,则可以执行此事件;
12.对话空闲
A.如果消费者或代理在配置的空闲超时内没有应答,则可以执行此事件;
13.对话路由
A.如果对话被路由到不同的技能,则可以执行此事件;
14.非工作时间消息收发线
A.如果在办公时间打开对话并且在非工作时间在对话中编写了新的消费者线(例如,非工作时间消息),则可以执行此事件;
15.对话结束
A.该事件可以在对话关闭后执行。
通过覆盖这些事件,部署的函数可以被功能调用和处理。如果函数的结果中没有设置系统消息,则可以触发默认的自动消息。
FaaS平台可以具有对调用者执行回调命令的选项。对于对话事件调用,调用函数的服务可以是控制器机器人。该服务还可以负责将系统消息发送到对话中。使用控制器机器人作为调用者,FaaS平台可以使用控制器机器人执行以下回调命令:
16.发送系统消息
17.将对话转移到不同的技能
18.关闭对话
FaaS平台还可以具有不执行回调命令的选项。如果用户或开发人员只想使用控制器机器人的调用能力来触发函数,则这可能是相关的。
FaaS平台还可以向响应添加多个命令。结果可以是数组或单个对象。如果每种类型添加了多于一个的命令(例如,2个系统消息),则只能处理该类型的第一个命令。
回调的示例可以包括:
let result=
[{type:"systemMessage",//Returns a system message into theconversation
text:"your message"},
{type:"transfer",//Transfers the conversation to a new skillskillId:"123456"
},{type:"closeConversation"//Closes the conversation}]
callback(null,result)
如上所述,FaaS消息收发,例如图5A和5B的利用服务云(和相关联的FaaS云190)的通信,可以包括有效载荷。例如,可以在每个消息收发“XXX”模板函数中包含有效载荷。通过FaaS平台(例如,FaaS云190),用户可以更快地实施定制特征请求,并以加快的时间表推出模板,从而提高生产力。此外,FaaS平台可以授权品牌开发人员使用FaaS来实现自己的特征请求。这对于没有专门的专业服务的中小型客户/品牌很有吸引力。
FaaS平台可以使公司能够在平台上拥有他们自己的工程师并开发定制特征,这些特征可以响应于FaaS平台中的某些事件而被触发。扩展可以由第三方公司进一步编写,并通过单击按钮来部署到LivePerson云。
图8示出了根据一些示例的函数的属性和配置的示例。图8示出了函数模板800。FaaS平台(例如,服务云180中的FaaS云190)可以提供一组不同的函数模板和更不适合对话生命周期的更高级别的事件类型。函数模板800是可以用作一组函数模板的一部分的函数模板的一个示例。函数模板的其他示例可以包括其他结构。图8的示例函数模板800包括标题810、函数名称820、位置830、控制设置840和触发850。
标题810可用于组织函数模板。例如,所示出的标题810的运行时间/函数/管理可以是用于组织函数模板集合的嵌套结构,其中函数模板800是集合中的许多函数模板之一。在其他示例中,可以使用其他这样的组织结构。
名称820可用于标识特定函数模板。在图8的示例中,“Hello SMS(你好SMS)”是函数模板800的标识名称。类似地,位置830可以标识用于实现与函数模板相关联的函数的数据或代码的路径信息。例如,所示出的位置830的安全超文本传输协议(HTTPS)可以与用于函数模板800的指令的存储空间相关联。在一些示例中,在代码存储在FaaS云中的情况下,位置830可以是FaaS云中的位置。在其他示例中,位置830可以是可以被访问并用于将函数代码发送到FaaS云的任何其他存储位置。控制设置840和触发850是用于在通信系统中使用函数模板800的配置设置。控制设置840可用于管理使用函数模板800的安全性或操作控制。(一个或多个)触发850可标识当函数模板800被实现为通信系统的一部分时要使用的任何触发。例如,函数模板800可以具有多个触发,包括用于来电语音呼叫的触发和用于传入文本消息的单独触发。如上所述,当在系统中(例如,在用户设备105、CMS 150或客户端设备130中)使用函数模板800时,可以处理动作和通信并与触发进行比较。当触发与动作或通信匹配时,通过调用FaaS云中的代码,或者通过访问该函数的代码并将其发送到FaaS云来在FaaS云中调用该函数(例如,使用位置830),以在FaaS云上执行。
图9示出了根据一些示例的控制器机器人900的示例。如上详细所述,在一些示例中,诸如函数模板800的函数模板可以在FaaS系统中使用以允许对系统进行函数的实时添加和修改,以及允许通过内部系统源和独立第三方源添加修改函数。例如,在一些实现方式中,客户端(例如,商家系统)可以在实时操作期间向系统添加用于与客户端相关联的通信的函数,而无需关闭系统以进行更新。可以通过使用“控制器机器人”将此类函数添加到系统中,以获取函数模板并在通信系统中实现函数模板,以管理将从FaaS云调用相关联函数的触发。FaaS系统和方法的示例可以包括如下所述的实现方式:
1.设置控制器机器人
如果设置了控制器机器人,则用户可以直接进入“启用FaaS”
1.1.提升LPA(LPAdmin访问)
A.点击服务器命令
B.滚动到LPAdmin访问,在第二栏中选择可以运行账户的正确服务器
C.在第三栏中在站点(site)=后输入账号(例如,site=le63413568)
D.按照显示的步骤
1.2.启用控制器机器人
A.由于LPA升高,此步骤可以在步骤1.1之后执行
B.在导航中选择控制器机器人
C.点击启用账户
D.选择选项卡配置->CONFIGURATION CHECK(配置检查)并点击ENABLE ALL(启用全部)
一旦在系统中启用控制器机器人,则控制器机器人将分析系统中的新动作,以检查控制器机器人实现的相关联函数模板中的触发。当触发被识别时,函数路径(例如,位置830)用于促进在服务云(例如,服务云180)的FaaS云(例如,FaaS云190)部分中执行函数的代码。
图10示出了根据一些示例的用于创建新函数的用户界面1000的示例。FaaS平台用户界面可以使用“Messaging(消息收发)xxx”模板创建新函数。FaaS平台用户可以是通信系统的系统管理员(例如,与CMS 150相关联),或者是通信系统的客户或商家。可以为每种模板类型生成一个或多个函数。如果有多种类型的功能源自同一个事件调用,则可以将这些功能编码到同一个lambda中。一旦生成并存储了新函数,关联模板的核心信息,包括关联标题(例如,标题810)、名称(例如,名称820)和存储位置(例如,位置830)可用于函数模板中包括的函数。在一些示例中,可以在多个不同的函数模板中使用相同的函数,不同的函数模板具有不同的控制设置和/或不同的触发。
图11示出了根据一些示例的用于编辑或创建函数(例如图10的新函数)的用户界面1100的示例。函数实现可以包括根据需要通过修改函数来调整来自模板的编码。用户界面允许从存储在系统中的可用函数中搜索函数。例如,可以通过标题中的组织结构、名称、现有函数模板中的触发或控制设置或任何其他此类用途来搜索函数。在一些示例中,系统可以将使用信息存储在数据库中,既用于机器学习,也用于作为函数编辑的一部分进行搜索。例如,通信系统可以存储调用函数的频率,可以是绝对值(例如,每天的调用次数),也可以是给定时间段内系统中通信的百分比(例如,与商家A相关联的通信的50%在过去一个月中调用了函数XYZ)。此类函数使用数据可用于搜索和分类可用函数,以及提供本文所述的机器学习或AI反馈。
图12示出了根据一些示例的对话的示例用户界面1200。在左侧,示出了与对话相关联的数据1210。在右侧,示出了有效载荷数据1220的示例(例如,侧边栏显示了有效载荷)。有效载荷数据可以包括关于对话的信息,或任何其他这样的信息。结果可以是单个命令或命令数组。在模板代码中,显示了当前可用的命令。
图13示出了根据一些示例的用于部署和移除函数的示例用户界面1300。示出了部署函数的示例,并且可以通过点击MORE(更多)和部署(Deploy)功能在FaaS平台上部署新函数。函数成功部署后,已部署的函数可以被控制器机器人在相应事件中调用。
所公开的单入口双功能系统可以使用计算系统来执行。示例计算系统可以包括处理器(例如,中央处理单元)、存储器、非易失性存储器和接口设备。存储器可以存储数据和/或一个或多个代码集、软件、脚本等。计算机系统的组件可以通过总线或通过一些其他已知或方便的设备联接在一起。处理器可以被配置为例如通过执行例如存储在存储器中的代码来执行本文描述的所有或部分方法。用户设备或计算机、提供商服务器或系统、或暂停的数据库更新系统中的一者或多者可以包括计算系统或这种系统的变型的组件。
上述用户界面通过在通信系统内实现如本文所述的函数的有效动态部署来改进双向通信系统中的计算设备的操作。这样的通信系统可以被构造成为许多不同的客户端管理数千种类型的通信,每种通信都有不同的通信目标和功能。通过在所描述的界面中整合、创建、搜索、编辑和部署控件,可以在此类通信系统中有效管理机器人、触发和函数,同时使用FaaS云来限制本地资源并使用按需计算资源来用于具有许多(例如,数十、数百、数千或更多)函数以及在通信系统中操作的相关联触发的复杂环境。
在一些示例中,这样的用户界面可以体现在包括显示屏的计算设备中,该计算设备被配置为在屏幕上显示根据以上示例的界面。这样的用户界面可以包括在屏幕上显示与函数、函数模板、机器人控制器或上述示例的任何这样的方面相关联的数据的概要。数据的概要可用于直接访问函数指令以允许修改函数以对通信系统进行动态和实时更新。这样的用户界面可以另外包括用于生成函数、模板、机器人控制器、或与函数相关联的其他这样的元素、以及用于使通信系统被动态更新以使用该函数的数据。另外,上述任何其他这样的界面可以被实现为这样的实施方式的一部分。
图14示出了根据本技术的一些方面的方法实施方式的流程图。所描述的方法描述了分析意图的实施方式。在一些示例中,方法1400由计算设备执行。在一些示例中,方法1400被体现为当由设备的一个或多个处理器执行时使设备执行方法1400的操作的指令。
方法1400包括用于访问被配置为基于事件执行响应的模板的步骤1402。如上所述,模板可以是类似于函数模板800的模板,其函数由位置(例如,位置830)和系统可以使用的任何其他相关联数据标识。在一些示例中,访问用于启动控制器机器人,该控制器机器人由设备实现以分析通信系统中的数据或动作,从而将函数模板的触发与通信系统内的发生事件相匹配。
方法1400包括用于促进与用户设备的双向通信会话的步骤1404。当用户以与商家或其他通信系统客户端相关联的意图发起通信时,可以发生这种双向通信会话。这样的意图可以是进行购买、识别信息、安排预约、获得技术支持、或任何其他这样的意图。双向通信可以包括文本通信、音频通信、任何其他类型的通信、或任何此类通信的任何组合。
方法1400包括用于处理双向通信会话的数据以识别与模板相对应的事件触发的步骤1406。例如,如上所述,通信内的控制器机器人或其他机构可以分析系统内的事件(例如,通信的元素或系统中支持通信的动作)以获得与步骤1402的模板相关联的触发。
方法1400包括请求执行与事件触发相关联的无服务器的基于云的函数的步骤1408。这种无服务器的基于云的函数可能涉及执行先前存储在FaaS云中或随请求发送到FaaS云的函数的指令。FaaS云执行指令并生成可用于增强双向通信会话的一个或多个输出。
方法1400包括用于将与事件触发相关联的无服务器的基于云的函数的一个或多个输出整合到双向通信会话中的步骤1410。基于FaaS云的输出的增强可以包括改进通信的实质、改进通信系统的操作、识别要包含在通信中的新代理或节点、生成要在通信中使用的数据或描述通信的数据(例如,用于以后的分析或机器学习)、或用于任何其他此类目的。方法1400允许通过利用无服务器的基于云的资源来使用许多函数或复杂函数以有效地改进通信系统操作。相比之下,基于服务器的系统要么限制可用函数以防止将资源过度许可给通信系统,要么在使用资源来提供与所描述的无服务器的基于云的结构可以实现的函数相同的函数方面效率低下。
一些这样的示例可以通过基于双向通信会话的终止来终止无服务器的基于云的函数的执行来进一步操作。类似地,一些示例还可以通过处理双向通信会话的数据以识别对应于无服务器的基于云的函数的函数终止触发,并基于该函数终止触发终止无服务器的基于云的函数来操作。正如上述无服务器的基于云的系统提供增强的函数可用性一样,通过在不需要该函数时终止函数执行来避免系统效率低下,从而允许将基于云的资源重新分配给其他函数或其他用途。
在一些示例中,方法1400可以在请求无服务器的基于云的函数包括发送与无服务器的基于云的函数相关联的代码的情况下操作,其中当在无服务器的提供商处接收到代码时,无服务器的提供商执行代码以生成无服务器的基于云的函数的一个或多个输出。在其他示例中,请求与事件触发相关联的无服务器的基于云的函数还包括发送请求,其中当在功能即服务平台处接收到请求时,功能即服务平台生成一个或多个输出。在另外的示例中,可以响应于这样的请求采取其他动作。
在方法1400的一些示例中,模板包括与双向通信会话和与代理相关联的终端设备相关联的联络中心的联络中心数据。
在其他示例中,方法1400还包括接收与客户端系统相关联的配置设置,该配置设置选择包括所述模板在内的一个或多个模板和对应于所述一个或多个模板的一个或多个事件触发,并自动将所述一个或多个模板与和客户端系统相关联的双向通信会话关联。
任何这样的示例还可以包括促进用户设备和与代理相关联的终端设备的连接,其中事件触发是指示从自动化代理切换到人工代理的通信数据,并且其中一个或多个输出指示代理和终端设备。上述任何这样的示例还可以包括重复的步骤或中间步骤。因此方法1400描述了一个示例以及上面明确包括的变型,但是根据本文包括的各种示例和描述也可以设想其他方法。
此外,在各种实现方式中,上述系统可以与AI和机器学习元素整合。此类元素可以实时动态且持续更新(例如,在给定资源限制的情况下进行处理),以改善系统性能和系统用途。这样的示例通过提供有关系统性能的信息并允许识别系统中的错误或改进来改进通信系统的操作。这些元素还通过响应于识别FaaS系统中的函数使用来促进添加的功能和动作的更新,并基于AI或机器学习系统识别的模式动态选择函数模板和资源分配,来进一步改进通信系统的操作。此外,上述AI和机器学习系统提供了对设备性能的改进,该改进超出了仅来自FaaS系统操作的所述改进。这种进一步的改进包括提高响应性能和减少函数被低效调用或FaaS系统的无服务器的云资源被低效分配而浪费的处理资源。所描述的对函数资源的动态分配以及函数选择方面的改进提高了所涉及的计算设备的效率,节省了电力和系统资源,同时代表系统客户端向用户提供了通信和处理实用性。
虽然上面描述了各种步骤,但显然可以重复某些步骤,并且也可以执行中间步骤。另外,系统中的不同设备会执行相应的步骤,各种设备可以同时执行多个步骤。例如,设备可以执行这样的步骤以将请求同时路由到多个代理,其中多个不同代理的设备执行相应的操作,并且代理设备与用户设备进行通信。
图15示出了表示用于使用机器学习技术进行函数选择(例如,FaaS云系统中的触发和函数之间的关联)的网络环境1500的框图。网络环境1500可以包括网络设备1505(由用户操作)、通信服务器1510、FaaS云1515(例如,服务云180中的FaaS云190)和终端设备1520。通信服务器1510可以促进在网络设备1505和终端设备1520之间的双向通信中使用来自FaaS 1515的至少一个函数。
通信服务器1510可以包括智能选择系统1525、消息推荐系统1530和消息数据存储器1535。智能选择系统1525和消息推荐系统1530中的每一者可以包括具有处理器和存储器的执行指令以实现某些操作的一个或多个计算设备。在一些实现方式中,智能选择系统1525可以是被配置为管理来自在双向通信期间选择的函数的重复反馈数据的机器人。反馈可用于确定在先前的双向通信中选择和使用的(一个或多个)函数是否是给定触发的最佳函数,或者给定触发的不同选择的函数是否可以提供改进的结果。作为这种反馈操作的一部分,上述系统中的触发可以动态更新,使得给定触发的函数在任何时间都基于直到该时间的反馈结果,并且当随着时间的推移接收到附加反馈时可以改变或改进所选择的函数。作为对管理和使用这种反馈的分析的一部分,在一些实施方式中,智能选择系统1525可以管理A/B测试,其中多个函数与触发相关联,并且为传入的触发请求随机分配不同的函数。源自此A/B测试的结果数据可以确定哪个函数提供了更好的结果。例如,触发可以与输入文本“日历”相关联。在一个基本示例中,来自FaaS云1515的单个关联函数可以提供与网络设备1505相关联的预先安排的预约列表。随着时间的推移接收到的反馈可以导致来自FaaS云1515的初始函数变为预约创建函数。A/B示例可以基于“日历”触发将不同的(一个或多个)网络设备1505随机分配给日程报告函数或预约创建函数,然后在系统中选择提供更好结果的函数。如果网络设备偏好随时间的推移而发生变化,则可以建立阈值以重复A/B测试,或使用其他附加函数或多个不同函数(例如,单个测试中的A/B/C或更多函数)自动启动测试。用于自动重新评估函数和触发之间的关联的此类标准可以是,例如,如果用户(例如,(一个或多个)网络设备1505的用户)提供低于某个水平的反馈分数,或者如果在收到“日历”触发后超过时间的阈值百分比识别出提供不同函数的双向通信。
智能选择系统1525可以包括被配置为执行代码的一个或多个处理器,该代码使一种或多种机器学习技术或人工智能技术智能地选择触发输入和函数之间的关联。如上所述,触发可以从文本(例如,使用自然语言处理等)或系统采取的动作(例如,双向通信的发起、某些路由路径或系统负载的识别、重复的与单个网络设备1505的双向通信等)识别。在一些实现方式中,智能选择系统1525可以执行一种或多种机器学习技术来训练预测从网络设备1505接收到的消息是否可以被FaaS云1515中的给定函数成功地寻址的模型。
作为另一个非限制性示例,智能选择系统1525可以通过由通信服务器1510建立或促进的通信通道(例如,被配置为使用户能够通过各种设备相互通信的本机应用程序)从网络设备1505接收消息。智能选择系统1525可以根据上述某些实施方式评估传入消息。例如,智能选择系统1525可以使用经训练的机器学习模型来评估包括在接收到的消息中的内容(例如,文本、音频片段、图像、表情符号、或其他合适的内容)。可以将消息的内容输入到机器学习模型中以生成预测函数(例如,特定终端设备或机器人)或验证预测函数是否和当前与内容触发相关联的函数相同。机器学习模型可以基于从网络设备1505接收的反馈信号1540被持续训练。在一些实现方式中,智能选择系统1525可以请求来自网络设备1505的对预测函数的确认。作为非限制性示例,智能选择系统1525可以使用机器学习技术来评估消息,并且评估的结果可以包括路由或重新路由双向通信的函数(例如,预测FaaS 1515中的特定函数或机器人与消息相关联)。为了确认,智能选择系统1525可以自动请求反馈信号1540。例如,反馈信号1540可以包括请求网络设备1505确认识别的函数是否与消息正确关联(例如,“技术支持是正确的目的吗?”)。如果网络设备1505发送确认,则智能选择系统1525可以训练机器学习模型来在接收到的消息将与所选函数相关联时预测未来消息包括相同或相似的内容(例如,相似性的阈值,例如10%的内容差异)。然而,如果智能选择系统1525接收到指示所识别的智能选择系统1525存在问题的反馈信号1540,则可以训练机器学习模型使具有给定触发的未来消息与FaaS云1515的不同函数或机器人相关联。在一些实现方式中,智能选择系统1525可以不立即更新或训练机器学习模型,而是智能选择系统1525可以在进行更新之前等待阈值数量的不正确函数或阈值反馈集合。
消息数据存储器1535可以存储过去从一个或多个网络设备接收的一些(例如,但不是所有)或所有消息。此外,消息数据存储器1535还可以存储在与网络设备的先前通信会话期间由终端设备或机器人发送的一些或所有消息。消息数据存储器1535还可以存储在通信会话期间由网络设备发送给机器人的一些或所有消息。此外,消息数据存储器1535可以存储在通信会话期间由机器人发送到网络设备的一些或所有消息。在一些实现方式中,消息数据存储器1535可以是通信服务器1510处理的(例如,发送或接收的)所有消息的数据库。
消息推荐系统1530可以分析存储在消息数据存储器1535处的消息的数据库。在一些实现方式中,消息推荐系统1530可以使用一种或多种机器学习算法或人工智能算法来评估存储在消息数据存储器1535处的消息。例如,消息推荐系统1530可以对存储在消息数据存储器1535中的消息数据库执行一种或多种聚类算法,例如K均值聚类、均值漂移聚类、具有噪声的基于密度的应用空间聚类(DBSCAN)聚类、使用高斯混合模型(GMM)的期望最大化(EM)聚类、和其他合适的机器学习算法。在一些实现方式中,循环神经网络(RNN)或卷积神经网络(CNN)可用于预测响应消息以协助代理。在一些实现方式中,消息推荐系统1530可以使用支持向量机(SVM),监督、半监督的集成技术或无监督机器学习技术来评估所有先前的消息以预测对在通信会话期间从网络设备接收的传入消息的响应。在一些这样的示例中,消息推荐系统可以自动生成新的触发和相关联的函数。例如,消息推荐系统1530可以评估从网络设备接收的消息(或在通信服务器1510处从机器人或终端设备接收的消息)的内容,并将评估结果与存储在消息数据存储器1535中的先前消息或双向通信会话的消息集合以及在这些会话期间使用的函数的一个或多个集群进行比较。一旦识别出集群,则消息推荐系统1530可以识别与给定触发最相关的响应或函数。这样的系统可以自动使用来自手动(例如,基于代理的)函数选择的数据,以基于代理在历史通信会话期间选择的函数(例如,存储在数据存储器1535中的那些)生成具有相关联函数的新触发。消息推荐系统1530可以基于置信阈值在消息集群中选择一个或多个触发和相关联函数。作为非限制性示例,可以执行置信算法以生成置信分数。置信分数可以是百分比值,其中百分比越低,响应是对传入消息的良好预测的可能性越小,百分比越高,响应是对传入消息的良好预测的可能性越大。最小置信阈值可以定义为与每个发现的模式相关联的确定性或可信度的测度。此外,置信算法的示例可以是Apriori算法、指示两个数据集之间的相似性的相似性算法、以及其他合适的置信算法。
图16示出了根据一些实现方式的计算系统架构1600,该计算系统架构1600包括使用连接1606(诸如总线)彼此电通信的各种组件。示例系统架构1600包括处理单元(CPU或处理器)1604和系统连接1606,系统连接1606将包括系统存储器1620(诸如ROM 1618和RAM1616)的各种系统组件联接到处理器1604。系统架构1600可以包括高速存储器的高速缓存1602,高速缓存1602直接与处理器1604连接、极为接近于处理器1604、或者集成为处理器1604的一部分。系统架构1600可以将来自存储器1620和/或存储设备1608的数据复制到高速缓存1602,以被处理器1604快速访问。这样,高速缓存可以提高性能,而避免处理器1604在等待数据时延迟。这些模块和其他模块可以控制或被配置为控制处理器1604执行各种动作。
也可以使用其他可用的系统存储器1620。存储器1620可以包括具有不同性能特性的多种不同类型的存储器。处理器1604可以包括:任何通用处理器以及被配置为控制处理器1604的硬件或软件服务,诸如存储在存储设备1608中的服务1 1610、服务2 1612、和服务3 1614;以及专用处理器,其中软件指令被并入实际处理器设计中。处理器1604可以是完全独立的计算系统,包含多个核或处理器、总线、存储器控制器、高速缓存等。多核处理器可以是对称或非对称的。
为了使用户能够与计算系统架构1600进行通信,输入设备1622可以表示任何数量的输入机构,诸如用于讲话的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、讲话等等。输出设备1624也可以是本领域技术人员已知的多种输出机构中的一种或多种输出机构。在一些实例中,多模式系统可以使用户能够提供多种类型的输入以与计算系统架构1600通信。通信接口1626可以总体上管理和控制用户输入和系统输出。对在任何特定硬件布置上的操作没有限制,因此随着硬件或固件布置的发展,这里的基本特征可以很容易替代为改进的硬件或固件布置。
存储设备1608是非易失性存储器并且可以是硬盘或者可以存储可由计算机访问的数据的其他类型的计算机可读介质,诸如磁带盒、闪存卡、固态存储器设备、数字通用光盘、盒式磁带、RAM 1616、ROM 1618、及其混合。
存储设备1608可以包括用于控制处理器1604的服务1610、1612、1614。能够想到其他硬件或软件模块。存储设备1608可以连接到系统连接1606。在一个方面,执行特定功能的硬件模块可以包括存储在与所需的硬件组件连接的计算机可读介质中的软件组件,以执行所述功能,所述硬件组件诸如处理器1604、连接1606、输出设备1624等等。
可以使用计算系统执行所公开的礼物选择、归属和分配系统。示例计算系统可以包括处理器(例如,中央处理单元)、存储器、非易失性存储器、和接口设备。存储器可以存储数据和/或一个或多个代码集、软件、脚本等。计算机系统的组件可以经由总线或通过某一其他已知或方便的设备联接在一起。处理器可以被配置为例如通过执行例如存储在存储器中的代码来执行本文所描述的方法的全部或部分。用户设备或计算机、提供商服务器或系统、或者暂停数据库更新系统中的一者或多者可以包括计算系统的组件或这种系统的变型系统的组件。
本发明预想到采用任何合适的物理形式的计算机系统。作为示例而非限制,计算机系统可以是嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(诸如,例如模块计算机(COM)或模块系统(SOM))、台式计算机系统、膝上型或笔记本计算机系统、交互式自助服务终端(kiosk)、大型机、计算机系统网格、移动电话、个人数字助理(PDA)、服务器、或以上两者或更多者的组合。适当时,计算机系统可以:包括一个或多个计算机系统;为统一的或分布式的;跨多个位置;跨多个机器;和/或驻留在云中,该云可以包括一个或多个网络中的一个或多个云组件。适当时,一个或多个计算机系统可以基本上没有空间或时间限制而执行本文所描述或所示出的一种或多种方法的一个或多个步骤。作为示例而非限制,一个或多个计算机系统可以例如在本文所描述或所示出的一种或多种方法的一个或多个步骤中,在事件发生时执行或以批处理模式执行聚合多个事件。适当时,一个或多个计算机系统可以在不同时间或在不同位置执行本文所描述或所示出的一种或多种方法的一个或多个步骤。
处理器可以例如为传统微处理器,诸如英特尔奔腾微处理器或摩托罗拉功率PC微处理器。相关领域技术人员能够认识到术语“机器可读(存储)介质”或“计算机可读(存储)介质”包括可由处理器访问的任何类型的设备。
存储器可以通过例如总线联接到处理器。通过示例而非限制,存储器可以包括随机存取存储器(RAM),诸如动态RAM(DRAM)和静态RAM(SRAM)。存储器可以是本地的、远程的、或分布式的。
总线还可以将处理器联接到非易失性存储器和驱动单元。非易失性存储器通常是磁性软盘或硬盘、磁光盘、光盘、只读存储器(ROM)(诸如CD-ROM、EPROM、或EEPROM)、磁卡或光卡、或另一种形式的用于大量数据的存储装置。该数据中的某些数据通常在计算机中的软件执行期间通过直接存储器访问过程来写入存储器中。非易失性存储装置可以是本地的、远程的、或分布式的。非易失性存储器是可选的,因为可以使用存储器中可用的所有适用数据创建系统。典型的计算机系统通常会至少包括处理器、存储器、以及将存储器联接到处理器的设备(例如,总线)。
软件可以存储在非易失性存储器和/或驱动单元中。实际上,对于大的程序,甚至可能不能将整个程序存储在存储器中。然而,应当理解,对于要运行的软件,如果需要,其可以移动到适于处理的计算机可读位置,并且为了说明目的,该位置在本文中称为存储器。即使当软件被移动到存储器以用于执行,处理器也可以使用硬件寄存器来存储与软件相关联的值以及使用理想地用于加速执行的本地缓存。如本文所使用的,当软件程序被称为“在计算机可读介质中实施的”时,软件程序被假设为存储在任何已知或方便位置(从非易失性存储装置至硬件寄存器)。当与程序相关联的至少一个值存储在可由处理器读取的寄存器中时,该处理器被认为是“被配置为执行程序”。
总线还可以将处理器联接到网络接口设备。接口可以包括调制解调器或网络接口中的一者或多者。能够理解,调制解调器或网络接口可以被视为计算机系统的一部分。接口可以包括模拟调制解调器、综合业务数字网(ISDN)调制解调器、线缆调制解调器、令牌环接口、卫星传输接口(例如,“直接PC”)、或其他用于将一计算机系统联接到其他计算机系统的接口。接口可以包括一个或多个输入和/或输出(I/O)设备。通过示例而非限制,I/O设备可以包括键盘、鼠标或其他定点设备、磁盘驱动器、打印机、扫描仪、以及其他输入和/或输出设备(包括显示设备)。通过示例而非限制,显示设备可以包括阴极射线管(CRT)、液晶显示器(LCD)、或某一其他适用的已知或方便的显示设备。
在操作中,计算机系统可由包括文件路由系统(诸如磁盘操作系统)的操作系统软件控制。具有相关联的文件路由系统软件的操作系统软件的一个示例是来自华盛顿州雷德蒙德的Microsoft Corporation(微软公司)的被称为的操作系统系列及其相关联的文件路由系统。具有其相关联的路由管理系统软件的操作系统软件的另一个示例是LinuxTM操作系统及其相关联的文件路由系统。文件路由系统可以存储在非易失性存储器和/或驱动单元中,并且可以使处理器执行操作系统所涉及的各种动作,以输入和输出数据以及将数据存储在存储器中,包括将文件存储在非易失性存储器和/或驱动单元上。
具体实施方式的某些部分可以依据对计算机存储器中的数据位的操作的算法和符号表示来呈现。这些算法描述和表示是数据处理领域的技术人员所使用的手段,以将其工作的实质最有效地传达给本领域的其他技术人员。算法在这里并且通常被设想成导致所期望的结果的操作的自洽序列。操作是那些需要物理量的物理操纵的操作。通常,虽然非必须,但这些物理量采用能够被存储、被转移、被组合、被比较、和以其他方式被操纵的电信号或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、数字等有时是方便的。
然而,应当记住,所有这些术语和类似术语是与合适的物理量相关联的并且仅仅是应用于这些物理量的方便的标签。除非以与以下讨论明显不同的方式明确声明,否则应当理解,贯穿整个说明书,使用诸如“处理”或“计算(computing)”或“计算(calculating)”或“确定”或“显示”或“生成”等的术语的讨论是指计算机系统或类似电子计算设备的动作和过程,所述计算机系统或类似电子计算设备将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵并转换成其他类似地表示为计算机系统的存储器或寄存器或其他这种信息存储、传输或显示设备内的物理量的数据。
本文中呈现的算法和显示并非固有地与任何特定计算机或其他装置相关。各种通用系统可以与根据本文教导的程序一起使用,或者可以证实构建更专门的装置来执行一些示例的方法是方便的。根据以下描述,所涉及的用于各种这些系统的结构将显现。此外,并未参考任何特定编程语言来描述技术,因此各种示例可以使用各种编程语言来实现。
在各种实现方式中,系统作为独立设备进行操作或者可以连接(例如,联网)到其他系统。在联网部署中,系统可以在客户端-服务器网络环境中作为服务器或客户端系统进行操作,或者在点对点(或分布式)网络环境中作为对等系统进行操作。
系统可以是服务器计算机、客户端计算机、个人计算机(PC)、平板PC、膝上型计算机、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、iPhone(苹果手机)、Blackberry(黑莓手机)、处理器、电话、网络设备、网络路由器、交换机或桥接器、或能够执行指定待由该系统采取的动作的一组指令(按顺序或者以其他方式)的任何系统。
通常,被执行以实现本发明的实现方式的例程可以实现为操作系统或应用程序、组件、程序、对象、模块或被称为“计算机程序”的指令序列的一部分。计算机程序通常包括在不同时间在计算机中的各种存储器和存储设备中设置的一个或多个指令,并且所述指令在被计算机中的一个或多个处理单元或处理器读取并执行时,致使该计算机进行操作以执行涉及本发明的各种方面的元素。
此外,尽管已经在功能完善的计算机和计算机系统的上下文中描述了示例,但是本领域技术人员能够理解,各种示例能够作为程序客体而以各种形式分布,而且不管实际用于实现分布的机器或计算机可读介质的具体类型如何,本发明都同样适用。
机器可读存储介质、机器可读介质、或计算机可读(存储)介质的其他示例包括但不限于:可记录类型介质,诸如易失性和非易失性存储器设备、软盘和其他可移除磁盘、硬盘驱动器、光盘(例如,光盘只读存储器(CD ROM)、数字通用光盘(DVD)等)等等;以及传输类型介质,诸如数字和模拟通信链路。
在一些情况中,存储器设备的操作(诸如从二进制1到二进制0的状态改变或者反之亦然)例如可以包括变换(诸如物理变换)。利用特定类型的存储器设备,这种物理变换可以包括物品向不同状态或事物的物理变换。例如,但非限制地,对于某些类型的存储器设备,状态的改变可以涉及电荷的积累和存储或者所存储的电荷的释放。类似地,在其他存储器设备中,状态的改变可以包括磁取向的物理改变或变换或者分子结构的物理改变或变换,诸如从晶体到非晶体或者反之亦然。前述内容不意图为其中存储器设备中从二进制1到二进制0(或者反之)的状态改变可以包括变换(诸如物理变换)所有示例的穷尽列表。而是,前述内容意图作为说明性示例。
存储介质通常可以为非暂时性设备或者可以包括非暂时性设备。在该情况下,非暂时性存储介质可以包括有形设备,这意味着该设备具有具体的物理形式,但是该设备的物理状态可以改变。因此,例如,非暂时性是指尽管状态改变但是保持有形的设备。
以上描述和附图是说明性的而不能解释为将主题限制到所公开的确切形式。相关领域的技术人员能够理解,鉴于上述公开内容可以有许多修改和变型。描述了许多细节来提供对本发明的透彻理解。然而,在某些情况中,众所周知的或常规的细节没有被描述,从而避免使描述模糊不清。
如本文中所使用的,术语“连接”、“联接”、或其任何变型当应用于系统的模块时,意味着两个或更多个元件之间直接或间接的任何连接或联接;元件之间的联接或连接可以是物理的、逻辑的、或其任何组合。此外,词语“本文”、“以上”、“以下”、以及类似含义的词语,当用于本申请中时,应该是指本申请整体,而不是本申请的任何特定部分。当上下文允许时,在以上具体实施方式部分中的使用单数或复数的词语也可以分别包括复数或单数。在关于两个或更多个项目的列表中,词语“或”涵盖该词语的所有如下解释:列表中项目的任一者、列表中所有项目、或者列表中项目的任何组合。
本领域技术人员能够理解,所公开的主题可以以下面未示出的其他形式和方式来实施。应当理解,关系型术语的使用(如果有的话,诸如第一、第二、顶部和底部等)仅用于将一个实体或动作与另一个实体或动作区分开,而不必要求或暗示这些实体或动作之间的任何这种实际关系或顺序。
尽管过程或方框以给定顺序呈现,但是替选实现方式可以执行具有不同顺序的步骤的例程或采用具有不同顺序的方框的系统,并且一些过程或方框可以被删除、移动、添加、细分、取代、组合和/或修改,以提供替选组合或子组合。可以以各种不同方式实现这些过程或方框中的每一者。此外,尽管过程或方框有时被示出为串行执行,但是这些过程或方框也可以并行执行或者可以在不同时间执行。另外,本文中提到的任何数字都只是示例:替选实现方式可以采用不同的值或范围。
本文中提供的本发明的教导可以应用于其他系统,而不必是上述系统。上述各种示例的元素和动作可以被结合以提供进一步的示例。
以上提到的任何专利和申请和其他参考文件(包括可能在所附递交文件中列出的任何参考文件)通过引用并入本文。如果需要,可以修改本发明的方面来采用上述各个参考文件的系统、功能和概念,以提供本发明的其它进一步的示例。
可以根据以上具体实施方式来对本发明做出这些和其他改变。尽管以上描述描述了特定示例,并且描述了预期的最好方式,但是不管上述内容的文本呈现得多么详细,教导都可以以许多方式实践。系统的细节可以在其实现方式细节上进行相当大的变化,但是仍然被本文所公开的主题所包括。如上所述,当描述本发明的某些特征或方面时所使用的特定术语不应当被看作是暗示该术语在本文中被重新定义以限制到与该术语相关联的本发明的任何特性、特征或方面。通常,在所附权利要求书中所使用的术语不应当被解释为将本发明限制到说明书中所公开的实现方式,除非以上具体实施方式部分明确定义了这些术语。因此,本发明的实际范围不仅包括所公开的实现方式,而且包括根据权利要求实践或实现本发明的所有等同方式。
尽管以某些权利要求形式呈现了本发明的某些方面,但是发明人预期到任何数量的权利要求形式的本发明的各个方面。任何旨在根据35U.S.C.§152(f)进行处理的权利要求将以表述“用于……”开头。因此,申请人保留在递交本申请之后添加附加权利要求的权利以寻求这些用于本发明的其他方面的附加权利要求形式。
在本发明的上下文内,在本说明书中所使用的术语通常具有其在本领域和在每个术语所使用的上下文中的通常含义。用于描述本发明的特定术语在以上或者说明书中的其他地方进行讨论,以为实践者提供关于本发明的描述的附加指导。为了方便,某些术语可以被突出,例如使用大写、斜体、和/或引号。使用突出不会对术语的范围和含义有任何影响;在同一上下文中,无论术语是否被突出,该术语的范围和含义都是相同的。能够理解,同一元素可以以多于一种的方式被描述。
因此,本文所讨论的任何一个或多个术语可以使用替选语言和同义词,但也不是基于术语是否在本文中详尽或讨论而对其赋予任何特殊意义。提供了某些术语的同义词。一个或多个同义词的记载并不排除其他同义词的使用。包括本文所讨论的任何术语的示例的本说明书中任何地方使用的示例都仅是说明性的,并且不意图进一步限制本发明或任何示例性术语的范围和含义。同样地,本发明并不限于本说明书中所给出的各个示例。
下面给出根据本发明的示例的设备、装置、方法及其相关结果的示例,但不意图进一步限制本发明的范围。需要注意的是,为了阅读者方便,可以在示例中使用标题或副标题,但不以任何方式限制本发明的范围。除非另外定义,否则本文所使用的所有技术术语和科学术语具有与本发明所属领域的普通技术人员通常理解的含义相同的含义。在有冲突的情况下,将以包括定义的本文为准。
本说明书的一些部分描述了对信息进行操作的算法和符号表示的示例。这些算法描述和表示通常由数据处理领域的技术人员用于将其工作实质有效地传达给本领域的其他技术人员。当从功能上、从计算上、或从逻辑上描述这些操作时,这些操作被理解成将由计算机程序或等效电路、微代码等实现。此外,还已经证实将这些操作的布置称为模块有时是方便的,且不失通用性。所描述的操作及其相关联的模块可以体现在软件、固件、硬件、或其任意组合中。
本文描述的任何步骤、操作、或过程可以利用一个或多个硬件或软件模块单独地或与其他设备结合地执行或实现。在一些示例中,软件模块利用包括计算机可读介质的计算机程序客体来实现,计算机可读介质包含计算机程序代码,计算机程序代码可由计算机处理器执行以用于执行所描述的步骤、操作、或过程中的任一者或全部。
示例还可以涉及用于执行本文中的操作的装置。该装置可以被专门构建以用于所涉及的目的,和/或该装置可以包括通过计算机中存储的计算机程序选择性激活或重新配置的通用计算设备。这种计算机程序可以存储在非暂时性、有形的计算机可读存储介质或适用于存储电子指令的任何类型的介质中,所述介质可以联接到计算机系统总线。此外,本说明书中提及的任何计算系统都可以包括单个处理器或者可以是采用多处理器设计以提高计算能力的架构。
示例还可以涉及由本文描述的计算进程形成的客体。该客体可以包括由计算进程产生的信息,其中该信息存储在非暂时性、有形的计算机可读存储介质上以及可以包括计算机程序客体或本文描述的其他数据组合的任何实现方式。
已经主要出于可读性和指导目的而选择本说明书中所使用的语言,而不是选择这些语言来描绘或约束主题。因此,不意图通过详细描述来限制本发明的范围,而是通过基于本申请发布的任何权利要求来限制。因此,示例的公开意图是说明性的,而非对主题的范围的限制,主题的范围在所附权利要求中阐述。
在以上描述中给出了细节以提供对用于上下文连接系统的系统和组件的各种实现方式的透彻理解。然而,本领域普通技术人员应当理解,可以在没有这些细节的情况下实践上述实现方式。例如,电路、系统、网络、进程、和其他组件可以被示为框图形式中的组件,以免在不必要的细节上使示例模糊不清。在其他情况下,可以示出公知的电路、进程、算法、结构和技术而没有不必要的细节,以避免使示例模糊不清。
另外,应当注意,各个实现方式可以被描述为过程,该过程被描绘为流程图、作业图、数据流图、结构图或框图。尽管流程图可以将操作描述为顺序过程,但是许多操作可以并行或同时执行。另外,可以重新安排操作的顺序。当一个过程的操作完成时,该过程将终止,但是可以具有未包含的附加步骤。过程可以对应于方法、函数、程序、子例程、子程序等。当过程对应于函数时,其终止可对应于该函数返回到调用函数或主函数。
客户端设备、网络设备、和其他设备可以是计算系统,该计算系统包括一个或多个集成电路、输入设备、输出设备、数据存储设备、和/或网络接口等等。集成电路可以包括例如一个或多个处理器、易失性存储器、和/或非易失性存储器等等。输入设备可以包括例如键盘、鼠标、小键盘、触摸界面、麦克风、相机和/或其他类型的输入设备。输出设备可以包括例如显示屏、扬声器、触觉反馈系统、打印机和/或其他类型的输出设备。诸如硬盘驱动器或闪存的数据存储设备可以使计算设备能够临时地或永久地存储数据。诸如无线或有线接口的网络接口可以使计算设备能够与网络通信。计算设备的示例包括台式计算机、膝上型计算机、服务器计算机、手持计算机、平板电脑、智能电话、个人数字助理、数字家庭助理、以及已经并入计算设备的机器和装置。
术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光存储设备、以及能够存储、包含、或承载(一个或多个)指令和/或数据的各种其他介质。计算机可读介质可以包括非暂时性介质,该非暂时性介质中可以存储数据,并且不包括无线地或通过有线连接传播的载波和/或暂时性电信号。非暂时性介质的示例可以包括但不限于磁盘或磁带、诸如光盘(CD)或数字通用光盘(DVD)的光存储介质、闪存、存储器或存储器设备。计算机可读介质可以具有其上存储的代码和/或机器可执行指令,其可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类、或者指令、数据结构或程序语句的任何组合。一代码段可以通过传递和/或接收信息、数据、自变量、参数、或存储内容而与另一代码段或硬件电路关联。信息、自变量、参数、数据等可以通过包括存储器共享、消息传递、令牌传递、网络传输等的任何适当手段来进行传递、转发或传输。
以上讨论的各种示例还可以通过硬件、软件、固件、中间件、微代码、硬件描述语言、或它们的任何组合来实现。当以软件、固件、中间件或微代码实现时,执行必要任务的程序代码或代码段(例如,计算机程序产品)可以存储在计算机可读或机器可读存储介质(例如,用于存储程序代码或代码段的介质)中。在集成电路中实现的(一个或多个)处理器可以执行必要任务。
程序代码可以由处理器执行,处理器可以包括一个或多个处理器,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)、或其他等效的集成或离散逻辑电路。这种处理器可以被配置为执行本发明中描述的任何技术。通用处理器可以是微处理器;但是在替选方案中,处理器可以是任何常规处理器、控制器、微控制器、或状态机。处理器也可以实现为计算设备的组合,例如DSP和微处理器的组合、多个微处理器、与DSP核结合的一个或多个微处理器、或者任何其他这种配置。因此,本文中所使用的术语“处理器”可以是指任何前述结构、前述结构的任何组合、或适于实现本文所描述的技术的任何其他结构或装置。此外,在一些方面中,可以在被配置为用于实现暂停数据库更新系统的专用软件模块或硬件模块内提供本文所描述的功能。
当组件被描述成“被配置为”执行某些操作时,这种配置可以例如通过将电子电路或其他硬件设计成执行操作、通过将可编程电子电路(例如,微处理器、或其他合适的电子电路)编程为执行操作、或者其任何组合来完成。
结合本文公开的实现方式描述的各种说明性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件、固件、或其组合。为了清楚地说明硬件和软件的这种可互换性,以上已经在其功能方面总体上描述了各种说明性组件、块、模块、电路、和步骤。这种功能被实现为硬件还是软件取决于特定应用和对整个系统的设计约束。技术人员可以针对每种特定应用以不同方式实现所描述的功能,但是这种实现决策不应被解释为造成偏离本发明的范围。
已经出于说明和描述的目的呈现了技术的前述详细描述。该详细描述并非详尽的,也不意图将技术限制到所公开的确切形式。鉴于以上教导可以有许多修改和变型。选择所描述的示例是为了最好地解释技术的原理、其实践应用、以及使本领域其他技术人员能够在各种示例中利用该技术并且与适用于预期的特定用途的各种修改一起利用该技术。意图通过权利要求来限定该技术的范围。

Claims (21)

1.一种计算机实现的方法,包括:
访问被配置为基于事件执行响应的模板;
促进与用户设备的双向通信会话;
处理所述双向通信会话的数据以识别与所述模板相对应的事件触发;
请求执行与所述事件触发相关联的无服务器的基于云的函数,其中,请求所述无服务器的基于云的函数包括发送与所述无服务器的基于云的函数相关联的代码;以及
将与所述事件触发相关联的所述无服务器的基于云的函数的一个或多个输出整合到所述双向通信会话中,其中,当在无服务器的提供商处接收到所述代码时,所述无服务器的提供商执行所述代码以生成所述无服务器的基于云的函数的所述一个或多个输出。
2.如权利要求1所述的计算机实现的方法,还包括:
基于所述双向通信会话的终止来终止所述无服务器的基于云的函数的执行。
3.如权利要求1所述的计算机实现的方法,还包括:
处理所述双向通信会话的数据以识别与所述无服务器的基于云的函数相对应的函数终止触发;以及
基于所述函数终止触发终止所述无服务器的基于云的函数。
4.如权利要求1所述的计算机实现的方法,其中,请求与所述事件触发相关联的所述无服务器的基于云的函数还包括:
发送请求,其中,当在功能即服务平台处接收到所述请求时,所述功能即服务平台生成所述一个或多个输出。
5.如权利要求1所述的计算机实现的方法,其中,所述模板包括与所述双向通信会话和与代理相关联的终端设备相关联的联络中心的联络中心数据。
6.如权利要求1所述的计算机实现的方法,还包括:
接收与客户端系统相关联的配置设置,所述配置设置选择所述模板和与所述模板相对应的一个或多个事件触发;以及
自动将所述模板和与所述客户端系统相关联的双向通信会话相关联。
7.如权利要求1所述的计算机实现的方法,还包括:
促进将所述用户设备连接到与代理相关联的终端设备,
其中,所述事件触发是指示从自动化代理切换到人工代理的通信数据,以及其中,所述一个或多个输出指示所述代理和所述终端设备。
8.一种通信系统,包括:
存储器;以及
一个或多个处理器,所述一个或多个处理器联接到所述存储器并被配置为执行包括以下的操作:
访问被配置为基于事件执行响应的模板;
促进与用户设备的双向通信会话;
处理所述双向通信会话的数据以识别与所述模板相对应的事件触发;
请求执行与所述事件触发相关联的无服务器的基于云的函数,其中,请求所述无服务器的基于云的函数包括发送与所述无服务器的基于云的函数相关联的代码;以及
将与所述事件触发相关联的所述无服务器的基于云的函数的一个或多个输出整合到所述双向通信会话中,其中,当在无服务器的提供商处接收到所述代码时,所述无服务器的提供商执行所述代码以生成所述无服务器的基于云的函数的所述一个或多个输出。
9.如权利要求8所述的系统,其中,所述操作还包括:
基于所述双向通信会话的终止来终止所述无服务器的基于云的函数的执行。
10.如权利要求8所述的系统,其中,所述操作还包括:
处理所述双向通信会话的数据以识别与所述无服务器的基于云的函数相对应的函数终止触发;以及
基于所述函数终止触发终止所述无服务器的基于云的函数。
11.如权利要求8所述的系统,其中,请求与所述事件触发相关联的所述无服务器的基于云的函数还包括:
发送请求,其中,当在功能即服务平台处接收到所述请求时,所述功能即服务平台生成所述一个或多个输出。
12.如权利要求8所述的系统,其中,所述模板包括与所述双向通信会话和与代理相关联的终端设备相关联的联络中心的联络中心数据。
13.如权利要求8所述的系统,其中,所述操作还包括:
接收与客户端系统相关联的配置设置,所述配置设置选择所述模板和与所述模板相对应的一个或多个事件触发;以及
自动将所述模板和与所述客户端系统相关联的双向通信会话相关联。
14.如权利要求8所述的系统,其中,所述操作还包括:
促进将所述用户设备连接到与代理相关联的终端设备,
其中,所述事件触发是指示从自动化代理切换到人工代理的通信数据,以及其中,所述一个或多个输出指示所述代理和所述终端设备。
15.一种包括指令的非暂时性计算机可读介质,所述指令在由设备的一个或多个处理器执行时,使得所述设备执行包括以下的操作:
访问被配置为基于事件执行响应的模板;
促进与用户设备的双向通信会话;
处理所述双向通信会话的数据以识别与所述模板相对应的事件触发;
请求执行与所述事件触发相关联的无服务器的基于云的函数,其中,请求所述无服务器的基于云的函数包括发送与所述无服务器的基于云的函数相关联的代码;以及
将与所述事件触发相关联的所述无服务器的基于云的函数的一个或多个输出整合到所述双向通信会话中,其中,当在无服务器的提供商处接收到所述代码时,所述无服务器的提供商执行所述代码以生成所述无服务器的基于云的函数的所述一个或多个输出。
16.如权利要求15所述的非暂时性计算机可读介质,其中,所述指令还使得所述设备执行包括以下的操作:
基于所述双向通信会话的终止来终止所述无服务器的基于云的函数的执行。
17.如权利要求15所述的非暂时性计算机可读介质,其中,所述指令还使得所述设备执行包括以下的操作:
处理所述双向通信会话的数据以识别与所述无服务器的基于云的函数相对应的函数终止触发;以及
基于所述函数终止触发终止所述无服务器的基于云的函数。
18.如权利要求15所述的非暂时性计算机可读介质,其中,请求与所述事件触发相关联的所述无服务器的基于云的函数还包括:
发送请求,其中,当在功能即服务平台处接收到所述请求时,所述功能即服务平台生成所述一个或多个输出。
19.如权利要求15所述的非暂时性计算机可读介质,其中,所述模板包括与所述双向通信会话和与代理相关联的终端设备相关联的联络中心的联络中心数据。
20.如权利要求15所述的非暂时性计算机可读介质,其中,所述指令还使得所述设备执行包括以下的操作:
接收与客户端系统相关联的配置设置,所述配置设置选择所述模板和与所述模板相对应的一个或多个事件触发;以及
自动将所述模板和与所述客户端系统相关联的双向通信会话相关联。
21.如权利要求15所述的非暂时性计算机可读介质,其中,所述指令还使得所述设备执行包括以下的操作:
促进将所述用户设备连接到与代理相关联的终端设备,
其中,所述事件触发是指示从自动化代理切换到人工代理的通信数据,以及其中,所述一个或多个输出指示所述代理和所述终端设备。
CN202080086394.0A 2019-12-13 2020-12-11 用于双向通信系统的功能即服务云聊天机器人 Active CN114830614B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962948038P 2019-12-13 2019-12-13
US62/948,038 2019-12-13
PCT/US2020/064532 WO2021119441A1 (en) 2019-12-13 2020-12-11 Function-as-a-service cloud chatbot for two-way communication systems

Publications (2)

Publication Number Publication Date
CN114830614A CN114830614A (zh) 2022-07-29
CN114830614B true CN114830614B (zh) 2024-06-11

Family

ID=

Similar Documents

Publication Publication Date Title
JP7392004B2 (ja) 通信システムインテント分析のためのシステムおよび方法
AU2020402099B2 (en) Function-as-a-service cloud chatbot for two-way communication systems
JP2022525787A (ja) 異なるエンドポイントへの動的な通信ルーティング
JP7383811B2 (ja) 電子メール環境からメッセージング環境へのメッセージ再ルーティング
CN112913219A (zh) 动态终结点通信通道
US11870934B2 (en) Smart capacity for workload routing
JP2024512648A (ja) 知識蒸留を伴うai nlp符号化器のドメイン適応
CN113474768A (zh) 意图驱动的联系中心
CN114223188A (zh) 用于管理交互邀请的系统和方法
CN114586323B (zh) 到不同终结点的动态通信路由
CN114830614B (zh) 用于双向通信系统的功能即服务云聊天机器人
US20230403357A1 (en) Ai based hold messaging
US20230410801A1 (en) Targeted generative ai from merged communication transcripts

Legal Events

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