计算机消息机器人的创建的制作方法

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

消息机器人(或消息传递机器人)是这样一种计算机硬件(例如,专用硬件逻辑组件和/或配置有软件的硬件)配置,即,当其被运行或执行时,使用自然语言对话自动地进行交互(可以包括接收自然语言指令、处理这些指令,以及利用自然语言对话脚本进行响应)。自然语言是人类之间自然对话中使用的语言,诸如中文普通话、西班牙语、英语、印地语、阿拉伯语、葡萄牙语、日语、德语、法语等。自然语言还可以包括用在各种不同环境中人类之间的自然对话中的语言的变型,诸如数字消息对话、面对面对话等。例如,这种变型可以包括正式语言、缩写和/或俚语的混合。

已经使用计算机编程语言中的源代码开发了消息机器人。已经提供了一些消息机器人框架,其中底层基本计算机机器人框架组件通过用户输入调用,用户输入包括用于开发的特定消息机器人的以算机代码形式的合适的计算机编程语言命令。例如,这种组件可以包括语音到文本组件、语言理解组件、以及对话管理组件。因此,当针对特定机器人的计算机代码(可能在被编译之后)被运行时,代码可以调用底层消息机器人框架组件来执行计算机功能,诸如将音频语音转换为文本、从文本中导出含义(语言理解)、以及管理对话的细节,其可以包括响应于导出的含义而生成并发送自然语言脚本(对话管理)。



技术实现要素:

本文讨论的工具和技术涉及消息机器人的创建的多个方面,诸如使用消息机器人定义来生成计算机可读消息机器人定义和/或执行消息机器人。例如,工具和技术的一些方面可以涉及使用第一消息机器人来接收和处理自然语言指令以创建第二消息机器人,并且使用这些指令来生成第二消息机器人的定义。作为另一示例,工具和技术可以涉及接收和处理指令以创建消息机器人,其中指令以自然语言定义一般机器人特征,并且可以在指令不是以计算机编程语言形式的情况下这样做。

在一个方面,工具和技术可以包括在第一消息机器人处从计算机可读的开发者简档接收计算机可读的创建数据。用于创建第二消息机器人的指令可以包括定义一个或多个消息机器人特征的自然语言指令。可以对自然语言指令进行分析。分析可以包括确定自然语言指令与一个或多个预定义的命令匹配以在第二消息机器人中包括一个或多个消息机器人特征。可以使用对自然语言指令进行分析的结果来生成第二消息机器人的计算机可读定义。定义的生成可以包括在定义中包括用于一个或多个特征的计算机可读指令,其中定义被配置成当使用定义执行第二消息机器人时,产生一个或多个特征。

在工具和技术的另一方面,可以从计算机可读的开发者简档接收计算机可读的创建数据(诸如通过对消息机器人的响应而被提供的创建数据和/或通过诸如网站或安装的消息机器人创建应用的可视界面而被提供的创建数据)。创建数据可以包括用于创建消息机器人的指令,其中指令不是以计算机编程语言形式的,并且其中用于创建消息机器人的指令定义一个或多个通用的消息机器人特征,一个或多个通用的消息机器人特征被配置成利用定义一个或多个特定的自然语言对话脚本的特定对话结构来实施。可以使用用于创建消息机器人的指令来生成消息机器人的计算机可读定义。可以使用该定义来执行消息机器人。机器人的执行可以包括产生一个或多个通用的特征,并且一个或多个通用的特征的产生可以包括从用户简档接收一个或多个自然语言指令,以及利用如由特定对话结构所指示的一个或多个特定自然语言对话脚本进行响应。

提供本发明内容是为了以简化的形式介绍一系列概念。下面在具体实施方式中进一步描述这些概念。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。类似地,本发明不限于针对在

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

附图说明

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

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

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

图4-图6是机器人定义显示的图示。

图7-图8是机器人对话显示的图示。

图9是计算机消息机器人创建技术的流程图。

图10是另一计算机消息机器人创建技术的流程图。

具体实施方式

本文描述的各个方面针对用于改进计算机消息机器人的创建的技术和工具。这些改进可以来源于各种技术和工具的单独的或组合的使用。例如,一些这样的工具或技术可以涵盖机器人创建过程或系统的一部分、整个机器人创建过程或系统,和/或在机器人运行时系统中的创建的机器人的运行。

这样的技术和工具可以包括在没有传统的用户输入编码的情况下创建消息机器人,诸如通过提供可视界面(例如,诸如移动应用的网页或可视应用)和/或消息机器人,通过消息机器人,可以从开发者简档接收机器人创建指令并对其进行处理以生成正在开发的消息机器人的计算机可读的定义。例如,消息可以用于提供用于创建消息机器人的指令,并且消息机器人的开发者和用户可以通过在一个或多个计算设备(诸如,移动设备)上的消息传递来执行所有交互。

之前,转换机器人已使用以一种或多种计算机编程语言形式的计算机代码而被创建。因此,这种机器人的开发通常需要用户具备编程语言、计算机程序、以及致力于向用户提供帮助以编写计算机编程语言的代码和调试计算机代码的其他计算资源(帮助屏幕、教程等)的知识。本发明人已经发现,通过对以自然语言形式的和/或描述消息机器人的通用的特征而不是以计算机语言代码的形式的指令进行处理,计算机系统中的消息机器人创建过程可以更加高效。通过利用如本文中所讨论的这些指令,消息机器人计算机系统可以提供技术优势,诸如加速创建消息机器人的过程、使机器人创建系统更加用户友好(特别是对于不精通计算机编程语言的用户),以及减少经常通过用户简档输入用于定义消息机器人的计算机语言编码而引入的漏洞和错误。实际上,这些用于消息机器人创建的工具和技术可以允许没有计算机编程语言方面显著技能的用户提供输入以创建消息机器人,否则这些用户将无法这样做。因此,可以使用本文讨论的工具和技术来改进机器人创建计算机系统。

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

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

i.示例性计算环境

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

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

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

尽管为了清楚起见,利用线条示出了图1的各个方框,但实际上,对各种组件划分并不是那么清楚并且以比喻方式,图1和下面讨论的其他附图中的线更准确地来说将是灰色和模糊的。例如,可以将诸如显示设备的呈现组件认为是i/o组件(例如,在显示设备包括触摸屏的情况下)。另外,处理器具有存储器。发明人在此认识到这是本领域的本质并且重申图1的框图仅仅是示例性计算设备的示例,该计算设备可以与本文所讨论的技术的一个或多个方面结合使用。在诸如“工作站”、“服务器”、“膝上型计算机”、“手持设备”等的类别之间不进行区别,因为所有类别都在图1的范围内可以设想到并且称为“计算机”、“计算环境”或“计算设备”。

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

存储器120可以包括存储装置140(尽管为了方便,它们在图1中以分离形式描绘),存储器可以是可移动的或不可移动的,并且可以包括可以被用来存储信息并且可以在计算环境100内被访问的计算机可读存储介质(诸如闪存驱动、磁盘、磁带或磁盒、cd-rom、cd-rw、dvd)。存储装置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内的多个私有和/或公共网络(诸如移动设备服务网络、因特网、专用计算机通信线路、私有局域网等)。客户端设备210可以通过网络220与计算机消息服务222交互。例如,这种服务可以提供基于音频和/或基于文本的消息服务。这种消息服务可以被包括在其他服务内,诸如在社交网络计算机服务内的消息服务等。消息服务222可以包括多种不同类型的消息服务222。

消息服务222和/或客户端设备210还可以通过计算机网络220与消息机器人框架计算机系统230通信。机器人框架系统230可以包括用于创建消息机器人的特征以及用于运行消息机器人的特征。这些特征可以被紧密地集中,或者它们可以被分散到不同的系统(诸如消息机器人开发计算机系统和消息机器人运行时计算机系统)中。机器人框架系统230可以包括多个组件。例如,机器人框架系统230可以包括机器人定义接口240,其提供接口以便于定义待经由客户端设备210创建和/或修改的消息机器人。例如,机器人定义接口可以包括创建/修改消息机器人242和/或可视应用服务244(诸如web服务器或移动应用服务器)。每个客户端设备210可以运行一个或多个应用,一个或多个应用其被配置成与创建/修改消息机器人242和/或可视应用服务244(诸如web浏览器、文本消息应用,和/或其他应用)交互(可能经由消息服务222)。

机器人框架系统230还可以包括运行时引擎250,其可以参与运行创建的机器人252,可以已经使用机器人框架系统创建机器人252。运行时引擎250还可以运行一个或多个创建/修改机器人242,其可以参与定义待创建的机器人。另外,机器人框架系统230可以包括可以认证简档的认证组件254(诸如通过验证从客户端设备210以及可能从消息服务222提供的用于被认证的简档的合适的凭证(用户名、密码、证书、密钥等)),客户端设备210通过消息服务222与机器人框架系统230交互。

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

机器人框架系统230中的存储还可以包括运行时数据265,运行时数据265可以包括在机器人框架系统230中运行消息机器人时在运行时使用的状态数据。例如,运行时数据265可以包括表示在机器人消息会话期间做出的订单的数据、表示在机器人消息会话期间做出的支付的信息数据,和/或在运行创建的机器人252、创建/修改机器人242和/或视觉应用服务244时,由机器人框架系统230使用的其他数据。

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

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

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

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

b.运行时引擎细节

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

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

语音到文本组件310可以使用一个或多个现有的语音到文本过程,并且甚至可以通过将语音传递给现有的语音到文本引擎并且从该引擎接收结果来调用现有的语音到文本引擎。例如,语音到文本组件可以利用现有的整个过程,诸如基于隐马尔可夫模型的过程、动态时间扭曲过程或神经网络过程。语音到文本组件310还可以使用一种或多种性能改进技术,诸如上下文依赖性、倒谱归一化、声道长度归一化、最大似然线性回归、delta和delta-delta系数、异方差线性判别分析(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,该命令由语言理解组件320从自然语言运行时指令288或创建指令292导出。那些对话脚本262可以在用于简档270的合适的客户端设备210处被发送回到从其接收指令的交互的简档270。

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

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

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

c.bot定义接口细节

参考图2,将更详细地讨论机器人定义接口240。机器人定义接口240可以处理所接收的机器人创建数据290,并且可以在所创建的机器人存储装置280中填充机器人定义282。机器人定义接口240还可以触发机器人定义282的翻译,诸如翻译以产生脚本计算机语言、源代码或目标代码形式的计算机代码以用作机器人定义282。在这种情况下,除了翻译后的形式之外,机器人定义282可以包括其预翻译形式的数据。因此,当对机器人定义282进行改变时,可以对机器人定义282的预翻译形式进行这种更新。更新的预翻译形式的机器人定义282可以被翻译成翻译后的形式的更近的机器人定义282。另外,翻译可以在运行时之前或在运行时发生以产生正在运行的创建的机器人252。在其他实施方式中,机器人定义282可以不被翻译成计算机编程语言,而是可以在运行时由通用机器人访问,以使得配置成访问机器人定义282的通用机器人和机器人定义282本身一起形成正在运行的创建的机器人252。

现在将讨论视觉应用服务244,随后讨论创建/修改机器人242。可视应用服务244可以包括一种或多种不同类型的应用服务。例如,可视应用服务244可以包括web服务器,其可以向客户端设备210提供web页面,并且可以从客户端设备210接收机器人创建数据290。例如,机器人创建数据290可以包括用以创建特定消息机器人定义282的指令292。指令292可以是以如下形式提供的用户输入的形式:对在客户端设备210上的显示页面上的选项的选择、显示页面上的文本输入、在与客户端设备210上的可视应用交互时,来自在客户端设备210处的用户输入的编码的音频和/或视频的形式等。

指令292可以定义针对正在创建的机器人的通用的特征,而不定义特定的对话脚本,并且不包括用户输入的计算机编程语言代码。在一些实例中,机器人创建数据290可以包括定义特定对话脚本的一些指令,以及定义机器人特征而不定义用于这些特征的特定对话脚本的其他指令292。例如,机器人定义接口240可以提供用于选择预定义的机器人特征的选项,并且还可以为开发者简档274提供用于创建新特征,并且为那些新特征定义来自终端用户简档272的可能的指令的选项,以及用于这些新特征的响应性对话脚本,以及要在指令上提供的附加操作(诸如,在接收到订单的特定指令时包括订单中的特定条目)。

1.视觉应用服务机器人定义示例

现在参考图4-图6,将讨论使用机器人框架系统230的可视应用服务244定义消息机器人的视觉特征的示例。参考图4,图示了机器人定义显示400。可以由视觉应用服务244向客户端设备210提供显示400,并且可以在客户端设备210的显示器上呈现显示400。另外,指向显示400上的控件的输入(诸如触摸输入、鼠标点击或非触摸手势)可以由客户端设备210处理,并将作为运行时指令288被转发给机器人框架系统230。

机器人定义显示400可以包括描述性文本和/或图形(诸如,“准备好创建您的第一个机器人?选择您的机器人类型。”)。另外,显示400可以包括以图形方式显示的控件410。例如,在图4中,机器人定义显示400包括用于选择机器人的类型的按钮形式的控件,可以通过指向按钮的用户输入来选择该按钮形式的控件。在该特定的示例中,机器人的类型恰巧对应于商业的类型(酒吧、餐饮、食品杂货、匹萨、花卉),但在某些示例中,机器人的类型可能与商业无关(讲个人故事的机器人、讲笑话的机器人等)。图4的示例图示了从特征选择控件410中触摸选择匹萨按钮,从而产生图5中图示的显示。

图5的显示图示了响应于选择匹萨按钮的用户输入,由计算机系统在显示400上提供的附加特征选择控件410。附加特征控件410与所选择的消息机器人的类型有关,其中控件涉及匹萨餐馆的消息机器人的主题(订购匹萨、营业时间、菜单、位置、促销、定价、联系方式)。图5中的显示还包括“重新开始”按钮,可以通过用户输入来选择“重新开始”按钮以放弃当前的机器人数据并重新开始以定义新的消息机器人。显示400还包括“运行机器人”按钮,可以选择该按钮以运行具有当前已被选择的特征的机器人。响应于选择“运行机器人”控件的机器人的运行可以导致机器人使用运行时引擎250和对话结构260来运行,在机器人被创建之后,产生模仿终端用户简档272将遇到的对话的对话。另外,显示400可以包括“发布”按钮(备选地,其可以是“创建机器人”按钮、“完成”按钮或指示机器人准备就绪的一些其他文本),“发布”按钮可以部署产生的所创建的机器人以供终端用户使用。部署可以包括将所得到的机器人定义282保存在所创建的机器人存储装置280中。当响应于用户输入做出改变时,系统可能已经实时地将机器人定义282保存在所创建的机器人存储装置280中。系统还可以通过将机器人定义282翻译成另一种形式来响应对“发布”按钮的选择,诸如通过编译来自机器人定义282的可执行计算机代码。对“发布”按钮的选择还可以发布所得到的消息机器人,以便可以由用户找到它(诸如,通过用户执行在线搜索、提供指定的链接、从另一个消息机器人请求该消息机器人等)。

在图4-图6的示例中,通过用户输入对显示400上的“营业时间”按钮进行选择,其中计算机系统通过添加图5中图示的附加控件来响应,该附加控件与匹萨店将营业的时间相关。可以提供用户输入以操纵显示400上的控件,以指定在匹萨餐馆将营业时的每周的每天的时长。

显示还可以包括“新添”按钮,可以选择“新添”按钮以允许用户输入添加新主题,其可以包括指定新主题的特定对话脚本,并且可能包括对在该主题中所提供的指令的其他响应的用户输入。除了添加主题之外,还可以提供按钮以向现有主题添加参数。例如,匹萨订单主题可以包括与用户的对话,以获取以下参数:大小(多种选择:小、中、大)和浇头(多种选择:蘑菇、橄榄、意大利辣香肠、辣椒、菠萝)。可以提供用户输入以指示系统来编辑这些参数(例如,移除橄榄并添加朝鲜蓟)或添加全新参数,例如匹萨形状(多种选择:矩形和圆形)。当系统开始定义新的机器人时,系统可以为每个主题提供关联的模板作为定义的机器人的一部分(在提供任何修改用户输入以选择主题之前的所有的主题的默认集合,或者只有用于已经选择的主题的填充模板)。这些模板可以用作定义机器人的起点。因此,例如,如果来自开发者简档的用户输入指令选择“订购匹萨”作为要修改的主题,则可以在提供用户输入之前为该主题提供预先填充的模板。这可以允许来自开发者简档的用户输入来快速选择“运行机器人”按钮以体验行动中的机器人,而在运行机器人之前,无需开发人员对简档进行太多编辑。

如果在定义机器人时,用户输入选择“运行机器人”控件,则可以由运行时引擎250运行消息机器人以作为正在运行的创建的机器人252,其中运行的创建机器人252与从客户端设备210提供机器人创建数据290的开发者简档274交互。图7-图8中图示了一个示例。参考图7,以消息机器人和开发者简档274之间交互的聊天会话的形式图示了机器人对话显示700。机器人对话显示700出现和交互的方式可以与正在运行的创建的机器人252将要针对终端用户简档272运行的方式相同。然而,在与开发者简档274交互的情况下,机器人框架系统230可以识别开发者简档具有编辑用于正在运行的创建的机器人252的机器人定义282的许可。因此,机器人对话显示700可以包括可以被选择以编辑机器人定义282的“编辑”按钮。当机器人由没有编辑机器人许可的简档所运行时,可以省略该“编辑”按钮。

响应于选择“编辑”按钮的用户输入,可视应用服务244可以将图6的机器人定义显示400提供给在客户端设备210处的开发者简档274,从而允许开发者简档274提供输入以编辑机器人定义282。例如,在图7中,机器人对话显示700中的聊天会话从开发者简档274读取“今天你们什么时间营业?”,以及来自机器人框架系统230的响应,陈述“我们今天从上午11:00到下午9:30营业。”。开发者简档274可以选择图7的“编辑”按钮。作为响应,机器人框架系统230可以保存开发者简档274和正在运行的创建的消息机器人252之间的当前对话,并且可以向开发者简档274发送图6的显示400。开发者简档274可以使用图6的机器人定义显示400的特征选择控件410来修改今天的营业时间,诸如通过将营业时间改变为从当天的上午11:00到上午10:00,从而导致对应的指令被发送给机器人框架系统230。如果开发者简档274然后再次选择“运行机器人”按钮,则机器人框架系统230可以通过将聊天自动重新运行到选择edit按钮时的位置来进行响应。然而,如图8中所图示的,该重新运行的聊天可以包括来自编辑的改变。因此,代替陈述“我们今天从上午从11:00到下午9:30营业”的来自机器人框架系统230的响应,它可以陈述“我们今天从上午10:00到下午9:30营业”。如图8中所图示的,开发者简档274和在机器人框架系统230中开发的消息机器人之间的对话可以继续,其中开发者简档274和机器人框架系统230提供响应,“你想要什么大小的匹萨?(1)中,(2)大,(3)家庭装”。然后,开发者简档274可以继续与正在运行的创建的消息机器人252进行交互,或者可以选择“编辑”以重新进入编辑/创建环境(例如,如在图4-图6中所图示的)以针对正在开发的机器人来定义机器人定义282。

以上讨论的运行机器人的示例可以在不同示例中改变。例如,显示与正在运行的创建机器人的对话的机器人对话显示可以代替或补充当前选项而包括要选择的显示的控件(诸如,显示的按钮),以针对选项来输入数字或者提供自然语言文本。因此,例如,对于匹萨尺寸,可以通过陈述“大”的用户输入,或通过陈述“2”的用户输入,或通过选择写着“大”的按钮的用户输入来选择上面的大尺寸。当然,也可以提供用户输入上的其他变化。

另外,可以在运行时为机器人提供额外的增强。作为示例,以上关于图2讨论的运行时数据265可以存储针对用户在不同会话之间的数据。这种历史运行时数据可以用于加速将来与相同简档的交互,诸如通过记住上一次的订单或频繁的订单。例如,在收到陈述“我想订购一份匹萨”的运行时指令之后,机器人可以响应如下:“你想要哪种匹萨?(1)像上次一样的大的蘑菇匹萨,或(2)另一种匹萨?”

2.创建/修改机器人定义示例

代替视觉应用服务244或者除了视觉应用服务244之外,开发者简档274可以通过另一机器人(被称为创建/修改机器人242)来定义机器人。这可以包括机器人的初始定义,其被创建以生成机器人定义282和/或机器人定义282的后续修改。

创建/修改机器人242可以由其自己的机器人定义282来被定义,尽管该机器人定义可以与使用创建/修改机器人242在机器人框架系统230中生成的机器人定义282分开地存储和/或以不同的形式存储。创建/修改机器人242可以由运行时引擎250运行,在运行创建/修改机器人242时,运行时引擎250可以利用对话结构260,维护运行时数据265,并与开发者简档274和/或管理员简档276交互。备选地,创建/修改机器人242可以由不同的运行时引擎运行。

如上文所讨论的,创建/修改机器人242可以从开发者简档274和/或管理员简档276接收机器人创建数据290(包括自然语言创建指令292)并且可以处理和响应那些指令。例如,创建/修改机器人242可以通过在对话(诸如音频或文本对话)中与简档交谈的过程中将响应性文本或音频对话脚本262发送回开发者简档274和/或管理员简档276来响应。创建/修改机器人242可以经由消息服务222与开发者简档274和/或管理员简档276交互,消息服务222可以变换对话脚本262和创建指令292,诸如通过重新格式化文本或在音频语音和文本之间进行转换。另外,至少一些这样的重新格式化和/或变换可以由运行时引擎250和/或客户端设备210执行。

可以使用上面讨论的用于正在运行的创建的机器人252的机器人框架系统230的相同组件来进行与创建/修改机器人242的对话,可以使用创建/修改机器人242来创建所创建的机器人252。另外,可以使用与使用创建/修改机器人242创建的正在运行的创建的机器人252相同的消息服务222来进行与创建/修改机器人242的对话。

以下是可以在开发者简档274和创建/修改机器人242之间进行的针对开始为匹萨餐馆定义消息机器人的对话的示例。该对话可以以多种不同类型的消息格式中的任何一种进行,诸如文本聊天会话、短消息服务讨论、音频讨论、音频-视频讨论等。

创建/修改机器人:“有什么可以帮您吗?”

开发者简档:“我想创建机器人?”

创建/修改机器人:“您想创建什么类型的消息机器人?选择1酒吧商业机器人,2餐饮商业机器人,3食品杂货店机器人,4匹萨餐馆机器人,4花店机器人,5附加选项。”

开发者简档:“匹萨餐馆机器人。”

创建/修改机器人:“选择主题以为您提供详细信息:1订购匹萨,2营业时间,3菜单,4位置,5促销,6定价,7联系信息,8增加新的主题,9重新开始,10运行机器人,11发布机器人,或12重复选项。”

开发者简档:“2”

创建/修改机器人:“您想以12小时模式还是24小时模式的营业时间?”

开发者简档:“12小时模式。”

创建/修改机器人:“您的匹萨餐馆每天的营业时间一样吗?”

开发者简档:“不。”

创建/修改机器人:“哪一天的时间与您的正常时间不同?”

开发者简档:“星期六和星期日。”

创建/修改机器人:“匹萨餐馆通常会在什么时间营业?”

开发者简档:“10点。”

创建/修改机器人:“上午10点还是下午10点?”

开发者简档:“上午。”

创建/修改机器人:“匹萨餐馆通常会在什么时候关门?”

开发者简档:“下午9点30”

创建/修改机器人:“星期六匹萨餐馆会在什么时间营业?”

开发者简档:“上午10点。”

创建/修改机器人:“星期六匹萨餐馆会在什么时间关门?”

开发者简档:“下午10点。”

创建/修改机器人:“星期日匹萨餐馆会在什么时间营业?”

开发者简档:“上午11点。”

创建/修改机器人:“星期日匹萨餐馆会在什么时间关门?”

开发者简档:“下午10点。”

创建/修改机器人:“营业时间被定义为星期一至星期五的上午10点到下午9点半,星期六的上午10点到下午10点,星期日的上午11点到下午10点。选择主题来修改或提供机器人的更多详细信息:1订购匹萨,2营业时间,3菜单,4位置,5促销,6定价,7联系信息,8增加新的主题,9重新开始,10运行机器人,11发布机器人,或12重复选项。”

开发者简档:“运行机器人。”

创建/修改机器人:“您的机器人现在将运行。您可以通过说出‘编辑机器人’来随时停止运行您的机器人并继续编辑您的机器人。”

在该对话期间,创建/修改机器人242(经由运行时引擎250)可以分析自然语言创建指令(诸如,响应于关于时间的问题而提供对时间的响应,如在人类之间的自然语言讨论中会发生的那样)。该分析可以包括确定自然语言指令与一个或多个预定义的命令匹配以在第二消息机器人中包括一个或多个消息机器人特征。例如,每个时间可以与命令匹配以在针对机器人的机器人定义中包括一天或多天的特定营业或关门时间。创建/修改机器人242可以触发这些命令的执行以开始在存储器中形成新的机器人定义282,其可以包括在长期地创建的机器人存储装置280中存储,并且用以在新机器人定义282中包括来自指令的信息。然而,在所创建的机器人存储装置280中以其最终形式保存机器人定义282可以等待直到开发者简档274指示创建/修改机器人242发布机器人。这种最终化还可以包括将机器人定义282转换成不同的形式,诸如将机器人定义282转换成可执行的计算机代码或者转换成源代码或脚本编程语言。可以由运行时引擎250使用该新形成的机器人定义282来响应于该“运行机器人”命令而开始运行新的正在运行的创建的机器人252。作为示例,这可能导致以下交流。

正在运行的匹萨机器人:“有什么可以帮您吗?”

开发者简档:“你们今天什么时间营业?”

正在运行的匹萨机器人:“上午10点到下午9点半”

开发者简档:“编辑机器人。”

可以由运行时引擎250拦截该“编辑机器人”命令,并且运行时引擎250可以通过调用创建/修改机器人242来响应以修改正在开发的匹萨餐馆机器人的现有机器人定义282。在运行机器人时选择该“编辑机器人”命令时,编辑可以从选择“编辑机器人”按钮时的用于正在运行的机器人的对话的主题(subject)的主题(topic)开始。这可以节省编辑机器人的时间和计算资源。例如,在上面的对话中选择“编辑机器人”按钮可以产生以下对话。

创建/修改机器人:“您已经进入了对机器人的营业时间的编辑。在任何时间说出“主菜单”以返回主菜单以用于编辑机器人。您想以12小时模式还是24小时模式的营业时间?”

开发者简档:“24小时模式。”

在客户端设备210上的开发者简档274与机器人框架系统230中的机器人(包括创建/修改机器人242和被定义的正在运行的创建的机器人252)之间的该交谈消息对话可以继续直到开发者简档274已经提供了足够的创建指令292以获得令人满意的机器人定义282,并且已经向正在运行的创建的机器人252提供了足够的运行时指令288以确保正在运行的创建的机器人252具有足够的信息(如由开发者简档274提供的指令所确定的)地正确地进行对话。

另外,即使在所创建的机器人被完全定义并运行之后,与具有足够特权的机器人交谈的简档270(诸如管理员简档276或该机器人的开发者简档274)也能够通过提供由运行时引擎250识别的指定的指令来编辑机器人(诸如,通过说出“编辑机器人”或通过选择“编辑”控制按钮(如果与正在运行的创建的机器人252的消息是在支持这种控制的可视环境中完成的))。另外,可以给出简档270选项来选择是经由可视应用服务244(诸如,在网页上)还是经由创建/修改机器人242来编辑机器人。简档270可以能够通过不同的消息服务222来执行这样的编辑。例如,单个机器人定义282可以能够作为正在运行的创建的机器人252运行并且与多个不同类型的消息服务222交互,并且创建/修改机器人242也可以能够使用任何这些不同类型的服务。因此,例如,使用sms与正在运行的创建的机器人252交互的开发者简档274可以在不中断的情况下继续使用sms以通过也使用sms与创建/修改机器人242交互来编辑该相同机器人的定义。类似地,如果管理员简档276使用作为计算机社交网络服务的消息服务222与正在运行的创建的机器人252交互,则运行时引擎250将具有通信信息(地址信息、凭证等)以经由该社交网络服务与管理员简档276通信,并且可以使用该通信信息来调用创建/修改机器人242以通过相同的消息服务222与管理员简档276通信。

在创建了机器人的情况下,存储的机器人定义282可以由运行时引擎250在运行正在运行的创建的机器人252时使用。因此,使用客户端设备210登录的终端用户简档272可以诸如经由一个或多个消息服务222与正在运行的创建的机器人252交谈,如上文所讨论的。

iii.计算机消息机器人创建技术

现在将讨论几种计算机消息机器人创建技术。可以在计算环境中执行这些技术中的每一种。例如,每种技术可以在包括至少一个处理器和存储器的计算机系统中执行,该存储器包括存储在其上的指令,当由至少一个处理器执行该指令时,使至少一个处理器执行该技术(存储器存储指令(例如,目标代码),当处理器执行那些指令时,处理器执行该技术)。类似地,一个或多个计算机可读存储器可以具有在其上实施的计算机可执行指令,当由至少一个处理器执行该计算机可执行指令时,使至少一个处理器执行该技术。可以至少部分地由硬件逻辑执行下面讨论的技术。

参考图9,将讨论计算机消息机器人创建技术。该技术可以包括在910处在第一消息机器人处从计算机可读开发者简档接收计算机可读创建数据。用于创建第二消息机器人的指令可以包括定义一个或多个消息机器人特征的自然语言指令。该技术还可以包括在920处分析自然语言指令。在920处的分析可以包括确定自然语言指令与一个或多个预定义的命令匹配以在第二消息机器人中包括一个或多个消息机器人特征(诸如,包括匹萨餐馆消息机器人的具体营业时间的命令,如上面的示例中所讨论的)。图9的技术还可以包括在930处使用对自然语言指令的结果的分析来生成第二消息机器人的计算机可读的定义。定义的生成可以包括将一个或多个特征的计算机可读指令包括在定义中,其中该定义被配置成当使用该定义执行第二消息机器人时产生一个或多个特征。可以利用与图9相关的以下段落的一个或多个特征以彼此的任何组合的方式来执行图9的该基本技术。

图9的技术还可以包括一个或多个附加动作。例如,该技术可以包括通过生成一个或多个自然语言响应并将一个或多个自然语言响应发送到开发者简档(诸如发送到在客户端设备处的开发者简档)来自动响应自然语言指令的一部分。自然语言响应可以包括对附加指令的自然语言请求,该附加指令描述要被包括在第二消息机器人中的附加特征。自然语言指令可以包括在请求之后接收的所请求的附加指令,并且一个或多个特征可以包括附加特征。

图9的技术还可以包括在计算机系统中运行第二消息机器人。该运行可以包括从计算机可读用户简档接收一个或多个自然语言指令,并通过自动地生成一个或多个自然语言响应并向该用户简档发送该一个或多个自然语言响应,来对来自用户简档的一个或多个自然语言指令做出响应。可以以由第二消息机器人的定义中的特征的指令所指示的方式来执行该自然语言响应的生成和发送。

在图9的技术中,该定义可以被称为初始定义,并且该技术可以包括附加动作。例如,在运行第二消息机器人时,该技术可以包括从用户简档接收命令以修改该定义。响应于接收到命令(并且可能在接收到关于修改的附加输入之后),可以按照命令的指示来修改初始定义以产生修改的定义。另外,该技术可以包括保存第二消息机器人和用户简档之间的初始对话的记录,其中该记录反映来自计算机可读用户简档的一个或多个自然语言指令以及使用该初始定义的一个或多个自然语言响应。另外,可以使用该记录根据修改的定义来生成修改的对话并将其向用户简档发送,其中修改的对话通过反映出该定义的修改而与初始对话不同。还可以呈现修改的对话,诸如通过显示或可听地播放修改的对话。

计算机系统可以是机器人开发计算机系统(诸如上面讨论的机器人框架系统230),并且在910处的从开发者简档接收创建数据可以包括经由与机器人开发计算机系统分开的通信平台计算机系统接收创建数据(诸如,用于上文讨论的消息服务222中的一个的计算机系统)。

图9技术的自然语言指令可以包括编码的音频计算机数据。在920处的指令的分析可以包括执行对编码的音频计算机数据的语音到文本分析以产生文本计算机数据,以及分析文本计算机数据中的自然语言指令。

确定自然语言指令与一个或多个预定义的命令匹配可以包括对自然语言指令执行一个或多个模式匹配操作。

另外,自然语言指令可以定义一个或多个通用的消息机器人特征,一个或多个通用的消息机器人特征被配置成利用定义一个或多个特定自然语言对话脚本的特定对话结构来实施。图9的技术可以进一步包括使用该定义执行第二消息机器人,其中执行第二消息机器人包括产生一个或多个通用的特征,其中产生一个或多个通用的特征包括从用户简档接收一个或多个自然语言指令,并且利用如由特定对话结构所指示的一个或多个特定自然语言对话脚本进行响应。

现在参考图10,将讨论另一种计算机消息机器人创建技术。该技术可以包括在1010处从计算机可读开发者简档接收计算机可读创建数据。创建数据可以包括用于创建消息机器人的指令,其中该指令不是以计算机编程语言的形式,并且其中用于创建消息机器人的指令定义一个或多个通用的消息机器人特征,一个或多个通用的消息机器人特征被配置成使用定义一个或多个特定的自然语言对话脚本的特定对话结构来实施。图10的技术还可以包括在1020处使用用于创建消息机器人的指令来生成消息机器人的计算机可读定义。另外,该技术可以包括在1030处使用该定义执行消息机器人。执行机器人可以包括产生一个或多个通用的特征,并且产生一个或多个通用的特征可以包括从用户简档接收一个或多个自然语言指令并且利用如由特定的对话结构所指示的一个或多个特定自然语言对话脚本进行响应。可以利用与图10相关的以下段落的一个或多个特征以彼此的任何组合的方式来执行图10的技术。

图10的技术可以包括呈现具有表示一个或多个通用的消息机器人特征的一个或多个图形对象的视觉显示,以及在计算机设备处接收选择一个或多个图形对象的用户输入。另外,该技术可以包括响应于用户输入而生成计算机可读创建数据并发送计算机可读创建数据以用于生成消息机器人的定义。

可以在不从指定特定自然语言对话脚本的计算机可读开发者简档接收用户输入的情况下执行图10的技术。

尽管以结构特征和/或方法动作专用的语言描述了本主题,但应当理解,在所附权利要求书中定义的主题不必限于上文描述的具体特征或动作。而是,公开了上文描述的具体特征和动作作为实施权利要求的示例形式。

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