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

对机器人系统的性能的洞察的制作方法

2021-12-01 00:52:00 来源:中国专利 TAG:

对机器人系统的性能的洞察
1.相关申请的交叉引用
2.本技术是2019年4月26日提交的标题为“insights into performance of a bot system”的美国临时申请no.62/839,270的非临时申请,并要求其权益和优先权。前述申请的全部内容出于所有目的通过引用并入本文。
技术领域
3.本公开一般而言涉及用于分析和改进机器人系统的技术,更特别地,涉及一种与机器人系统集成的用于监视、分析、可视化、诊断和改进机器人系统的性能的分析系统。


背景技术:

4.世界各地的许多用户都在即时消息传递或聊天平台上以便获得即时反应。组织经常使用这些即时消息传递或聊天平台与客户(或最终用户)进行实时对话。但是,组织雇用服务人员与客户或最终用户进行实时对话的成本可能非常高。已经开始开发聊天机器人或机器人来模拟与最终用户的对话,尤其是通过互联网。最终用户可以通过最终用户已经安装和使用的消息传递应用(app)与机器人通信。通常由人工智能(ai)提供支持的智能机器人可以在实时对话中更智能且更具情境性地进行交流,因此可以允许机器人与最终用户之间进行更自然的对话,以改善对话体验。与最终用户学习机器人知道如何响应的一组固定关键字或命令不同,智能机器人可以能够基于用户的自然语言话语来理解最终用户的意图并做出相应的响应。


技术实现要素:

5.提供了用于监视、分析、可视化、诊断和改进机器人系统的性能的技术(例如,方法、系统、存储可由一个或多个处理器执行的代码或指令的非暂态计算机可读介质)。
6.根据一些实施例,分析系统可以监视在最终用户和机器人系统之间的对话中发生的事件、聚合和分析收集到的事件,并且在图形用户界面上以图形方式提供关于对话的信息作为不同概括级别的洞察报告,诸如从所有对话的总体汇总到不同类别的对话,再到个体对话。例如,图形用户界面可以显示选项以过滤或选择某些类型的对话或个体对话,并例如通过可视化对话的路径以图形方式显示关于所选择类型的对话或个体对话的信息。洞察报告提供面向开发人员的分析,以查明技能(skill)问题,以便用户可以在问题出现之前解决这些问题。这些洞察让用户可以随时间跟踪对话趋势、识别执行路径、确定其意图解析的准确性以及访问整个对话文字本(transcripts)。分析系统也可以提供用于改进机器人系统训练的建议、选项或其它信息。
7.在一些实施例中,图形用户界面(gui)可以将与个体和/或聚合的最终用户对话或与机器人系统的其它交互相关的信息显示为包括表示对话的不同阶段或状态的不同节点的路径。例如,最终用户与机器人系统的对话可以由显示从状态到状态的转变的路径表示,其中每个状态可以由路径上的节点表示。可以通过gui以图形方式生成和显示用户与机器
人系统对话的统计信息。分析系统将对话可视化为路径可以允许机器人系统的管理员或开发人员基于不同准则来过滤或选择与机器人系统的对话组。分析系统还可以为机器人系统的管理员或开发人员提供选项以选择和审查关注的个体对话。可视化路径信息可以允许机器人系统的管理员或开发人员可视地监视和分析最终用户如何与机器人系统进行交互以及机器人系统在与最终用户对话期间如何执行以识别机器人系统的性能不佳的元素和对机器人系统的可能的改进。
8.因此,分析系统可以通过图形用户界面在不同概括级别(包括所有对话、满足某个准则的对话组、与特定意图或最终状态相关联的对话以及个体对话)提供关于与机器人系统的最终用户对话的信息。由此,分析系统可以允许机器人系统的管理员或开发人员识别与未完成或不成功的对话相关联的特定最终用户话语和最终用户意图,从而识别和改进机器人系统的性能不佳的元素。通过分析和改进机器人系统的性能,可以改善与机器人系统交互的用户体验。
9.在某些实施例中,系统可以包括事件收集器、分析引擎和通信地耦合到分析引擎的图形用户界面服务器。事件收集器可以配置为收集与和机器人系统的一组对话相关联的一个或多个事件的一个或多个属性。分析引擎可以被配置为使用由用户选择的一个或多个过滤准则,基于该一个或多个事件的该一个或多个属性从该组对话中选择一个或多个对话,并且为所选择的一个或多个对话生成一个或多个洞察报告。图形用户界面(gui)服务器可以被配置为在gui上以图形方式显示来自一个或多个洞察报告的第一报告和与第一报告相关联的一个或多个用户可选择的项目,其中一个或多个用户可选择的项目可以包括第一报告的至少一个元素,并且一个或多个用户可选择的项目中的至少一个可以对应于一个或多个过滤准则中的过滤准则。gui服务器还可以接收一个或多个用户可选择的项目的用户选择,并且基于用户选择在gui上以图形方式显示来自一个或多个洞察报告的第二报告。
10.在某些实施例中,计算机实现的方法可以包括由分析系统的事件收集器收集与和机器人系统的一组对话相关联的一个或多个事件的一个或多个属性;通过分析系统的分析引擎使用由用户选择的一个或多个过滤准则,基于该一个或多个事件的该一个或多个属性从该组对话中选择一个或多个对话;并且通过分析系统的分析引擎为所选择的一个或多个对话生成一个或多个洞察报告。计算机实现的方法还可以包括在gui上以图形方式显示来自一个或多个洞察报告的第一报告和与第一报告相关联的一个或多个用户可选择的项目,其中一个或多个用户可选择的项目可以包括第一报告的至少一个元素,并且一个或多个用户可选择的项目中的至少一个对应于一个或多个过滤准则中的过滤准则。计算机实现的方法还可以包括通过gui接收一个或多个用户可选择的项目的用户选择,并基于用户选择在gui上以图形方式显示来自一个或多个洞察报告的第二报告。在一些实施例中,计算机实现的方法还可以包括通过一个或多个用户可选择的项目中的用户可选择的项目接收用户输入,并基于用户输入来训练机器人系统。
11.在某些实施例中,系统可以包括一个或多个处理器,以及耦合到该一个或多个处理器并存储指令的存储器。指令在由一个或多个处理器执行时,可以使系统通过系统的事件收集器收集与和机器人系统的一组对话相关联的一个或多个事件的一个或多个属性;通过系统的分析引擎使用由用户选择的一个或多个过滤准则,基于一个或多个事件的一个或多个属性从该组对话中选择一个或多个对话;并由分析引擎为所选择的一个或多个对话生
成一个或多个洞察报告。指令还可以使系统在gui上以图形方式显示来自一个或多个洞察报告的第一报告和与第一报告相关联的一个或多个用户可选择的项目,其中一个或多个用户可选择的项目可以包括第一报告的至少一个元素,并且一个或多个用户可选择的项目中的至少一个可以对应于一个或多个过滤准则中的过滤准则。
12.在某些实施例中,提供了一种方法,该方法包括由分析系统的事件收集器收集与和机器人系统的一组对话相关联的一个或多个事件的一个或多个属性;通过分析系统的分析引擎使用由用户选择的一个或多个过滤准则,基于所述一个或多个事件的所述一个或多个属性从所述一组对话中选择一个或多个对话;由分析系统的分析引擎为所选择的一个或多个对话生成聚合路径图,所述聚合路径图包括多个节点和所述多个节点之间的多个连接,其中:所述多个节点中的每个节点对应于所述一个或多个对话期间机器人系统的相应状态,其中每个节点的状态命名机器人系统的组件,该组件提供所述一个或多个对话中该点处所需的功能;以及所述多个连接中的每个连接表示在所述一个或多个对话期间从机器人系统的一个状态到机器人系统的另一个状态的转变;以及在gui上以图形方式显示所述聚合路径图,其中显示所述聚合路径图提供了在所述一个或多个对话期间在每个节点处机器人系统的状态的用户上下文,并且其中所述上下文包括紧接在所述聚合路径图内的其它节点之前的节点的状态和为所述聚合路径图中的每个状态定义的组件。
13.在一些实施例中,所述一个或多个过滤准则包括未完成的结果;所述属性是交谈状态属性、意图解析属性、实体解析属性、错误和超时属性、或者它们的组合;以及显示所述聚合路径图包括:将所述多个节点中的每个节点显示为用户可选择的项目,并且显示所述多个节点中的指示所述一个或多个对话的停止点的节点,该停止点导致所述未完成的结果。
14.在一些实施例中,所述方法还包括:通过gui接收指示所述停止点的节点的第一用户选择;以及基于第一用户选择在gui上以图形方式显示由机器人系统在停止所述一个或多个对话之前接收到的一个或多个话语。
15.在一些实施例中,所述方法还包括:基于第一用户选择在gui上以图形方式显示所述一个或多个对话的一个或多个文字本的用户可选择的项目;通过gui接收所述一个或多个对话的所述一个或多个文字本的第二用户选择;以及基于第二用户选择在gui上以图形方式显示用户与机器人系统之间在停止所述一个或多个对话之前的所述一个或多个对话的所述一个或多个文字本。
16.在一些实施例中,所述方法还包括由分析系统至少基于由机器人系统在停止所述一个或多个对话之前接收到的所述一个或多个话语来训练机器人系统。
17.在一些实施例中,所述聚合路径图包括与每个相应连接相关联的数字,其中所述数字指示所述一个或多个对话中的包括由相应连接表示的转变的对话的总数。
18.在一些实施例中,所述方法还包括:由分析系统的分析引擎为所选择的一个或多个对话生成一个或多个报告;在gui上以图形方式显示来自所述一个或多个报告的第一报告以及与第一报告相关联的一个或多个用户可选择的项目,其中所述一个或多个用户可选择的项目包括用于从所述一组对话中选择与特定最终用户意图相关联的对话的菜单;通过gui接收对所述一组对话中与所述特定最终用户意图相关联的对话中的对话的用户选择;以及基于所述用户选择在gui上以图形方式显示来自所述一个或多个报告的包括所述对话
的第二报告。
19.在某些实施例中,提供了一种非暂态计算机可读存储器,用于存储可由一个或多个处理器执行的多条指令,所述多条指令包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行处理的指令,所述处理包括:由分析系统的事件收集器收集与和机器人系统的一组对话相关联的一个或多个事件的一个或多个属性;通过分析系统的分析引擎使用由用户选择的一个或多个过滤准则,基于所述一个或多个事件的所述一个或多个属性从所述一组对话中选择一个或多个对话;由分析系统的分析引擎为所选择的一个或多个对话生成聚合路径图,所述聚合路径图包括多个节点和所述多个节点之间的多个连接,其中:所述多个节点中的每个节点对应于所述一个或多个对话期间机器人系统的相应状态,其中每个节点的状态命名机器人系统的组件,该组件提供所述一个或多个对话中该点处所需的功能;以及所述多个连接中的每个连接表示在所述一个或多个对话期间从机器人系统的一个状态到机器人系统的另一个状态的转变;以及在gui上以图形方式显示所述聚合路径图,其中显示所述聚合路径图提供了在所述一个或多个对话期间在每个节点处机器人系统的状态的用户上下文,并且其中所述上下文包括紧接在所述聚合路径图内的其它节点之前的节点的状态和为所述聚合路径图中的每个状态定义的组件。
20.在一些实施例中,所述一个或多个过滤准则包括未完成的结果;所述属性是交谈状态属性、意图解析属性、实体解析属性、错误和超时属性、或者它们的组合;以及显示所述聚合路径图包括:将所述多个节点中的每个节点显示为用户可选择的项目,并且显示所述多个节点中的指示所述一个或多个对话的停止点的节点,该停止点导致所述未完成的结果。
21.在一些实施例中,所述处理还包括:通过gui接收指示所述停止点的节点的第一用户选择;以及基于第一用户选择在gui上以图形方式显示由机器人系统在停止所述一个或多个对话之前接收到的一个或多个话语。
22.在一些实施例中,所述处理还包括:基于第一用户选择在gui上以图形方式显示所述一个或多个对话的一个或多个文字本的用户可选择的项目;通过gui接收所述一个或多个对话的所述一个或多个文字本的第二用户选择;以及基于第二用户选择在gui上以图形方式显示用户与机器人系统之间在停止所述一个或多个对话之前的所述一个或多个对话的所述一个或多个文字本。
23.在一些实施例中,所述处理还包括由分析系统至少基于由机器人系统在停止所述一个或多个对话之前接收到的所述一个或多个话语来训练机器人系统。
24.在一些实施例中,所述聚合路径图包括与每个相应连接相关联的数字,其中所述数字指示所述一个或多个对话中的包括由相应连接表示的转变的对话的总数。
25.在一些实施例中,所述处理还包括:由分析系统的分析引擎为所选择的一个或多个对话生成一个或多个报告;在gui上以图形方式显示来自所述一个或多个报告的第一报告以及与第一报告相关联的一个或多个用户可选择的项目,其中所述一个或多个用户可选择的项目包括用于从所述一组对话中选择与特定最终用户意图相关联的对话的菜单;通过gui接收对所述一组对话中与所述特定最终用户意图相关联的对话中的对话的用户选择;以及基于所述用户选择在gui上以图形方式显示来自所述一个或多个报告的包括所述对话的第二报告。
26.在某些实施例中,提供了一种系统,该系统包括:一个或多个处理器;以及存储器,耦合到所述一个或多个处理器,所述存储器存储可由所述一个或多个处理器执行的多条指令,所述多条指令包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行处理的指令,所述处理包括:由分析系统的事件收集器收集与和机器人系统的一组对话相关联的一个或多个事件的一个或多个属性;通过分析系统的分析引擎使用由用户选择的一个或多个过滤准则,基于所述一个或多个事件的所述一个或多个属性从所述一组对话中选择一个或多个对话;由分析系统的分析引擎为所选择的一个或多个对话生成聚合路径图,所述聚合路径图包括多个节点和所述多个节点之间的多个连接,其中:所述多个节点中的每个节点对应于所述一个或多个对话期间机器人系统的相应状态,其中每个节点的状态命名机器人系统的组件,该组件提供所述一个或多个对话中该点处所需的功能;以及所述多个连接中的每个连接表示在所述一个或多个对话期间从机器人系统的一个状态到机器人系统的另一个状态的转变;以及在gui上以图形方式显示所述聚合路径图,其中显示所述聚合路径图提供了在所述一个或多个对话期间在每个节点处机器人系统的状态的用户上下文,并且其中所述上下文包括紧接在所述聚合路径图内的其它节点之前的节点的状态和为所述聚合路径图中的每个状态定义的组件。
27.在一些实施例中,所述一个或多个过滤准则包括未完成的结果;所述属性是交谈状态属性、意图解析属性、实体解析属性、错误和超时属性、或者它们的组合;以及显示所述聚合路径图包括:将所述多个节点中的每个节点显示为用户可选择的项目,并且显示所述多个节点中的指示所述一个或多个对话的停止点的节点,该停止点导致所述未完成的结果。
28.在一些实施例中,所述处理还包括:通过gui接收指示所述停止点的节点的第一用户选择;以及基于第一用户选择在gui上以图形方式显示由机器人系统在停止所述一个或多个对话之前接收到的一个或多个话语。
29.在一些实施例中,所述处理还包括:基于第一用户选择在gui上以图形方式显示所述一个或多个对话的一个或多个文字本的用户可选择的项目;通过gui接收所述一个或多个对话的所述一个或多个文字本的第二用户选择;以及基于第二用户选择在gui上以图形方式显示用户与机器人系统之间在停止所述一个或多个对话之前的所述一个或多个对话的所述一个或多个文字本。
30.在一些实施例中,所述处理还包括由分析系统至少基于由机器人系统在停止所述一个或多个对话之前接收到的所述一个或多个话语来训练机器人系统。
31.在一些实施例中,所述聚合路径图包括与每个相应连接相关联的数字,其中所述数字指示所述一个或多个对话中的包括由相应连接表示的转变的对话的总数。
32.上面和下面描述的技术可以以多种方式并在多种上下文中实现。参考以下各图提供了若干示例实现和上下文,如下文更详细描述的。但是,以下实现和上下文只是众多实现中的一小部分。
附图说明
33.图1描绘了根据各种实施例的实现用于使用消息传递应用与最终用户进行通信的机器人系统的分布式系统。
34.图2描绘了根据各种实施例的包括用于监视、分析、可视化和改进机器人系统的性能的机器人系统和机器人分析系统的集成系统。
35.图3是图示根据各种实施例的用于监视、分析、可视化和改进机器人系统的性能的处理的简化流程图。
36.图4a

4c描绘了根据各种实施例的显示用于改进机器人系统的数字助理洞察的图形用户界面屏幕的示例。
37.图5a

5e描绘了根据各种实施例的显示用于改进机器人系统的业务洞察线的图形用户界面屏幕的示例。
38.图6a

6n描绘了根据各种实施例的显示用于改进机器人系统的技能洞察的图形用户界面屏幕的示例。
39.图7a

7i描绘了根据各种实施例的显示用于改进机器人系统的示例性洞察的图形用户界面屏幕的示例。
40.图8是图示根据各种实施例的使用洞察来改进机器人系统的性能的处理的简化流程图。
41.图9描绘了用于实现各种实施例的分布式系统的简化图。
42.图10是根据各种实施例的系统环境的一个或多个组件的简化框图,通过该系统环境可以将实施例系统的一个或多个组件提供的服务提供为云服务。
43.图11图示了可以用于实现各种实施例的示例计算机系统。
具体实施方式
44.在以下描述中,将描述各种实施例。出于解释的目的,阐述了具体配置和细节以提供对实施例的透彻理解。但是,对于本领域技术人员来说显而易见的是,可以在没有具体细节的情况下实践这些实施例。此外,可以省略或简化众所周知的特征以免混淆所描述的实施例。
45.介绍
46.数字助理是人工智能驱动的接口,其帮助用户在自然语言对话(conversation)中完成各种任务。对于每个数字助理,客户可以组合一个或多个技能。技能(本文也称为聊天机器人、机器人或技能机器人)是专注于特定类型任务的个体机器人,其中特定类型任务诸如跟踪库存、提交工时卡和创建费用报告。当最终用户与数字助理互动时,数字助理评估最终用户输入并将对话路由到适当的聊天机器人和从适当的聊天机器人进行路由。数字助理可以通过多种通道供最终用户试用,其中通道诸如messenger、skypemessenger或短消息服务(sms)。通道从各种消息传递平台上的最终用户向数字助理及其各种聊天机器人来回传送聊天。通道还可以支持用户代理升级、事件发起的对话和测试。
47.意图允许聊天机器人理解用户希望聊天机器人做什么。意图由典型用户请求和语句(statement)的排列(permutations)组成,这也被称为话语(例如,获取账户余额、进行购买等)。如本文所使用的,话语或消息可以指在与聊天机器人的对话期间交换的一组单词(例如,一个或多个句子)。可以通过提供说明某个用户动作(例如,订购披萨饼)的名称并编译一组现实生活中的用户语句或通常与触发动作相关联的话语来创建意图。因为聊天机器
人的认知源自这些意图,因此每个意图都可以根据鲁棒(一到两打(dozen)话语)和变化的数据集被创建,使得聊天机器人可以解释歧义的用户输入。一组丰富的话语使聊天机器人能够在它接收到如“忘记这个订单!”或“取消投递!”这些意思相同但表达方式不同的消息之类的消息时理解用户想要干什么。意图和属于它们的话语共同构成了聊天机器人的训练语料库。通过使用语料库来训练模型,客户本质上可以将该模型转变为参考工具,用于将最终用户输入解析为单个意图。客户可以通过多轮意图测试和意图训练来提高聊天机器人认知的敏锐度。
48.但是,构建可以基于用户话语来确定最终用户意图的聊天机器人是具有挑战性的任务,部分原因在于自然语言的微妙性和歧义性以及输入空间(例如,可能的用户话语)的维度和输出空间的大小(意图数量)。因此,聊天机器人可能需要被训练、监视、调试和重新训练,以便提高聊天机器人的性能和与聊天机器人的用户体验。在常规系统中,提供的训练模型本质上是硬编码到设计系统中的默认训练模型,用于训练和重新训练数字助理或聊天机器人。例如,可以提供只需要小的训练语料库的第一模型,使得它可以使用匹配规则来开发实体、意图和训练语料库。当训练语料库已经成熟到测试显示出高度准确的意图解析的程度时,可以使用第二模型通过使用基于单词向量和其它基于文本的特征的机器学习进行训练来为聊天机器人的认知添加更深的维度。这些默认训练模型在所采用的训练方法中通常是不灵活的。因此,在没有更灵活的训练途径的情况下,可能难以识别聊天机器人低于预期性能的根本原因并确定如何改进聊天机器人。
49.分析系统可以与机器人系统集成以监视在最终用户和机器人系统之间的对话期间发生的事件、聚合和分析收集到的事件、并基于分析向用户提供可以用于改进机器人系统的性能(包括意图分类的性能)的信息。但是,(i)这些系统通常不识别低于预期性能的根本原因(代替地,它们提供诸如机器人a未能在时段n内识别意图x次的信息),并且由客户根据信息识别问题的根本原因,并且(ii)当在机器人系统内采用成百上千个机器人时,这些类型的分析系统可能会变得无效。
50.因此,需要不同的途径来解决这些问题。在各种实施例中,分析系统可以与机器人系统集成。分析系统可以采集对话日志和历史,并且将与和机器人系统的个体和/或聚合的最终用户对话相关的信息确定为包括表示对话的不同阶段或状态的不同节点的路径。例如,与机器人系统的最终用户对话可以由显示从状态到状态的变换的路径表示,其中每个状态可以由路径上的节点表示。可以为每个节点生成与机器人系统的用户对话的统计信息。路径包括(i)在给定时段内流过交谈流(dialog flow)的特定于意图的路径的对话数量,(ii)在每个状态之间维持的对话数量以及由于对话因值被设置(或未设置)而分支或者由于某个其它问题(如故障的自定义组件)而陷入僵局而采取的不同执行路径,以及(iii)提供对对话的最终成功或失败的洞察的最终状态。分析工具然后可以使用为每条路径和节点生成的信息来重新训练负责意图/路径的机器人系统或个体机器人。
51.在一些实施例中,分析系统的事件收集器可以收集与和机器人系统的一组对话相关联的一个或多个事件的一个或多个属性。事件收集器可重新配置以选择性地收集期望事件的期望属性。一个或多个事件可以包括例如对话事件、机器人状态事件、意图解析事件、实体解析事件、错误事件、超时事件或自定义事件中的至少一个。此后,分析系统的分析引擎可以使用由用户选择的一个或多个过滤准则,基于事件收集器收集的一个或多个事件的
一个或多个属性,从该组对话中选择一个或多个对话。一个或多个过滤准则可以包括例如在特定状态结束的对话、从特定状态开始的对话、已完成或未完成的对话、与特定最终用户意图相关联的对话、来自特定通道或场所(locale)的对话、在某个时间段期间发生的对话等。对于所选择的一个或多个对话,分析引擎可以计算该组对话的统计信息、与特定最终用户意图相关联的对话的统计信息、已完成对话的统计信息、未完成对话的统计信息、未确定最终用户意图的对话的统计信息、或其任意组合。分析引擎可以基于计算的统计信息生成用于改进机器人系统的选项。
52.在一些实施例中,分析引擎可以为所选择的一个或多个对话生成聚合路径图。聚合路径图可以包括多个节点和多个节点之间的多个连接。多个节点中的每个节点可以对应于机器人系统的相应状态。多个连接中的每个连接可以表示从机器人系统的一个状态到机器人系统的另一个状态的转变。多个节点可以包括开始节点和结束节点。在一些实施例中,聚合路径图可以包括与每个相应连接相关联的数字,其中该数字可以指示包括由相应连接表示的转变的对话的总数。
53.分析引擎可以将统计信息合并到聚合路径图中以确定附加信息,诸如在给定时段内流过交谈流的特定于意图的路径的对话数量、在每个状态之间维持的对话数量、以及由于对话因值被设置(或未设置)而分支或由于某个其它问题(如故障的自定义组件)而陷入僵局而采取的不同执行路径。可选地,可以使用统计信息和聚合路径图来重新训练机器人系统以改进机器人系统的性能,诸如重新训练机器人系统的意图分类模型以更准确地确定用户意图。
54.在一些实施例中,图形用户界面(gui)可以将与和机器人系统的个体和/或聚合的最终用户对话相关的信息显示为包括表示对话的不同阶段或状态的不同节点的路径。例如,与机器人系统的最终用户对话可以由显示从状态到状态的转变的路径表示,其中每个状态可以由路径上的节点表示。与机器人系统的用户对话的统计信息可以通过gui生成并以图形方式显示。分析系统的路径可视化可以允许管理员或开发人员基于不同的准则来过滤或选择与机器人系统的最终用户对话组。分析系统还可以为机器人系统的管理员或开发人员提供选项来选择和审查关注的个体对话。可视化路径信息可以允许机器人系统的管理员或开发人员可视地监视和分析最终用户如何与机器人系统进行交互以及机器人系统在对话期间如何执行以识别机器人系统的性能不佳的元素和对机器人系统的可能的改进。
55.如上所述,分析系统可以通过gui在不同概括级别提供关于与机器人系统的最终用户对话的信息,包括所有对话、满足某些准则的对话、与特定意图或最终状态相关联的对话、以及个体对话。由此,分析系统可以允许机器人系统的管理员或开发人员识别与未完成或不成功的对话相关联的特定最终用户话语和意图,从而识别和改进机器人系统的性能不佳的元素。通过分析和改进机器人系统的性能,可以改善对机器人系统的最终用户体验。
56.机器人和分析系统
57.机器人(也称为技能、聊天机器人、聊天者机器人或谈话机器人)是可以与最终用户进行对话的计算机程序。机器人通常可以通过使用自然语言消息的消息传递应用来响应自然语言消息(例如,问题或评论)。企业可以使用一个或多个机器人系统通过消息传递应用与最终用户通信。可以被称为通道的消息传递应用可以是最终用户已经安装并熟悉的最终用户优选的消息传递应用。因此,最终用户无需下载和安装新应用即可与机器人系统聊
天。消息传递应用可以包括例如上层(ott)消息传递通道(诸如,facebook messenger、facebook whatsapp、微信、line、kik、telegram、talk、skype、slack或sms)、虚拟私人助理(诸如,amazon dot、echo或show、google home、apple homepod等)、扩展了具有聊天能力的本地或混合/响应移动应用或web应用的移动和web应用扩展、或基于语音的输入(诸如,具有使用siri、cortana、google voice或其它言语输入进行交互的界面的设备或应用)。
58.在一些示例中,机器人系统可以与统一资源标识符(uri)相关联。uri可以使用字符串来识别机器人系统。uri可以用作一个或多个消息传递应用系统的webhook。uri可以包括例如统一资源定位符(url)或统一资源名称(urn)。可以将机器人系统设计为从消息传递应用系统接收消息(例如,超文本传输协议(http)post调用消息)。可以从消息传递应用系统将http post调用消息定向到uri。在一些实施例中,该消息可以不同于http post调用消息。例如,机器人系统可以从短消息服务(sms)接收消息。虽然本文的讨论可能指机器人系统接收到的作为消息的通信,但是应该理解的是,该消息可以是http post调用消息、sms消息或两个系统之间的任何其它类型的通信。
59.最终用户可以通过对话交互(有时称为对话用户界面(ui))与机器人系统进行交互,就像人与人之间的交互一样。在一些情况下,交互可以包括最终用户向机器人说“你好(hello)”,并且机器人以“嗨(hi)”进行响应并向最终用户询问它可以如何帮助。在一些情况下,交互也可以是与例如银行机器人的交易交互,诸如将钱从一个账户转移到另一个账户;与例如hr机器人的信息交互,诸如检查假期余额;或与例如零售机器人的交互,诸如讨论退货或寻求技术支持。
60.在一些实施例中,机器人系统可以智能地处理最终用户交互,而无需与机器人系统的管理员或开发人员进行交互。例如,最终用户可以向机器人系统发送一条或多条消息,以实现期望的目标。消息可以包括某些内容,诸如文本、表情符号、音频、图像、视频或传达消息的其它方法。在一些实施例中,机器人系统可以将内容转换成标准化形式(例如,针对具有适当参数的企业服务的代表性状态转移(rest)调用)并生成自然语言响应。机器人系统还可以提示最终用户提供附加输入参数或请求其它附加信息。在一些实施例中,机器人系统还可以发起与最终用户的通信,而不是被动地响应最终用户话语。本文描述了用于识别机器人系统的显式调用和确定被调用的机器人系统的输入的各种技术。在某些实施例中,显式调用分析由主机器人基于检测话语中的调用名称来执行。响应于调用名称的检测,可以细化话语以输入到与调用名称相关联的技能机器人。
61.与机器人的对话可以遵循包括多个状态的特定对话流。该流可以基于输入来定义接下来将发生什么。在一些实施例中,包括用户定义的状态(例如,最终用户意图)和在状态中或从一个状态到另一个状态要采取的动作的状态机可以用于实现机器人系统。对话可以基于最终用户输入来采用不同的路径,这可能会影响机器人针对该流做出的决定。例如,在每种状态下,机器人都可以基于最终用户输入或话语来确定最终用户的意图,以便确定要采取的下一个适当的动作。如本文和在话语的上下文中所使用的,术语“意图”是指提供话语的用户的意图。例如,用户可能打算与机器人进行订购披萨的对话,以便用户的意图可以通过话语“订购披萨”来表示。用户意图可以被引导到用户希望聊天机器人代表用户执行的特定任务。因此,话语可以被表述为反映用户意图的问题、命令、请求等。意图可以包括最终用户想要完成的目标。
62.在聊天机器人的配置的上下文中,术语“意图”在本文中用于指用于将用户的话语映射到聊天机器人可以执行的特定任务/动作或任务/动作的类别的配置信息。为了区分话语的意图(即,用户意图)和聊天机器人的意图,后者有时在本文中被称为“机器人意图”。机器人意图可以包括与该意图相关联的一组一个或多个话语。例如,订购披萨的意图可以具有表达想要为披萨下订单的各种话语排列。这些相关联的话语可以用于训练聊天机器人的意图分类器,以使意图分类器能够随后确定来自用户的输入话语是否与订购披萨意图匹配。机器人意图可以与用于在某个状态下开始与用户的对话的一个或多个交谈流相关联。例如,订购披萨意图的第一消息可能是“你想要哪种披萨?”的问题。除了相关联的话语之外,机器人意图还可以包括与意图相关的命名实体。例如,订购披萨意图可以包括用于执行订购披萨任务的变量或参数,例如,配料1、配料2、披萨类型、披萨大小、披萨数量等。实体的值通常是通过与用户的对话获得的。
63.图1是包含示例性实施例的分布式环境100的简化框图。分布式环境100包括数字助理构建器平台(dabp)102,其使企业能够为其用户创建和部署数字助理。出于本公开的目的,“数字助理”是帮助数字助理的用户通过自然语言对话完成各种任务的实体。数字助理可以仅使用软件来实现(例如,数字助理是使用可由一个或多个处理器执行的程序、代码或指令来实现的数字实体)、使用硬件来实现或使用硬件和软件的组合来实现。数字助理可以在各种物理系统或设备中(诸如在计算机、移动电话、手表、电器、车辆等中)实施或实现。数字助理有时也被称为聊天机器人系统。dabp 102可以用于创建一个或多个数字助理(或da)106。多个企业可以使用dabp 102为其用户创建数字助理。例如,如图1所示,表示特定企业的用户104可以使用dabp 102来为特定企业的用户创建和部署数字助理106。例如,餐馆(例如,披萨店)的所有者可以使用dabp 102来创建和部署使餐馆的顾客能够订购食物(例如,订购披萨)的数字助理。
64.一旦部署了数字助理106,用户108就可以使用数字助理106经由与数字助理106的基于自然语言的对话来执行各种任务。作为对话的一部分,用户108可以提供一个或多个用户输入110并且从数字助理106得到响应112。经由这些对话,用户可以请求要由数字助理106执行的一个或多个任务,并且作为响应,数字助理106被配置为执行用户请求的任务并且用适当的响应对用户进行响应。
65.用户输入110是自然语言并且被称为话语。用户话语可以是文本形式(例如,当用户键入某事作为对数字助理106的输入时)或音频输入或语音形式(例如,当用户说出某事作为对数字助理106的输入时)。话语通常在用户108所说的语言中。当用户输入110是语音形式时,语音输入被转换成该特定语言的文本形式的话语,然后文本话语由数字助理106处理。可以使用各种语音到文本处理技术将语音或音频输入转换成文本话语,然后由数字助理106进行处理。
66.由用户108输入或通过将语音输入转换成文本形式生成的文本话语可以是文本片段、句子、多个句子等。数字助理106被配置为向文本话语应用自然语言理解(nlu)技术来理解用户输入的含义。作为话语的nlu处理的一部分,数字助理106被配置为执行处理以理解话语的含义,这涉及识别一个或多个意图以及与话语对应的一个或多个实体。在理解话语的含义后,数字助理106可以响应于理解的含义或意图来执行一个或多个动作或操作。
67.例如,用户输入110可以请求订购披萨,例如“我想订购披萨”。数字助理106被配置
为理解话语的含义并采取适当的行动,这些行动可能涉及以请求关于用户想要订购的披萨的类型、披萨的大小、披萨的任何配料等的用户输入的问题来响应用户。数字助理106提供的响应112也可以是自然语言的形式,其可以涉及由数字助理106执行的自然语言生成(nlg)处理。一旦数字助理106具有来自用户的必要信息,数字助理106就可以使披萨被订购。数字助理106可以通过输出指示披萨已被订购的信息来结束与用户的对话。
68.在某些实施例中,如由数字助理106作为输入接收到的话语经历一系列或流水线处理步骤。这些步骤可以包括例如解析话语、理解话语的含义、提炼和改造话语以开发更易于理解的话语结构、确定要响应话语执行的动作、使得动作被执行、响应于用户话语生成要输出给用户的响应、向用户输出响应等。
69.由诸如数字助理106之类的数字助理执行的nlu处理可以包括各种nlp相关处理,诸如句子解析(例如,标记化、词形还原、识别句子的词性(part

of

speech)标记、识别句子中的命名实体、生成依赖树来表示句子结构、将句子分成子句、分析各个子句、解析指代(anaphoras)、执行组块等)。数字助理106可以使用nlp引擎和/或机器学习模型(例如,意图分类器)来将最终用户话语映射到特定意图(例如,聊天机器人可以执行的特定任务/动作或任务/动作的类别)。例如,基于机器学习的nlp引擎可以学习理解和分类来自最终用户的自然语言对话,并从对话中提取必要的信息以便能够采取精确的动作,诸如执行交易或从记录的后端系统查找数据。在某些实施例中,nlu处理或其部分由数字助理106本身执行。在一些其它实施例中,数字助理106可以使用其它资源来执行nlu处理的部分。例如,可以通过使用解析器、词性标注器和/或命名实体识别器处理句子来识别句子的句法和结构。在一种实现中,对于英语,使用斯坦福自然语言处理(nlp)组提供的解析器、词性标注器和命名实体识别器来分析句子结构和句法。这些是作为斯坦福corenlp工具包的一部分提供的。
70.虽然本公开中提供的各种示例显示了英语语言的话语,但这仅意味着作为示例。在某些实施例中,数字助理106还能够处理英语以外的语言的话语。在某些实施例中,数字助理106提供被配置用于对不同语言执行处理的子系统(例如,实现nlu功能的组件)。这些子系统可以被实现为可插拔单元,可以使用来自nlu核心服务器的服务调用来调用这些单元。这使得nlu处理对于每种语言都具有灵活性和可扩展性,包括允许不同的处理顺序。可以为各个语言提供语言包,其中语言包可以注册可以从nlu核心服务器提供服务的子系统列表,并且还可以在需要时利用所提供的通用子系统。
71.数字助理(诸如数字助理106)可以通过各种不同的通道(诸如但不限于,经由某些应用、经由社交媒体平台、经由各种消息传递服务和应用以及其它应用或通道)可供其用户使用。单个数字助理可以具有为它配置的若干通道,使得它可以被不同的服务同时访问和运行。
72.数字助理包含一个或多个技能或与一个或多个技能相关联。在某些实施例中,这些技能是个体聊天机器人(称为技能机器人),这些个体聊天机器人被设计为与用户进行交互并完成特定类型的任务,诸如跟踪库存、提交工时卡、创建费用报告、订购食物、检查银行账户、进行预订、购买小工具等。例如,对于图1中描绘的实施例,数字助理106包括技能116

1、116

2等。出于本公开的目的,术语“技能(skill)”和“技能(skills)”分别与术语“技能机器人(skill bot)”和“技能机器人(skill bots)”同义使用。
73.与数字助理相关联的每个技能通过与用户的对话帮助数字助理的用户完成任务,
其中对话可以包括由用户提供的文本或音频输入以及由技能机器人提供的响应的组合。这些响应可以是给用户的文本或音频消息的形式和/或使用呈现给用户以供用户进行选择的简单用户界面元素(例如,选择列表)。
74.可以存在多种方式将技能或技能机器人添加到数字助理。在一些情况下,企业可以开发技能机器人,然后使用dabp 102将其添加到数字助理。在其它情况下,可以使用dabp 102开发和创建技能机器人,然后将其添加到使用dabp 102创建的数字助理。在还有的其它情况下,dabp 102提供在线数字商店(称为“技能商店”),其提供针对广泛任务的多个技能。通过技能商店提供的技能可以暴露各种云服务。dabp 102的用户104可以经由dabp 102访问技能商店、选择期望的技能并将所选择的量表(scale)添加到使用dabp 102创建的数字助理。来自技能商店的量表可以按原样或以修改的形式添加到数字助理(例如,dabp 102的用户可以选择和克隆技能商店提供的特定技能机器人、对所选择的技能机器人进行定制或修改,然后将修改后的技能机器人添加到使用dabp 102创建的数字助理)。
75.在某些实施例中,使用主机器人/子(或从)机器人范例(paradigm)或体系架构来实现使用dabp 102创建和部署的数字助理。根据这种范例,数字助理被实现为与作为技能机器人的一个或多个子机器人进行交互的主机器人。例如,在图1所描绘的实施例中,数字助理106包括主机器人114和作为主机器人114的子机器人的技能机器人116

1、116

2等。在某些实施例中,数字助理106本身充当主机器人。
76.根据主

子机器人体系架构实现的数字助理使数字助理的用户能够通过统一的用户界面与多个技能进行交互。当用户与数字助理106互动时,用户输入由主机器人114接收,然后该主机器人处理用户输入以识别用户请求并基于该处理来确定用户请求任务是否可以由主机器人114本身处理,否则主机器人114选择适当的技能机器人116

1,116

2或116

3来处理用户请求并将对话路由到所选择的技能机器人116

1,116

2或116

3。这使得用户108能够通过通用的单个界面与被配置为执行特定任务的若干技能机器人进行对话并使用若干技能机器人。例如,对于为企业开发的数字助理106,数字助理106的主机器人114可以与具有特定功能的技能机器人116

1、116

2(诸如用于执行与客户关系管理(crm)相关的功能的crm机器人、用于执行与企业资源规划(erp)相关的功能的erp机器人、用于执行与人力资本管理(hcm)相关的功能的hcm机器人等)等接口。以这种方式,数字助理106的最终用户或消费者108只需要知道如何访问数字助理106。
77.在主机器人/子机器人基础设施中,主机器人被配置为知道技能机器人的列表。主机器人可以访问识别各种可用技能机器人的元数据,并且对于每个技能机器人,技能机器人的能力包括技能机器人可以执行的任务。在接收到话语形式的用户请求时,主机器人被配置为从多个可用技能机器人中识别或预测可以最好地服务或处理用户请求的特定技能机器人。然后,主机器人将话语(或话语的一部分)路由到该特定技能机器人以进行进一步处理。控制因此从主机器人流向技能机器人。主机器人可以支持多个输入和输出通道。
78.虽然图1中的实施例示出了包括主机器人114和技能机器人116

1、116

2和116

3的数字助理106,但这并不旨在进行限制。数字助理可以包括提供数字助理功能的各种其它组件(例如,其它系统和子系统)。这些系统和子系统可以仅以软件(例如,存储在计算机可读介质上并且可由一个或多个处理器执行的代码、指令)实现、仅以硬件实现、或以使用软件和硬件的组合的实现方式来实现。
79.dabp 102提供使得能够使用dabp 102来创建包括与数字助理相关联的一个或多个技能机器人的数字助理的基础设施和各种服务和特征。例如,可以通过克隆现有技能机器人、克隆现有技能机器人然后对技能机器人进行修改来创建技能机器人,或者可以使用dabp 102提供的工具和服务从头开始创建技能机器人。在某些实施例中,dabp 102提供技能商店或技能目录,其供应用于执行各种任务的多个技能机器人。dabp 102的用户可以从技能商店克隆技能机器人并创建新的技能机器人。
80.dabp 102还使得用户(例如,技能机器人设计者)能够从头开始创建技能机器人。在某些实施例中,在较高级别上,创建技能机器人包括以下步骤:
81.(1)为新技能机器人配置设置
82.(2)为技能机器人配置一个或多个意图
83.(3)为一个或多个意图配置实体
84.(4)训练技能机器人
85.(5)为技能机器人创建交谈流
86.(6)向技能机器人添加自定义组件
87.(7)测试和部署技能机器人
88.(1)为新技能机器人配置设置——技能机器人设计者可以为正在创建的技能机器人指定一个或多个调用名称。这些调用名称可以用于话语中,以明确识别和调用数字助理中的技能机器人。技能机器人设计者还可以为技能机器人指定示例话语。这些示例话语代表技能机器人的话语。当接收到用户输入时,数字助理的意图分析引擎将用户输入与这些示例话语进行比较,以确定是否要调用特定的技能机器人。
89.(2)为技能机器人配置一个或多个意图——技能机器人设计者可以为正在创建的技能机器人配置一个或多个意图(也称为机器人意图)。这些意图识别技能机器人可以为数字助理的用户执行的任务。每个意图被赋予名称。例如,对于被配置为帮助用户执行各种银行交易的技能机器人,技能机器人设计者可以为技能机器人指定意图,诸如“checkbalance(检查余额)”、“transfermoney(转钱)”、“depositcheck(存款检查)”等。对于每个意图,技能机器人设计者指定一组示例话语,该组示例话语代表并说明意图的含义,并且通常与由该意图执行的任务相关联。例如,对于checkbalance意图,示例话语可以包括“我的储蓄账户余额是多少?”、“我的支票账户中有多少钱?”、“我的账户中有多少钱”等。因此,典型的用户请求和语句的排列可以被指定为意图的示例话语。
90.(3)为技能机器人的一个或多个意图配置实体——在一些情况下,可能需要附加的上下文来使得技能机器人能够正确响应用户请求。例如,可能存在用户输入话语在技能机器人中解析为相同意图的情况。例如,在上面的示例中,话语“我的储蓄账户余额是多少?”和“我的支票账户里有多少钱?”两者都解析为相同的checkbalance意图,但这些话语是不同的请求,要求不同的事情。为了澄清此类请求,一个或多个实体被添加到意图中。使用银行技能示例,被称为accounttype(账户类型)的定义了被称为“支票”和“储蓄”的值的实体可以使得技能机器人能够解析用户请求并做出适当的响应。可以为技能机器人配置的某些意图指定一个或多个实体。因此,实体用于向意图本身添加上下文。实体有助于更完整地描述意图并使得技能机器人能够完成用户请求。在某些实施例中,存在两种类型的实体:(a)由dabp 102提供的内置实体,以及(2)可以由技能机器人设计者指定的自定义实体。内
置实体是可以与各种各样的机器人一起使用的通用实体。内置实体的示例包括但不限于与时间、日期、地址、号码、电子邮件地址、持续时间、重复时间段、货币、电话号码、url等相关的实体。自定义实体用于更多自定义的应用。例如,对于银行技能,accounttype实体可以由技能机器人设计者定义,其使得能够通过检查用户输入的关键字(如支票、储蓄和信用卡等)来进行各种银行交易。
91.(4)训练技能机器人——技能机器人被配置为接收用户输入、解析或以其它方式处理接收到的输入、以及识别或选择与接收到的用户输入相关的意图。为了实现这一点,必须训练技能机器人。在某些实施例中,基于为技能机器人配置的意图和与意图相关联的示例话语(统称为训练数据)来训练技能机器人,使得技能机器人可以将用户输入解析为其配置的意图之一。在某些实施例中,技能机器人由模型表示,该模型使用训练数据进行训练并且允许技能机器人辨别用户所说的内容(或在一些情况下试图说的内容)。dabp 102提供了各种不同的训练技术,这些训练技术可以由技能机器人设计者用来训练技能机器人,包括各种基于机器学习的训练技术、基于规则的训练技术和/或其组合,如本文关于基于dag的框架详细描述的。在某些实施例中,训练数据的一部分(例如,80%)用于训练技能机器人模型,而另一个部分(例如,剩余的20%)用于测试或核实模型。一旦经过训练,技能机器人就可以用来处理和响应用户话语。在某些情况下,用户的话语可以是只需要一个答案而无需进一步对话的问题。为了处理这种情况,可以为技能机器人配置q&a(问答)意图。这使得技能机器人能够输出对用户请求的答复,而无需更新交谈定义。q&a意图以与常规意图类似的方式创建。但是,q&a意图的交谈流与常规意图不同。
92.(5)为技能机器人创建交谈流——为技能机器人指定的交谈流描述了当响应于接收到的用户输入而解析针对技能机器人的不同意图时技能机器人如何反应。交谈流定义了技能机器人将采取的操作或动作(例如,技能机器人如何响应用户话语、技能机器人如何提示用户输入、技能机器人如何返回数据)。交谈流就像技能机器人所遵循的流程图。技能机器人设计者使用诸如降价(markdown)语言之类的语言来指定交谈流。在某些实施例中,被称为obotml的yaml版本可以用于指定技能机器人的交谈流。技能机器人的交谈流定义充当对话本身的模型,即,让技能机器人设计师编排技能机器人与技能机器人服务的用户之间的交互的模型。
93.在某些实施例中,交谈流定义包含三个部分:
94.(a)上下文部分
95.(b)默认转变部分
96.(c)状态部分
97.上下文部分——技能机器人设计者可以定义在上下文部分中的对话流中使用的变量。可以在上下文部分中命名的其它变量包括但不限于:用于错误处理的变量、用于内置或自定义实体的变量、使技能机器人能够识别和保留用户优选项的用户变量等。
98.默认转变部分——可以在交谈流状态部分或默认转变部分中定义技能机器人的转变。默认转变部分中定义的转变充当回退,并且在状态内没有定义适用的转变或者无法满足触发状态转变所需的条件时被触发。默认转变部分可以用于定义允许技能机器人优雅地处理意外用户动作的路由。
99.状态部分——交谈流及其相关操作被定义为管理交谈流内的逻辑的过渡状态序
列。交谈流定义内的每个状态节点对提供交谈中该点处所需功能的组件进行命名。因此,状态是围绕组件构建的。状态包含特定于组件的特性,并定义在组件执行之后被触发的到其它状态的转变。
100.可以使用状态部分来处理特殊情况场景。例如,有时你可能希望为用户提供暂时离开他们互动的第一技能以便在数字助理内的第二技能中做一些事情的选项。例如,如果用户正在与购物技能进行对话(例如,用户已进行了一些购买选择),那么用户可能想要跳转到银行技能(例如,用户可能想要确保他/她有足够的钱用于购买),然后返回购物技能以完成用户的订单。为了解决这个问题,可以将第一技能中的动作配置为发起与同一数字助理中的第二不同技能的交互,然后返回原始流。
101.(6)向技能机器人添加自定义组件——如上所述,在技能机器人的交谈流中指定的状态命名提供对应于状态所需的功能的组件。组件使得技能机器人能够执行这些功能。在某些实施例中,dabp 102提供用于执行广泛功能的一组预配置组件。技能机器人设计者可以选择这些预配置组件中的一个或多个,并将它们与技能机器人的交谈流中的状态相关联。技能机器人设计者还可以使用由dabp 102提供的工具来创建自定义组件或新组件,并将自定义组件与技能机器人的交谈流中的一个或多个状态相关联。
102.(7)测试和部署技能机器人——dabp 102提供使得技能机器人设计者能够测试正在开发的技能机器人的若干特征。然后可以部署技能机器人并将其包括在数字助理中。
103.虽然上面的描述描述了如何创建技能机器人,但类似的技术也可以用于创建数字助理(或主机器人)。在主机器人或数字助理级别,可以为数字助理配置内置系统意图。这些内置系统意图用于识别数字助理本身(即,主机器人)可以处理而无需调用与数字助理相关联的技能机器人的一般任务。为主机器人定义的系统意图的示例包括:(1)退出:当用户发信号通知期望退出数字助理中的当前对话或上下文时适用;(2)帮助:当用户请求帮助或指导时适用;以及(3)unresolvedintent(未解析意图):适用于与退出和帮助意图没有很好匹配的用户输入。数字助理还存储关于与数字助理相关联的一个或多个技能机器人的信息。
104.在主机器人或数字助理级别,当用户向数字助理输入短语或话语时,数字助理被配置为执行处理以确定如何路由对话。数字助理使用路由模型来确定这一点,该模型可以是基于规则的、基于ai的或其组合。数字助理使用路由模型来确定与用户输入对应的对话是要路由到特定技能进行处理、是由数字助理或主机器人本身根据内置系统意图进行处理、还是在当前交谈流中作为不同的状态进行处理。
105.在某些实施例中,作为该处理的一部分,数字助理确定用户输入是否使用其调用名称识别技能机器人。如果用户输入中存在调用名称,那么将其视为对与调用名称对应的技能机器人的显式调用。在这种场景中,数字助理可以将用户输入路由到显式调用的技能机器人以进行进一步处理。如果没有特定调用,那么在某些实施例中,数字助理评估接收到的用户输入并计算与数字助理相关联的系统意图和技能机器人的置信度分数。为技能机器人或系统意图计算的分数表示用户输入代表技能机器人被配置为执行的任务或代表系统意图的可能性。具有超过阈值(例如,置信阈值路由参数)的相关联计算置信度分数的任何系统意图或技能机器人都将被选择作为进一步评估的候选者。然后,数字助理从识别出的候选者中选择特定的系统意图或技能机器人以进一步处理用户输入。在某些实施例中,在一个或多个技能机器人被识别为候选者之后,与这些候选技能相关联的意图(根据每个技
能的意图模型)被评估并且置信度分数被应用于每个意图。一般而言,具有超过阈值的置信度分数的任何意图都被视为候选流。如果选择了特定技能机器人,那么用户输入将被路由到该技能机器人以进行进一步处理。如果选择了系统意图,那么根据所选择的系统意图执行一个或多个动作。
106.图2描绘了根据某些实施例的集成系统200,该集成系统包括机器人系统(诸如关于图1描述的数字助理或机器人系统106)和用于监视、分析、可视化和改进机器人系统的性能的机器人分析系统210。如图所示,机器人系统205可以包括连接器215和多个机器人引擎220,诸如交谈引擎222、意图建模器224、实体解析器226和自定义组件228。机器人系统205还可以包括数据库230、管理api 235、用户界面240和ui服务器245。机器人分析系统210可以包括收集器250、扩充(enrichment)引擎255、数据库260和rest服务器265。机器人分析系统210还可以包括用户界面270和ui服务器275。机器人分析系统210的收集器250可以收集在机器人系统205处发生的事件290。来自机器人分析系统210的反馈285可以通过用户界面270和用户界面245被提供给机器人系统205。
107.连接器215可以通过一个或多个通道(诸如通道286和287)充当机器人系统205与一个或多个最终用户之间的接口。每个通道可以是消息传递应用,诸如消息传递通道(诸如facebook messenger、facebook whatsapp、微信、line、kik、telegram、talk、skype、slack或sms)、虚拟私人助理(诸如amazon dot、echo或show、google home、apple homepod等)、扩展了具有聊天能力的本地或混合/响应移动应用或web应用的移动和web应用扩展、或基于语音的输入(诸如具有使用siri、cortana、google voice或其它语音输入进行交互的界面的设备或应用)。在一些实施例中,连接器215可以标准化来自不同通道的内容,使得机器人系统205可以跨不同的消息传递应用系统来分析内容。内容标准化处理可以包括将来自每种类型的消息传递应用的内容格式化为用于处理的公共格式。在一些实施例中,机器人系统205可以包括用于每个通道的一个或多个连接器。意图建模器228可以用于确定与最终用户话语相关联的最终用户意图。在标准化之后,可以确定单词的出现可以表示某种意图的概率。在一些示例中,可以使用基本概率算术来组合概率,就好像它们是独立的一样。
108.还可以提供示例以防止模型做出错误的断言。例如,特定的子短语或仅对于某种意图出现的单词可能导致错误的断言。类似地,可以防止模型使用属于用于训练的不同意图的相似句子来合成广泛规则。
109.实体解析器224可以识别与最终用户意图相关联的实体(例如,对象)。例如,除了由意图建模器228识别出的最终用户意图(诸如“订购披萨”)之外,实体解析器224还可以解析与意图相关联的实体,诸如披萨类型、配料等。
110.交谈引擎226可以用于处理最终用户与机器人系统之间的对话。例如,交谈引擎226可以基于由意图建模器228识别的最终用户意图以及与由实体解析器224识别的与最终用户意图相关联的实体来响应最终用户话语。在一些实施例中,交谈引擎226可以使用状态机,该状态机包括用户定义的状态(诸如,最终用户意图)和在状态中或从一个状态到另一个状态要采取以应对与最终用户的对话的动作。
111.自定义组件222可以包括用于特定机器人系统的定制模块。例如,金融机器人可以包括可以用于例如检查余额、转移资金或支付账单的自定义组件。
112.数据库230可以用于存储机器人系统的数据,诸如用于分类模型的数据、对话日志
等。机器人系统的管理员或开发人员可以使用管理api 235来管理机器人系统,诸如重新训练分类模型、编辑意图或以其它方式修改机器人系统。管理员或开发人员可以使用用户界面245和ui服务器240来管理机器人系统。
113.在机器人系统205正在运行时可以生成各种事件290。可以基于机器人系统中包括的一条或多条指令来生成事件290。例如,当机器人系统205已经进入特定状态时可以生成事件290,其中特定状态由机器人系统的管理员或开发人员定义。随着事件290的生成,机器人分析系统210可以收集、存储和分析事件290。当捕获事件290时,还可以收集与事件290相关联的附加信息,其中附加信息可以指示其中生成事件290的当前上下文。
114.例如,对话事件可以由交谈引擎226生成。对话事件可以包括机器人系统从最终用户设备接收到的消息(称为msg_received)。msg_received可以包括以下参数或变量中的一个或多个:消息的内容、机器人系统205接收到消息时的时间、接收到的消息的语言、设备特性(例如,版本或名称)、操作系统特性(例如,版本或名称)、地理位置特性(例如,互联网协议地址、纬度、经度等)、标识信息(例如,用户id、对话id、机器人系统id、租户id等)、时间戳(例如,创建的设备、发送的设备、收集器派生的时间戳)、通道等。
115.对话事件还可以包括由机器人系统205发送给最终用户设备的消息(称为msg_sent)。msg_sent可以包括以下中的一项或多项:消息的内容(例如,消息的文本或html)、机器人系统发送消息时的时间、消息的语言、消息的创建者(例如,机器人系统或最终用户设备)、设备特性、操作系统特性、浏览器特性(例如,版本或名称)、应用特性(例如,版本或名称)、地理位置特性(例如,互联网协议地址、纬度、经度等)、标识信息(例如,用户id、会话id、机器人系统id、租户id等)、通道(例如,facebook或webhook)等。
116.交谈引擎226还可以生成交谈状态执行事件。如上所述,交谈引擎226可以使用状态机来确定与最终用户的对话流。状态机可以包括一组状态和状态之间的转变规则。交谈引擎226可以为每个最终用户对话执行状态机,并且可以为交谈引擎226逐步处理最终用户话语的每个状态产生交谈状态执行事件。交谈状态执行事件的属性可以包括例如状态名称、组件名称、下一个动作、实体匹配、意图匹配、变量、用户查询语句、响应语句、执行时间、通信语言、设备特性、操作系统特性、地理位置特性、标识信息、时间戳、通道等。状态名称可以是当前执行的状态的名称或者是“错误状态”。组件名称可以是针对当前状态执行的机器人组件的名称。下一个动作可以是要执行的下一个动作。实体匹配可以是在当前消息中解析的实体。意图匹配可以是用分数值解析的意图。变量可以是当前状态的变量值。查询语句可以是最终用户发送的消息。响应语句可以是发送给最终用户的消息。执行时间可以是完成状态执行的时间戳。通信语言可以是对话的消息的语言。设备和/或操作系统特性可以与和机器人系统进行交互的最终用户相关联。浏览器和/或应用特性可以与和机器人系统进行交互的最终用户相关联。地理位置特性可以是与机器人系统进行交互的最终用户的位置。
117.由于意图建模器228的执行,可能发生意图解析事件。意图建模器228可以使用经训练的或其它方式定义的分类模型来基于最终用户话语从一组意图中识别最终用户意图。意图分类的结果可以被捕获为意图解析事件属性,其可以包括例如最终意图分类结果(诸如,识别出的意图)和与意图集中的每个相应意图相关联的置信度分数。
118.实体解析器224可以生成实体解析器事件。实体是与最终用户意图关联的对象。当
创建机器人系统时,可以确定实体定义规则。例如,除了解析诸如“定购披萨”之类的最终用户意图之外,机器人系统还可以使用实体解析器224来解析相关联的实体,诸如披萨类型、披萨顶配料等。可以在实体解析时捕获实体解析器事件。与实体解析器事件相关联的属性的示例可以包括实体名称、所应用的规则、搜索项、解析的状态、查询语句、实体类型、执行时间、通信语言、设备特性、操作系统特性、浏览器特性、应用特性、地理位置特性、标识信息、时间戳、通道等。实体名称可以是当前被解析的实体的名称。所应用的规则可以是例如在前、在后或聚合。搜索项可以是从(from)、到(to)、目的地(destination)、起源(origin)等。解析的状态可以是针对实体解析的交谈状态。查询语句可以是包含实体值的消息。实体类型可以是系统或派生的。执行时间可以是实体解析的时间戳。通信语言可以是对话的消息的语言。设备和/或操作系统特性可以与和机器人系统进行交互的最终用户相关联。浏览器和/或应用特性可以与和机器人系统进行交互的最终用户相关联。地理位置特性可以是与机器人系统进行交互的最终用户的位置。
119.自定义组件222也可以生成事件,诸如预定义事件或自定义事件。预定义事件可以是在执行自定义组件时捕获的特性。预定义事件的属性的示例可以包括:组件名称、事件名称、有效载荷、执行时间、通信语言、设备特性、操作系统特性、浏览器特性、应用特性、地理位置特性、标识信息、时间戳、通道等。组件名称可以是当前被执行的自定义组件的名称。事件名称可以是invoked(调用)、invocation_failed(调用失败)、replied(回应)、replied_failed(回应失败)等。在失败的情况下,有效载荷可以是失败的原因、堆栈跟踪等。执行时间可以是指示事件何时发生的时间戳。通信语言可以是对话的消息的语言。设备和/或操作系统特性可以与和机器人系统进行交互的最终用户相关联。浏览器和/或应用特性可以与和机器人系统进行交互的最终用户相关联。地理位置特性可以是与机器人系统进行交互的最终用户的位置。
120.自定义组件222还可以在自定义组件的执行期间发出自定义事件。自定义事件的属性的示例可以包括组件名称、事件名称、自定义有效载荷、执行时间、通信语言、设备特性、操作系统特性、浏览器特性、应用特性、地理位置特性、标识信息、时间戳、通道等。组件名称可以是当前被执行的自定义组件的名称。事件名称可以是用户定义的事件名称(例如,balance_retrieved(余额检索))。有效载荷可以是例如{“amount”:“usd 100”,“account”:“checking”}。执行时间可以是指示事件何时发生的时间戳。通信语言可以是对话的消息的语言。设备和/或操作系统特性可以与和机器人系统进行交互的最终用户相关联。浏览器和/或应用特性可以与和机器人系统进行交互的最终用户相关联。地理位置特性可以是与机器人系统进行交互的最终用户的位置。
121.错误事件和超时事件也可以由机器人系统205在执行期间生成。当发生错误时,可以生成错误事件。当最终用户对话在一段时间内处于非活动状态时,可以生成超时事件,该段时间可以在通道处进行配置。
122.当机器人系统205与最终用户进行对话并生成对应事件时,机器人分析系统210可以收集事件290和附加信息。例如,收集器250可以收集事件290和附加信息并将收集到的信息发送到队列。在一些实施例中,收集器250可以是可配置的并且可以被编程以根据需要收集上述不同的事件和/或事件属性。例如,收集器250可以被配置为捕获交谈状态属性、意图解析属性、实体解析属性、错误和超时属性或其组合。在一些实施例中,收集器250还可以被
配置为收集关于由除机器人系统之外的系统生成的事件280的信息。
123.扩充引擎255可以对收集到的事件和其它信息执行验证和扩充,并将它们写入到数据库260。例如,基于收集到的ip地址,扩充引擎255可以确定与ip地址相关联的最终用户的位置。作为另一个示例,扩充引擎255可以从收集到的信息中提取某些特征,诸如确定最终用户使用的web浏览器或通道。rest服务器265可以分析扩充的事件和其它信息并基于某些聚合度量295生成各种报告。报告可以通过ui服务器275在用户界面270上显示给机器人系统205的所有者、管理员或开发人员。机器人系统205的所有者、管理员或开发人员可以向机器人系统205提供反馈285以改进机器人系统205。
124.提供对机器人系统的性能的洞察的技术
125.图3是图示根据某些实施例的用于监视、分析、可视化和改进机器人系统的性能的处理的示例的简化流程图300。图3中描绘的处理可以由机器人分析系统(诸如关于图2描述的机器人分析系统)执行。图3中描绘的处理可以在由相应系统的一个或多个处理单元(例如,处理器、核(core))执行的软件(例如,代码、指令、程序)、硬件或其组合中实现。软件可以存储在非暂态存储介质上(例如,存储器设备上)。图3中呈现并在下面描述的处理旨在是说明性的而非限制性的。虽然图3描绘了以特定序列或顺序发生的各种处理步骤,但这并非旨在进行限制。在某些替代实施例中,这些步骤可以以一些不同的顺序执行,或者一些步骤也可以并行执行。
126.在步骤310处,机器人分析系统的事件收集器(诸如关于图2描述的收集器250)可以被配置为捕获与由机器人系统生成的某些事件相关联的某些属性。如上所述,机器人系统生成的事件可以包括例如对话事件、交谈状态执行事件、意图解析事件、实体解析事件和自定义组件生成的事件。事件收集器可以被配置为收集与各种事件相关联的期望事件或期望属性。在步骤320处,事件收集器可以基于事件收集器的配置收集在与机器人系统对话期间发生的事件的属性。在步骤330处,可以聚合和分析在对话期间发生并由事件收集器捕获的事件的属性。如上所述,在基于一些聚合度量进行聚合之前,事件的属性也可以被扩充并保存在数据库中。在步骤340处,可以基于聚合度量为对话生成各种分析洞察报告,诸如概览报告、意图报告、路径报告、对话报告、机器人改进报告、或其任意组合,如下文详细描述的。在步骤350处,分析系统可以在机器人所有者、管理员或开发人员的请求下提供关于满足特定准则的一个或多个对话(诸如以特定状态(例如,未完成或中止状态或错误状态)结束的对话)的信息。机器人所有者、管理员或开发人员可以通过选择通过图形用户界面提供的用于监视、分析、可视化、调试或改进机器人系统的性能的不同选项来过滤或选择对话。
127.如上所述,分析报告可以包括例如概览报告、意图报告、路径报告、对话报告、机器人改进报告或其任意组合。概览报告可以包括例如图示随时间推移已完成/未完成对话的趋势图,以及显示每个意图的对话计数的条形图。意图报告可以包括例如关于每个意图的对话和错误的信息,以及最流行或最不流行的对话流。路径报告可以包括描绘机器人系统的不同对话流的图表,以及诸如对话计数和错误度量之类的信息。对话报告可以显示对话日志的汇总。机器人改进报告可以提供关于意图分类结果的信息,该信息可以由机器人系统的管理员或开发人员使用来校正一些分类结果并使用校正后的分类结果来重新训练分类模型。
128.在一些实施例中,报告可以包括指示来自一个或多个最终用户的、其意图不能被
识别(有时称为未解析的意图)的一个或多个话语的信息。例如,机器人系统可以计算话语或来自最终用户的话语与意图相关联的可能性。如果可能性小于阈值,那么话语可能与意图无关。如果话语没有与任何意图相关联,那么机器人系统可能无法进一步进行对话。替代地,机器人系统可能需要询问一个或多个附加问题来识别意图。通过呈现关于在无法识别意图的情况下的话语的信息,洞察报告可以使用户能够重新配置机器人系统以在接收到与该话语相似的新话语时正确地识别意图。例如,洞察报告可以基于可能性来呈现一个或多个潜在意图,使得用户可以从一个或多个潜在意图中选择意图,使得该话语可以被添加到训练数据集用于训练分类模型以识别话语中的意图。
129.在一些实施例中,可以向用户呈现关于哪些对话成功以及哪些对话不成功的信息。此外,用户可以深入到对话数据中以识别错误并改进机器人系统的性能。通过分析最终用户对话的路径,可以为不同的对话类型(例如,意图)提供一个或多个性能度量。例如,用户可以按意图查看有多少对话是成功的,有多少是不成功的。在一些实施例中,可以存在预定义的阈值来确定多少百分比的成功对话被认为是好的,多少百分比被认为是中等的,以及多少百分比被认为是低的。对话成功的性能度量可以根据阈值用不同的颜色显示。用户还可以查看每次访问机器人系统的来源(例如,facebook、webhook等)。用户可以查看对话的总数、状态长度、每个意图的时间长度等。对话可以被分组为预定义的类型,诸如放弃的和已完成的。可以基于对话类型过滤对话度量来查看对话的子集。
130.在一些实施例中,可以按状态查看对话。对话流(或路径)可以是包括对话的一个或多个状态的图形可视化。在一些实施例中,可以通过对话类型(例如,放弃的、最流行的等)来过滤路径。在一些实施例中,例如对于路径中的给定状态,可以查看路径的错误条件。
131.在一些实施例中,可以查看路径的度量和/或元数据。度量可以包括路径实例的数量、路径长度、在路径流行度方面的排名以及完成路径的平均时间。
132.在一些实施例中,可以经由状态序列查看和分析对话类型的实例。在这样的实施例中,状态和对话可以被同步以识别错误和性能问题。
133.可以基于上述一个或多个事件来计算度量。度量可以在每天、每周、每月或自定义范围进行计算。基本度量的示例包括(1)独特的、总的、新的、活跃的、不活跃的或回访的最终用户的数量,(2)全部会话/对话,(3)平均、最大、中值或最小对话持续时间,(4)最终用户的两次对话之间的平均时间,(5)情绪(正面、负面或中性),(6)最终用户的数量、对话的数量或独特最终用户的数量,(7)平均、最大、中值或最小话语计数等。每个度量都可以按通道(例如,facebook或webhook)、地理(例如,国家、州、城市或邮政编码)、语言(例如,英语或西班牙语)、设备及其类型(例如,iphone、samsung、motorola、lg、hp或dell)、os及其版本(例如,windows、ios、android、mac或linux)、浏览器及其版本(例如,firefox、safari、internet explorer或chrome)、应用名称及其版本(例如,应用内的集成聊天)、代理类型(例如,机器人系统或用户设备)等进行过滤。在一些示例中,来自自定义组件的自定义事件可以具有由机器人开发人员使用客户体验分析(cxa)开发的自定义洞察报告。
134.可以使用最常用术语的巴斯图(buzz graph)和/或词云来分析对话。对话也可以按照每个类别的排名进行分类。也可以使用话语和对话的比较巴斯图。
135.在一些实施例中,机器人分析系统可以识别与机器人系统对话的哪些部分工作良好,哪些部分工作不好。机器人分析系统可以使用户能够深入到对话历史中、跟踪被放弃/
已完成的意图和对话、基于深度、时间或两者识别为已完成的路径所采用的最流行/最不流行的路径、或使用文字本识别所有放弃的对话的历史以排查对话被放弃的原因(例如,遍历的状态数、错误条件等)。在一些实施例中,可以过滤由机器人分析系统生成的结果。过滤可以基于通道、长度、意图、被放弃/已完成等。
136.在以下描述中,描述了分析洞察报告和图形用户界面屏幕的一些示例。需要注意的是,这些示例仅用于图示目的,并不旨在将本公开的范围限制为具体示例。
137.数字助理洞察
138.图4a描绘了根据某些实施例的显示与数字助理相关联的对话的汇总信息405的图形用户界面屏幕400的示例。如本文所述,数字助理是人工智能驱动的界面,其帮助用户在自然语言对话中完成各种任务。对于每个数字助理,组装一个或多个技能或聊天机器人。一个或多个技能或聊天机器人可以专注于特定类型的任务,诸如跟踪库存、提交工时卡和创建费用报告。可以为用户和数字助理的一个或多个聊天机器人之间的对话生成汇总信息405。汇总信息405可以与任何通道和任何场所或通道和场所的任何组合相关联。还可以为在特定时间段(诸如最近90天)内发生的对话生成汇总信息405。对于每个数字助理,用户可以查看洞察报告,这些洞察报告是关于使用模式的面向开发人员的分析。通过数字助理洞察报告,用户可以看到:(i)全部对话

给定时间段内的对话数量及其完成率,以及(ii)技能性能如何

数字助理中技能的流行度。
139.为了访问洞察报告,用户可以打开数字助理,然后在导航栏中选择洞察图标410,如图4a所示。用户还可以查看关于各个技能的详细报告,该报告显示诸如调用每个意图的频率(以及这些调用完成的百分比)以及用户通过该技能所采用的路径之类的内容,如下面关于技能洞察更详细讨论的。全部对话报告的屏幕截图包括用户可以选择的时间范围内的对话数量。这些对话可以被细分为:已完成的对话和错误(由于系统处理的错误、无限循环或超时而未完成的对话)。报告的左侧是包含状态和计数的列的表格。存在针对已完成、错误和未解析的行。右侧是示出在30天时段内完成的对话和其它对话的数量的图表。
140.图4b示出了“我的技能性能如何”报告的趋势选项卡的界面屏幕415,其示出了按技能的对话数量。在界面屏幕415的左侧是饼图,其示出了使用每个技能的对话420的百分比。右侧是示出在30天时段内每个技能的已完成对话的数量的图表。图4c示出了“我的技能性能如何”报告的汇总选项卡的界面屏幕425,其示出了每个技能的已完成对话、未解析对话和错误的数量。界面屏幕425包含具有技能、完成率、错误、未解析和性能历史的列的表格。
141.业务洞察线
142.图5a描绘了根据某些实施例的显示与数字助理相关联的对话的汇总信息的图形用户界面屏幕500的示例。这些仪表板洞察报告可以用于衡量企业已发布的技能在个人的基础上和作为一组完成对话的程度。更具体而言,这些报告可以用于返回给定企业当前生产的所有技能(或这些技能的选择)在给定时段内的以下关键绩效指标(kpi):(i)全部对话

对话总数,按已完成或未完成细分,(ii)已完成对话

按已完成对话数量对所选择的技能进行排名,以及(iii)未完成对话

按未完成对话数量对所选择的技能进行排名。客户可能还没有完成这些对话,因为他们失去了兴趣,或者因为他们被系统处理的错误(不是技能本身)、超时或技能定义中的缺陷导致的无限循环阻止。对于每个技能,报告提供了该时段
的超时、系统处理错误和无限循环的总计数。为了图示这些因素对技能总体失败的贡献有多大,报告呈现了饼图。
143.界面屏幕500示出作为业务洞察线的一部分的总对话报告。该报告由四个面板组成,从左到右分别是全部对话、已完成对话、未完成对话和错误。全部对话是比较已完成和未完成数据系列的饼图。已完成对话显示按已完成对话的数量排名的技能列表。用户可以使用“已完成降序”和“已完成升序”选项对该列表进行排序。未完成对话也具有技能列表,但在这里它们是按未完成对话的数量排名的。用户还可以使用已完成降序和已完成升序选项对该列表进行排序。与该列表相邻的是错误饼图,它比较了超时、无限循环和系统处理错误的数据系列。
144.图5b描绘了示出作为业务洞察线的一部分的我的技能性能报告的界面屏幕505。在界面屏幕505中,选择了个体技能选项卡。该报告显示一组行(每个技能一行),其包含以下列(从左到右):技能、完成率、错误、未解析意图、性能历史。报告的左上角是排序选项下拉菜单。在这个图像中,选择了全部升序。该报告可以用于查看所选择的时段内的所有技能和以每个技能为基础的对话完成率。更具体而言,该报告可以用于了解技能在完成率方面如何与彼此进行比较、已完成对话占该时段全部对话的数量。对于每个技能,该报告渲染性能历史线图,这是用于评估该技能的完成率在该时段内是增加、减少还是保持稳定的工具。该报告包括在此时段影响技能性能的其它因素:错误(系统处理的错误、无限循环、超时)的数量和未解析意图。对于这些,该报告对在此时段期间对于所有未完成对话未能解析达到置信度阈值的意图数量进行计数。
145.图5c描绘了示出所有所选择的技能的性能趋势的界面屏幕510,其可以使用作为业务洞察线的一部分的总体生态系统报告的堆积面积图进行查看。在界面屏幕510中,堆积面积图绘制已完成和未完成的数据系列。该图的y轴显示对话数量。x轴绘制日期(例如,1月7日、1月8日)。堆积面积图将该时段已完成的对话与客户因未解析的意图(或其它问题)而无法完成的对话以及因被客户放弃而仍未完成的对话进行对比。
146.图5d描绘了界面屏幕515,该界面屏幕示出了作为业务洞察线的一部分的“如何使我的机器人添加值?”报告。在界面屏幕515中,线图绘制了两个系列:代理和机器人。此图表的y轴是小时数。x轴绘制日期(例如,1月7日、1月8日)。对于通过诸如oracle服务云的服务与人工代理集成的技能,用户可以使用该报告将这些技能用于自行处理用户任务的小时数与人工处理必须花费帮助客户的小时数进行对比。(理想情况下,技能应该完成大部分工作。)
147.图5e描绘了界面屏幕520,该界面屏幕示出了作为业务洞察线的一部分的“用户如何与技能交互?”报告。在界面屏幕520中,提供了集群条形图,其中根据来自用户通道和代理通道的数据来绘制每个条。y轴显示数字。x轴命名技能,其对应于每个条集群。该流行度报告比较了所选择的时段内路由到每个技能的不同通道上的客户流量。该图表还包括用于代理集成的通道(当它存在时)。
148.技能洞察
149.图6a描绘了根据某些实施例的显示与数字助理相关联的对话的汇总信息的图形用户界面屏幕600的示例。这些仪表板洞察报告可以用于提供面向开发人员的分析,以查明技能问题,以便用户可以在这些问题导致麻烦之前解决这些问题。为了访问报告,用户可以
打开数字助理,然后在导航栏中选择洞察图标。仪表板报告包括概览报告、意图报告、路径报告、对话报告、重新训练器和可选的导出界面。概览

根据企业技能的用户随着时间的推移已放弃或完成的对话,向用户示出全部对话度量的图。该报告还向用户示出最重要的意图以及执行度量、最常用的通道以及对话持续时间和错误计数。概览报告也是用户对意图和对话报告的访问点。意图

为执行度量(状态、对话持续时间以及最流行和最不流行的路径)提供特定于意图的数据和信息。路径

示出意图的对话流的可视化表示。对话

显示技能用户交谈的实际文字本,在交谈流和聊天窗口的上下文中查看。重新训练器

用户可以通过适度的自学获得洞察以提高其技能的地方。导出

允许用户将洞察数据下载到csv文件,以便用户可以使用它来创建其自己的报告。
150.图6b描绘了示出作为技能洞察的一部分的概览报告的界面屏幕605。概览报告是仪表板,其关键绩效指标和图表示出你在给定时段内完成或未能完成的对话数量方面的技能。在界面屏幕605中,图像的左上侧示出洞察报告的面包屑路径:概览(这里所选择的)>意图>路径>对话>重新训练器。正右侧是日期选取器,其读取最近30天。正下方是标题为对话趋势的窗格。里面是带有两条趋势线(未完成和已完成)的线图。y轴是对话计数,x轴按月和年跟踪时间。在这个图像中,光标悬停在未完成行上以示出时间点的统计信息。
151.图6c示出了概览洞察报告的部分的界面屏幕610。它是称为意图的窗格。里面是水平的、堆积的条形图。它的(由条形图正下方的图例所标识的)部分是未完成和已完成。这个图表的y轴是意图,x轴是对话计数。在这个图像中,光标悬停在未完成部分中的一个部分以显示时间点的系列



值统计信息。从这个高级视图中,用户可以找到导致未完成对话的意图。用户还可以查看这些意图的使用频率是否证实了用户的用例,或者使其反转。服务于次要目的的意图的已完成对话的数量是否超过了用户主要意图的已完成对话的量?用更实际的词语来说,用户的披萨订购技能是否变成提交抱怨(file complaint)技能?
152.图6d示出了概览洞察报告的部分的界面屏幕615。这是称为对话的窗格。里面显示了关键绩效指标,这些关键绩效指标也是让用户可以访问其它洞察报告的超链接。这些指标是:对话(全部)。这被分解为已完成和未完成。在这个图像中,光标悬停在后者上方;顶部通道;平均持续时间;平均状态;以及错误条件。
153.图6e描绘了示出了作为技能洞察的一部分的意图报告的界面屏幕620。意图报告让用户更仔细地了解给定时段内每个意图的用户流量。虽然用户已经可以在概览页面上看到每个意图的已完成或未完成对话的数量,但意图报告通过显示所采用的路径和到达终点花费的平均时间长度来向用户显示这些对话是如何流过交谈流定义的。使用意图报告,用户可以隔离其交谈流中阻止对话完成的有问题部分。用户还可以使用该报告来细化交谈流。在一些实施例中,意图报告将交谈流渲染为地形图。它类似于交通地图(transit map),但这里每个站点是状态。为了向用户显示对话的进展情况(并帮助用户调试),该地图标识沿路每个状态的组件。用户可以滚动浏览该路径以查看从用户输入中插入的值在何处推动对话向前,以及在何处因用户输入不正确、无用户输入导致超时、系统错误或其它问题而停止。虽然已完成路径中的最后站点是绿色的,但对于出现这些问题的未完成路径,它是红色的。由于报告返回在给定时间段内为技能定义的意图,因此其内容会更改以反映在不同时间点已添加、重命名或从技能中移除的意图。对于每个意图,用户可以在给定时段内的已完成和未完成对话之间切换视图。
154.对于未完成的对话,用户可以使用未完成状态水平条形图来识别这些对话结束的状态,如图6e所示。图表625让用户发现重复出现的问题,因为它显示了特定状态是故障点的对话数量。洞察报告范围过滤器的正下方是洞察报告的导航路径:意图(这里所选择的)>路径>对话>重新训练器>导出。屏幕右上角是日期选取器(其在这个屏幕截图中显示“过去365天”)。在其上方是用于刷新洞察数据的状态消息。上面写着“上次更新在5分钟前”。正左侧是“刷新”图标。在最左上角是编辑图标。它旁边是洞察报告范围过滤器、通道和场所。在这个屏幕截图中,它们被设置为通道:全部和本地:全部。紧接在这些右侧是全部重置选项。意图显示在报告的最左侧。在它们的右侧,与第一意图平行的是结果下拉菜单。在这个图像中,已选择未完成选项。该报告被划分为三个独立部分:未完成状态:水平条形图。它的y轴显示状态。它的x轴显示对话的数量。在这个屏幕截图中,选择其中一个条来调用悬停文本,该文本解释了对话在这个状态停止的原因:超时。错误条件:在条形图中显示所选择状态的错误,按错误类型和实例数细分。最未完成的路径:一组未完成的执行路径的地形表示。对于这些路径中的每一个,报告显示以下两个指标:计数(通过路径的对话数)和平均持续时间(以秒为单位)。用户还可以沿着路径滚动以查看之前的状态。如本文详细描述的,使用路径报告,用户可以看到流在这个状态结束的原因(意味着错误、超时或不良用户输入)。
155.对于已完成的对话,用户可以使用已完成视图的统计信息和路径作为用户体验的指标,如图6f所示。例如,用户可以使用报告630来确定所花费的时间是否适合于任务,或者最短路径是否仍然导致减弱的用户体验,这种体验会使得用户放弃。例如,你能否通过使用复合袋实体代替提示和值设置组件插入值来引导用户更快地通过技能?洞察报告范围过滤器的正下方是该洞察报告的导航路径:意图(这里所选择的)>路径>对话>重新训练器>导出。屏幕左上角是日期选取器(其在这个屏幕截图中显示“最近30天”)。其上方是用于刷新洞察数据的状态消息。上面写着“上次更新在一分钟前”。正左侧是“刷新”图标。在最左上角是编辑图标。旁边是洞察报告范围过滤器、通道和场所。在这个屏幕截图中,它们被设置为通道:全部和本地:全部。紧接在这些右侧是全部重置选项。意图显示在报告的最左侧。在它们的右侧,与第一意图平行的是结果下拉菜单。在这个图像中,已选择已完成选项。在该选项被选择的情况下,报告输出被称为最多已完成路径的部分。它是一组已完成执行路径的地形表示。对于这些路径中的每一个,伴随左侧的每条路径是这两个指标:计数(通过路径的对话数)和平均持续时间(以秒为单位)。路径上方是报告返回的已完成路径组的一系列指标。它们是:路径;秒平均。这个数字进一步被分解为最快和最慢;以及状态平均。这个数字进一步被分解为最短和最长。
156.除了面向任务的意图的持续时间和路线之外,意图报告还返回无法被解析的话语。要查看这些话语,点击unresolvedintent(未解析意图)。图6g示出了意图洞察报告的部分的界面屏幕635。左上角是洞察报告的导航路径:意图(这里所选择的)>路径>对话>重新训练器>导出。意图显示在报告的最左侧。在这个屏幕截图中,已选择unresolvedintent。因此,屏幕上填充了两个窗格:最接近预测:水平条形图。意图在y轴上,意图计数在x轴上。最未解析的话语(在最接近预测窗格的正右侧):使用短语和分数列对话语进行排名。该报告不显示路径或速度,因为它们不适用于此用户输入。替代地,条形图根据无法解析为任何意图或有可能被解析(意味着系统可能猜测意图)但由于低置信度分数而无法这样做的话语数量对每个意图进行排名。通过点击条形图中的意图,用户可以看到按概率分数排序的这
些候选话语。在一些实施例中,这些是由重新训练器报告中的默认搜索准则返回的相同话语,因此用户可以将它们添加到那里。
157.图6h描绘了示出作为技能洞察的一部分的路径报告的界面屏幕640。路径报告让用户了解在给定时段内有多少对话流过交谈流的特定于意图的路径。它向用户显示每个状态之间维持的对话数量,以及由于对话因值被设置(或未设置)而分支或者由于某个其它问题(如故障的自定义组件)而陷入僵局而采取的不同执行路径。图6h专门示出了意图的执行路径的一部分。它看起来像地铁站,从左边开始,在右边结束。在中间,路径可以水平分支。沿途的各个状态类似于站点。状态通过方向箭头水平和垂直连接。每个箭头都带有数字,其表示已从一个状态传送到另一个状态的对话数量。在路径分支的情况下,在水平线上保持稳定的对话数量随着路径在不同方向分开而减少,相应地传送对话。
158.当针对意图的未完成执行路径在该报告上运行查询时,用户还可以选择最终状态。通过点击最终状态,用户可以从详细信息面板中显示的错误话语或最后一个客户话语中找到关于对话成功或失败的更多信息。图6i示出了当用户点击执行路径中的最终状态时路径洞察报告显示的统计信息的界面屏幕645。这个特定于状态的信息显示在面板中。该面板以突出显示的状态命名并具有以下部分:放弃—存在两个子部分:超时和错误;短语;以及对话—这是打开对话洞察报告的超链接。对于空白(或不是纯文本形式)或包含意外输入的任何客户话语,该报告显示空(null)响应。对于作为回发(postback)动作的非文本响应,它显示最近动作的有效载荷。例如:{"orderaction":"confirm""system.state":"ordersummary"}。
159.图6j描绘了示出作为技能洞察的一部分的对话报告的界面屏幕650。例如,点击图6i中所示的对话会打开对话报告,其中用户可以审查整个文字本。使用对话报告,用户可以检查对话的实际文字本,以便用户可以看到用户如何完成与意图相关的路径,以及他们为什么没有完成。要查看这些文字本,该报告允许用户按启用它们的意图进行过滤。用户可以添加如对话长度和结果的维度,其被标记为已完成或未完成。用户还可以切换视图以包含可能干扰对话的任何系统或自定义组件错误。报告返回的每一行都显示对话的文字本和传送它的路径。用户可以通过点击“查看对话”在聊天窗口的上下文中查看此交谈。
160.如图6j所示,在最左上角是编辑图标。它旁边是洞察报告范围过滤器、通道和场所。在这个屏幕截图中,它们被设置为通道:全部和本地:全部。紧接在这些右侧是全部重置选项。屏幕左上角是日期选取器(其在这个屏幕截图中显示“过去30天”)。其上方是用于刷新洞察数据的状态消息。上面写着“上次更新在几秒前”。正左侧是“刷新”图标。洞察报告范围过滤器的正下方是洞察报告的导航路径:意图>路径>对话(这里所选择的)>重新训练器。导航路径正下方是该报告的过滤选项。从左到右,它们是:意图、结果、排序方式和错误。意图、结果和排序方式是下拉菜单,而错误是切换开关(对于这个图像处于“关闭(off)”)。过滤选项下方是显示结果的表格。它具有以下列:意图;结果;时间;用户;以及机器人。用户和机器人列分别显示来自客户和技能两者的话语的文字本。文字本正左侧是称为查看对话的选项。表格右下角是分页控件。表格下方是称为“所选择的对话的详细信息”的部分,其显示文字本的地形表示。它是从左(开始)到右(对话结束)展开的线性交通地图,其中在对话过程期间经过的每个状态都被描绘为相当于站点或站。
161.图6k示出了在一些实施例中,可以在聊天窗口和文字本内混淆(**)各种数据以保
护如信用卡号的机密信息。具体而言,界面屏幕655在称为对话的面板内示出了用户技能机器人对话。紧靠左侧的这个面板上方是意图的名称和会话id。机器人用户聊天位于对话面板本身中,其中用户的话语在右侧,并且技能机器人的回复在左侧。在这个屏幕截图中,聊天中的所有数字都用星号混淆。例如,“我想要送**红玫瑰”。
162.图6l描绘了示出作为技能洞察的一部分的重新训练器的界面屏幕660。重新训练器让用户将用户输入合并到他们的训练语料库中,以改进技能或聊天机器人。客户可以使用不同的短语来要求相同的任务。该报告识别这些短语并建议用户可以分配它们的意图。与其它报告一样,用户可以过滤通过特定通道或场所传递的用户话语的对话历史,但这里用户可以按意图、按意图解析相关特性(最高置信度、赢边际(win margin))或者通过这些与小于、等于或大于比较运算符链接在一起的组合来搜索用户话语。报告返回的每个用户话语都附有100%堆积条形图,表示每个意图从最高到最低的置信度分辨率。用户可以参考图表的部分将用户输入与意图匹配。
163.如图6l所示,在最左上角是编辑图标。旁边是洞察报告范围过滤器、通道和场所。在这个屏幕截图中,它们被设置为通道:全部和本地:全部。紧接在这些右边是全部重置选项。洞察报告范围过滤器的正下方是洞察报告的导航路径:意图>路径>对话>重新训练器(在这个屏幕截图中所选择的)。导航路径正下方是重新训练器的过滤器选项。重新训练器允许你使用all(全部)或any(任何)对不同选项(位于屏幕左上角)和日期选取器(位于屏幕右上角)进行排序。在该日期选取器(其在这个屏幕截图中显示“过去30天”)的正上方是用于刷新洞察数据的状态消息。上面写着“上次更新在几秒前”。正左边是“刷新”图标。在这个屏幕截图中,选项为最重要意图名称、匹配和unresolvedintent。这是该特定报告的独特准则,但如果用户想要更多,那么用户可以点击 准则( criteria)按钮(位于屏幕右侧)添加另一组过滤器选项。位于过滤选项下方的左侧是搜索按钮。
164.重新训练器将话语排序到以下列中:话语:实际用户消息或话语。紧接在话语左边是选择选项。已解析的意图:话语或用户话语已被解析或匹配的意图(如果存在的话)。意图分类:100%的条形图,其由重新训练器对匹配意图的最佳猜测进行分割。每个不同片段有不同的颜色和紧邻右侧的相应“图例”。紧靠右侧的是匹配意图的名称,或者如果没有可以匹配的意图,那么重新训练器会显示选择意图。紧接在右边,存在选项打开菜单以选择意图(在没有匹配的情况下)或新的意图(在有匹配的情况下)。选择意图选项也显示在结果表上方,因此你可以将其用作过滤器。表格下方是添加示例按钮。屏幕左下角是结果的分页。在这个图像中,它是2页中的第1页。在一些实施例中,当用户将用户话语添加到他们的训练语料库时,需要考虑以下事项:当用户添加用户话语作为意图时,你将需要重新训练你的技能,用户不能添加已作为训练语料库中的话语存在的任何用户输入,用户可以将话语添加到各个意图,或者你可以通过点击话语然后点击添加示例来选择所有用户话语。
165.通过将最高置信度过滤器设置为低于为技能设置的置信度阈值,或者通过默认过滤器,意图匹配unresolvedintent,用户可以使用由意图处理框架做出的置信度排名来更新他们的训练语料库。这是有节制的自学—在保持技能完整性的同时增强意图解析。例如,报告的默认搜索准则向用户显示无法被解析为置信度水平的随机用户输入,因为它不合适、偏离主题或包含拼写错误。通过参考条形图片段和图例,用户可以分配用户输入:你可以通过分配由胡言乱语组成的输入来加强技能处理未解析意图的意图,或者用户可以将拼
写错误的条目添加到适当的面向任务的意图(例如,“发送钱”到发送钱意图)。例如,如图6m的界面屏幕665所示,如果用户的技能具有welcome(欢迎)意图,例如,用户可以分配不相关的、偏离主题的话语,对此用户的技能可以返回回答如“我不知道它,但我可以帮你订些花”。
166.图6n描绘了示出作为技能洞察的一部分的导出器(exporter)的界面屏幕670。各种洞察报告为用户提供了对洞察数据的不同视角,但如果用户需要以其它方式查看该数据,那么用户可以根据导出的洞察数据的csv文件来创建自己的报告。例如,用户可以通过创建导出任务来定义他们想要分析的数据种类。导出任务适用于技能的当前版本。一旦该任务完成,然后用户就可以下载csv文件。它以可读的格式包含如用户话语、技能响应、组件类型和状态名称等详细信息。导出页面按以下方式列出任务:名称:导出任务的名称。上次运行:最近一次运行任务的日期。创建者:创建任务的用户的名称。导出状态:已开始、进行中、失败、无数据(在为任务定义的日期范围内没有要导出的数据的情况下)、或已完成,这是可以让你将导出的数据下载为csv文件的超链接。悬停在失败状态上会显示解释性消息。
167.如图6n所示,屏幕右侧是日期选取器下拉菜单。面包屑路径正下方是添加导出按钮。这个按钮下方是搜索和过滤字段:按名称或创建者过滤、按状态过滤(下拉菜单)和排序方式(下拉菜单)。搜索字段下方是表格,该表格按以下列对导出进行排序,从左到右依次为名称、上次运行、创建者和状态。如果用户不想通过ui导出数据,而是更偏好其自己的代码或脚本来导出、存储或安排导出任务,那么用户可以引用rest api来获取与导出任务相关的端点、语法和方法、导出任务历史以及导出洞察数据本身。用户可能需要外部认证和授权流程才能以编程方式访问该api。
168.解释洞察数据的示例
169.在这个示例中,假设用户已经开发了称为flowershopbot的技能,其主要用例是订购鲜花以进行递送,但是在查看过去90天的活动后,用户可以立即从概览报告中看到某些事情错误。这里是一些应该引起用户注意的事情:kpi显示大多数对话(约57%)是未完成的(例如,参见图7a)。意图条形图显示的与用户可能希望看到的相反:orderflowers和welcome意图的执行路径未得到充分利用。它们应该是执行路径被大量遍历的最高排名意图,但是相反,它们的排名低于filecomplaint,即orderflowers的反面(例如,参见图7b)。在所选择的时间段内,主要用例orderflowers的几乎所有对话都仍未完成。另一方面,filecomplaint的对话具有100%的完成率,作为辅助功能的openfranchise也是如此。该图的unresolvedintent条显示该技能的训练可能存在一些差距,因为它无法识别该时段期间一半对话的话语。为了使这个技能重回正轨,用户可能需要使用意图和路径报告来查明用户从orderflowers执行路径中犯错的一个(或多个)状态。使用洞察预测和重新训练器,用户还可以将未解析的话语用于他们的训练语料库。
170.步骤1,查看意图报告中的orderflowers执行路径。首先,用户可以点击orderflowers条的未完成系列来打开意图报告(例如,参见图7c)。从未完成系列向下以orderflowers的未完成结果模式打开意图报告。报告的水平条形图向用户显示由于系统错误(system.defaulterrorhandler条)而停止的对话数,但它还向用户显示了对话提前结束的两个状态:makepayment和showflowersmenu(例如,参见图7d)。沿着路径滚动为这些状态提供了用户上下文:用户可以看到紧接在这些问题区域之前的状态,并且图标向用户显示
为流中的每个状态定义了哪些组件。在这方面特别关注的是makepayment和showflowersmenu状态,它们分别用system.interactive组件和system.commonresponse组件定义。
171.步骤2,审查路径报告以查看错误和用户话语。orderflowers的意图报告向用户显示对话结束的位置,但要找出原因,用户可以打开路径报告并按orderflowers意图、未完成的结果和makepayment作为最终状态进行过滤(例如,参见图7e)。该报告为用户提供了查看在共同起点之后对话的分支位置的额外维度。这里,对话分支是因为checkflowerbouquetentity状态。它的system.switch组件和apache freemarker表达式在用户话语明确提到花卉类型或花束名称时将客户路由到orderflowers或orderbouquet状态,或者在缺少这些详细信息时路由到showordertypemenu(system.list组件)。
[0172][0173][0174]
两个执行路径上都存在系统错误。用户可以通过点击路径中的红色system.output站来查看技能在其抛出这些错误之前接收到的话语。(例如,参见图7f)。
[0175]
为了查看对话的文字本,即,可能在技能终止会话时显示的标准“糟糕(oops)”消息中结束的文字本,用户可以点击对话打开对话报告。(例如,参见图7g)。如果报告表明在每个执行路径上都发生了大量系统错误,那么用户可能希望使用与错误转变相关的路由来
扩充交谈流定义,这允许客户继续使用该技能。排除超时故障—用户还可以看到这两条路径的共同故障点,即调用即时应用的makepayment状态。(或者在这种情况下,可能没有调用即时应用)。虽然系统错误在其它地方阻止了用户,但这里的空(null)响应表明用户似乎在即时应用被调用时放弃了该技能。点击对话打开文字本,其显示用户停止了即时应用的不足,或者从未费心完成它。由于客户在调用即时应用时始终放弃该技能,因此你需要调查问题是出在即时应用、交谈流定义还是两者的组合上。针对即时应用来检查交谈流,你需要核实以下:id与即时应用的名称匹配。sourcevariablelist特性变量中的值被设置并被填充到即时应用中。即时应用有效负载被存储在变量中。
[0176]
如果技能即时应用交互功能正常,那么客户可能此时失去兴趣。在该时段期间重新访问已完成的orderflowers执行路径的意图报告向你显示客户花费了大约三分钟来遍历50个状态。如果这看起来过长,那么你可以修订该技能,使其更高效地收集用户输入。还存在失败的showflowersmenu状态需要调查。要查看客户离开的地方,你可以打开路径报告,然后按orderflowers、incomplete和showflowersmenu作为最终状态进行过滤。点击showflowersmenu向你显示客户在此状态下已停止使用技能,这是使用system.commonresponse组件定义的。该技能超时是因为它没有回答客户的需求,该需求在这种情况下是一束红玫瑰。通过点击对话深入查看文字本,你会看到即使在客户拒绝进行选择之后,它也会改为自动选择雏菊。
[0177]
步骤3,使用重新训练器更新训练语料库。除了orderflowers执行路径的问题外,用户应该注意到概览显示该技能无法处理50%的客户输入。代替解析为面向任务的意图之一,将时段内的批量用户话语归类为unresolvedintent。这在一些情况下可能是合适的,但在其它情况下可能会向用户提供用户可以添加到训练语料库中的话语。用户可以通过执行以下操作来调查这些话语:点击意图;点击unresolvedintent;点击最接近预测图中的unresolvedintent条;以及审查未解析的话语面板。有一些话语引起用户的注意,因为它们可以帮助用户的技能实现其主要目标,即使客户输入包含拼写错误、俚语或非常规缩写:“get flowerss”(68%)和“i wud like to order flwrs.”(64%)。(例如,参见图7h)。
[0178]
为了将这些话语添加为训练数据,用户可以执行以下操作:点击重新训练器。通过添加以下准则来过滤这些话语的报告:意图匹配unresolvedintent并且最高意图置信度大于62%;通过从添加菜单中选择话语orderflowers,然后通过点击添加示例,将这些话语作为批量(bulk)添加到orderflowers意图;并重新训练技能(例如,参见图7i)。使用最接近预测图表和重新训练器,用户可以将胡言乱语与用户可以用来完善训练语料库的有用内容分开。用户还可以指示他们可能想要采取的方向来加强他们的技能。例如,如果有许多负面的未解析的用户话语,那么用户可能考虑添加意图(或者甚至创建独立的技能)来处理用户滥用。
[0179]
使用洞察改进机器人系统的性能的技术
[0180]
图8是图示根据某些实施例的用于使用洞察来改进机器人系统的性能的处理的示例的简化流程图800。图8中描绘的处理可以在由相应系统的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)、硬件或其组合中实现。软件可以存储在非暂态存储介质上(例如,存储器设备上)。图8中呈现并在下文描述的处理旨在说明性的和非限制性的。虽然图8描绘了以特定序列或顺序发生的各种处理步骤,但这并非旨在进行限制。
在某些替代实施例中,这些步骤可以以一些不同的顺序执行,或者一些步骤也可以并行执行。在某些实施例中,根据图8中呈现的处理产生的图形用户界面可以如图4a

4c、5a

5e和6a

6n之一中所描绘的那样呈现。
[0181]
在步骤810处,分析系统的事件收集器可以收集与和机器人系统的一组对话相关联的一个或多个事件的一个或多个属性。如上所述,事件收集器可以被重新配置以选择性地收集期望事件的期望属性。一个或多个事件可以包括例如对话事件、机器人状态事件、意图解析事件、实体解析事件、错误事件、超时事件或自定义事件中的至少一个。一个或多个属性可以包括以上关于例如图2描述的属性。在一些实施例中,与一组对话相关联的一个或多个事件的一个或多个属性可以被扩充并保存在数据存储库中。
[0182]
在步骤820处,分析系统的分析引擎可以基于由事件收集器收集的一个或多个事件的一个或多个属性,使用由用户选择的一个或多个过滤准则,从该组对话中选择一个或多个对话。一个或多个过滤准则可以包括例如在特定状态结束的对话、从特定状态开始的对话、已完成或未完成的对话、与特定最终用户意图相关联的对话、来自特定通道或场所的对话、在某个时间段期间发生的对话等。
[0183]
在步骤830处,分析系统的分析引擎可以为所选择的一个或多个对话生成一个或多个报告。在一些实施例中,分析引擎可以包括rest服务器。一个或多个报告可以包括例如包括该组对话的统计信息的报告、包括与特定最终用户意图相关联的对话的统计信息的报告、包括与特定最终用户意图相关联的对话的报告、包括未完成对话的统计信息的报告、包括未完成对话的报告、包括未确定最终用户意图的对话的统计信息的报告、包括未确定最终用户意图的对话的报告、包括用于改进机器人系统的选项的报告、或它们的组合。在一些实施例中,包括未确定最终用户意图的对话的报告可以包括:对于未确定最终用户意图的对话中的每个对话,指示对话和一组最终用户意图中的每个相应的最终用户意图之间的匹配的分数。
[0184]
在一些实施例中,一个或多个报告可以包括所选择的一个或多个对话的聚合路径图。聚合路径图可以包括多个节点和多个节点之间的多个连接。多个节点中的每个节点可以对应于机器人系统的相应状态。多个连接中的每个连接可以表示从机器人系统的一个状态到机器人系统的另一个状态的转变。多个节点可以包括开始节点和结束节点。在一些实施例中,聚合路径图可以包括与每个相应连接相关联的数字,其中该数字可以指示包括由相应连接表示的转变的对话的总数。在一些实施例中,多个节点中的每个节点可以是一个或多个用户可选择的项目中的用户可选择的项目。在一些实施例中,多个连接中的每个连接可以是一个或多个用户可选择的项目中的用户可选择的项目。
[0185]
在步骤840处,gui可以以图形方式显示来自一个或多个报告的第一报告和与第一报告相关联的一个或多个用户可选择的项目。一个或多个用户可选择的项目可以包括第一报告的至少一个元素。一个或多个用户可选择的项目中的至少一个可以对应于一个或多个过滤准则中的过滤准则。在一些实施例中,一个或多个用户可选择的项目可以包括用户可选择的项目,该用户可选择的项目在被选择时,使得一个或多个个体对话显示在gui上。在一些实施例中,一个或多个用户可选择的项目可以包括用于从该组对话中选择以特定状态结束的对话的菜单。在一些实施例中,一个或多个用户可选择的项目可以包括用于从该组对话中选择从特定状态开始的对话的菜单。在一些实施例中,一个或多个用户可选择的项
目可以包括用于从该组对话中选择已完成或未完成的对话的菜单。在一些实施例中,一个或多个用户可选择的项目可以包括用于从该组对话中选择与特定最终用户意图相关联的对话的菜单。
[0186]
在步骤850处,gui服务器可以通过gui接收一个或多个用户可选择的项目的用户选择。在860处,可以基于用户选择在gui上以图形方式显示来自一个或多个报告的第二报告。在一些实施例中,第二报告可以包括例如与个体对话相关联的话语以及与话语相关联的用户意图。
[0187]
可选地,在步骤870处,可以通过一个或多个用户可选择的项目中的用户可选择的项目接收用户输入。例如,一个或多个用户可选择的项目可以包括用户可编辑的项目,诸如话语和/或与话语相关联的意图。机器人系统的管理员或开发人员可以添加、移除或编辑话语和/或添加、移除或编辑话语的意图。用户输入可以包括修订后的话语或修订后的话语意图。
[0188]
可选地,在步骤880处,可以使用用户输入重新训练机器人系统以改进机器人系统的性能,诸如重新训练机器人系统的意图分类模型以更准确地确定用户意图。
[0189]
说明性系统
[0190]
图9描绘了分布式系统900的简化图。在所示示例中,分布式系统900包括经由一个或多个通信网络910耦合到服务器912的一个或多个客户端计算设备902、904、906和908。客户端计算设备902、904、906和908可以被配置为执行一个或多个应用。
[0191]
在各种示例中,服务器912可以适于运行一个或多个服务或软件应用,该服务或软件应用实现本公开中描述的一个或多个实施例。在某些示例中,服务器912还可以提供可以包括非虚拟和虚拟环境的其它服务或软件应用。在一些示例中,这些服务可以作为基于web的服务或云服务(诸如在软件即服务(saas)模型下)被提供给客户端计算设备902、904、906和/或908的用户。操作客户端计算设备902、904、906和/或908的用户可以进而利用一个或多个客户端应用与服务器912进行交互以利用由这些组件提供的服务。
[0192]
在图9所描绘的配置中,服务器912可以包括实现由服务器912执行的功能的一个或多个组件918、920和922。这些组件可以包括可以由一个或多个处理器执行的软件组件、硬件组件或其组合。应该认识到的是,各种不同的系统配置是可能的,其可以与分布式系统900不同。因此,图9中所示的示例是用于实现示例系统的分布式系统的一个示例并且不旨在进行限制。
[0193]
用户可以使用客户端计算设备902、904、906和/或908来执行一个或多个应用,该一个或多个应用可以生成一个或多个存储请求,该一个或多个存储请求然后可以根据本公开的教导被提供服务。客户端设备可以提供使客户端设备的用户能够与客户端设备进行交互的接口。客户端设备也可以经由该接口向用户输出信息。虽然图9仅描绘了四个客户端计算设备,但可以支持任意数量的客户端计算设备。
[0194]
客户端设备可以包括各种类型的计算系统,诸如便携式手持式设备、通用计算机,诸如个人计算机和膝上型计算机、工作站计算机、可穿戴设备、游戏系统、瘦客户端、各种消息传递设备、传感器和其它感测设备等。这些计算设备可以运行各种类型和版本的软件应用和操作系统(例如,microsoft、apple或类unix操作系统、linux或类linux操作系统,诸如google chrome
tmtm os),包括各种移动操作系统(例如,
microsoft windows、windows、android
tm
、palm)。便携式手持式设备可以包括蜂窝电话、智能电话(例如,)、平板电脑(例如,)、个人数字助理(pda)等。可穿戴设备可以包括google头戴式显示器和其它设备。游戏系统可以包括各种手持式游戏设备、启用互联网的游戏设备(例如,具有或不具有手势输入设备的microsoft游戏控制台、sony系统、由提供的各种游戏系统以及其它)等。客户端设备可以能够执行各种不同的应用,诸如各种与互联网相关的应用、通信应用(例如,电子邮件应用、短消息服务(sms)应用),并且可以使用各种通信协议。
[0195]
网络910可以是本领域技术人员熟悉的任何类型的网络,其可以使用多种可用协议中的任何协议来支持数据通信,包括但不限于tcp/ip(传输控制协议/互联网协议)、sna(系统网络体系架构)、ipx(互联网分组交换)、等。仅仅作为示例,网络910可以是局域网(lan)、基于以太网的网络、令牌环、广域网(wan)、互联网、虚拟网络、虚拟专用网(vpn)、内联网、外联网、公共电话交换网(pstn)、红外网络、无线网络(例如,在任何电气和电子协会(ieee)1002.11协议套件、蓝牙和/或任何其它无线协议下操作的网络)和/或这些和/或其它网络的任意组合。
[0196]
服务器912可以由一个或多个通用计算机、专用服务器计算机(作为示例,包括pc(个人计算机)服务器、服务器、中档服务器、大型计算机、机架安装的服务器等)、服务器场、服务器集群或任何其它适当的布置和/或组合组成。服务器912可以包括运行虚拟操作系统的一个或多个虚拟机,或者涉及虚拟化的其它计算体系架构,诸如可以被虚拟化以维护服务器的虚拟存储设备的逻辑存储设备的一个或多个灵活池。在各种示例中,服务器912可以适于运行提供前述公开中描述的功能的一个或多个服务或软件应用。
[0197]
服务器912中的计算系统可以运行一个或多个操作系统,包括以上讨论的任何操作系统以及任何商业可用的服务器操作系统。服务器912还可以运行各种附加服务器应用和/或中间层应用中的任何应用,包括http(超文本传输协议)服务器、ftp(文件传输协议)服务器、cgi(通用网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于可从器包括但不限于可从(国际商业机器)等商业可用的数据库服务器。
[0198]
在一些实现中,服务器912可以包括一个或多个应用以分析和整合从客户端计算设备902、904、906和908的用户接收到的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于从一个或多个第三方信息源和连续数据流接收到的馈送、更新或实时更新,其可以包括与传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视等相关的实时事件。服务器912还可以包括经由客户端计算设备902、904、906和908的一个或多个显示设备来显示数据馈送和/或实时事件的一个或多个应用。
[0199]
分布式系统900还可以包括一个或多个数据储存库914、916。在某些示例中,这些数据储存库可以用于存储数据和其它信息。例如,根据各种实施例,数据储存库914、916中的一个或多个可以用于存储信息,诸如与服务器912在执行各种功能时使用的洞察信息相
关的信息。数据储存库914、916可以驻留在各种位置。例如,服务器912使用的数据储存库可以在服务器912本地或可以远离服务器912并且经由基于网络的连接或专用连接与服务器912进行通信。数据储存库914、916可以是不同类型的。在某些示例中,服务器912使用的数据储存库可以是数据库,例如关系数据库,诸如由oracle公司(oracle)和其它供应商提供的数据库。这些数据库中的一个或多个可以适于响应于sql格式的命令来实现去往和来自数据库的数据的存储、更新和检索。
[0200]
在某些示例中,应用还可以使用数据储存库914、916中的一个或多个来存储应用数据。应用使用的数据储存库可以是不同类型的,诸如例如键

值存储储存库、对象存储储存库或文件系统支持的通用存储储存库。
[0201]
在某些示例中,本公开中描述的功能可以经由云环境被提供为服务。图10是根据某些示例的其中各种服务可以被提供为云服务的基于云的系统环境的简化框图。在图10中描绘的示例中,云基础设施系统1002可以提供一个或多个云服务,该一个或多个云服务可以由使用一个或多个客户端计算设备1004、1006和1008的用户请求。云基础设施系统1002可以包括一个或多个计算机和/或服务器,这些计算机和/或服务器可以包括上面针对服务器912描述的那些计算机和/或服务器。云基础设施系统1002中的计算机可以被组织为通用计算机、专用服务器计算机、服务器场、服务器集群或任何其它适当的布置和/或组合。
[0202]
网络1010可以促进客户端1004、1006和1008与云基础设施系统1002之间的数据的交换和通信。网络1010可以包括一个或多个网络。网络可以是相同的或不同的类型。网络1010可以支持一种或多种通信协议,包括有线和/或无线协议,用于促进通信。
[0203]
图10中描绘的示例仅仅是云基础设施系统的一个示例,并且不旨在进行限制。应该认识到的是,在一些其它示例中,云基础设施系统1002可以具有比图10所示的组件更多或更少的组件、可以组合两个或更多个组件,或者可以具有不同的组件配置或布置。例如,虽然图10描绘了三个客户端计算设备,但是在替代示例中可以支持任何数量的客户端计算设备。
[0204]
术语“云服务”通常用于指由服务提供商的系统(例如,云基础设施系统1002)根据需要并且经由诸如互联网之类的通信网络对用户可用的服务。典型地,在公共云环境中,组成云服务提供商系统的服务器和系统与客户自己的内部服务器和系统不同。云服务提供商的系统由云服务提供商管理。客户因此可以利用由云服务提供商提供的云服务,而不必为服务购买单独的许可证、支持或硬件和软件资源。例如,云服务提供商的系统可以托管应用,并且用户可以经由互联网按需订购和使用应用,而用户不必购买用于执行应用的基础设施资源。云服务被设计为提供对应用、资源和服务的轻松、可扩展的访问。若干提供商提供云服务。例如,由加利福尼亚州redwood shores的oracle公司(oracle)公司提供了若干云服务,诸如中间件服务、数据库服务、java云服务等。
[0205]
在某些示例中,云基础设施系统1002可以使用诸如软件即服务(saas)模型、平台即服务(paas)模型、基础设施即服务(iaas)模型以及包括混合服务模型的其它模型之类的不同模型来提供一个或多个云服务。云基础设施系统1002可以包括一套应用、中间件、数据库以及使得能够供给各种云服务的其它资源。
[0206]
saas模型使得应用或软件能够作为服务通过如互联网的通信网络被递送给客户,而客户不必为底层应用购买硬件或软件。例如,saas模型可以用于为客户提供对由云基础
设施系统1002托管的按需应用的访问。由oracle公司(oracle)提供的saas服务的示例包括但不限于用于人力资源/资本管理、客户关系管理(crm)、企业资源计划(erp)、供应链管理(scm)、企业绩效管理(epm)、分析服务、社交应用及其它的各种服务。
[0207]
iaas模型通常用于向客户提供基础设施资源(例如,服务器、存储装置、硬件和联网资源)作为云服务,以提供弹性计算和存储能力。oracle公司(oracle)提供了各种iaas服务。
[0208]
paas模型通常用于提供平台和环境资源作为服务,其使得客户能够开发、运行和管理应用和服务,而客户不必采购、构建或维护此类资源。由oracle公司(oracle)提供的paas服务的示例包括但不限于oracle java云服务(jcs)、oracle数据库云服务(dbcs)、数据管理云服务、各种应用开发解决方案服务、以及其它服务。
[0209]
通常基于按需自助服务、基于订阅、弹性可缩放、可靠、高度可用和安全的方式来提供云服务。例如,客户可以经由订阅订单订购由云基础设施系统1002提供的一个或多个服务。然后,云基础设施系统1002执行处理,以提供客户的订阅订单中所请求的服务。例如,用户可以请求云基础设施系统获得洞察数据,如上所述,并为本文描述的聊天机器人系统提供服务。云基础设施系统1002可以被配置为提供一种或甚至多种云服务。
[0210]
云基础设施系统1002可以经由不同的部署模型来提供云服务。在公共云模型中,云基础设施系统1002可以由第三方云服务提供商拥有,并且云服务被提供给任何普通公众客户,其中客户可以是个人或企业。在某些其它示例中,在私有云模型下,可以在组织内(例如,在企业组织内)操作云基础设施系统1002,并向组织内的客户提供服务。例如,客户可以是企业的各个部门,诸如人力资源部门、工资部门等,甚至是企业内的个人。在某些其它示例中,在社区云模型下,云基础设施系统1002和所提供的服务可以由相关社区中的若干组织共享。也可以使用各种其它模型,诸如上面提到的模型的混合。
[0211]
客户端计算设备1004、1006和1008可以是不同类型的(诸如图9中描绘的客户端计算设备902、904、906和908),并且可以能够操作一个或多个客户端应用。用户可以使用客户端设备与云基础设施系统1002进行交互,诸如请求由云基础设施系统1002提供的服务。例如,用户可以使用客户端设备来请求如本公开中描述的洞察数据。
[0212]
在一些示例中,由云基础设施系统1002执行的用于提供服务的处理可能涉及大数据分析。这种分析可能涉及使用、分析和操纵大型数据集来检测和可视化数据内的各种趋势、行为、关系等。这种分析可以由一个或多个处理器执行、可能并行处理数据、使用数据执行仿真等。例如,大数据分析可以由云基础设施系统1002执行,用于确定聊天机器人系统的洞察数据。用于这种分析的数据可以包括结构化数据(例如,存储在数据库中或根据结构化模型结构化的数据)和/或非结构化数据(例如,数据blob(二进制大对象))。
[0213]
如在图10的示例中所描绘的,云基础设施系统1002可以包括基础设施资源1030,其用于促进由云基础设施系统1002提供的各种云服务的供给。基础设施资源1030可以包括例如处理资源、存储或存储器资源、联网资源等。在某些示例中,可用于服务从应用请求的存储的存储虚拟机可以是云基础设施系统1002的一部分。在其它示例中,存储虚拟机可以是不同系统的一部分。
[0214]
在某些示例中,为了促进这些资源的高效供给以支持由云基础设施系统1002为不同客户提供的各种云服务,可以将资源捆绑成资源模块或资源的集合(也称为“群聚
(pod)”)。每个资源模块或群聚可以包括一种或多种类型的资源的预先集成和优化的组合。在某些示例中,可以为不同类型的云服务预先供给不同的群聚。例如,可以为数据库服务供给第一组群聚,可以为java服务供给第二组群聚,其中第二组群聚可以包括与第一组群聚中的群聚不同的资源组合。对于一些服务,可以在服务之间共享为供给服务而分配的资源。
[0215]
云基础设施系统1002本身可以内部使用服务1032,服务1032由云基础设施系统1002的不同组件共享并且促进云基础设施系统1002的服务供给。这些内部共享的服务可以包括但不限于安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。
[0216]
云基础设施系统1002可以包括多个子系统。这些子系统可以用软件或硬件或其组合来实现。如图10所示,子系统可以包括用户界面子系统1012,该用户界面子系统1012使得云基础设施系统1002的用户或客户能够与云基础设施系统1002进行交互。用户界面子系统1012可以包括各种不同的界面,诸如web界面1014、在线商店界面1016(其中由云基础设施系统1002提供的云服务被广告并且可由消费者购买)和其它界面1018。例如,客户可以使用客户端设备,使用接口1014、1016和1018中的一个或多个来请求(服务请求1034)由云基础设施系统1002提供的一个或多个服务。例如,客户可以访问在线商店、浏览由云基础设施系统1002提供的云服务,并且为客户希望订阅的由云基础设施系统1002提供的一个或多个服务下订单。服务请求可以包括识别客户和客户期望订阅的一个或多个服务的信息。例如,客户可以为云基础设施系统1002提供的服务下订单。作为订单的一部分,客户可以提供识别要为其提供服务的聊天机器人系统的信息以及可选的用于聊天机器人系统的一个或多个凭证。
[0217]
在某些示例中,诸如图10中描绘的示例,云基础设施系统1002可以包括被配置为处理新订单的订单管理子系统(oms)1020。作为该处理的一部分,oms 1020可以被配置为:为客户创建账户(如果尚未创建);接收来自客户的账单和/或记账信息,该账单和/或记账信息将用于针对向客户提供所请求的服务向客户计费;验证客户信息;在验证后,为客户预订订单;以及编排各种工作流程来准备用于供给的订单。
[0218]
一旦被正确地验证,oms 1020就可以调用订单供给子系统(ops)1024,其被配置为为订单供给资源,包括处理资源、存储器资源和联网资源。供给可以包括为订单分配资源,以及配置资源以促进由客户订单所请求的服务。为订单供给资源的方式和供给资源的类型可以取决于客户已订购的云服务的类型。例如,根据一个工作流程,ops 1024可以被配置为确定所请求的特定云服务,并且识别可能已经针对该特定云服务而被预先配置的多个群聚。为订单分配的群聚的数量可以取决于所请求的服务的大小/数量/级别/范围。例如,可以基于服务所支持的用户的数量、正在请求的服务的持续时间等来确定要分配的群聚的数量。然后,可以针对特定的请求客户来自定义所分配的群聚,用于提供所请求的服务。
[0219]
在某些示例中,如上所述的设置阶段处理可以由云基础设施系统1002作为供应处理的一部分来执行。云基础设施系统1002可以生成应用id并从云基础设施系统1002自身提供的存储虚拟机中或从除云基础设施系统1002以外的其它系统提供的存储虚拟机中为应用选择存储虚拟机。
[0220]
云基础设施系统1002可以向发出请求的客户发送响应或通知1044以在所请求的
服务现在准备好使用时进行指示。在一些情况下,可以将信息(例如,链接)发送给客户,使客户能够开始使用和利用所请求服务的益处。在某些示例中,对于请求服务的客户,响应可以包括由云基础设施系统1002生成的聊天机器人系统id和识别由云基础设施系统1002为与聊天机器人系统id对应的聊天机器人系统选择的聊天机器人系统的信息。
[0221]
云基础设施系统1002可以向多个客户提供服务。对于每个客户,云基础设施系统1002负责管理与从客户接收到的一个或多个订阅订单相关的信息、维护与订单相关的客户数据、以及向客户提供所请求的服务。云基础设施系统1002还可以收集关于客户对已订阅的服务的使用的使用统计信息。例如,可以针对使用的存储量、传输的数据量、用户的数量以及系统正常运行时间和系统停机时间量等收集统计信息。该使用信息可以用于向客户计费。计费可以例如按月周期进行。
[0222]
云基础设施系统1002可以并行地向多个客户提供服务。云基础设施系统1002可以存储这些客户的信息,包括可能的专有信息。在某些示例中,云基础设施系统1002包括身份管理子系统(ims)1028,其被配置为管理客户信息并提供所管理的信息的分离,使得与一个客户相关的信息不可被另一个客户访问。ims 1028可以被配置为提供各种与安全相关的服务,诸如身份服务,诸如信息访问管理、认证和授权服务、用于管理客户身份和角色及相关能力的服务等。
[0223]
图11图示了计算机系统1100的示例。在一些示例中,计算机系统1100可以用于在分布式环境以及上述各种服务器和计算机系统内实现任何数字助理或聊天机器人系统。如图11所示,计算机系统1100包括各种子系统,包括经由总线子系统1102与多个其它子系统进行通信的处理子系统1104。这些其它子系统可以包括处理加速单元1106、i/o子系统1108、存储子系统1118和通信子系统1124。存储子系统1118可以包括非暂态计算机可读存储介质,其包括存储介质1122和系统存储器1110。
[0224]
总线子系统1102提供用于使计算机系统1100的各种组件和子系统按照期望彼此通信的机制。虽然总线子系统1102被示意性地示为单条总线,但是总线子系统的替代示例可以利用多条总线。总线子系统1102可以是若干类型的总线结构中的任何总线结构,包括存储器总线或存储器控制器、外围总线、使用任何各种总线体系架构的局部总线等。例如,此类体系架构可以包括工业标准体系架构(isa)总线、微通道体系架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)局部总线和外围组件互连(pci)总线,其可以实现为根据ieee p1386.1标准制造的夹层(mezzanine)总线等。
[0225]
处理子系统1104控制计算机系统1100的操作,并且可以包括一个或多个处理器、专用集成电路(asic)或现场可编程门阵列(fpga)。处理器可以包括单核或多核处理器。可以将计算机系统1100的处理资源组织成一个或多个处理单元1132、1134等。处理单元可以包括一个或多个处理器、来自相同或不同处理器的一个或多个核、核和处理器的组合、或核和处理器的其它组合。在一些示例中,处理子系统1104可以包括一个或多个专用协处理器,诸如图形处理器、数字信号处理器(dsp)等。在一些示例中,处理子系统1104的一些或全部处理单元可以使用自定义电路(诸如专用集成电路(asic)或现场可编程门阵列(fpga))来实现。
[0226]
在一些示例中,处理子系统1104中的处理单元可以执行存储在系统存储器1110中或计算机可读存储介质1122上的指令。在各个示例中,处理单元可以执行各种程序或代码
指令,并且可以维护多个并发执行的程序或进程。在任何给定的时间,要执行的程序代码中的一些或全部可以驻留在系统存储器1110中和/或计算机可读存储介质1122上,包括可能在一个或多个存储设备上。通过适当的编程,处理子系统1104可以提供上述各种功能。在计算机系统1100正在执行一个或多个虚拟机的情况下,可以将一个或多个处理单元分配给每个虚拟机。
[0227]
在某些示例中,可以可选地提供处理加速单元1106,以用于执行定制的处理或用于卸载由处理子系统1104执行的一些处理,从而加速由计算机系统1100执行的整体处理。
[0228]
i/o子系统1108可以包括用于向计算机系统1100输入信息和/或用于从计算机系统1100或经由计算机系统1100输出信息的设备和机制。一般而言,术语“输入设备”的使用旨在包括用于向计算机系统1100输入信息的所有可能类型的设备和机制。用户界面输入设备可以包括例如键盘、诸如鼠标或轨迹球之类的指向设备、并入到显示器中的触摸板或触摸屏、滚轮、点击轮、拨盘、按钮、开关、小键盘、带有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户界面输入设备还可以包括使用户能够控制输入设备并与之交互的诸如microsoft运动传感器的运动感测和/或姿势识别设备、microsoft360游戏控制器、提供用于接收使用姿势和口语命令的输入的界面的设备。用户界面输入设备还可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍摄图片和/或进行菜单选择时的“眨眼”)并将眼睛姿势转换为到输入设备(例如,google)的输入的google眨眼检测器。此外,用户界面输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,导航器)进行交互的语音识别感测设备。
[0229]
用户界面输入设备的其它示例包括但不限于:三维(3d)鼠标、操纵杆或指示杆、游戏板和图形平板、以及音频/视频设备,诸如扬声器、数字相机、数字摄录机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3d扫描仪、3d打印机、激光测距仪、以及眼睛注视跟踪设备。此外,用户界面输入设备可以包括例如医疗成像输入设备,诸如计算机断层摄影、磁共振成像、位置发射断层摄影、以及医疗超声检查设备。用户界面输入设备也可以包括例如音频输入设备,诸如midi键盘、数字乐器等。
[0230]
一般而言,术语“输出设备”的使用旨在包括所有可能类型的设备和用于从计算机系统1100向用户或其它计算机输出信息的机构。用户界面输出设备可以包括显示子系统、指示器灯或诸如音频输出设备的非可视显示器等。显示子系统可以是阴极射线管(crt)、诸如利用液晶显示器(lcd)或等离子体显示器的平板设备、投影设备、触摸屏等。例如,用户界面输出设备可以包括但不限于:可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备和调制解调器。
[0231]
存储子系统1118提供用于存储由计算机系统1100使用的信息和数据的储存库或数据存储库。存储子系统1118提供了用于存储提供某些示例的功能的基本编程和数据构造的有形非暂态计算机可读存储介质。存储子系统1118可以存储软件(例如,程序、代码模块、指令),该软件在由处理子系统1104执行时提供上述功能。软件可以由处理子系统1104的一个或多个处理单元执行。存储子系统1118还可以根据本公开的教导提供认证。
[0232]
存储子系统1118可以包括一个或多个非暂态存储器设备,包括易失性和非易失性存储器设备。如图11所示,存储子系统1118包括系统存储器1110和计算机可读存储介质1122。系统存储器1110可以包括多个存储器,包括用于在程序执行期间存储指令和数据的
易失性主随机存取存储器(ram)以及其中存储有固定指令的非易失性只读存储器(rom)或闪存。在一些实现中,基本输入/输出系统(bios)可以典型地存储在rom中,该bios包含有助于诸如在启动期间在计算机系统1100内的元件之间传递信息的基本例程。ram通常包含当前由处理子系统1104操作和执行的数据和/或程序模块。在一些实现中,系统存储器1110可以包括多种不同类型的存储器,诸如静态随机存取存储器(sram)、动态随机存取存储器(dram)等。
[0233]
作为示例而非限制,如图11所示,系统存储器1110可以加载正在被执行的可以包括各种应用(诸如web浏览器、中间层应用、关系型数据库管理系统(rdbms)等)的应用程序1112、程序数据1114和操作系统1116。作为示例,操作系统1116可以包括各种版本的microsoft、apple和/或linux操作系统、各种商用或类unix操作系统(包括但不限于各种gnu/linux操作系统、googleos等)和/或移动操作系统,诸如ios、phone、os、os、os操作系统、以及其它操作系统。
[0234]
计算机可读存储介质1122可以存储提供一些示例的功能的编程和数据构造。计算机可读介质1122可以为计算机系统1100提供计算机可读指令、数据结构、程序模块和其它数据的存储。当由处理子系统1104执行时,提供上述功能的软件(程序、代码模块、指令)可以存储在存储子系统1118中。作为示例,计算机可读存储介质1122可以包括非易失性存储器,诸如硬盘驱动器、磁盘驱动器、诸如cd rom、dvd、(蓝光)盘或其它光学介质的光盘驱动器。计算机可读存储介质1122可以包括但不限于,驱动器、闪存存储器卡、通用串行总线(usb)闪存驱动器、安全数字(sd)卡、dvd盘、数字视频带等。计算机可读存储介质1122也可以包括基于非易失性存储器的固态驱动器(ssd)(诸如基于闪存存储器的ssd、企业闪存驱动器、固态rom等)、基于易失性存储器的ssd(诸如基于固态ram、动态ram、静态ram、dram的ssd、磁阻ram(mram)ssd)、以及使用基于dram和基于闪存存储器的ssd的组合的混合ssd。
[0235]
在某些示例中,存储子系统1118还可以包括计算机可读存储介质读取器1120,其还可以连接到计算机可读存储介质1122。读取器1120可以接收并且被配置为从诸如盘、闪存驱动器等的存储器设备读取数据。
[0236]
在某些示例中,计算机系统1100可以支持虚拟化技术,包括但不限于处理资源和存储器资源的虚拟化。例如,计算机系统1100可以提供用于执行一个或多个虚拟机的支持。在某些示例中,计算机系统1100可以执行诸如促进虚拟机的配置和管理的管理程序之类的程序。可以为每个虚拟机分配存储器、计算(例如,处理器、核)、i/o和联网资源。每个虚拟机通常独立于其它虚拟机运行。虚拟机通常运行其自己的操作系统,该操作系统可以与由计算机系统1100执行的其它虚拟机执行的操作系统相同或不同。因此,计算机系统1100可以潜在地同时运行多个操作系统。
[0237]
通信子系统1124提供到其它计算机系统和网络的接口。通信子系统1124用作用于从计算机系统1100接收数据以及向其它系统传输数据的接口。例如,通信子系统1124可以使得计算机系统1100能够经由互联网建立到一个或多个客户端设备的通信信道,以用于从客户端设备接收信息以及向客户端设备发送信息。例如,当计算机系统1100用于实现图1中
描绘的机器人系统120时,通信子系统可以用于与应用系统以及执行为应用选择的存储虚拟机的系统进行通信。
[0238]
通信子系统1124可以支持有线和/或无线通信协议两者。在某些示例中,通信子系统1124可以包括用于(例如,使用蜂窝电话技术、高级数据网络技术(诸如3g、4g或edge(全球演进的增强数据速率)、wifi(ieee 802.xx族标准)、或其它移动通信技术、或其任意组合)接入无线语音和/或数据网络的射频(rf)收发器组件、全球定位系统(gps)接收器组件和/或其它组件。在一些示例中,作为无线接口的附加或替代,通信子系统1124可以提供有线网络连接(例如,以太网)。
[0239]
通信子系统1124可以以各种形式接收和传输数据。在一些示例中,除了其它形式之外,通信子系统1124还可以以结构化和/或非结构化的数据馈送1126、事件流1128、事件更新1130等形式接收输入通信。例如,通信子系统1124可以被配置为实时地从社交媒体网络的用户和/或其它通信服务接收(或发送)数据馈送1126,诸如馈送、更新、诸如丰富站点摘要(rss)馈送的web馈送、和/或来自一个或多个第三方信息源的实时更新。
[0240]
在某些示例中,通信子系统1124可以被配置为以连续数据流的形式接收本质上可能是连续的或无界的没有明确结束的数据,其中连续数据流可以包括实时事件的事件流1128和/或事件更新1130。生成连续数据的应用的示例可以包括例如传感器数据应用、金融报价机、网络性能测量工具(例如网络监视和流量管理应用)、点击流分析工具、汽车流量监视等。
[0241]
通信子系统1124也可以被配置为将数据从计算机系统1100传送到其它计算机系统或网络。数据可以以各种不同的形式(诸如结构化和/或非结构化数据馈送1126、事件流1128、事件更新1130等)传送给一个或多个数据库,该一个或多个数据库可以与耦合到计算机系统1100的一个或多个流传输数据源进行通信。
[0242]
计算机系统1100可以是各种类型中的一种,包括手持式便携式设备(例如,蜂窝电话、计算平板、pda)、可穿戴设备(例如,google头戴式显示器)、个人计算机、工作站、大型机、信息站、服务器机架或任何其它数据处理系统。由于计算机和网络不断变化的性质,对图11中描绘的计算机系统1100的描述旨在仅仅作为具体示例。具有比图11中所绘出的系统更多或更少组件的许多其它配置是可能的。基于本文所提供的公开内容和教导,应该认识到的是,可以存在实现各种示例的其它方式和/或方法。
[0243]
虽然已经描述了特定的示例,但是各种修改、变更、替代构造以及等同物都是可能的。示例不限于在某些特定数据处理环境内的操作,而是可以在多个数据处理环境内自由操作。此外,虽然已经使用一系列特定的事务和步骤描述了某些示例,但是对于本领域技术人员来说显而易见的是,这并不旨在进行限制。虽然一些流程图将操作描述为顺序处理,但是许多操作可以并行或同时执行。此外,操作的次序可以被重新布置。处理可能具有图中未包括的其它步骤。上述示例的各种特征和方面可以被单独使用或联合使用。
[0244]
另外,虽然已经使用硬件和软件的特定组合描述了某些示例,但是应该认识到的是,硬件和软件的其它组合也是可能的。某些示例可以仅用硬件或仅用软件或其组合来实现。本文描述的各种处理可以以任何组合在相同的处理器或不同的处理器上实现。
[0245]
在将设备、系统、组件或模块描述为被配置为执行某些操作或功能的情况下,这样
的配置可以通过以下方式来实现:例如,通过设计电子电路来执行操作、通过对可编程电子电路(诸如微处理器)进行编程来执行操作,诸如通过执行计算机指令或代码,或处理器或核被编程为执行存储在非暂态存储介质上的代码或指令,或其任意组合来执行操作。进程可以使用各种技术进行通信,其中技术包括但不限于用于进程间通信的常规技术,并且不同对的进程可以使用不同的技术,或者同一对进程可以在不同时间使用不同的技术。
[0246]
在本公开中给出了具体细节以提供对示例的透彻理解。但是,可以在没有这些具体细节的情况下实践示例。例如,已经示出了众所周知的电路、处理、算法、结构和技术,而没有不必要的细节,以避免使示例模糊。本描述仅提供示例性示例,并且不旨在限制其它示例的范围、适用性或配置。相反,示例的先前描述将为本领域技术人员提供用于实现各种示例的实现描述。可以对元件的功能和布置进行各种改变。
[0247]
因此,说明书和附图应被认为是说明性的而不是限制性的。但是,将显而易见的是,在不脱离权利要求书所阐述的更广泛的精神和范围的情况下,可以对其进行添加、减少、删除以及其它修改和改变。因此,虽然已经描述了具体的示例,但是这些示例并不旨在进行限制。各种修改和等同形式均在所附权利要求的范围内。
[0248]
在前述说明书中,参考其具体示例描述了本公开的方面,但是本领域技术人员将认识到本公开不限于此。上述公开的各种特征和方面可以被单独或联合使用。此外,在不脱离本说明书的更广泛的精神和范围的情况下,可以在超出本文描述的环境和应用的任何数量的环境和应用中利用示例。因此,本说明书和附图被认为是说明性的而不是限制性的。
[0249]
在前面的描述中,为了说明的目的,以特定顺序描述了方法。应该认识到的是,在替代示例中,可以以与所描述的顺序不同的顺序来执行这些方法。还应该认识到的是,上述方法可以由硬件组件执行或可以实施在机器可执行指令的序列中,这些指令可以用于使机器(诸如通用或专用处理器或用指令编程的逻辑电路)执行方法。这些机器可执行指令可以存储在一个或多个机器可读介质(诸如cd

rom或其它类型的光盘、软盘、rom、ram、eprom、eeprom、磁卡或光卡,闪存,或适合存储电子指令的其它类型的机器可读介质)上。替代地,这些方法可以通过硬件和软件的组合来执行。
[0250]
在组件被描述为被配置为执行某些操作的情况下,这种配置可以通过例如设计电子电路或其它硬件来执行操作、通过对可编程电子电路(例如,微处理器或其它合适的电子电路)进行编程来执行操作,或其任意组合来完成。
[0251]
虽然本文已经详细描述了本技术的说明性示例,但是应该理解的是,本发明构思可以以其它方式被不同地实施和采用,并且所附权利要求旨在被解释为包括这样的变型,除了受现有技术的限制。
再多了解一些

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

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

相关文献