计算机代理消息机器人的制作方法

文档序号:16807439发布日期:2019-02-10 13:11阅读:167来源:国知局
计算机代理消息机器人的制作方法

消息机器人是计算机硬件的配置(例如,专用硬件逻辑组件和/或利用软件配置的硬件),这样的配置在被运行或执行时,自动使用自然语言对话来交互,这可以包括接收自然语言指令、处理这些指令、以及利用自然语言对话脚本来响应。自然语言是人类之间的自然会话中所使用的语言,诸如汉语普通话、西班牙语、英语、印地语、阿拉伯语、葡萄牙语、日语、德语、法语等。自然语言还可以包括在各种不同上下文中人类之间的自然会话中所使用的语言修改,这样的上下文诸如是数字消息会话、面对面会话等。例如,这样的修改可以包括形式语言、缩写和/或俚语的混合。消息机器人通常已被用于与计算机可读简档进行对话,计算机可读简档是计算机系统中的计算机可读简档数据的集合,这样的计算机可读简档数据的集合在计算机环境中可以是活动的(诸如,针对简档的凭证已经被提交到计算机系统中,以登录到具有该简档的环境中),其中机器人从一个或多个简档接收自然语言指令,并且通过生成和发送响应对话脚本来对指令进行响应。



技术实现要素:

本文讨论的工具和技术涉及计算机代理消息机器人。例如,计算机系统可以利用计算机代理消息机器人来与多个计算机可读简档进行对应的自然语言对话。

在一个示例方面中,工具和技术可以包括:经由计算机代理消息机器人从计算机可读的第一简档接收第一组自然语言指令。可以经由代理机器人分析第一组自然语言指令。另外,可以经由代理机器人,使用自然语言指令的分析的结果,来生成第一自然语言对话脚本和第二自然语言对话脚本,其中第二自然语言对话脚本包括从第一组自然语言指令导出的自然语言数据。第一自然语言对话脚本可以经由代理机器人被发送到第一简档,第二自然语言对话脚本可以被发送到第二计算机可读简档,这两个动作均响应于来自第一简档的第一组指令。

以简化形式提供发明内容章节,以引入一系列概念。这些概念下面在具体实施方式中被进一步描述。本发明内容无意标识所要求保护主题的关键特征或必要特征,也无意用于限制所要求保护主题的范围。类似地,本发明不限于解决在

背景技术:
、具体实施方式、或者附图中讨论的特定技术、工具、环境、劣势、或优势的实施方式。

附图说明

图1是所描述的方面中的一个或多个方面可以被实现在其中的合适计算环境的框图。

图2是消息机器人计算机系统的示意图。

图3是来自图2的消息机器人计算机系统的运行时引擎的组件的框图。

图4是代理机器人计算机系统的示意图。

图5是图示第一简档与代理机器人之间的第一对话以及第二简档与代理机器人之间的第二对话的示意图。

图6是计算机代理消息机器人技术的流程图。

具体实施方式

本文所描述的方面涉及用于计算机消息机器人的改进的技术和工具。这样的改进可以通过各种技术和工具的单独或组合使用来实现。

这样的技术和工具可以包括使计算机消息机器人(代理机器人)充当用于两个简档的代理或中间人,其中该代理与第一简档进行第一自然语言对话,并且与第二简档进行对应的第二自然语言对话,其中代理机器人使用对来自第一简档的指令的分析的结果,来生成不同的对话脚本并且向两个简档中的每个简档发送出不同的对话脚本。该简档可以经由不同的消息服务来与代理机器人交互。例如,一个简档可以经由通用文本消息服务、诸如简单消息服务(sms)来进行交互,并且另一简档可以利用不同的消息服务、诸如视频聊天和/或语言呼叫服务来进行交互。每个简档可以与代理消息机器人自然地交互、并且被呈已有自身与代理消息机器人的会话,并且每个简档可能无法接收来自与其他用户简档的会话的一些或全部指令和/或对话脚本,或者无法被呈现这样的一些或全部指令和/或对话脚本。另外,简档中的一个或全部都可以被给出选项,以从上文所讨论的代理模式切换到直通模式,其中两个简档之间的消息被直通通过其他简档,而不更改消息的自然语言内容(尽管消息的格式可以被修改,如下文更详细讨论的)。

这些代理消息机器人工具和技术可以解决先前已存在于消息机器人中的技术限制。这样的消息机器人通常仅在某个时间、在与特定事项相关的单个自然语言对话中进行交互。例如,简档可以与消息机器人交互来针对物品下订单。当订单被完成,订单可以被电子转发到另一简档以使订单被完成。如果进行订单完成的简档发现该订单不能被完成,则进行订单完成的简档可以参与另一通信,以联系与下订单的简档相关联的用户——可以通过发送电子邮件信息或拨打电话。这样的附加交互可能浪费计算资源,因为需要附加的通信以及通信的附加线路的建立来解决问题。这样的附加交互还可能降低计算机系统的利用率。当然,消息机器人可能完全被排除在外,需要放置直接呼叫或者其他传统的下订单技术。然而,这些技术将不法提供与消息机器人的使用相同的效率和用户友好性,消息机器人以自然并且熟悉的对话语言来使用自然语言提供与计算机系统的自动化组件交互。

本文讨论的代理机器人工具和技术可以通过允许代理消息机器人与第一用户简档进行对话并且与第二用户简档进行另一相关对话,来提供对这些问题的解决方案,其中由第一用户简档提供的指令被用于生成以及向两个用户简档发送出对话脚本,从而提供两个不同对话之间的相关性。这实现了计算机消息机器人的效率,但可以减少上文所述的低效率中的一个或多个,提供了在自然语言对话中利用消息机器人的高效方式,这样的自然语言对话可以受益于来自多个简档的输入,并且多个简档甚至可能通过不同的消息服务在不同的对话中交互。

所附权利要求中定义的主题不必然被限于本文所述的益处。本发明的特定实施方式可以提供本文所述益处中的全部、一些益处或不提供本文所述益处中的任何益处。尽管为了呈现,在本文中以特定的次序顺序来描述针对各种技术的操作,但应当理解,这样的描述方式涵盖操作顺序中的重新布置,除非要求了特定顺序。例如,被顺序描述的操作可以在一些情况下被重新布置或被同时执行。此外,为了简明起见,流程图可能未示出特定技术可以与其他技术结合使用的各种方式。

本文所述的技术可以与本文所述的系统中的一个或多个系统和/或与一个或多个其他系统一起使用。例如,本文所述的各种程序可以与硬件或软件、或两者的组合一起实现。例如,以下参考图1讨论的处理器、存储器、存储装置、(多个)输出设备、(多个)输入设备和/或通信连接均可以是一个或多个硬件组件中的一部分。专用硬件逻辑组件可以被构造来实现本文所述的技术中的一个或多个的一部分。这样的硬件逻辑组件可以包括,例如但不限于,现场可编程门阵列(fpga)、程序专用集成电路(asic)、程序专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等。应用可以包括各种方面的装置和系统,这样的应用可以广泛地包括多种电子系统和计算机系统。技术可以使用两个或多个特定互连的硬件模块或设备来实现,这样的硬件模块或设备利用可以在模块之间和通过模块被传送的相关控制信号和数据信号,或者技术可以被实现为专用集成电路的部分。另外,本文所述的技术可以通过可由计算机系统执行的软件程序来实现。作为示例,实施方式可以包括分布式处理、组件/对象分布式处理、以及并行处理。此外,虚拟计算机系统处理可以被构建来实现如本文所述的技术或功能中的一个或多个。

i示例性计算环境

图1图示了所述的方面中的一个或多个方面可以被实现在其中的合适计算环境100的通用示例。例如,一个或多个这样的计算环境可以被用作代理机器人系统中的客户端和/或计算机服务或者框架设备。通常,各种不同的计算系统配置可以被使用。可以适用于与本文所述的工具和技术一起使用的已知计算系统的示例包括但不限于:服务器群和服务器集群、个人计算机、服务器计算机、智能电话、膝上设备、平板设备、游戏控制台、多处理器系统、基于微处理器的系统、可编程消费电子设备、网络pc、迷你计算机、大型计算机、包括以上系统或设备中的任一项的分布式计算环境,等等。

计算环境100无意对本发明的使用或功能的范围提出任何限制,因为本发明可以在不同类型的计算环境中被实现。

参考图1,将讨论各种图示的基于硬件的计算机组件。如将讨论的,这些硬件组件可以存储和/或执行软件。计算环境100包括至少一个处理单元或处理器110以及存储器120。在图1中,这个最基本的配置130被包括在虚线中。处理器110执行计算机可执行指令,并且可以是真实或虚拟处理器。在多处理器系统中,多个处理器执行计算机可执行指令以增加处理能力。存储器120可以是易失性存储器(例如,寄存器、高速缓存、ram)、非易失性存储器(例如,rom、eerom、闪存)、或者两者的一些组合。存储器120存储实现计算机代理消息机器人的软件180。除软件180之外或作为备选,计算机代理消息机器人的实现可以涉及被体现在硬件逻辑中的处理器110和存储器120的活动的全部或一部分。

尽管为了清楚起见,图1的各种块被以线条示出,但在实际中,描绘各种组件不是这么清楚,比如说,图1的线条以及下文讨论的其他图更精确地将是灰色或模糊的。例如,人们可以将诸如显示设备的呈现组件视为i/o组件(例如,如果显示设备包括触摸屏)。此外,处理器具有存储器。本申请的发明者认识到这是本领域的性质,并且重申,图1的图仅图示了可以与本文讨论的技术中的一个或多个方面结合使用的示例性计算设备。在“工作站”、“服务器”、“膝上设备”、“手持设备”等之间没有进行区分,因为所有这些被认为是在图1的范围内,并且指的是“计算机”、“计算环境”、或者“计算设备”。

计算环境100可以具有附加的特征。在图1中,计算环境100包括存储装置140、一个或多个输入设备150、一个或多个输出设备160、以及一个或多个通信连接170。诸如总线、控制器、或者网络之类的中间连接机构(未示出)将计算环境100的组件进行互连。通常,操作系统软件(未示出)提供用于其他软件在计算环境100中执行的操作环境,并且协调计算环境100的组件的活动。

存储器120可以包括存储装置140(尽管为了方便,存储装置140在图1中被单独描绘),存储装置140可以是可移除的或不可移除的,并且可以包括计算机可读存储介质,诸如闪存驱动器、磁盘、磁带或者磁带盒、cd-rom、cd-rw、dvd,这些存储介质可以被用于存储信息并且可以在计算环境100中被访问。存储装置140存储用于软件180的指令。

(多个)输入设备150可以是各种不同输入设备中的一个或多个输入设备。例如,(多个)输入设备150可以包括用户设备,诸如鼠标、键盘、轨迹球等。(多个)输入设备150可以实现一个或多个自然用户界面技术,诸如语音识别、触摸和触笔识别、与(多个)输入设备150接触以及临近(多个)输入设备150的手势的识别,空中手势识别、头部和眼睛跟踪、话音和语音识别、感测用户脑部活动(例如,使用eeg和相关方法)、以及机器智能(例如,使用机器智能来理解用户意图和目标)。作为其他示例,(多个)输入设备150可以包括扫描设备;网络适配器;cd/dvd读取器、或向计算环境100提供输入的另一设备。(多个)输出设备160可以是显示器、打印机、扬声器、cd/dvd写入器、网络适配器、或者提供来自计算环境100的输出的另一设备。(多个)输入设备150和(多个)输出设备160可以被并入在单个系统或设备中,诸如触摸屏幕或者虚拟现实系统。

(多个)通信连接170实现到另一计算实体的、在通信介质上的通信。另外,计算环境100的组件的功能可以被实现在单个计算机器中、或被实现在能够通过通信连接来通信的多个计算机器中。因此,计算环境100可以使用与一个或多个远程计算设备(诸如,手持计算设备、个人计算机、服务器、路由器、网络pc、对等设备、或者另一公共网络节点)的逻辑连接来在网络环境中操作。通信介质承载信息,诸如在经调制的数据信号中的数据或计算机可执行指令或请求。经调制的数据信号是这样的信号,以在该信号中编码信息的方式使该信号的特性中的一个或多个特性被设置或改变。以示例的方式并且非限制地,通信介质包括利用电、光、rf、红外、声、或其他载体实现的有线或无线技术。

可以在计算机可读介质的一般上下文中描述工具和技术,计算机可读介质可以是存储介质或通信介质。计算机可读存储介质是可以在计算环境中被访问的任何可用存储介质,但是术语计算机可读存储介质并非是指传播的信号本身。以示例的方式并且非限制地,在计算环境100的情况下,计算机可读存储介质包括存储器120、存储装置140、以及前述的组合。

可以在计算机可执行指令的一般上下文中描述工具和技术,诸如被包括在程序模块中的那些计算机可执行指令,这样的指令在真实或虚拟的目标处理器上的计算环境中被执行。通常,程序模块包括执行特定任务或者实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。在各种方面中,程序模块的功能可以根据需要在程序模块之间被组合或分割。用于程序模块的计算机可执行指令可以在本地或分布式计算环境中被执行。在分布式计算环境中,程序模块被定位在本地计算机存储介质和远程计算机存储介质两者中。

为了呈现,详细描述使用了如“确定”、“选择”、“调整”、以及“操作”等术语来描述计算环境中的计算机操作。这些和其他类似术语是由计算机执行的操作的高级抽象,不应与人类执行的行为相混淆,除非明确指出人类行为(例如“用户”)的表现。与这些术语对应的实际计算机操作根据实施方式而改变。

ii消息机器人系统

图2是消息机器人计算机系统200的框图,所描述的方面中的一个多个方面可以结合消息机器人计算机系统200来实现。

在各种设备与本文所述的组件之间的通信可以使用计算机系统硬件(诸如,在单个计算设备中的硬件、在多个计算设备中的硬件、和/或计算机网络硬件)来发送。在以下情况下,通信或数据项可以被视为由组件发送到目的地:该组件以引导系统将数据项或通信路由到目的地的方式(诸如,通过包括与目的地相关联的适当标识符或地址)来将通信或数据项传送到系统。另外,数据项可以通过多个方式被发送,诸如通过直接发送该数据项,或通过发送包括地址或指针的通知以用于由接收器用于访问该数据项。此外,多个请求可以通过发送请求多个任务的执行的单个请求而被发送。

现在参考图2,将讨论消息机器人系统200的组件。图2和本文所讨论的其他图中的组件中的每个组件包括硬件,并且还包括软件。例如,图2的组件可以被整个实现在计算机硬件中,诸如在片上系统配置中。备选地,组件可以被实现在根据计算机软件来配置的、并且运行计算机软件的计算机硬件中。该组件可以跨计算机器分布或者以各种不同方式被聚合到单个计算机器中。例如,单个组件可以跨多个不同的计算机器分布(例如,其中组件的操作中的一些操作在一个或多个客户端计算设备上被执行,以及组件的其他操作在服务器的一个或多个机器上被执行)。

a.消息机器人系统组件的概述

现在将提供消息机器人系统组件的概述,随后是对这些组件中一些组件的更详细讨论。消息机器人计算机系统200可以包括客户端设备210,客户端设备210可以包括各种不同类型的计算设备中的任何一种,诸如台式计算机、膝上设备、智能电话、可穿戴设备等。客户端设备210均可以被连接到计算机网络220,计算机网络220可以包括在计算机网络220内的多个专有和/或公共网络,诸如移动设备服务网络、互联网、专用计算机通信线路、私人局域网等。客户端设备210可以通过网络220与计算机消息服务222交互。例如,这样的服务可以提供基于音频和/或文本的消息服务。这样的消息服务可以被包括在其他服务中,诸如在社交网络计算机服务中的消息服务等。消息服务222可以包括多个不同类型的消息服务222。

消息服务222和/或客户端设备210还可以通过计算机网络220与消息机器人框架计算机系统230通信。机器人框架系统230可以包括用于创建消息机器人的特征和用于运行消息机器人的特征。这些特征可以被紧密地集成,或者这些特征可以被分离到不同系统中,诸如消息机器人开发计算机系统和消息机器人运行时计算机系统。机器人框架系统230可以包括多个组件。例如,机器人框架系统230可以包括机器人定义接口240,机器人定义接口240提供接口来支持将消息机器人定义为经由客户端设备210创建和/或修改。例如,机器人定义接口可以包括机器人开发应用,机器人开发应用可以提示和接收机器人创建指令,诸如表示开发者简档的图形操纵的编程语言代码或指令。每个客户端设备210可以运行被配置为与机器人定义接口240交互的一个或多个应用,诸如网页浏览器和/或其他应用。

机器人定义接口240可以接收来自客户端设备210的机器人创建数据290。例如,机器人创建数据290可以包括指令292,用于创建特定消息机器人定义282。指令292可以是用户输入的形式,这样的用户输入以如下形式提供:对客户端设备210上的所显示页面上的选项的选择、所显示页面上的文本输入、在与客户端设备210上的虚拟应用交互时来自客户端设备210处的用户输入的编码音频和/或视频,等等。例如,指令292可以是计算机编程语言指令的形式,或者是一些其他形式。

机器人框架系统230还可以包括运行时引擎250,运行时引擎250可以参与正运行的所创建的机器人252,所创建的机器人252可以使用机器人框架系统被创建。另外,机器人框架系统230可以包括认证组件254,认证组件254可以是认证简档,诸如通过验证针对被认证简档而从客户端设备210提供的适当凭证(用户名、密码、证书、密钥等)、并且凭证可以从消息服务222提供,客户端设备210通过该消息服务222与机器人框架系统230交互。

机器人框架系统230可以包括计算机可读数据的存储,这样的计算机可读数据可以由机器人框架系统230的运行组件(诸如,机器人定义接口240、运行时引擎250、和/或运行创建的机器人252)访问、使用、和/或修改。例如,该存储可以包括对话结构260,对话结构260可以包括用于运行机器人的对话脚本262。对话脚本262可以包括表示在自然语言消息对话脚本中使用的自然语言的数据,该自然语言消息对话脚本从机器人框架系统230被发送到客户端设备210。对话结构260还可以包括:附加的数据(诸如用于有声消息机器人的音频段),将特定接收的命令映射到特定脚本的规则或者将其他特定响应映射到特定接收的指令的规则,用于管理针对人工智能消息机器人的学习对话脚本的规则以及针对学习到的对话脚本的使用的规则等。另外,对话结构260可以包括用于不同语言、不同方言、不同口音、不同个性、不同年龄等的对话脚本。

机器人框架系统230中的上述存储还可以包括运行时数据265,运行时数据265可以包括状态数据结构266,状态数据结构266可以包括用于在运行机器人框架系统230中的消息机器人时、在运行时使用的状态数据。例如,运行数据265可以包括:表示在机器人消息会话期间做出的订单的数据,表示在机器人消息会话期间做出的支付的信息数据,和/或当运行创建的机器人252和/或机器人定义接口240时由机器人框架系统230使用其他数据。

该存储还可以包括简档270,简档270可以包括具有用于以一个或多个角色执行的许可的简档。例如,简档270可以包括:能够与正运行的所创建的机器人252交互的终端用户简档272,可以提供指令来通过机器人定义接口240创建新的消息机器人的开发者简档274,和/或可以与机器人框架系统230交互来管理已经被创建的消息机器人的管理员简档276。机器人框架系统230可以支持针对计算机可读简档270(诸如用户简档)的多个不同的角色。

如本文所使用的,动作可以被讨论为由这样的简档270执行,或者针对这样的简档270来执行。这意味着动作由简档270是活动的计算机系统(诸如,简档使用适当凭证而被登录的计算机系统环境)执行,或者针对简档270是活动的计算机系统执行。作为简档的示例,开发者简档可以定义要创建的消息机器人,诸如通过提供指令来创建消息机器人。这样的指令可以包括指示消息机器人的特性的数据,诸如机器人名称、所支持的动作、由机器人提供的内容(例如,数字图像、数字视频、数字音频段等)、或者机器人的其他个性化特性(用于机器人的语言、方言、或口音;用于机器人的通用特性等)。作为具有角色的简档的另一示例,管理员简档可以在机器人被创建后管理该机器人,诸如在运行时管理机器人、检查使用情况统计、和/或处理由机器人提供的传入订单。作为另一示例,终端用户简档可以与机器人交互,以便通过使用自然语言与消息机器人交互来访问数据和/或获得服务。

简档270和/或消息机器人系统200中的其他数据可以包括敏感信息,诸如由简档270表示的用户的某些个人信息。消息机器人系统200可以包括工具和技术来保护这样的信息。例如,消息机器人系统200可以以加密形式和/或使用非公共的通信信道来发送某些这样的信息。另外,至少一些这样的数据可以以加密形式存储,并且访问这样的信息可以被限制。例如,访问可以仅据限于具有访问信息或其信息所需的足够权限的简档270。另外,消息机器人系统可以采用选择性参加和/或选择性退出技术,以在存储或以其他方式使用或获得适当方的信息之前,从适当方获得许可。针对隐私和/或安全的附加保护也可以在消息计算机系统200中被利用。

该存储还可以包括创建的机器人存储280,创建的机器人存储280可以包括机器人定义282,机器人定义282定义已经被创建的特定机器人的特性。例如,这样的特性可以包括:机器人的类型,机器人可以根据其交谈的一般主题,以及要插入到对话脚本262中以用于运行时的特定机器人的特定信息。机器人定义282可以采用各种形式中的任何一种。例如,每个机器人定义可以是数据结构,该数据结构包括表示所创建的机器人的特性的原始元数据,其中当在运行时运行机器人时,该元数据可以被运行时引擎250访问。例如,元数据可以被包括在javascript对象表示法(json)文件中、在可扩展标记语言(xml)文件中、在数据库表格或其他数据结构中。作为另一示例,机器人定义282可以包括计算机代码,用于实现特定机器人的选定特性。例如,当生成机器人定义282时,机器人框架系统230可以产生这样的计算机代码,诸如源代码、对象代码、和/或脚本语言代码。

b.运行时引擎细节

运行时引擎250的附加细节现在要讨论。如上文讨论的,运行时引擎250可以运行创建的机器人252,创建的机器人252可以包括接收来自客户端设备210的运行时指令288,以及通过根据机器人定义282处理这些指令来进行响应(诸如,通过标识适当的响应对话脚本262,和/或将元数据输入到运行时数据265中)。运行时引擎250还可以通过将一个或多个响应对话脚本262发送回到客户端设备210来响应。运行时指令288和/或响应对话脚本262可以经由消息服务222、在机器人框架系统230与客户端设备210之间被发送。例如,客户端设备210可以与用于消息服务222的一个或多个前端服务器通信,并且机器人框架系统可以与用于消息服务222的一个或多个后端服务器通信,其中终端用户简档272和机器人框架系统230都利用消息服务222来注册和认证。

参考图2-图3,运行时引擎250可以包括多个组件,这些组件全部可以被集成一个或多个其他组件,或被单独提供。这些组件可以被用于具有不同特性的多个不同的经创建的机器人。在一些实施方式中,运行时引擎可以包括附加的组件和/或可以省略以下讨论的组件中的一个或多个组件。在该示例中,运行时引擎250包括语音到文本组件310,语音到文本组件310可以将接收到的运行时指令288和创建指令292中的编码音频语音从编码音频语音数据转换为表示文本的数据。

语音到文本组件310可以使用一个或多个已有的语音到文本过程,并且甚至可以通过将语音传递到已有语音到文本引擎来调用已有的语音到文本引擎,并且从该引擎接收结果。例如,语音到文本组件可以利用已有的整个过程,诸如隐形马尔科夫过程、动态事件扭曲过程、或者神经网络过程。语音到文本组件310还可以使用一个或多个性能改进技术,诸如上下文依赖性;倒谱归一化;声道长度归一化;最大似然线性回归;差量和差量-差量系数;异方差线性判别分析(lda);拼接和基于lda的投影,之后进行异方差线性判别分析或全局半连接协方差变换;判别训练技术;和/或其他语音到文本性能增强技术。

表示自然语言指令的文本的数据(无论是作为文本被接收,或者是由语音到文本组件310产生)可以被提供给语言理解组件320。语言理解组件320可以分析自然语言文本,诸如通过反汇编和解析文本并且将文本映射到可以响应来自然语言指令而执行的一个或多个命令,诸如通过将(多个)命令传递到以下组件中的一个或多个:对话管理组件330、订单管理组件350和支付处理组件340。预先存在的语言理解组件320可以通过以下方式被调用:将自然语言文本,与返回表示该自然语言文本的(多个)含义的结果的请求一起传递到预先存在的组件。语言理解组件320可以包括用来自然语言理解的一个或多个已知组件。例如,自然语言理解组件可以利用自然语言字典、以及解析器和语法规则来将每个自然语言短语分解为短语的数据表示。语言理解组件320还可以利用语义理论来指导理解,诸如基于天真语义、随机语义分析、和/或语用学的理论以从上下文推导含义。另外,语言理解组件320可以包含逻辑推理技术,逻辑推理技术通过将导出的含义映射到谓语逻辑中的断言集合中,并且然后使用逻辑推导来得出对文本含义的结论。使用这样的语言理解技术的结果:语言理解组件320可以将结果导出含义映射到要传递到一个或多个其他组件的一个或多个命令,如上文所讨论的。

对话管理组件330可以管理对话结构260,诸如通过对对话脚本262进行更新。因此,对话脚本262可以针对创建的机器人而改变,而不改变机器人定义282。例如,对对话脚本262的改变可以引起用于多个不同的已有创建的机器人的被改变的对话脚本,而不改变用于所创建的机器人的机器人定义282,因为运行时引擎250可以调用机器人定义282来定义对话脚本262的哪些集合被用于该机器人,但是可以依赖于用于提供脚本本身的系统的对话脚本262。每个这样的脚本262可以被多个不同的创建的机器人使用。对话管理组件330还可以接收来自语言理解组件320的命令,以及可以提供对话脚本262,对话脚本262是对接收到的、根据自然语言运行时指令288导出的命令,或者对由语言理解组件320创建的指令292的适当响应。这些对话脚本262可以在用于简档270的适当客户端设备210处,被发送回从其接收命令的交互简档270。

订单管理组件350可以管理从简档270接收的订单。例如,订单管理组件350可以接收来自语言理解组件320的命令,并且可以填充数字订单。订单管理组件350还可以将这些订单转发到管理简档276。例如,如果运行时指令288包括针对披萨的订单(如由语言理解组件320确定的),则订单处理组件可以填充数字订单模板以产生数字订单,并且可以将数字订单转发到用于完成订单的、客户端设备210处的适当管理员简档276。

支付处理组件340可以处理支付。例如,运行时指令288可以包括支付信息,诸如信用卡信息和利用信用进行支付的请求。响应于这样的请求。支付处理组件340可以处理支付,诸如通过网络220与用于信用卡公司、或其他支付处理实体的服务器计算机通信。

除图3的组件之外或代替图3的组件,运行时引擎250可以包括其他组件。例如,运行时引擎可以包括用于提供方向或其他映射特征的映射组件。此外,如果运行创建的机器人252将不包括订单或支付处理特征,则这些组件可以从运行时引擎250省略。

c.计算机代理消息机器人系统

现在参考图4,更详细地讨论计算机消息代理机器人系统400的示例。代理机器人系统400可以包括代理机器人402,利用上文参考图2讨论的消息机器人系统200中机器人框架系统230的组件,代理机器人402可以被创建和操作为运行创建的机器人252。实际上,支持代理机器人402的运行的机器人框架系统230的组件在运行时可以被视为代理机器人402本身的一部分(诸如,通过被代理机器人402调用)。第一简档410可以与代理机器人402进行第一对话。例如,用户输入可以在第一客户端计算设备412处被提供,以将第一简档410登录到用于代理机器人402的系统。第一简档可以通过第一通信信道414与代理机器人402通信,第一通信信道414可以包括第一消息服务416。当第一简档410被示出在第一客户端设备412上时,简档的授权版本可以存在于远程服务器,但是当第一简档410通过第一客户端设备412登录时,第一简档可以被视为在第一客户端设备上是活动的(诸如,其中用户输入将针对第一简档410的凭证提供给第一客户端设备412上的消息客户端,以授权与第一消息服务416的通信)。

类似地,第二简档420可以与代理机器人402进行第二对话,其中第二对话与第一对话对应,因为代理机器人402在进行第二对话中使用来自第一对话的数据,和/或在进行第一对话中使用来自第二对话的数据。例如,如上文关于在第一客户端设备412上活动的第一简档410所讨论的,用户输入可以通过第二客户端计算设备422被提供以登录第二简档420。第二简档420可以通过第二通信信道424与代理机器人402通信,第二通信信道424可以包括可以与第一消息服务416不同的第二消息服务426。第二客户端设备422可以被配置用于第二简档420,以经由第二消息服务426与代理机器人402通信。

作为示例,第一消息服务416可以是sms文本消息服务,并且第二消息服务426可以是语音和/或视频会议服务,除音频会议能力之外,第二消息服务426还可以包括文本消息能力。第一简档410可以与第一消息服务416的前端服务通信,并且代理机器人402可以与第一消息服务416的后端服务通信(诸如,使用应用程序接口调用,这样的应用程序接口调用使用由第一消息服务416公开的接口,以及用于代理机器人402的框架)。类似地,第二简档420可以与第二消息服务426的前端服务通信,并且代理机器人402可以与第二消息服务426的后端服务通信。因此,第一简档410可以使用第一消息服务416的标准消息客户端与代理机器人402通信(第一消息服务416的标准消息客户端可以是第一客户端设备412上的硬件,该第一客户端设备412根据被配置为与第一消息服务416通信的软件应用而被配置)。类似地,第二简档420可以使用第一消息服务416的标准消息客户端与代理机器人402通信(第一消息服务416的标准消息客户端可以是,例如第一客户端设备412上的硬件,该第一客户端设备412根据被配置为与第一消息服务416通信的软件应用而被配置)。

代理机器人402可以在其他对话中的生成和发送对话脚本中利用来自对话中每个对话中通信的数据。例如,代理机器人402可以在生成对话脚本(该对话脚本可以发送到第二客户端简档420,作为在代理机器人402与第二简档420之间的第二对话的一部分)时,使用来自代理机器人402对以下指令的分析的数据,这样的指令作为第一对话的一部分的、从第一简档410被接收到。类似地,代理机器人402可以在生成对话脚本(该对话脚本可以发送到第一客户端简档410,作为在代理机器人402与第二简档420之间的第二对话的一部分)中,使用对以下指令的分析的数据,这样的指令作为代理机器人402对作为第二对话的一部分的、从第二简档420被接收到。

在代理机器人系统中的组件之间的通信,可以利用标准计算机通信硬件而被进行,诸如计算机网络硬件组件。代理机器人系统400的架构可以与图4中所图示的不同地被配置。例如,这样的简档中的一个简档或两者都可以与代理机器人402通信,而无需通过单独的消息服务。另外,代理机器人402可以是统一且集成的机器人,或者其可以被分割成彼此通信的多个组件。例如,代理机器人402可以包括第一机器人组件和第二机器人组件,其中代理机器人402将不同组件的操作相关联,第一机器人组件与第一简档410进行对话,第二机器人组件与第二简档420进行对应的对话。

d.计算机代理消息机器人对话示例

现在参考图5,图示了在第一简档410与代理机器人402之间、以及在第二简档420与代理机器人402之间的对话。在图5的图示中,在组件(代理机器人402、第一简档410、以及第二简档420)之间的消息利用在从各个框向下延伸的垂直线之间的水平延伸的箭头来图示,其中垂直线表示三个组件。在垂直线之间延伸的每个箭头中的文本图示了由该箭头所表示的消息(来自代理机器人402的对话脚本或者到代理机器人402的指令)的自然语言。每个消息可以通过各种形式中的任何形式,诸如编码的音频语音数据、编码的视频数据、文本消息数据等。

在第一简档410与代理机器人402之间的第一对话510可以包括:从第一简档410到代理机器人402的数字自然语言指令512,以及从代理机器人402到第一简档410的响应数字自然语言对话脚本514。在第二简档420与代理机器人402之间的第二对话520可以包括:从第二简档420到代理机器人402的数字自然语言指令522,以及从代理机器人402到第二简档420的响应数字自然语言对话脚本524。除生成以及发送响应对话脚本524之外,代理机器人还可以利用其它动作530来响应,诸如保存和提交订单或其它请求,提交用于支付处理的信息,和/或其它动作530。在其中第一简档410是活动的客户端设备可以仅呈现第一对话510中的指令512和/或脚本514,而不呈现来自第二对话520的指令512和/或脚本514。类似地,在其中第二简档420是活动的客户端设备可以仅呈现来自第二对话520的指令522和/或脚本524,而不显示来自第一对话510的指令522和/或脚本524。在该示例中,第一简档410可以是由想要订购披萨的用户所控制的简档,并且第二简档420可以是由在披萨店工作的、将接收订单并且提供比萨的用户所控制的简档。然而,本文讨论的工具和技术可以应用到,包括在第一简档与代理机器人之间的第一对话,以及在第二简档与该代理机器人之间的对应的第二对话的很多其他场景。

在第一对话510中,第一简档410可以向代理机器人402发送指令512,陈述“我想要订披萨”。代理机器人402可以分析接收到的指令(诸如,经由运行时引擎(诸如上文所述的运行时引擎250)的组件),实现代理机器人402确定第一简档410要订购披萨。相应地,代理机器人402可以通过开始一个对话来进行响应,这个对话允许披萨经由代理机器人402订购。例如,如图5中图示的,代理机器人402可以生成并且向第一简档410发送对话脚本514,对话脚本514提示来自第一简档410的数据,陈述“你想要什么配料?”这个对话脚本514可以被第一简档410接收,诸如在第一简档410在客户端设备210(见图2)处是活动的环境中被接收和处理。该客户端设备210可以处理对话脚本514以及呈现对话脚本514,诸如通过在计算机显示器上显示对话脚本和/或利用扬声器可听的读取对话脚本514。其他的对话脚本514可以以类似的方式被呈现,并且指令也可以被呈现在客户端设备上,诸如通过在聊天会话的虚拟显示器中呈现指令和响应对话文本。指令522和对话脚本524也可以以类似方式被呈现,其中用于第二简档420的客户端设备呈现对话脚本524,并且还可以呈现第二对话520的指令522。

响应于“您想要什么配料?”这个对话脚本514,用户输入可以在客户端设备210处被提供,这可以导致客户端设备210处理用户输入,使得第一简档410向代理机器人402发送另一指令512,读取“意大利辣香肠和胡椒”。对话可以继续,其中代理机器人402利用对话脚本514来响应,读取“什么尺寸”,以及第一简档410通过生成和发送附加的指令读取“大号”来进行响应。代理机器人402可以确定已经接收到针对披萨订单的足够数据,并且可以通过生成以及向第一简档410发送后续对话脚本514来进行响应:“一个大号意大利辣香肠和胡椒。就这些吗?”第一简档410可以利用读取“是”的指令512来响应。

响应于指令512的集合,包括确认订单已经完成的这个指令512,代理机器人402可以执行保存数字计算机可读订单的动作530(诸如,在上文参考图2讨论的运行时数据265中),以及向第一简档410发送附加的对话脚本514,陈述“您的订单正被提交”。

代理机器人402还可以通过生成和向第二对话520中的第二简档420发送对话脚本524,来响应来自第一对话510中的第一简档410的指令512的集合。对话脚本524可以读取“您有一个大号意大利辣香肠和胡椒的订单。确定?”第二对话520可以继续,其中第二简档420通过接收用户输入以及发送指令522(读取“不。我们没有意大利辣香肠了。他们想换成橄榄吗?”)来响应。代理机器人402可以通过生成和向作为第一对话510的一部分的第一简档410发送对话脚本514,陈述“我们对此不便表示抱歉。我们没有意大利辣香肠了。您想换成橄榄吗?”,以对来自第二对话520中的第二简档420的该指令522响应。第一简档410可以利用读取“是”的指令来进行响应。

响应于第一对话510中的一组指令512,代理机器人402可以采取保存更新的订单的动作。另外,代理机器人402通过生成以及向两个不同的简档发送不同的对话脚本来对该确认指令512进行响应。这些对话脚本可以包括到第一简档410的、陈述“您的订单正被提交”的对话脚本514。对话脚本还可以包括到第二简档420的、陈述“是,他们希望换成橄榄。更新的订单是大号橄榄和胡椒披萨。确定?”的对话脚本524。第二简档420可以通过发送陈述“是”的指令522来响应该对话脚本524。

响应于来自第一简档420的这个确认指令522,代理机器人402可以生成以及向第一简档410发送对话脚本514,陈述“您的大号橄榄和胡椒披萨订单已被确认。将在30分钟内准备好。”代理机器人402还可以利用到第二简档420的确认对话文本来进行响应,诸如通过生成和发送陈述“订单完成。请为消费者准备披萨。”的对话脚本。

代理机器人402可以在易失性和/或非易失性存储器中保存和维持反应两个对话的数据,诸如在上文参考图2讨论运行时数据265中的状态数据结构266中。例如,运行时数据265可以包括统一结构,该统一结构包括表示两个对话的数据,或者状态数据结构266可以包括第一部分和第二部分,该第一部分表示第一对话以及第二部分表示相关的第二对话,其中这些部分可以是共址的,或者可以被彼此分布地或远程地定位。无论如何,运行时数据265可以包括每个对话的状态的当前记录,允许代理机器人402在生成和发送其他对话中的对话脚本中使用来自一个或多个先前指令的数据,这些先前指令来自一个对话。例如,代理机器人402可以在从对话结构260选择对话脚本模板时,使用来自运行时数据265的数据,包括来自根据从简档接收的指令所分析而得到的数据。当生成要从对话机器人402发送到简档的对话脚本时,对话机器人402还可以包括来自对话脚本模板中的运行时数据265的数据,该对话脚本模板来自图2的对话结构260。

上文讨论的运行机器人的示例可以在不同示例中被修改。例如,代替或者除了针对选项的输入数字或提供自然语言文本之外,显示与正运行的所创建的机器人的对话的机器人对话显示器可以包括要选择的显示控件(诸如显示的按钮)。因此,例如,针对披萨尺寸,上文的大号可以:通过用户输入陈述“大号”、或者通过用户输入陈述与大号对应的数字的“2”,或者通过用户输入选择读取“大号”的按钮。当然,其他用户输入中的变型也可以被提供。

另外,附加的增强可以在运行时被提供给机器人。作为示例,上文参考图2所讨论的运行时数据265可以存储用于不同会话之间的用户的数据。这样的历史运行时数据可以用于加速与相同简档的未来交互,诸如通过记住最后的订单或频繁的订单。例如,在接收到陈述“我想要订披萨”的运行时指令之后,机器人可以响应有以下:“您想要哪种披萨?(1)和上次一样的大蘑菇披萨、或者(2)另一种披萨?”。iii计算机代理消息机器人技术

现在要讨论若干计算机代理消息机器人技术。这些技术中的每个技术可以在包括至少一个处理器以及存储器的计算机系统中被执行,存储器包括存储在其上的指令,当该指令由至少一个处理器执行时使得至少一个处理器执行该技术(存储器存储指令(例如,对象代码),并且当(多个)处理器执行这些指令时,(多个)处理器执行该技术)。类似地,一个或多个计算机可读存储器可以具有被体现在其上的计算机可执行指令,当该可执行指令由至少一个处理器执行时,使得至少一个处理器执行该技术。以下讨论的技术可以至少部分地被硬件逻辑执行。

参考图6描述计算机代理消息机器人技术。该技术可以经由计算机代理消息机器人从第一计算机可读简档接收610第一组自然语言指令。该技术还可以包括分析620第一组自然语言指令(诸如,通过执行语音到文本分析,语言理解分析,将针对语言理解分析所导出的含义匹配到用于要发送的对话脚本的命令,或者用于其他动作的命令,和/或其他分析)。此外,该技术可以包括使用第一组自然语言指令分析的结果,生成630第一自然语言对话脚本。另外,该技术可以包括使用第一组自然语言指令的分析的结果,生成640第二自然语言对话脚本,其中第二自然语言对话脚本包括从第一组自然语言指令导出的自然语言数据(诸如,具有与第一组自然语言指令中的语言类似含义的语言,或者被标识为响应来自然语言指令的对话脚本中的语言等),并且其中第二自然语言对话脚本与第一组自然语言指令不同、并且与第一自然语言对话脚本不同。第一对话脚本的生成630和/或第二对话脚本的生成640可以响应于来自第一简档的第一组自然语言指令的接收610被执行。图6的技术还可以包括:响应于第一组自然语言指令的接收610,经由代理消息机器人将第一自然语言对话脚本发送650到第一简档,以及经由代理消息机器人将第二自然语言对话脚本发送660到计算机可读的第二简档。计算机可读的第一简档和第二简档可以彼此不同。在以下段落中的特征的一个或多个特征可以与本段落的特征以各种不同组合而被组合利用。

图6的技术可以进一步包括维持670状态数据结构,状态数据结构表示在第一简档与代理机器人之间的第一自然语言对话的状态,并且还表示在第二简档与代理机器人之间的第二对话。第一自然语言对话可以包括第一组自然语言指令和第一自然语言对话脚本,并且第二自然语言对话可以包括第二自然语言对话脚本,并且还可以包括从第二简档到代理机器人的指令。

此外,图6的技术可以包括:经由代理消息机器人,从第二简档接收680第二组自然语言指令,其中第二组自然语言指令响应于第二自然语言对话脚本。该技术可以进一步包括分析690第二组自然语言指令。

该技术可以进一步包括:使用第二组自然语言指令的分析的结果,生成第三自然语言对话脚本。另外,该技术可以包括使用第二组自然语言指令的分析的结果来生成第四自然语言对话脚本,其中第四自然语言对话脚本包括从第二组自然语言指令导出的自然语言数据,并且其中第四自然语言对话脚本与第二组自然语言指令不同,并且与第三自然语言对话脚本不同。此外,该技术可以包括:响应于来自第二简档的第二组自然语言指令的接收,经由代理消息机器人将第三自然语言对话脚本发送到第二简档,以及经由代理消息机器人将第四自然语言对话脚本发送到计算机可读的第一简档。

第一组自然语言指令的接收,第一组自然语言指令的分析,第一自然语言对话脚本的生成,第二自然语言对话脚本的生成,第一自然语言对话脚本的发送,以及第二自然语言对话脚本的发送,全部可以作为操作计算机系统的代理模式的一部分被执行。图6的技术可以进一步包括:从第一简档或第二简档接收请求,以在第一简档与第二简档之间进行直通消息传送(诸如,语音通信、视频通信、和/或直接文本消息)。响应于该请求,可以将对来自第一简档和第二简档的指令的处理从代理模式改变为直通模式。代理模式和直通模式两者可以包括通过用于两个模式的相同信道来与第一简档通信。例如,两个模式可以利用用于将通信传递到相应简档的两者之间的相同消息服务被执行。代理模式和直通模式都可以包括通过用于两个模式的相同信道来与第二简档通信,其中直通模式包括将自然语言消息从第一简档传递到第二简档,而不更改来自第一简档的消息的自然语言内容,并且其中直通模式包括将自然语言消息从第二简档传递到第一简档,而不更改来自第二简档的消息的自然语言内容。

图5的技术可以包括:响应于第一组自然语言指令的接收,执行在第一组自然语言指令中请求的计算机动作。所请求的动作可以是除自然语言对话脚本的发送之外的动作。第二自然语言对话脚本可以指示:计算机动作已经被执行。

参考图6,第一组自然语言指令的接收610可以包括:从第一计算机消息服务接收第一组自然语言指令,连同第一组自然语言指令是来自第一简档的指示。第一自然语言对话脚本的发送650可以包括:将第一自然语言对话脚本发送到被寻址到第一简档的第一计算机消息服务。第二自然语言对话脚本的发送660可以包括:将第二自然语言对话脚本发送到被寻址到第二简档的第二计算机消息服务,其中第二消息服务与第一消息服务不同。

第一组自然语言指令和第一自然语言对话脚本可以是在第一简档与代理机器人之间的第一对话的一部分。第二自然语言对话脚本可以是在第二简档与代理机器人之间的第二对话的一部分。计算机代理消息机器人可以充当在第一简档与第二简档之间的代理,以用于第一对话和第二对话。计算机代理消息机器人可以维持状态数据结构,状态数据结构表示第一对话的状态和第二对话的状态,包括在计算机代理机器人与第一简档和第二简档两者之间的自然语言通信。第二自然语言对话脚本的生成640可以包括:从状态数据结构访问和使用来自状态数据结构的、表示第一对话的状态的状态数据,其中状态数据从来自第一简档的一个或多个自然语言指令消息被导出。

尽管主题已经以特定于结构特征和/或方法动作的语言被描述,但是应当理解在所附权利要求中定义的主题不一定限于上文所述的特定特征或动作。相反,上文所述的特定特征和动作被公开作为实现权利要求的示例形式。

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