将对话驱动式应用程序导出到数字通信平台

文档序号:1510356 发布日期:2020-02-07 浏览:24次 >En<

阅读说明:本技术 将对话驱动式应用程序导出到数字通信平台 (Exporting conversation-driven applications to a digital communication platform ) 是由 V·S·安巴扎甘 S·斯瓦苏布拉玛尼安 S·斯泰法尼 V·朱科夫 于 2018-05-23 设计创作,主要内容包括:公开了用于将对话驱动式应用程序导出到数字通信平台的方法、系统和计算机可读介质。从用户接收启动条件。使启动条件注册到一个或多个数字通信平台。检测到启动条件将导致自然语言输入从至少一个所述数字通信平台路由到应用程序管理服务。(Methods, systems, and computer readable media for exporting conversation driven applications to a digital communication platform are disclosed. A start condition is received from a user. The enablement conditions are caused to be registered with one or more digital communication platforms. Detection of a start condition will result in routing of natural language input from at least one of the digital communication platforms to an application management service.)

将对话驱动式应用程序导出到数字通信平台

背景技术

近年来,例如智能电话、可佩戴装置和消费者可获得的各种其它“物联网”(IoT)装置的含传感器的小占据面积装置的数量急剧增加。此等装置中的许多者包括能够检测有声命令的传感器;在一些情况下,用于检测例如姿势、触摸压力等级、凝视方向改变等的其它模态的信号的传感器也可并入于这些装置中。小占据面积装置常被设计成与可用以执行计算密集型任务的数据中心处的服务器集群通信。

具体实施方式

描述用于简化对话驱动式应用程序的开发和部署的方法、系统和计算机可读介质的各种实施例。在一些实施例中,术语“对话驱动式应用程序”可指为了完成特定任务或功能可从由应用程序的终端用户提供的自然语言语音和/或文字输入的分析获得一个或多个参数的相应值的应用程序。在一些实施例中,对话驱动式应用程序可以被称为“聊天机器人(chatbot)”。根据一些实施例,可针对此类应用程序的管理实施网络可访问服务。在一个实施例中,可以使用该服务将对话驱动式应用操作的至少一部分托管“在云中”(例如,使用云计算环境中的计算资源)。在一个实施例中,使用至服务的接口,应用程序开发人员可以指定一个或多个要将对话驱动式应用程序的功能导出到其上的数字通信平台。在一些实施例中,术语“数字通信平台”可以指这样的计算环境,其接受来自终端用户的输入,例如,作为语音输入和/或字母数字文本输入,并且与应用程序管理服务分离并且不同。在一个实施例中,对话驱动式应用可以被异类数字通信平台访问,使得平台的输入形式可以变化。例如,在一个实施例中,(一个或多个)数字通信平台可以包括使用云计算资源实现的基于语音的服务,其中基于语音的服务接收并分析来自语音捕获设备的语音输入。在一个实施例中,作为另一个实例,(一个或多个)数字通信平台可以包括与社交网络环境相关联的人对人信使应用程序。在一个实施例中,作为又一个实例,数字通信平台可以包括群聊系统或服务。在一些实施例中,可以使用驻留在诸如独立应用程序或浏览器可访问接口之类的终端用户设备上或可由其访问的客户端组件来实现数字通信平台。

在一实施例中,为了将应用程序的功能部署到一个或多个数字通信平台,应用程序管理服务可以配置平台以将与该应用程序相关联的自然语言输入路由到该服务。在一个实施例中,为了配置数字通信平台,服务可以在数字通信平台上注册应用程序的各个方面,以使该平台知道何时何地路由自然语言输入。在一个实施例中,服务可以在数字通信平台上注册一个或多个启动条件,其中启动条件与对话驱动式应用相关联,并且在检测到时,使得与应用程序相关联的输入从数字通信平台被路由到应用程序管理服务。在一个实施例中,例如,可以将与应用程序相关联的自然语言启动短语注册到数字通信平台,以便该平台知道(在检测到语音或文本输入中的启动短语时)何时开始将用户输入路由到应用程序管理服务,用于使用该应用程序进行处理。在一个实施例中,可以根据应用程序的自然语言对话将来自终端用户的自然语言输入路由到服务并在服务处进行处理。在一实施例中,服务还可使用应用程序的自然语言对话来生成一个或多个响应并将其返回给数字通信平台。在一个实施例中,例如,可以根据应用程序分析经由基于语音的数字通信平台接收的语音输入,并且可以由应用管理服务生成响应于语音输入的语音输出,并将其发送到基于语音的数字通信平台,用于交付给终端用户(例如,使用扬声器或客户端设备的声音生成组件)。在一个实施例中,作为另一实例,可以根据应用程序来分析经由信使或聊天数字通信平台接收的文本输入,并且可以由应用管理服务生成响应于文本输入的文本输出,并将其发送至基于文本的数字通信平台,用于交付给终端用户(例如,通过在聊天窗口中显示文本输出)。在各种实施例中,可以将对话驱动式应用程序的功能导出(或使其可访问)到异类数字通信平台,同时为应用程序提供一致的属性。

在一个实施例中,所述程序应用服务可利用一个或多个自然语言理解(NLU)组件(包含例如多种模型)管理待用以获得参数值的自然语言对话的方面。在一个实施例中,可随着时间的过去使用与一个或多个问题域的众多应用程序相关联的自然语言输入实例的集合训练NLU模型。在一个实施例中,在此服务处实施的编程接口(例如,基于网络的控制台的图形用户接口)可由应用程序开发者用以指定正开发的新对话驱动式应用程序的各种方面,而不提供待用于管理终端用户与应用程序的多步骤交互的流程的源代码。在一个实施例中,所述服务可利用NLU组件产生管理多步骤交互的应用程序的部分。在一个实施例中,在运行时,在已完成与开发者关于多步骤对话的交互和已产生并部署程序的可执行版本后,可使用NLU组件(其可利用各种自动化的语音辨识算法和/或自然语言处理算法)捕捉和解译与个别终端用户的对话;在一个实施例中,开发者可不需要指定关于待使用的特定算法的细节,或甚至可不需要意识到使用的算法。

在一个实施例中,应用程序管理服务可被设计成启用用于多种问题域(例如,用于订餐的应用程序、旅行有关的应用程序、娱乐有关的应用程序等)和待开发和部署的多种终端用户装置类型(例如,语音指导式个人助手、智能电话、可佩戴装置等)的对话驱动式应用程序,而不需要应用程序开发者处理或意识到平台具体细节。在一个实施例中,所述服务可使客户能够按最小的编程精力整合现有应用程序(其可使用多种不同资源执行)与基于对话的前端能力。在一个实施例中,应用程序开发者可使用应用程序服务的接口指示识别与待使用应用程序执行的各种任务相关联的参数值需要的对话的高阶步骤,和在各种实施例中待调用以在已使用对话识别任务的参数值后执行或履行任务的程序、服务或资源。在一个实施例中,可使用许多不同类型的资源的任何所要的组合来履行包含其它网络可访问服务的各种资源的任务,如以下进一步详细地描述。在一个实施例中,使用来自一些应用程序的使用记录改进其它应用程序,例如,使用交叉应用程序或交叉域词典增强技术。

在一个实施例中,可使用对应于多个应用程序的相应自然语言输入实例(例如,可预期在对话中使用的各种字串)来训练自然语言理解(NLU)模型。在一个实施例中,可进行第一应用程序的第一参数的值是否将使用自然语言交互来获得的确定,且若将使用此自然语言交互,那么可使用自然语言模型产生第一应用程序的至少一部分。在一个实施例中,网络可访问应用程序管理服务的一个或多个计算装置可例如基于经由例如图形控制台的编程接口从应用程序开发者接收的输入确定与对应于给定问题域的特定对话驱动式应用程序相关联的一个或多个意图。所述意图中的每一个可对应于将代表应用程序的终端用户起始的特定任务(例如,订购披萨或餐食的某一其它部分)。在至少一些实施例中,所述服务可基于由应用程序开发者提供的输入确定待用以设定意图的一个或多个参数的相应值的多步骤自然语言对话的一个或多个基线字串,其中所述多步骤对话包含应用程序与终端用户之间的交互。在一个实施例中,所述服务可产生并存储对话驱动式应用程序的可执行表示。在一个实施例中,所述可执行表示可利用包含由开发者提供的一个或多个基线字串的词典。在一个实施例中,所述服务还可确定给定应用程序的问题域,例如,基于指示域的明确开发者输入或基于使用服务的NLU组件分析由开发者指示的字串,且可由所述服务维持相应具体域或专用词典。在一个实施例中,可例如使用可在NLU组件处实施的一个或多个机器学***台。在一个实施例中,可将应用程序的前端或面向终端用户的组件部署到各种类型小占据面积装置或组件,例如,到语音驱动式家用辅助装置、虚拟现实或扩增现实装置、智能电器、智能电话、可佩戴装置等。

在至少一些实施例中,预期使用的终端用户装置的类型的指示以及待用以履行经由应用程序请求的任务的服务和/或资源也可由应用程序开发者使用应用程序管理服务的编程接口提供。在一个实施例中,众多网络可访问服务可用于执行与对话驱动式应用程序相关联的后端任务,且可至少部分基于从应用程序开发者或拥有者接收的输入识别待用于给定应用程序的任务或意图的特定服务。在一个实施例中,取决于终端用户装置类型和/或履行资源,适当挂钩(例如,实现对于各种任务需要的信息在可执行表示与装置/资源之间的传达的代码)可由所述服务添加到应用程序的可执行表示。在一个实施例中,提供商网络的一个或多个网络可访问服务(例如,不同于应用程序管理服务自身的服务)可用以实施对话驱动式应用程序的后端任务。在一个实施例中,由例如公司或公共部门组织的实体进行的网络设置以提供可经由因特网和/或到一组分散式客户端的其它网络访问的一个或多个网络可访问服务(例如,各种类型的基于云的计算或存储服务,以及可用以开发对话驱动式应用程序的应用程序管理服务)可被称为提供商网络。在一个实施例中,提供商网络有时可被称作“公共云”环境。在一些实施例中,提供商网络的资源跨多个数据中心分布,多个数据中心又可在众多地理地区间分布(例如,每一区域对应于一个或多个城市、州或国家)。在一些实施例中,给定对话驱动式应用程序可由终端用户经由语音交互和/或文字消息交互来调用。在一个实施例中,给定对话驱动式应用程序的相应可执行版本可针对待支持的不同终端用户装置类型产生。在一个实施例中,单个可执行表示可用于多个终端用户装置类型。

根据至少一些实施例,可使用各种个性化技术来增强与对话驱动式应用程序相关联的用户体验(例如,通过使用终端用户个人资料信息减少在对话中必须明确提供值的参数的数目)。举例来说,在一个实施例中,可针对基于个人资料的个性化对应用程序的个别终端用户提供决定参加的选择——例如,当且仅当终端用户同意时,可维护指示用户的参数偏好和/或用户与应用程序的交互的历史的个人资料。应注意,在至少一个实施例中,虽然应用程序管理服务可提供实施个性化所必要的工具,但其可留给应用程序开发者或拥有者决定是否将使用个性化,且如果是,那么精确地,其将在任一给定应用程序的情境中使用之方式。在一个实例情境中,如果在一个实施例中终端用户未能在特定自然语言交互会话期间提供与后端任务相关联的特定参数的值,或对应用程序指示将使用用户的“通常”设定,那么所述服务可使用个人资料信息来设定值。在一个实施例中,关于个性化是否将用于参数值选择的指示可由应用程序开发者经由应用程序管理服务的编程接口提供。

在一些实施例中,给定对话驱动式应用程序可包括若干意图,每个意图与对应的任务相关联。举例来说,在一个实施例中,用于订餐的应用程序可包括用于订购开胃食品、饮料、主菜和甜点的相应意图。在一个实施例中,应用程序管理服务可提供使应用程序开发者能够逻辑连结或“链接”意图的编程接口,且可将上下文信息按需要自一个意图传递到下一个意图。在至少一个实施例中,给定参数的可能值的范围可受到由终端用户为另一参数指定的值约束或取决于由终端用户为另一参数指定的值。在一个实施例中,举例来说,如果基于终端用户的输入将意图I1的参数p1设定至X,那么I1的参数p2可仅采用值K或L,但如果将p1设定至Y,那么可只准许p2具有值M或N。在一个实施例中,应用程序管理服务可以允许应用程序开发者使用服务的编程接口指定参数之间的逻辑相依性或关系。在各种实施例中,所述服务可实施针对不同种类的实体的版本管理,针对对话驱动式应用程序存储所述实体的信息——例如,意图、意图参数、用于任务履行的程序/资源等等。

实例系统环境

图1说明根据至少一些实施例的可实施用于对话驱动式应用程序的开发和部署的网络可访问服务的实例系统环境。如所展示,在一个实施例中,系统100可包括对话驱动式应用程序管理服务102的各种资源,包含主要(但未必排他性)用于开发应用程序的一组建立时间组件120和主要(但未必排他性)用于在应用程序已经开发后执行应用程序的部分或所有的一组运行时间组件。在一些实施例中,应用程序的一些前端元件可以在诸如智能电话、基于语音的辅助设备等的终端用户客户端设备164处运行。在一个实施例中,建立时间组件120可包括(例如)负责使应用程序开发者能够指定确定用于履行各种应用程序意图的参数值所需的交互的步骤的多步骤对话设置协调器122、负责将用于调用用于实施意图的资源的适当挂钩***到对话驱动式应用程序内的履行集成协调器123和用于存储对话驱动式应用程序和相关联的元数据的各种版本的伪影存储库124。在一些实施例中,运行时间组件150可包括(例如)可运行对话驱动式应用程序的至少一些部分的应用程序执行平台156的各种集合体,以及可存储终端用户与应用程序的交互的记录的日志记录存储库154。

在一个实施例中,应用程序开发者可利用来自开发者客户端装置160(例如,膝上型计算机、台式计算机等)的开发相关编程接口125(例如,各种类型的图形用户接口,包含基于网络的接口、应用程序编程接口(API)、命令行工具等)。在一些实施例中,使用编程接口125,关于应用程序域的信息、给定对话驱动式应用程序内的意图、待用以执行对应于意图的任务的资源/服务以及用于对话步骤以识别用于各种意图的参数值的字串可由应用程序开发者指定。在至少一些实施例中,此信息可由应用程序开发者或设计员对应用程序管理服务102指示,而不必提供任何源代码。在一些实施例中,开发者可提供待在待用于识别意图参数值的对话的各个阶段期间使用的字串的一个或多个基线实例,且可将此等基线字串添加到词典数据库136中的适当词典。在一个实施例中,存储在数据库136中的每一词典138可包括处于给定语言(语言的组合)下的一组单词或短语,所述单词或短语将在与应用程序终端用户的交互中用以识别执行与应用程序相关联的任务所需的参数值和/或其它信息。在一个实施例中,可识别或索引存储在数据库中的词典,例如,基于正解决的问题域和对应的应用程序识别符,例如,词典138A可与域D1的应用程序A1相关联,词典138B可与域D1的应用程序A2相关联,词典138P可与域Dk的应用程序Am相关联等。在一个实施例中,关于词典应用于的域的信息可为有帮助的,例如用于确定可使用NLU或机器学习技术将成功地用于一个应用程序的哪个字串添加到类似域或同一域的另一应用程序的词典。

在一个实施例中,可使用与众多应用程序相关联的字串或词典来训练服务的NLU资源134(例如,一个或多个模型)。在一个实施例中,NLU模型可用以产生和/或增强对话驱动式应用程序的各种部分,例如,以管理可需要用来识别应用程序的各种参数的值的多步骤交互的流程。随着时间的过去,在一个实施例中,随着使用应用程序管理服务102产生和部署越来越多的对话驱动式应用程序,NLU模型可变得更复杂,使得可改善现有词典和应用程序(例如,通过将习得的字串添加到词典)。

在一个实施例中,基于由应用程序开发者使用接口125提供的信息(包含用于与不同应用程序意图的各种参数相关联的潜在多步骤对话的规范),在所描绘实施例中,可产生或存储对应的应用程序的可执行表示,例如,至少临时在伪影存储库124中。在一个实施例中,应用程序管理服务102可包括履行集成协调器123以使关于待用以执行经由终端用户对话指示的任务的各种后端资源和服务的信息能够并入于可执行表示中和/或相关联的元数据中。在一个实施例中,举例来说,集成协调器可将适当通信模块、格式化模块、数据结构变换代码、插件模块等***到应用程序的可执行版本内,而不需要应用程序开发者供应源代码用于集成。在一个实施例中,从伪影存储库,可将给定可执行应用程序的部分或所有部署到选定执行平台156,例如,响应于来自应用程序开发者或拥有者的部署请求。在一些实施例中,应用程序拥有者或开发者可指定使用特定执行平台的各种特性;在其它实施例中,应用程序管理服务可选择使用特定执行平台。在一些实施例中,执行平台156可以包括例如各种虚拟和/或物理计算机服务器。在至少一些实施例中,可如下所论述使用提供商网络的一个或多个其它服务的资源。在各种实施例中,在选择执行平台用于给定对话驱动式应用程序时,可考虑许多因素,例如,预期的工作负荷等级、平台与打算的终端用户和/或待用以履行应用程序的意图的资源的实体接近性、关于由应用程序拥有者/开发者指示的预算的偏好和约束等等。

在各种实施例中,可单独或组合使用众多资源来执行或履行待使用对话驱动式应用程序达成的任务。在各种实施例中,举例来说,涉及订餐的对话驱动式应用程序可最终调用由餐馆开发的次序产生程序,涉及进行旅行安排的对话驱动式应用程序可调用用于询问飞机航班可用性的程序,等等。在一些实施例中,次序产生程序和/或询问程序可自身使用其它执行平台(例如,在应用程序管理服务外部的平台,例如,外部任务履行资源162)来执行。以下提供可在已针对各种对话驱动式应用程序确定意图参数后使用的资源种类的实例。在一些实施例中,在对话驱动式应用程序的开发、部署和使用的各个阶段,应用程序管理服务(图1中未展示)的一个或多个资源验证组件可负责确保意欲用于意图任务履行的资源的可用性和/或响应性。举例来说,在一个实施例中,如果与特定任务履行程序相关联的网络地址或统一资源识别符(URI)由应用程序开发者指示,那么所述资源验证组件可负责检查(和/或周期性地再检查)网络地址或URI是在发挥功能中。

在一个实施例中,在已针对客户启用对给定对话驱动式应用程序的访问后,使用运行时间编程接口155,可使用多种终端用户客户端装置164与应用程序交互。在各种实施例中,所述交互可基于语音、基于文字消息、基于语音与文字的组合,或可使用其它信号模态。在一些实施例中,客户端装置164可具备对话驱动式应用程序的轻型前端组件。举例来说,在一个实施例中,在待用于一个或多个对话驱动式应用程序的基于语音的辅助装置的情况下,能够检测至少一些语音信号的软件和/或硬件可并入于客户端装置164中或安装在客户端装置164上。在一个实施例中,在另一实例中,如果终端用户将要使用智能电话与对话驱动式应用程序交互,那么可将被配置成检验由电话的麦克风检测的信号的前端电话应用程序安装在电话上。在各种实施例中,除了基于语音的辅助装置和智能电话外,可使用多种其它终端用户装置,例如,扩增现实或虚拟现实耳机、可佩戴装置、智能电器、例如可遥控相机的安全装置等。

在一个实施例中,可在应用程序管理服务102处利用许多自然语言理解资源134。在一些实施例中,资源134可包含(例如)用于自动化话语辨识(ASR)算法和模型、自然语言处理(NLP)算法和模型、丛集和其它分类模型等等的计算和/或存储资源。在一个实施例中,对话驱动式应用程序的开发者可不需要是在自然语言理解或机器学习方面的专家,且可甚至不需要指示用于其应用程序的算法类型,不管在建置时间还是在运行时间。在一个实施例中,服务的组件可按需要调用资源134的适当集合,例如,可在运行时间调用ASR算法以将终端用户的话语转换成一连串令牌,且NLP算法可用以发现由ASR算法识别的令牌与在多步骤对话交互期间预期且在词典138中指示的发声种类之间的匹配/类似性评分。

在一个实施例中,指示与终端用户的交互的日志记录可存储在存储库154中。在一些实施例中,NLU资源134可基于终端用户的所观察行为,利用日志记录识别或“学习”可有用于或适合于各种应用程序的对话的额外字串,且可将此类习得的字串添加到与应用程序相关联的词典138。在一些实施例中,可自动执行此类词典增强,例如,不由应用程序开发者揭示。在一些实施例中,可在将习得的字串添加到词典前获得来自应用程序开发者的批准。在各种实施例中,应用程序开发者可能能够经由编程接口访问存储在存储库154中的日志记录,且使用所述日志记录改进/修改与其应用程序相关联的词典138。在一个实施例中,不同于应用程序自己的终端用户交互日志记录的数据集可用以学习额外字串:例如,可使用同一问题域或其它域中的其它应用程序的词典,可使用自然语言交互的其它语料库等等。在一个实施例中,可在部署应用程序前执行对应用程序的词典的一些增强,例如,可使用NLU模型产生处理多步骤自然语言交互的流程的应用程序的部分。举例来说,在一个实施例中,应用程序管理服务可具有用于对话步骤的富余度准则,根据所述准则,可能必须针对给定对话步骤指定足够相互不同的至少最小数目个字串、短语或句子。在一个实施例中,如果开发者未基于所述准则提供充分富余词典,或如果开发者向所述服务请求词典的增强,那么机器学习工具可被部署以在部署前识别用于应用程序的额外字串。

在至少一个实施例中,应用程序管理服务102可提供使应用程序开发者能够至少在某些条件下存储和使用个性化信息以增强与对话驱动式应用程序的终端用户体验的资源。举例来说,在一个实施例中,“选择加入”权限可从终端用户获得以存储和使用用于对话驱动式应用程序的基于个人资料的个性化数据,例如,在终端用户首先利用应用程序或寄存器使用应用程序时或在某一稍后时间。在一个实施例中,如果终端用户同意,那么例如通常由终端用户针对各种意图参数设定的值、终端用户与应用程序的交互的历史等的信息可存储在个性化数据库132中。举例来说,在一个实施例中,此个性化信息可用以设定各种所需意图参数的默认值,或设定用于终端用户未能在给定交互期间指示偏好的参数的值,等等。在至少一些实施例中,应用程序开发者可在建置时间对服务102指示关于个性化的各种应用程序级偏好,例如,是否将根本使用个性化,和如何/是否在运行时间对终端用户通知正代表他们使用个人资料数据等。在一个实施例中,此个性化相关设定可存储为应用程序元数据的部分。

在各种实施例中,使用应用程序管理服务102,可随着时间的过去开发、部署和改进用于不同应用程序域的多种对话驱动式应用程序,而不需要应用程序设计员是在编程对话流、自动化话语辨识或自然语言处理方面的专家。在一个实施例中,可以多租户方式使用所述服务的资源。在一些实施例中,可用以受益于其它开发者的体验的知识库可从服务102获得。

实例多步骤对话

图2说明根据至少一些实施例的用于使用对话语言订餐的多步骤对话的实例步骤。在描绘的实施例中,客户C1与已使用类似于图1的服务102的服务开发和部署的应用程序口头交互。客户的口头陈述的例子在图2的左侧示出,标记为“终端用户(客户C1)输入210”。与终端用户输入相对应的应用程序响应的示例在标签“应用程序侧对话响应250”下显示。随着交互继续进行,在描绘的实施例中,应用程序实际上用意图参数值填充数据结构,展示在图2的最右部分中标签“意图状态280”下。

在一个实施例中,客户用命令“食物应用程序,我想要订一份披萨”211调用应用程序。在一个实施例中,介绍性术语“食物应用程序”可被视为“唤醒字”或“唤醒短语”——用于区分与订餐应用程序的交互与可由用于应用程序的音频传感器或麦克风检测到的其它会话的信号。在一个实施例中,ASR/NLP资源可由应用程序的运行时间组件用以识别由客户讲的话,和确定将订购一份披萨。在描绘的实施例中,对话响应“确实。您想要多大的披萨?”214可产生为应用程序的对话流的部分,且通过正使用的终端用户装置的扬声器组件提供给客户。此外,在一个实施例中,所述应用程序可具现化叫做“订购披萨”的意图,在意图状态281中存储客户(C1)的身份的指示,并且存储尚未针对所述意图确定参数值(如由“参数值=空”指示)的指示。在一个实施例中,与“订购披萨”意图相关联的应用程序的开发者可已通过应用程序管理服务的编程接口指示,在与所述意图相关联的参数当中,其值应确定的第一个是“大小”;结果,短语“您想要多大的披萨”可包含在响应214中。

在描绘的实施例中,客户C1可以叙述“中等——约14英寸”217来响应。注意,根据一个实施例,叙述217的“约14英寸”部分可为非典型的,且可并非由应用程序预期的对话的部分(例如,如果所述应用程序设计有预期在对话中使用的三个披萨大小指示符“大”、“中等”和“小”)。然而,在一个实施例中,由所述应用程序使用的NLP算法可能够基于分析叙述217确定(a)客户需要“中等”披萨,和(b)客户相信中等披萨直径为约14英寸。在描绘的实施例中,假定中等披萨的直径事实上假设为大致14英寸,则意图的大小参数可填充有值“中等”,如在状态282中所指示。在各种实施例中,应注意,对话驱动式应用程序可被设计成适当响应由终端用户作出的不明确或不正确的叙述。举例来说,在一个实施例中考虑针对披萨大小的预期选择集合“大”、“中等”和“小”分别对应于直径18英寸、14英寸和10英寸的情境。在一些实施例中,如果客户通过说出“中等—约20英寸”、“中等—约10英寸”或甚至“中等—约16英寸”来响应关于所要的披萨大小的问题,那么在一个实施例中,所述应用程序可用大致等效于以下的澄清的后续响应来响应——“对不起,我不太理解。我们的中等披萨直径大致为14英寸,我们的大披萨为约18英寸,并且我们的小披萨为约10英寸。您喜欢多大的?”。在一些实施例中,也可处置至少一些不明确/不正确的终端用户叙述的管理,而不需要应用程序开发者提供源代码,例如,对应于澄清后续响应的字串可由开发者提供,且待产生澄清后续响应的条件可由开发者经由应用程序管理服务的编程接口指示。

在描绘的实施例中,应用程序开发者可已在建立时间指示在已确定披萨大小的值后,值待从终端用户获得的接下来的两个参数是表皮类型和佐料。因此,在一个实施例中,所述应用程序可产生响应220,包含“收到,中等披萨。您想要什么类型的表皮?”。在一个实施例中,客户可用单个字回答“薄”223来响应,这将使表皮参数值如在意图状态283中所指示来设定。在一个实施例中,在已确定表皮选择后,所述应用程序可请求客户指定佐料,例如,使用对话响应226:“好的,是薄表皮。您想要什么佐料?”。在一个实施例中,客户可以一列佐料229来响应,使佐料参数值能够如在状态283中所展示而设定。

在一个实施例中,在已确定所有所需参数的值后,所述应用程序可指示不需要更多输入,例如,通过使叙述“收到。您想要奶酪和蘑菇。我有了我需要的信息”231产生。(所述实例假定不需要支付信息,例如,客户C1已向所述应用程序注册的***可被默认地使用)。在一个实施例中,履行程序(“orderPizza(params)”)可由对话驱动式应用程序调用以起始对应于其参数已被填充的意图的任务,如由箭头280指示。在一个实施例中,在成功地调用履行程序后,可为客户产生确认任务起始(类似于图2的叙述210K)的最终叙述。

如由在所描绘的实例中的应用程序产生的响应(例如,“一定”、“好的”、“收到”、“是薄表皮”等)指示,在一些实施例中,对话的音调可相当非正式。在一些实施例中,多个角色可用于应用程序响应,每一个对应于例如关于语言的正式性不同音调的、使用的语音的性别、其语音正模拟为应用程序的语音的个人的大致年龄等的组合。在各种实施例中,角色(或在运行时选择一个所来自的角色集)可由应用程序开发者经由应用程序管理服务的编程接口在建立时间指示。此外,在至少一些实施例中,客户的叙述的确认将被提供的程度的指示也可由应用程序开发者以编程方式指示。在描绘的实施例中,每当应用程序响应客户的参数值规范时,提供值的确认。在一个实施例中,取决于应用程序开发者的偏好,可不针对识别的每一参数值提供此类确认;取而代之,例如,可一次确认一对参数值,或可紧接在调用履行程序前确认所有参数值。

用于对话驱动式应用程序的简化开发的接口

图3说明根据至少一些实施例的可用以起始对话驱动式应用程序的开发的实例图形用户接口。如所展示,在一个实施例中,基于网络的建立时间接口301可包括消息区302和关于应用程序的各种方面的许多字段键入元素。在一个实施例中,消息区302对应用程序开发者提供一般指南,例如,指示关于开发对话驱动式应用程序的指导可经由可用链路中的一个访问,且下拉菜单可用于所述字段中的一些。

在描绘的实施例中,应用程序开发者可使用元素304提供应用程序名称。在一些实施例中,开发者可明确指示用于应用程序(例如,对于展示之实例应用程序,“订食物”)的问题域,作为组织相关应用程序的方式,其可为有帮助的。在一些实施例中,应用程序管理系统可推断或推导应用程序定址到的问题域,例如,使用自然语言理解算法。在一些实施例中,所述域信息可用以增强与给定应用程序相关联的词典,例如,通过使用机器学习模型分析在所述域内的类似应用程序的词典和将习得的字串和/或额外措辞选择添加到给定应用程序的词典。在一个实施例中,关于将调用应用程序所来自的终端用户装置的类型的信息可在字段306中提供,如所展示,例如,智能电话和语音控制式辅助装置可位列用于“订餐(OrderMeal)”应用程序的目标化终端用户装置当中。在一些实施例中,关于目标装置类型的信息可用以产生应用程序的一个或多个可执行版本,例如,可针对电话产生一个版本且可针对语音控制式助手产生另一版本,其中用于与适当类型的装置(例如,与驻存在装置上的前端应用程序组件)通信的代码并入于可执行版本中。

在描绘的实施例中,“添加新意图(AddNewIntent)”按钮308可由应用程序开发者用以初始化用于应用程序的新意图目标。在一个实施例中,可使用元素310提供意图的名称(例如,“订购披萨”)。在一个实施例中,,可经由元件313指示针对意图的个性化设定。在一个实施例中,如所展示,终端用户可能够选择加入个性化,并且如果终端用户确实这样做,那么其个人资料信息可用以设定在终端用户与应用程序的交互期间未填充或未覆写的参数值。在一个实施例中,可经由接口301的元素314、315和317提供三个起始字串(即,如果由终端用户讲出或包含在文字消息中,那么将使应用程序对话开始的字串)的相应实例。在一个实施例中,举例来说,话语序列“我想要一份披萨”、“我想要订一份披萨”或“能给我送一份披萨吗?”中的任一个可用以启动应用程序。在语音(而非文字)由终端用户用以与应用程序交互的实施例中,可在运行时间使用ASR与NLP资源的组合以检测由个人说出的具体话语,并且然后指派指示发声匹配由应用程序开发者在建立时间指示的字串中的一个或多个的程度的评分。在一个实施例中,如果匹配评分超过阈值,那么应用程序可开始与意图相关联的对话。在一个实施例中,应用程序开发者可使用接口元素319指定待用于识别与给定意图相关联的各种参数的值多步骤或单步骤对话,如在图4的上下文中论述。

图4说明根据至少一些实施例的可用以确定与对话驱动式应用程序相关联的意图的参数值的实例图形用户接口。举例来说,在一个实施例中,作为应用程序开发者点击类似于图3的“添加意图参数对话”元素319的元素的结果,到达这接口。在一个实施例中,在基于网络的建立时间接口401内,待确定参数值的意图的名称可展示在元素410中。在一个实施例中,应用程序开发者可将两个种类的参数添加到所述意图:所需参数,必须获得其相应值以便履行与意图相关联的任务;和任选参数,未必需要提供其值。在一个实施例中,为了添加新的所需参数,可使用元素408。在一个实施例中,可使用元素413和414键入可用以引出参数的值的各种询问字串的实例。在描绘的实施例中,可经由元素415指示用于参数的可接受值,且可经由元素417指示默认值。

在描绘的实施例中,元素418可用以添加对任选参数的询问。在一个实施例中,可经由元素420指示任选参数的名称,可经由例如422的元素指示待用以请求参数的值的询问字串,且可经由元素425指示参数的可接受值。在一个实施例中,应用程序开发者可按需要添加许多新参数和对应询问与可接受值。

在一些实施例中,应用程序开发者可使用应用程序管理服务的接口明确或隐含地提供关于待确定参数值的次序的输入,而不必提供实施排序的源代码。举例来说,在一个实施例中,在应用程序建立时间指定参数和相关联的询问的顺序可对应于在运行时间确定参数值的顺序。在一个实施例中,应用程序开发者可重新排列待获得参数值的顺序,例如,通过拖放表示不同参数的图标(如下在图5的上下文中论述),或通过添加指示待确定参数值的顺序的箭头。

在一个实施例中,在已指定开发者希望与意图包含在一起的所有参数后,在一个实施例中,开发者还可提供关于待用以执行对应于所述意图的任务的一个或多个资源和/或服务的信息。在一个实施例中,举例来说,在图4中所描绘的实例情境中,元素427可用以初始化用于任务履行资源的描述词。在一些实施例中,用于意图履行任务的资源中的至少一些可与网络可访问服务相关联。在一个实施例中,可经由元素428提供服务的名称,且可经由元素429指示待使用的资源的识别符(例如,URI)(以及待传递到资源的参数集合)。在一些实施例中,针对给定意图可组合使用若干不同资源(其可以是不同服务的部分),例如,可在一个服务处运行第一程序以起始所述任务,且可将来自那个第一程序的结果提供到在另一服务处运行的第二程序以完成所述任务。正如获得参数值的顺序可在不提供源代码的情况下指示一样,在一些实施例中,待利用多个资源的顺序可由应用程序开发者指示,而不使用在各种实施例中的源代码。

图5说明根据至少一些实施例的排列可针对对话驱动式应用程序确定参数值的值的次序的拖放操作的使用的实例。在描绘的实施例中,与正使用基于网络的建立时间接口501开发的特定对话驱动式应用程序相关联的意图510(具有名称“意图名称”)可具有参数A、B、C、D、E、F和G,其值待经由自然语言交互从终端用户获得。在一个实施例中,应用程序开发者可使用接口501排列和重新排列待确定参数值的顺序,和提供关于待用以获得所述值的多步骤对话的各种其它细节(例如包含在放弃对应的对话步骤或全部对话前,将作出多少尝试来获得给定参数的值)。

在一个实施例中,如由接口501的图形元素512展示,开发者可指示在描绘的实施例中将首先确定参数A的值,且可做出三次尝试(潜在地使用稍微不同的询问串)来获得参数A的值。在一个实施例中,在获得A的值后,可获得一群参数B、C和D的值,如由元素514和箭头513指示。在一个实施例中,关于B、C和D的询问可按随机次序发出,并且在描绘的实施例中,可作出两次尝试来获得所述值中的每一个。在一个实施例中,然后可获得参数E和F的值,如由元素516和箭头515指示。在一个实施例中,在80%的时间,可在请求F的值前请求E的值;在其余20%的时间,可在E的值前请求F的值。

在一个实施例中,应用程序开发者可使用拖放动作550在元素514与516之间***元素518,以指示在运行时,应在参数B、C和D的值后且在参数E和F的值前确定参数G的值。在一个实施例中,在元素518已定位于元素514与516之间后,指示排序的新箭头可替换箭头515——一个新箭头从元素514引到元素518,且另一个从元素518引到516。

应注意,在各种实施例中,可使用与在图3、图4和图5中展示的实例不同类型的编程接口和接口控制元素来实现对话驱动式应用程序的开发,而不需要由开发者提供源代码。

语音和文字相关设定

图6说明根据至少一些实施例的可由对话驱动式应用程序的开发者在建立时间指定的实例语音相关设定和文字相关设定。如较早先所提到,在一个实施例中,给定对话驱动式应用程序可能能够响应语音以及基于文字消息的输入两者。在一个实施例中,应用程序开发者可经由应用程序管理服务的编程接口指示打算应用程序的交互的类型。在一些实施例中,可针对语音和文字交互产生应用程序的稍微不同版本,例如,版本间具有共同业务逻辑和不同的通信相关元素,而在其它实施例中,可针对两个交互类型开发应用程序的单个版本。

在描绘的实施例中,对话驱动式应用程序602可支持基于语音和基于文字的两种交互。在一个实施例中,由应用程序开发者指示的语音模式交互设定610可尤其包含一个或多个应用程序扬声器角色612、待由应用程序支持以用于终端用户交互的音频捕捉和产生装置类型614和是否支持动态装置切换616。在一个实施例中,应用程序扬声器角色612可包括以下设定:对待由应用程序的“语音”模拟的性别和年龄(即,应用程序是否将显得具有男人的语音、女人的语音、儿童的语音)、待由应用程序在与终端用户交互期间使用的非正式性的等级、当说出应用程序的字词时将使用的任何特定口音等等。在一个实施例中,音频装置类型612可指示待用于与终端用户的对话的话语传感器和话语产生器的种类,其可影响针对所述应用程序选择的ASR/NLP算法。在一个实施例中,动态切换设定614可管控在与应用程序的交互会话的中间期间个人是否可在装置之间切换,例如,如果准许在一组注册的装置之间的动态切换,那么可使用智能电话开始订购披萨的交互会话,且使用基于语音的辅助装置完成所述交互会话。在一个实施例中,动态切换可为有用的,例如,当终端用户在与给定应用程序交互时从建筑物或房子的一个房间移动到另一个房间时,或从车辆移动到建筑物时。

在一个实施例中,基于文字发送的交互模式设定650可包含(例如)用于应用程序的文字发送角色652,以及可用于发送/接收短消息或文字的支持的服务、输入接口或应用程序的列表654。在各种实施例中,基于文字发送的交互还可被称作基于“聊天”的交互。在一个实施例中,举例来说,文字发送角色652可管控由应用程序使用的文字发送语言的非正式性的程度,例如,是否和有多频繁地将使用情绪符、表情符或其它图形符号。在一些实施例中,支持的文字发送应用程序/服务的列表654可包含(例如)提供用于(通常)短文字消息的输入接口的各种社交媒体应用程序。

在至少一个实施例中,待用于与个别终端用户的语音或文字发送交互的特定角色可由终端用户选择,例如,作为对话驱动式应用程序的设定的部分。在一些实施例中,随着时间的过去,用于给定终端用户的角色的各种参数可由应用程序管理服务调适或修改,例如,基于终端用户的自己的语言非正式性等级的分析和/或其它因素。在一个实施例中,不同角色可具有不同地区性口音或本地话语/文字使用特殊风格,且可基于终端用户的地理位置或其它因素的确定为终端用户选择特定角色。

提供商网络服务的使用

图7说明根据至少一些实施例的可实施应用管理服务的实例提供商网络。如所展示,在一个实施例中,除了应用程序管理服务710之外,提供商网络702还可包括动态布建计算服务720、虚拟计算服务730、存储或数据库服务740和机器学习服务750。在描绘的实施例中,应用程序管理服务710可利用其它服务中的一个或多个,例如,以执行与对话驱动式应用程序的各种意图或任务相关联的履行任务。

在一个实施例中,动态布建计算服务720可使客户端能够寄存用于执行的可执行程序,而不预分配用于客户端的执行平台(且因此,可有时被称作“无服务器”计算服务)。在一个实施例中,程序开发者可在服务720处提交程序,且指示待引起程序的执行的一个或多个触发条件。在一个实施例中,替代预先保留或布建用于客户端的计算资源,服务720可在不论何时触发程序的执行时从执行平台的集区724简单地选择用于注册的程序726的计算资源。在一个实施例中,客户端可能甚至意识不到用以执行程序的虚拟或实体机器的种类,且可仅仅被提供执行的结果。在一个实施例中,动态布建计算服务的客户端可不必关心识别待用于其程序的平台的数目或计算容量,且客户端可只被装入当执行其程序时实际执行的计算量(例如,按相对细粒度的秒增量或甚至计算的秒分率测量)。在一个实施例中,由此服务720提供的计算资源可用于实施用于一些种类的对话驱动式应用程序的意图的任务履行程序,尤其如果应用程序的工作负荷倾向于动态地改变。在描绘的实施例中,动态布建服务720还可使许多适配器728可为注册的程序访问,从而使注册的程序能够利用在服务720外部的资源。在一个实施例中,针对在服务720处的执行注册的程序可能够访问(例如)在提供商网络的其它服务处和/或提供商网络外的资源。

与动态布建服务720大不相同,在描绘的实施例中,虚拟计算服务730可按稍微更静态方式将计算资源(例如,虚拟机)预分配到其客户端,例如,在指定时间间隔内,且使客户端能够在分配的虚拟机上运行程序。在至少一些实施例中,可调用在此类虚拟机上运行的程序以用于实施对话驱动式应用程序的履行任务。在一个实施例中,一些此类程序可实施网络服务接口,从而使给定程序能够通过将命令传输到与程序相关联的基于HTTP(超文本传送协议)的地址来利用(例如,以履行任务意图)。在一个实施例中,分散式应用程序(例如,用于进行与旅行相关的预订或用于管理与由企业生产的各种产品相关联的客户支持任务的工作流的应用程序)原先可在虚拟计算服务处实施,而不包含用于对话驱动式交互的必要挂钩或通信模块。在一个实施例中,在虚拟计算服务处支持的各种基础设施管理能力(例如,自动化缩放和负载平衡)可用于分散式应用程序。在一个实施例中,分散式应用程序的拥有者可能希望将对话驱动式交互组件添加到此应用程序。在一个实施例中,应用程序管理服务710可使对话相关组件能够被产生,且与预先存在的应用程序集成,而无需对编程工作对进行大量的额外投入。在一些实施例中,在虚拟计算服务720和/或动态布建计算服务710处运行的意图任务履行程序可相互调用(或调用在其它服务处的其它程序),即,给定任务履行程序可不限于利用提供商网络的给定服务的资源。

在各种实施例中,一个或多个存储和/或数据库服务740也可用于对话驱动式应用程序。在一个实施例中,举例来说,用于任务履行的数据集可存储于这类服务处,可存储用于对话驱动式应用程序的终端用户的个人资料信息,等等。在至少一个实施例中,对话驱动式应用程序的可执行表示可包括调用存储或数据库服务的编程接口。

在一个实施例中,提供商网络可包含机器学习服务750,其可由各种其它服务和/或直接由外部客户端利用。在一个实施例中,机器学习服务750可提供自然语言理解(NLU)能力,所述能力又可取决于自动化语音辨识(ASR)与自然语言处理(NLP)组件的组合。在一个实施例中,可从机器学习服务访问广泛多种算法754和模型756,包含(例如)各种分类和回归算法、基于人工神经网络的算法(包含“深度学习”神经网络算法)等等。在一个实施例中,捕获对机器学习任务的先前体验的记录且因此可用以为各种算法和模型选择合适参数和超参数的知识库758也可实施于机器学习服务750处。在一些实施例中,机器学习服务的ASR组件可包括许多有限状态换能器(FST)、相关联的一般或用户特定语言模型和/或声学模型。在一个实施例中,举例来说,ASR组件可基于在与对话驱动式应用程序相关联的终端用户装置处接收的信号检测话语,将话语信号变换成文字,且将文字作为输入提供到自然语言处理组件。举例来说,在一个实施例中,自然语言处理组件可实施用于指定实体辨识、意图分类和结果排名(例如,使指示发声针对用于设定意图参数的对话的各种阶段匹配预期字串的程度的评分与终端用户发声相关联)的算法。如下文进一步详细论述,在一些实施例中,机器学习服务750还可用以使与对话驱动式应用程序相关联的词典的扩大或增强自动化,例如,基于日志记录分析、交叉应用词典分析和/或其它语言使用语料库的分析。

在一个实施例中,对于使用服务710开发的对话驱动式应用程序的一些意图,可在提供商网络外的资源处实施履行任务,例如,在位于应用程序拥有者网络770内的执行或存储资源772处或在位于第三方网络760(例如,由第三方应用程序供应商或服务供应商拥有或管理的网络,第三方应用程序供应商或服务供应商不同于开发/拥有对话驱动式应用程序的实体且不同于提供商网络运营商)中的执行或存储资源762处。在各种实施例中,在提供商网络内部或外部的其它资源或服务可用于对话驱动式应用程序。如较早先所提到,在一个实施例中,应用程序管理服务710可简化利用各种类型的资源所需的集成,例如,通过将适当通信模块、格式化模块、数据结构变换代码、插件模块等到对话驱动式应用程序内,而不需要应用程序开发者供应用于集成的源代码。

用于对话驱动式应用程序的编程实体

图8说明根据至少一些实施例的可在对话驱动式应用程序中表示的实体的实例。所述实体中的个体可通过分配相应存储器目标来表示,在各种实施例中,所述存储器目标可存储于与应用程序管理服务相关联的永久性存储装置中。在一个实施例中,如所展示,具有识别码(ID)802的给定应用程序开发者/拥有者可使用所述服务创建任何所要的数目个截然不同的应用程序804(记法1:N和开发者/拥有者ID 802与应用程序804之间的箭头的方向应用程序此1:N关系)。

在一个实施例中,给定应用程序804可具有与其相关联的多个意图806。在一个实施例中,每一意图可具有对应于意图语法模型810的一个或多个触发字串808(例如,特定语言中包括一个或多个字的句子或短语)。在一个实施例中,举例来说,语法模型可包括关于串的个别字的预期排序、可使用的语音的部分的变体等等的信息。在一个实施例中,每一意图806可对应于一个或多个任务832,一旦获得或设定意图的所有所需参数值,那么将履行所述一个或多个任务。在一个实施例中,给定任务可又需要使用一个或多个履行资源834。

如较早先所论述,在一些实施例中,给定意图806可具有一个或多个参数808。在描绘的实施例中,每一参数可具有相关联的数据类型842和参数语法模型844(类似于意图语法模型810,但适用于待用以确定给定参数的值的语言)。在描绘的实施例中,一个或多个询问808可由用于所述对话的应用程序开发者指示以用以获得对应参数值。

在至少一些实施例中,应用程序管理服务可实施相应应用程序编程接口(API),其可用以创建、删除、读取、写入或修改在图8中展示的实体中的个体。举例来说,在一个实施例中,关于意图,可实施API创建意图(createIntent)()、删除意图(deleteIntent)()、获取意图(getIntent)()、设定意图(setIntent)()和更新意图(updateIntent)(),对于意图参数,可实施API创建意图参数(createIntentParameter)()、获取意图(getIntent)()、设定意图(setIntent)()和更新意图(updateIntent)(),等等。在使类似于图3中展示的图形用户接口的图形用户接口可为开发者所有的实施例中,图形接口控制元素(例如,“添加新意图”控制件308)的使用可导致调用对应的API(例如,在“添加新意图”的情况下,创建意图(createIntent)())。在一些实施例中,程序员可使用API创造用于其对话驱动式应用程序的实体,例如,作为使用图形用户接口的补充或替代。

在一些实施例中,可创建图8中展示的不同实体中的至少一些的许多版本。在一个实施例中,举例来说,在包含用于订一份披萨的意图的对话驱动式应用程序的情况下,一些披萨佐料或表皮类型在不同地理地区或国家可更流行,而与订购披萨相关联的许多业务逻辑可独立于地理。在一个实施例中,可针对不同区域创建与订购披萨相关联的意图的不同版本。在一个实施例中,应用程序管理服务的版本管理管理器877可跟踪各种实体的不同版本之间的相依性,且确保使用实体版本的一致组合产生对话驱动式应用程序的可执行版本。在各种实施例中,可在对话驱动式应用程序中表示不同于图8中展示的实体的实体。

意图链接

在一些实施例中,给定应用程序可包括多个意图,其中针对一个意图的对话和业务逻辑由另一意图的对话或业务逻辑触发由链接到另一意图的对话或业务逻辑。在一个实施例中,应用程序开发服务可有助于产生此类应用程序,例如,通过使开发者能够指示待在所述意图之间传递的上下文信息的类型。图9说明根据至少一些实施例的针对对话驱动式应用程序的意图链接的实例。

在一个实施例中,如所展示,在描绘的实施例中,特定实例应用程序902(“订餐”)可具有至少三个构成的链接意图906A、906B和906C。在一个实施例中,意图906A可对应于订一份披萨的任务,例如,作为餐食的主食。意图906B可对应于为餐食订购饮料,且意图906C可对应于订购甜点。在一个实施例中,应用程序开发者可指示待使用图形编程接口链接所述意图的次序,例如,是否将在用于订购甜点的参数前或后确定用于订购饮料的参数。在一个实施例中,举例来说,可将对应于意图的相应图标的位置相对于彼此重新排列,而不提供对应的源代码。

在一些实施例中,开发者可指示将对应于每一意图的准则908(例如,准则908A、908B和908C)链接到应用程序开发服务的相应集合,从而指定待在起始针对所述链中的下一个意图的对话前验证的条件(如果存在)。在一个实施例中,举例来说,可使用此类条件,以避免不兼容意图的某些组合,以避免相同意图对话的多次重复,等等。在一个实施例中,举例来说,如果终端用户已直接或间接指示其不大可能订购甜点,那么可不起始甜点订购对话。在一个实施例中,链接起始询问910(例如,910A、910B或910C)的相应集合可由开发者指定,例如,在所描绘的情境中,起始针对意图906B的对话的询问“您是否想要跟您的披萨一起订购一些饮料?”。在一个实施例中,开发者还可指示应从一个意图传递到链中的下一个意图的上下文信息912(例如,912A、912B或912C)。在一个实施例中,举例来说,上下文信息可包含从终端用户获得或使用基于个人资料的个性化设定的一个或多个参数值,以及例如(在订餐的情况下)送货地址、电话号码等的其它元数据。在一个实施例中,应用程序管理服务可产生在运行时将上下文信息从一个意图对话传送到下一个意图对话所需要的代码,并且将上下文传送代码并入到所述应用程序的可执行版本内。在各种实施例中,关于链接的意图,应用程序管理服务在应用程序的可执行表示内可包含以下逻辑或指令:确定在已完成确定用于链中的一个意图的参数的特定交互的步骤后,将自动起始确定所述链中的下一个意图的一个或多个参数的值的另一交互。

参数间逻辑关系

在一些情境中,与对话驱动式应用程序的给定意图相关联的各种参数可相关,例如,为一个参数指派的特定值可约束或限制可指派到另一参数的可能值。在各种实施例中,开发者可能够对应用程序管理服务指示此类逻辑关系,例如,不提供对应的源代码。图10说明根据至少一些实施例的对话驱动式应用程序的条件参数值范围的实例。

在一个实施例中,在所描绘的情境中,披萨大小参数(与订一份披萨的意图相关联)可采用三个值中的一个:大1004A、中等1004B和小1004C,这是基于与终端用户的基于口头或文字的交互来选择的。在一个实施例中,取决于由终端用户选择的大小,披萨制作者可使用到披萨的表皮的种类可不同。在一个实施例中,披萨订购意图的表皮类型参数可受到大小参数约束。在一个实施例中,对话驱动式应用程序的开发者可能够使用应用程序开发服务的编程接口指示所述约束。

在一个实施例中,如果大小被设定成大,那么以下四个表皮类型可由终端用户选择——标准尺寸1006A、加厚1006B、全麦1006C或薄1006D。在一个实施例中,如果选择了中等大小,那么可选择标准尺寸、全麦或薄表皮,并且如果期望小的披萨,那么在所描绘的实例中,用于表皮类型的可用选项可包含标准尺寸、薄和无麦1006E。在一些实施例中,参数之间的关系可由应用程序开发者通过用指示准许值的图标或字填充图形用户接口的相应区域来指示。在一个实施例中,如果随着时间的过去,披萨供应商希望扩大对一个或多个参数的选择的集合,或指示参数间约束的不同集合,那么应用程序开发者可易于使用应用程序管理服务的接口重新排列准许值,且使产生和部署应用程序的新的可执行版本。

在各种实施例中,应用程序管理服务可鉴于已提供的信息自动产生指示给定参数的允许值的字串。在一个实施例中,举例来说,如果终端用户已指示待送货的披萨的大小是小的,那么系统可自动指示(例如,在确认选定披萨大小的对话的步骤中)对于小披萨可接受的准许表皮参数值的集合。在一个实施例中,在存在大型参数值范围相依性链的情境中,可产生众多不同句子或字串,用于由服务列举参数的准许值,从而将应用程序开发者从必须产生句子中解放出来。

增强词典

图11说明根据至少一些实施例的使用自然语言理解资源扩大与对话驱动式应用程序相关联的词典的实例。在描绘的实施例中,用于域D1的对话驱动式应用程序A1的词典1110包括一开始由应用程序开发者提供的一组基线字串1112,用于在用于参数值确定的对话的一个或多个步骤中使用。在描绘的实施例中,在部署应用程序供执行后,终端用户交互1150的日志记录可由应用程序管理服务存储。在一个实施例中,在与终端用户的给定交互会话期间,由终端用户使用的单词或短语可不始终匹配基线字串。如较早先所提到,在一个实施例中,例如算法和模型1130的自然语言理解(NLU)资源可在应用程序运行时间用来确定指示给定短语或句子匹配预期短语或句子的程度的评分,并且如果对特定短语或句子的评分高于阈值,那么可以执行对应的参数确定步骤。在一个实施例中,交互的日志记录1150可稍后由NLU资源1130分析,以识别可适合于对话的各种步骤的额外字串(其可因此被称作“习得的”字串)。在一个实施例中,由算法识别的习得的字串1114中的至少一些可***到词典1110内,由此潜在地简化在未来交互期间匹配终端用户发声或文字的任务。

除了检验日志记录1150(在一些情况下,其可关于相关应用程序,且可能未必限于与同一应用程序A1相关联的交互的记录)之外,在一些实施例中,NLU算法亦可利用可被视为与应用程序域相关的其它自然语言交互语料库1160。举例来说,在一个实施例中,关于与订购食物有关的应用程序,可检验餐馆评论的记录,或可分析社交媒体交互、新闻评论等的记录。在一个实施例中,可分析有关应用程序(例如,用于类似问题域或同一问题域的应用程序)的词典1155以识别用于包含在词典1110中的额外***台处执行以使增强的词典能够被使用。在一个实施例中,NLU资源1130可首先用以产生对话驱动式应用程序的第一版本的部分(例如,涉及管理自然语言交互的流程以获得参数值的部分),且然后随着自然语言交互的更多实例变得可用,用以增强对话驱动式应用程序。在一个实施例中,随着时间的过去,随着使用应用程序管理服务产生越来越多的应用程序,且使用应用程序的实例自然语言交互训练和再训练NLU模型,对于各种问题域的应用,服务处置对话的能力可改进。在一个实施例中,可不必分类为自然语言理解算法或模型的机器学习算法或模型可用以开发和/或增强应用程序。

在至少一些实施例中,应用程序开发者1120可能够使用由应用程序管理服务实施的各种类型的编程接口1125(例如,基于网络的控制台、应用程序编程接口、命令线工具等)访问实际终端用户交互的日志记录。在一个实施例中,如果需要,应用程序开发者可基于日志记录的检验添加新字串或改变应用程序对话的字串。

实例应用程序域

图12说明根据至少一些实施例可使用应用程序管理服务开发和部署的对话驱动式应用程序的实例域。如所展示,在各种实施例中,域1210可尤其包含食物相关应用程序1212(例如,订购食物、订购杂货、进行餐馆预订)、旅行相关应用程序1214(例如,订出租车、预订宾馆房间、购买机票/火车票/公共汽车票)、交互式游戏应用程序1216、客户服务/支持应用程序1218、保健相关应用程序1220(例如,用于执行潜在非紧急健康问题的初始级别诊断的应用程序)和/或娱乐相关应用程序1222(例如,用于播放音乐、电视展示、电影等的应用程序)。

在一些实施例中,其要求可经由非正式对话交互指示的众多类型的任务可被视为用于经由本文中论述的种类的对话驱动式应用程序履行的候选。在一些实施例中,对话驱动式交互可构成较大应用程序工作流的初步部分,其中工作流的后部分有时是使用其它方式(潜在地,包含与被训练以执行正请求的任务的个人的交互)完成。举例来说,在一个实施例中,用于特定产品P的客户支持应用程序的多步骤对话可导致正由终端用户经历的问题的范围的缩小。在一个实施例中,一旦端部用户的问题的细节已在这情境中识别,那么可将控制传递给在遇到问题的领域中熟练的客户支持代表。

用于开发和部署对话驱动式应用程序的方法

图13为说明根据至少一些实施例的可在网络可访问服务处执行以用于开发对话驱动式应用程序的操作的方面的流程图。如在元素1301中所展示,在一个实施例中,可在所述服务处训练一个或多个自然语言理解模型,例如,使用与使用所述服务开发的各种应用程序相关联的自然语言输入的相应实例。在一个实施例中,此类实例输入可由那些应用程序的开发者提供,和/或在一个实施例中,可使用与所述应用程序交互的终端用户的记录来收集。

在一个实施例中,可进行关于与正使用所述服务开发的给定应用程序的一个或多个任务相关联的参数值是否将使用自然语言交互获得的确定(元素1304)。在一些实施例中,可使用由应用程序设计员或开发者提供的输入识别与应用程序相关联的一个或多个意图(元素1307)。在一个实施例中,所述意图中之个体可对应于将代表应用程序的终端用户实现的相应任务,例如,订一份披萨、订购甜品等。为了履行对应于给定意图的任务,在一个实施例中,可能必须确定意图的一个或多个参数的值,例如,在用于订一份披萨的意图的情况下,披萨的大小、表皮类型等可表示参数。

在一个实施例中,履行与所述意图中的每一个相关联的任务所需的参数集合可基于来自应用程序设计员或开发者的额外输入来识别(元素1310)。在一些实施例中,可识别两个种类的参数——所需参数,必须获得其值以便履行给定意图;和任选参数,其值并非必要,但如果由终端用户提供,可以使用。在一些实施例中,意图参数还可被称作“槽孔”。

在一个实施例中,服务可例如基于从开发者接收的输入确定待在多步骤对话中用于获得意图参数值中使用的各种字串(元素1313)。在一个实施例中,可不需要来自应用程序开发者或设计员的源代码,不管对于指定对话流,还是指定用以捕捉和解译来自终端用户的话语或文字信号的算法或技术、意图、意图参数等。在一个实施例中,举例来说,取而代之,图形接口元件可用以提供各种实体和实例字串的名称。在一个实施例中,服务的NLU模型可使用提供的信息产生对话驱动式应用程序的代码(例如,管控与终端用户的交互的反复流程)的部分(元素1316)。

在一个实施例中,可产生并存储包括对包括待用于多步骤对话的字串的词典的引用的对话驱动式应用程序的可执行表示,以及用于在获得必要参数值后待用以履行意图的程序/函数的调用代码(元素1319)。在一些实施例中,在程序的初始部署或执行前,自然语言模型可任选地用以增强/扩大词典(元素1322)。在一个实施例中,举例来说,可将从分析用于类似应用程序的词典或分析其它语料库习得的字串添加到基线字串。

在一个实施例中,可针对对话驱动式应用程序识别一组执行平台,且所述应用程序可部署于所述执行平台处且使之可为终端用户访问(元素1325)。在一个实施例中,针对多步骤对话产生的原始或基线词典可随着时间的过去得以进一步增强,例如,使用终端用户交互的日志记录用于进一步训练被设计成识别可适合于交互的新字串的NLU模型。

图14为说明根据至少一些实施例的可被执行以履行对应于对话驱动式应用程序的意图的客户请求任务的操作的方面的流程图。在一个实施例中,如在元素1401中所展示,可在提供商网络的应用程序开发服务处进行关于是否将使用自然语言交互获得应用程序的一个或多个参数(例如,与应用程序的一个或多个意图相关联的参数)的值的确定。在一个实施例中,应用程序开发服务可以允许在已在运行时间获得对应的参数值后,使用在提供商网络外的各种其它服务和/或资源执行应用程序任务。

使用经由编程接口获得的输入,在一个实施例中,可识别待用于开发中的对话驱动式应用程序的一个或多个资源(元素1404)。在各种实施例中,所述资源可与提供商网络的各种网络可访问服务(例如,在运行时间针对注册的程序选择执行平台的动态布建计算服务,或将客体虚拟机预分配到客户端的虚拟计算服务)相关联,或可为例如客户拥有的网络或第三方网络的外部网络的部分。在一些实施例中,给定应用程序的给定意图可利用来自若干不同服务的资源。在各种实施例中,经由编程接口接收的输入可指示正使用的特定服务、资源识别符(例如,URI)、待传输到资源以执行任务的参数和/或调用机构(例如,待发出的API呼叫的签名)的指示。在一个实施例中,履行单个意图的任务可涉及使用多个程序或API,例如,可能必须经由第一API从第一程序获得结果,且取决于结果的值,可使用第二API调用第二程序。在一个实施例中,应用程序开发者或设计员可不必提供源代码来指示待用以履行所述任务的服务、资源或调用机构。在一个实施例中,服务和资源的识别符可由应用程序开发者提供到应用程序管理服务,例如,使用图形用户接口、命令行工具等。在待将多个程序或函数调用用于单个意图的实施例中,可在未提供源代码的情况下指示调用的程序之间的顺序或逻辑关系。在至少一些实施例中,应用程序开发者可在开发任何给定对话驱动式应用程序前将程序、函数或资源向应用程序管理服务注册,且如果需要,可利用来自多个对话驱动式应用程序的程序、函数或资源。

在一个实施例中,也可将预期用于与对话驱动式应用程序的交互的终端用户装置类型的指示提供到应用程序管理服务(元素1407)。在一个实施例中,可指定广泛多种装置类型的任何组合,例如,各种类型的智能电话和相关联电话操作系统、平板电脑或手持型装置、膝上型计算机或桌上型计算机、可佩戴装置(例如,智能手表或眼镜)、虚拟现实接口装置、扩增现实接口装置等。在一个实施例中,此装置类型信息可由应用程序管理服务用以识别适当通信模块将包含于应用程序的可执行表示中。在一些实施例中,可使用终端用户装置类型的默认集合,或可从应用程序域或应用程序名称推断终端用户装置类型;因而,在至少一些实施例中,可不必提供终端用户装置类型的明确指示。在一个实施例中,可直到运行时间才实施装置类型与应用程序之间的绑定,即,所述程序可独立于待在运行时间使用的终端用户装置设计、建立和/或测试。

在一个实施例中,可自动产生和存储应用程序的各种部分(元素1410)。在一个实施例中,所述部分可包含待用以确定意图参数值的用于对话的代码、用于一旦已确定参数值就将用于执行或履行任务的不同资源/服务的调用信息,以及用于与待在一些实施例中使用的预期终端用户装置交互的模块。

在一些实施例中,应用程序管理服务可检查待用于意图任务的履行资源的可用性和/或状态(元素1413)。举例来说,在一个实施例中,在部署给定对话驱动式应用程序且使其可用于终端用户前,所述服务可利用由应用程序开发者提供的资源调用信息来确保当代表终端用户调用资源时,返回有意义的结果。在一些实施例中,也可在部署后的各种时间点(例如,以安排的时间间隔)执行此类状态检查。

在一个实施例中,可在选定执行平台起动对话驱动式应用程序(元素1416)。在一个实施例中,使用的特定应用程序平台可由服务基于例如资源的可用性、应用程序拥有者偏好等的各种因素来选择。在一些实施例中,提供商网络的虚拟计算服务和/或其它计算服务可用于运行程序的对话部分。在各种实施例中,可将程序的前端对话起始组件(例如,检测唤醒字或信号以开始应用程序对话的程序)部署到由应用程序开发者/设计员指示的终端用户装置。在一些实施例中,可经由(例如)自动化或终端用户安排的应用程序更新来将此类前端组件传输到装置。

在一个实施例中,可使用多步骤对话和/或基于终端用户的存储的个人资料信息来获得用于应用程序的意图或任务的参数的值(元素1419)。在一个实施例中,在可将个人资料信息用于给定终端用户前,终端用户可能必须授予在应用程序管理服务处存储个人资料信息可接受的权限。在一个实施例中,可利用来自各种服务和/或外部网络的适当资源以在确定参数值后履行所述意图。

在一个实施例中,可收集与应用程序的终端用户交互的日志记录(元素1422)。在一个实施例中,此类日志记录可作为输入提供到NLU或其它机器学习算法以增强或扩大与应用程序相关联的词典,例如,通过将习得的字串引入到词典内。在至少一些实施例中,可在部署应用程序前识别习得的字串,例如,基于分析同一问题域的相关应用程序的词典,或基于分析语言使用的各种语料库。

应注意,在各种实施例中,图13或图14中展示的操作中的一些可按与在图中展示的次序不同的次序实施,或可并行而非依序地执行。另外,在一个或多个实施例中,可不需要在图13和/或图14中展示的操作中的一些。

用于导出对话驱动式应用程序的示例系统环境

图15说明根据至少一些实施例的可实施用于对话驱动式应用程序的开发和部署的网络可访问服务的实例系统环境,包括所述服务与数字通信平台集成。如所展示,在一个实施例中,系统1500可包括对话驱动式应用程序管理服务1502的各种资源,包含主要(但未必排他性)用于开发应用程序的一组建立时间组件1520和主要(但未必排他性)用于在应用程序已经开发后执行应用程序的部分或所有的一组运行时间组件1550。在一个实施例中,系统1500的各方面可以以与以上关于图1中描绘的系统100所讨论的类似的方式实现,并且服务1502的各方面可以以与以上关于图1中描绘的服务102所讨论的类似的方式实现。在各种实施例中,可以以与系统100和/或服务102的相应组件类似的方式来实现系统1500和/或服务1502的组件。在一些实施例中,对话驱动式应用程序的功能可以在一种或多种类型的终端用户客户端设备1564处被访问,例如台式计算机、膝上型计算机、智能电话、移动设备、可穿戴计算机、基于语音的辅助设备、“物联网”(IoT)和家庭自动化设备等。在一个实施例中,建立时间组件1520可包括(例如)负责使应用程序开发者能够指定确定用于履行各种应用程序意图的参数值所需的交互的步骤的多步骤对话设置协调器1522、负责将用于调用用于实施意图的资源的适当挂钩***到对话驱动式应用程序内的履行集成协调器1523和用于存储对话驱动式应用程序和相关联的元数据的各种版本的伪影存储库1524。在一些实施例中,运行时间组件1550可包括例如可运行对话驱动式应用程序的至少一些部分的应用程序执行平台1556,以及可存储终端用户与应用程序的交互的记录的日志记录存储库1554。

在一个实施例中,应用程序开发者可利用来自开发者客户端装置1560(例如,膝上型计算机、台式计算机等)的开发相关编程接口1525(例如,各种类型的图形用户接口,包含基于网络的接口、应用程序编程接口(API)、命令行工具等)。在一些实施例中,使用编程接口1525,关于数字通信平台1563、应用程序域的信息、给定对话驱动式应用程序内的意图、待用以执行对应于意图的任务的资源/服务以及用于对话步骤以识别用于各种意图的参数值的字串可由应用程序开发者指定。在至少一些实施例中,此信息可由应用程序开发者或设计员对应用程序管理服务1502指示,而不必提供任何源代码。在一些实施例中,开发者可提供待在待用于识别意图参数值的对话的各个阶段期间使用的字串的一个或多个基线实例,且可将此等基线字串添加到词典数据库1536中的适当词典。在一个实施例中,存储在数据库1536中的每一词典1538可包括处于给定语言(语言的组合)下的一组单词或短语,所述单词或短语将在与应用程序终端用户的交互中用以识别执行与应用程序相关联的任务所需的参数值和/或其它信息。在一个实施例中,可识别或索引存储在数据库中的词典,例如,基于正解决的问题域和对应的应用程序识别符,例如,词典1538A可与域D1的应用程序A1相关联,词典1538B可与域D1的应用程序A2相关联,词典1538P可与域Dk的应用程序Am相关联等。在一个实施例中,关于词典应用于的域的信息可为有帮助的,例如用于确定可使用NLU或机器学习技术将成功地用于一个应用程序的哪个字串添加到类似域或同一域的另一应用程序的词典。

在一个实施例中,可使用与众多应用程序相关联的字串或词典来训练服务的NLU资源1534(例如,一个或多个模型)。在一个实施例中,NLU模型可用以产生和/或增强对话驱动式应用程序的各种部分,例如,以管理可需要用来识别应用程序的各种参数的值的多步骤交互的流程。随着时间的过去,在一个实施例中,随着使用应用程序管理服务1502产生和部署越来越多的对话驱动式应用程序,NLU模型可变得更复杂,使得可改善现有词典和应用程序(例如,通过将习得的字串添加到词典)。

在一个实施例中,基于由应用程序开发者使用接口1525提供的信息(包含用于与不同应用程序意图的各种参数相关联的潜在多步骤对话的规范),在所描绘实施例中,可产生或存储对应的应用程序的可执行表示,例如,至少临时在伪影存储库1524中。在一个实施例中,应用程序管理服务1502可包括履行集成协调器1523以使关于待用以执行经由终端用户对话指示的任务的各种后端资源和服务1562的信息能够并入于可执行表示中和/或相关联的元数据中。在一个实施例中,举例来说,集成协调器可将适当通信模块、格式化模块、数据结构变换代码、插件模块等***到应用程序的可执行版本内,而不需要应用程序开发者供应源代码用于集成。在描绘的实施例中,从伪影存储库,可将给定可执行应用程序的部分或所有部署到执行平台1556,例如,响应于来自应用程序开发者或拥有者的部署请求。在一些实施例中,应用程序拥有者或开发者可指定使用特定执行平台的各种特性;在其它实施例中,应用程序管理服务可选择使用特定执行平台。在一些实施例中,执行平台1556可以包括例如与应用管理服务1502相关联的各种虚拟和/或物理计算机服务器。在至少一些实施例中,可以在应用执行平台1556中使用提供商网络的一项或多项其他服务的资源。在各种实施例中,在选择执行平台用于给定对话驱动式应用程序时,可考虑许多因素,例如,预期的工作负荷等级、平台与打算的终端用户和/或待用以履行应用程序的意图的资源的实体接近性、关于由应用程序拥有者/开发者指示的预算的偏好和约束等等。

在各种实施例中,可单独或组合使用众多资源来执行或履行待使用对话驱动式应用程序达成的任务。在各种实施例中,举例来说,涉及订餐的对话驱动式应用程序可最终调用由餐馆开发的次序产生程序,涉及进行旅行安排的对话驱动式应用程序可调用用于询问飞机航班可用性的程序,等等。在一些实施例中,次序产生程序和/或询问程序可自身使用其它执行资源或平台(例如,在应用程序管理服务外部的资源或平台,例如,外部任务履行资源1562)来执行。在一些实施例中,在对话驱动式应用程序的开发、部署和使用的各个阶段,应用程序管理服务的一个或多个资源验证组件可负责确保意欲用于意图任务履行的资源的可用性和/或响应性。举例来说,在一个实施例中,如果与特定任务履行程序相关联的网络地址或统一资源识别符(URI)由应用程序开发者指示,那么所述资源验证组件可负责检查(和/或周期性地再检查)网络地址或URI是在发挥功能中。

在一个实施例中,使用到服务1502的接口1525,应用开发者可以指定一个或多个数字通信平台1563,对话驱动式应用程序的功能被导出到该一个或多个数字通信平台1563。在一些实施例中,术语“数字通信平台”可以指这样的计算环境,其接受用户输入,例如,作为语音输入和/或字母数字文本输入,并且与应用程序管理服务分离并且不同。在一个实施例中,数字通信平台可以接受来自终端用户的自然语言输入。在一个实施例中,对话驱动式应用可以被异类数字通信平台1563访问,并且平台的输入形式可以变化。例如,在一个实施例中,(一个或多个)数字通信平台1563可以包括使用云计算资源实现的基于语音的服务,其中基于语音的服务接收并分析来自语音捕获设备的语音输入。在一个实施例中,作为另一个实例,(一个或多个)数字通信平台1563可以包括与社交网络环境相关联的人对人信使应用程序。在一个实施例中,作为又一个实例,数字通信平台1563可以包括群聊系统或服务。在一些实施例中,可以使用驻留在诸如独立应用程序或浏览器可访问接口之类的终端用户设备1564上或可由其访问的客户端组件来实现数字通信平台。

在一实施例中,为了将应用程序的功能部署到一个或多个数字通信平台1563,应用程序管理服务1502可以配置平台以将与该应用程序相关联的自然语言输入路由到该服务。在一个实施例中,为了配置数字通信平台,服务1502可以在数字通信平台上注册应用程序,以使该平台知道何时何地路由自然语言输入。在一实施例中,服务1502可包括一个或多个编程接口1535,其与对话驱动式应用程序向数字通信平台1563的注册相关联。在各种实施例中,注册接口1535可以根据数字通信平台而变化。在一个实施例中,例如,启用语音的平台的注册接口可以不同于基于文本的消息传递平台的注册接口。在各种实施例中,使用注册接口1535的数字通信平台的配置可以包括注册应用程序的名称或标识符、验证名称或标识符是唯一的、指定访问凭证、指定终端用户可以调用应用程序功能的方式、指定应当将通过数字通信平台的输入路由以进行处理的路由地址(例如URL)等等。

在一个实施例中,服务1502可以注册与特定应用相关联的一个或多个启动条件1565。在一个实施例中,启动条件1565可以表示当被检测到时可以使平台将用户输入路由到服务1502的条件。在一个实施例中,例如,可以将与应用程序相关联的自然语言启动短语注册到基于语音的服务,以便基于语音的服务知道(在检测到语音输入中的启动短语时)何时开始将语音输入路由到应用程序管理服务以使用该应用程序进行处理。在一个实施例中,作为另一个实例,与应用程序相关联的自然语言启动短语可以在信使或聊天平台上注册,以便该平台知道(在检测到文本输入中的启动短语时)何时开始将文本输入路由到应用程序管理服务,用于使用该应用程序进行处理。在另一个实施例中,在另一个实例中,对话驱动式应用程序的启动条件可以在信使或聊天平台上注册,以便选择应用程序的名称或图形图标(如同它是用户可用聊天伙伴列表中的一个人)可导致将后续输入路由到服务1502。

在一个实施例中,在已经经由数字通信平台1563使客户能够访问给定的对话驱动式应用程序之后,可以使用各种终端用户客户端设备1564来与该应用程序的功能进行交互。在一个实施例中,可以使用数字通信平台1563调节客户端设备与应用程序之间的交互。在一个实施例中,可以使用数字通信平台1563从客户端设备1564提供自然语言输入,并且数字通信平台可以使用运行时间编程接口1555将输入发送到应用管理服务1502。在一个实施例中,使用运行时间编程接口1555,服务1502可以实现与客户端设备1564交互的认证和路由,包括与数字通信平台的任何消息协议或编程接口的交互。在一个实施例中,一个或多个数字通信平台1563可以实质上用作用于访问对话驱动式应用操作的功能的路由层或代理层。在一些实施例中,自然语言输入的处理可以包括响应于自然语言输入而生成自然语言输出,并且可以使用数字通信平台1563将输出发送回客户端设备1564。

在各种实施例中,所述交互可基于语音、基于文字消息、基于语音与文字的组合,或可使用其它信号模态。在一些实施例中,客户端装置1564可具备对话驱动式应用程序的轻型前端组件。举例来说,在一个实施例中,在待用于一个或多个对话驱动式应用程序的基于语音的辅助装置的情况下,能够检测至少一些语音信号的软件和/或硬件可并入于客户端装置1564中或安装在客户端装置1564上。在一个实施例中,在另一实例中,如果终端用户将要使用智能电话与对话驱动式应用程序交互,那么可将被配置成检验由电话的麦克风检测的信号的前端电话应用程序安装在电话上。在一个实施例中,在又一个实例中,可以将网络浏览器安装在客户端计算机或移动设备上,以便将平台1563的接口组件加载到浏览器中。在各种实施例中,除了计算机、平板电脑、基于语音的辅助装置和智能电话外,可使用多种其它终端用户装置,例如,扩增现实或虚拟现实耳机、可佩戴装置、智能电器、例如可遥控相机的安全装置等。

在一个实施例中,可以根据应用程序的自然语言对话将来自终端用户的自然语言输入路由到服务1502并在服务1502处进行处理。在一实施例中,服务1502还可使用应用程序的自然语言对话来生成一个或多个响应并将其返回给数字通信平台。在一个实施例中,例如,可以根据应用程序分析经由基于语音的数字通信平台接收的语音输入,并且可以由应用管理服务1502生成响应于语音输入的语音输出,并将其发送到基于语音的数字通信平台,用于交付给终端用户(例如,使用扬声器或客户端设备的声音生成组件)。在一个实施例中,作为另一实例,可以根据应用程序来分析经由信使或聊天数字通信平台接收的文本输入,并且可以由应用管理服务1502生成响应于文本输入的文本输出,并将其发送至基于文本的数字通信平台,用于交付给终端用户(例如,通过在聊天窗口中显示文本输出)。在各种实施例中,可以将对话驱动式应用程序的功能导出(或使其可访问)到异类数字通信平台1563,同时提供应用程序的一致属性。

在一个实施例中,可在应用程序管理服务1502处利用许多自然语言理解资源1534。在一些实施例中,资源1534可包含(例如)用于自动化话语辨识(ASR)算法和模型、自然语言处理(NLP)算法和模型、丛集和其它分类模型等等的计算和/或存储资源。在一个实施例中,对话驱动式应用程序的开发者可不需要是在自然语言理解或机器学习方面的专家,且可甚至不需要指示用于其应用程序的算法类型,不管在建置时间还是在运行时间。在一个实施例中,服务的组件可按需要调用资源1534的适当集合,例如,可在运行时间调用ASR算法以将终端用户的话语转换成一连串令牌,且NLP算法可用以发现由ASR算法识别的令牌与在多步骤对话交互期间预期且在词典1538中指示的发声种类之间的匹配/类似性评分。

在一个实施例中,指示与终端用户的交互的日志记录可存储在存储库1554中。在一些实施例中,NLU资源1534可基于终端用户的所观察行为,利用日志记录识别或“学习”可有用于或适合于各种应用程序的对话的额外字串,且可将此类习得的字串添加到与应用程序相关联的词典1538。在一些实施例中,可自动执行此类词典增强,例如,不由应用程序开发者揭示。在一些实施例中,可在将习得的字串添加到词典前获得来自应用程序开发者的批准。在各种实施例中,应用程序开发者可能能够经由编程接口访问存储在存储库1554中的日志记录,且使用所述日志记录改进/修改与其应用程序相关联的词典1538。在一个实施例中,不同于应用程序自己的终端用户交互日志记录的数据集可用以学习额外字串:例如,可使用同一问题域或其它域中的其它应用程序的词典,可使用自然语言交互的其它语料库等等。在一个实施例中,可在部署应用程序前执行对应用程序的词典的一些增强,例如,可使用NLU模型产生处理多步骤自然语言交互的流程的应用程序的部分。举例来说,在一个实施例中,应用程序管理服务可具有用于对话步骤的富余度准则,根据所述准则,可能必须针对给定对话步骤指定足够相互不同的至少最小数目个字串、短语或句子。在一个实施例中,如果开发者未基于所述准则提供充分富余词典,或如果开发者向所述服务请求词典的增强,那么机器学习工具可被部署以在部署前识别用于应用程序的额外字串。

在至少一个实施例中,应用程序管理服务1502可提供使应用程序开发者能够至少在某些条件下存储和使用个性化信息以增强与对话驱动式应用程序的终端用户体验的资源。举例来说,在一个实施例中,“选择加入”权限可从终端用户获得以存储和使用用于对话驱动式应用程序的基于个人资料的个性化数据,例如,在终端用户首先利用应用程序或寄存器使用应用程序时或在某一稍后时间。在描绘的实施例中,如果终端用户同意,那么例如通常由终端用户针对各种意图参数设定的值、终端用户与应用程序的交互的历史等的信息可存储在个性化数据库1532中。举例来说,在一个实施例中,此个性化信息可用以设定各种所需意图参数的默认值,或设定用于终端用户未能在给定交互期间指示偏好的参数的值,等等。在至少一些实施例中,应用程序开发者可在建置时间对服务1502指示关于个性化的各种应用程序级偏好,例如,是否将根本使用个性化,和如何/是否在运行时间对终端用户通知正代表他们使用个人资料数据等。在一个实施例中,此个性化相关设定可存储为应用程序元数据的部分。

用于将应用程序导出到基于语音的数字通信平台的实例系统环境

图16示出了根据至少一些实施例的实例系统环境,其中可以实现用于部署对话驱动式应用程序的网络可访问服务,包括将该服务与语音启用的数字通信平台集成。如所示,在一个实施例中,系统1600可以包括对话驱动式应用程序管理服务1602的各种资源,包括主要用于向数字通信平台注册应用程序的一个或多个注册程序接口1635。在一个实施例中,系统1600的各方面可以以与以上关于图15中描绘的系统1500所讨论的类似的方式实现,并且服务1602的各方面可以以与以上关于图15中描绘的服务1502所讨论的类似的方式实现。在各种实施例中,可以以与系统1500和/或服务1502的相应组件类似的方式来实现系统1600和/或服务1602的组件。在一个实施例中,服务1602可以包括例如应用程序执行平台1656,在该平台上可以运行对话驱动式应用程序1657的至少一些部分。在一些实施例中,对话驱动式应用程序1657的功能可以在一种或多种类型的终端用户客户端设备1664处被访问,例如台式计算机、膝上型计算机、智能电话、移动设备、可穿戴计算机、基于语音的辅助设备、“物联网”(IoT)和家庭自动化设备等。

在一个实施例中,如图16所示,应用程序1657被导出到的数字通信平台可以包括语音启用的服务1663。在一个实施例中,语音启用的服务1663可以使用云计算资源来实现,并且可以通过网络(例如互联网)被客户端设备1664访问。在一个实施例中,语音启用的服务1663可以从语音捕获客户端设备1664接收语音输入,例如,如由终端用户所说并由一个或多个麦克风捕获。在一个实施例中,语音启用的服务1663可以包括用于语音分析的组件1666。在一实施例中,语音分析1666可能能够检测语音输入中的自然语言术语和短语。

在一个实施例中,为了将应用程序1657的功能部署到数字通信平台1663,应用程序管理服务1602可以配置语音启用的服务1663的语音输入路由组件1667,以将与应用程序相关联的自然语言输入路由到服务1602。在一个实施例中,为了配置数字通信平台1663,服务1602可以使用注册接口1635向数字通信平台1663注册应用程序1657的各个方面,使得该平台知道何时和何地路由与应用程序相关联的自然语言输入。在各种实施例中,使用注册接口1635的数字通信平台的配置可以包括注册应用程序1657的名称或标识符、验证名称或标识符是唯一的、指定访问凭证、指定启动条件(例如,终端用户可以调用应用程序的功能的方式)、验证启动条件在平台背景中是唯一的、指定应当将通过数字通信平台的输入路由以进行处理的路由地址(例如URL)等等。在一个实施例中,例如,可以将与应用程序相关联的自然语言启动短语1665注册到基于语音的服务1663,以便基于语音的服务知道(在检测到语音输入中的启动短语时)何时开始将语音输入路由到应用程序管理服务1602以使用应用程序1657进行处理。在一个实施例中,例如,启动短语可以表示自然语言短语,例如“让我们从<商号名称>订购比萨饼”或“让我与<商号名称>的某人说话”。在一些实施例中,启动短语1665的多种变型可以被注册到语音启用的服务1663中。在一个实施例中,语音启用的服务1663可以在允许终端用户访问应用程序1657的功能之前验证启动短语1665的唯一性。

在一个实施例中,在已经经由语音启动的数字通信平台1663使客户能够访问给定的对话驱动式应用程序1657之后,可以使用各种终端用户客户端设备1664来与该应用程序的功能进行交互。例如,在一些实施例中,语音捕获客户端设备1664可以包括计算机、移动设备、智能扬声器、智能遥控器、智能电视等。在一个实施例中,可以使用基于语音的服务1663来调解客户端设备与应用程序之间的交互。在一个实施例中,以语音或讲话表达的自然语言输入可以从客户端设备1664被提供给语音启用的服务1663(例如通过网络),并且语音启用的服务1663可以使用运行时间编程接口1655(例如通过网络)将输入发送给应用程序管理服务1602。在一个实施例中,使用运行时间编程接口1655,服务1602可以实现与客户端设备1664交互的认证和路由,包括与数字通信平台1663的任何消息协议或编程接口的交互。在一个实施例中,基于语音的服务1663可以实质上用作路由层或代理层,用于访问对话驱动式应用程序1657的功能。

在一些实施例中,客户端设备1664处的语音捕获可以通过设备检测“唤醒词”、通过设备上的按钮按压或通过与语音捕获设备的任何其他合适的交互来促使。在一个实施例中,在语音捕获开始之后但在其终止之前(例如,由于检测到终止短语或条件,例如超时),可以将语音输入流传输或以其他方式从语音捕获设备发送到用于分析1666的语音启用服务1663。在一个实施例中,语音输入分析1666可以在检测到与该应用程序相关联的启动短语1665时开始将语音输入路由到对话驱动式应用程序1657。在一个实施例中,例如,启动短语可以表示自然语言短语,例如“让我们从<商号名称>订购比萨饼”或“让我与<商号名称>的某人说话”。

在一个实施例中,可以根据应用程序1657的自然语言对话将来自终端用户的自然语言输入在服务1602处进行处理。在一实施例中,服务1602还可使用应用程序的自然语言对话来生成一个或多个响应并将其返回给数字通信平台。在一个实施例中,例如,可以根据应用程序1657分析经由基于语音的数字通信平台1663接收的语音输入,并且可以由应用管理服务1602生成响应于语音输入的语音输出,并将其发送到基于语音的数字通信平台,用于交付给终端用户(例如,使用扬声器或客户端设备的声音生成组件)。在各种实施例中,应用管理服务1602可以处理语音输入,直到在输入中检测到退出短语(例如,“我完成了”或“让我离开这里”)和/或检测到某些退出条件(例如,比萨订单已完成并得到确认);在那之后,可以将用于后续语音输入的分析的责任返回给语音启用的服务1663。

用于将应用程序导出到基于文本的数字通信平台的实例系统环境

图17示出了根据至少一些实施例的实例系统环境,其中可以实现用于部署对话驱动式应用程序的网络可访问服务,包括将该服务与文本启用的数字通信平台集成。如所示,在一个实施例中,系统1700可以包括对话驱动式应用程序管理服务1702的各种资源,包括主要用于向数字通信平台注册应用程序的一个或多个注册程序接口1735。在一个实施例中,系统1700的各方面可以以与以上关于图15中描绘的系统1500所讨论的类似的方式实现,并且服务1702的各方面可以以与以上关于图15中描绘的服务1502所讨论的类似的方式实现。在各种实施例中,可以以与系统1500和/或服务1502的相应组件类似的方式来实现系统1700和/或服务1702的组件。在一个实施例中,服务1702可以包括例如应用程序执行平台1756,在该平台上可以运行对话驱动式应用程序1757的至少某些部分。在一些实施例中,对话驱动式应用程序1757的功能可以在一种或多种类型的终端用户客户端设备1764处被访问,例如台式计算机、膝上型计算机、智能电话、移动设备、可穿戴计算机、基于语音的辅助设备、“物联网”(IoT)和家庭自动化设备等。

在一个实施例中,如图17所示,应用程序1757被导出到的数字通信平台可以包括基于文本的消息收发服务1763。在一个实施例中,可以使用云计算资源来实现基于文本的消息收发服务1763的至少一部分,并且可以通过网络(例如互联网)来使客户端设备1764访问该服务。在一个实施例中,可以例如通过执行消息收发应用程序直接在客户端设备1764上实现基于文本的消息收发服务1763的至少一部分。在一个实施例中,基于文本的消息收发服务1763可以例如从客户端设备1764(例如终端用户打字输入或指示的)接收文本输入(其潜在地具有附加媒体,例如图像、表情符号、音频和/或视频)。在一个实施例中,基于文本的消息收发服务1763可以包括用于文本输入分析1766的组件。在一个实施例中,文本输入分析1766可能能够检测文本输入中的自然语言术语和短语。

在一个实施例中,为了将应用程序1757的功能部署到数字通信平台1763,应用程序管理服务1702可以配置基于文本的服务1763的语音输入路由组件1767,以将与应用程序相关联的自然语言输入路由到服务1702。在一个实施例中,为了配置数字通信平台1763,服务1702可以使用注册接口1735向数字通信平台1763注册应用程序1757的各个方面,使得该平台知道何时和何地路由自然语言输入。在各种实施例中,使用注册接口1735的数字通信平台的配置可以包括注册应用程序1757的名称或标识符、验证名称或标识符是唯一的、指定访问凭证、指定启动条件(例如,终端用户可以调用应用程序的功能的方式)、验证启动条件在平台背景中是唯一的、指定应当将通过数字通信平台的输入路由以进行处理的路由地址(例如URL)等等。在一个实施例中,启动条件1765可以表示与应用程序相关联的自然语言启动短语,使得基于文本的消息收发服务知道(在检测到文本输入中的启动短语时)何时开始将文本输入路由到应用程序管理服务1702以使用应用程序1757处理。例如,在一个实施例中,启动短语可以表示自然语言短语,例如“从<商号名称>订购披萨”或“让我与<商号名称>的某人说话”。在一个实施例中,应用程序1757的名称可以向消息收发服务1763进行注册,并且终端用户对名称的选择(例如,在聊天界面中,表示用户与应用程序聊天的愿望)可以表示启动条件1765。在一些实施例中,可以向语音启用的服务1763注册启动短语或应用程序名称1765的多个变型。在一个实施例中,基于文本的消息收发服务1763可以在允许终端用户访问应用程序1757的功能之前验证启动短语或应用程序名称1765的唯一性。

在一个实施例中,在已经经由基于文本的数字通信平台1763使客户能够访问给定的对话驱动式应用程序1757之后,可以使用各种终端用户客户端设备1764来与该应用程序的功能进行交互。在一些实施例中,例如,终端用户客户端设备1764可以包括计算机、移动设备、智能电话、可穿戴计算机等。在一个实施例中,可以使用基于文本的消息收发服务1763来调解客户端设备与应用程序之间的交互。在一个实施例中,可以将文本形式表达的自然语言输入从客户端设备1764提供给基于文本的消息收发服务1763(例如,通过网络),并且基于文本的消息收发服务1763可以使用运行时间编程接口1755(例如通过网络)将输入发送给应用程序管理服务1702。在一个实施例中,使用运行时间编程接口1755,服务1702可以实现与客户端设备1764交互的认证和路由,包括与数字通信平台1763的任何消息协议或编程接口的交互。在一个实施例中,基于文本的消息收发服务1763可以实质上用作路由层或代理层,用于访问对话驱动式应用程序1757的功能。

在一个实施例中,文本输入分析1766可以在检测到与该应用程序相关联的启动条件1765时开始将文本输入路由到对话驱动式应用程序1757。在一个实施例中,例如,启动条件1765可以代表终端用户键入或指示自然语言短语,例如“从<商号名称>订购披萨”或“让我与<商号名称>的某人说话”。在一个实施例中,作为另一实例,启动条件1765可以表示终端用户从终端用户可以与之通信的账户列表中选择应用的名称或标识符。

在一个实施例中,可以根据应用程序1757的自然语言对话将来自终端用户的自然语言输入在服务1702处进行处理。在一实施例中,服务1702还可使用应用程序的自然语言对话来生成一个或多个响应并将其返回给数字通信平台。在一个实施例中,例如,可以根据应用1757分析经由基于文本的数字通信平台1763接收的文本输入,并且可以由应用管理服务1702生成响应于文本输入的文本输出并将其发送给基于文本的数字通信平台,用于呈现给终端用户(例如,在聊天窗口中)。在各种实施例中,应用管理服务1702可以处理文本输入,直到在输入中检测到退出短语(例如,“我完成了”)和/或检测到某些退出条件(例如,比萨订单已完成并得到确认);在那之后,可以将用于后续文本输入的分析的责任返回给基于文本的消息收发服务1763。

用于对话驱动式应用程序的简化开发和部署的接口

图18示出了根据至少一些实施例的实例图形用户界面,其可以用于启动对话驱动式应用程序的开发和部署,包括用于选择应用程序的功能导出至的数字通信平台的界面元素。如所展示,在一个实施例中,基于网络的导出接口1801可包括消息区1802和关于应用程序的各种方面的许多字段键入元素。在一个实施例中,消息区域1802向应用程序开发者提供一般指导,例如指示应当将对话驱动式应用程序导出到的数字通信平台(例如语音启用的云服务)的名称。在一些实施例中,开发者可以选择或访问导出接口1801,以便将应用程序的功能导出到特定的数字通信平台,并且可以为其他数字通信平台提供导出接口1801的变型。在一些实施例中,与接口1801相关联的目标平台可以包括响应于语音输入的特定的语音启用的云服务、与社交媒体平台相关联的特定信使应用程序、特定的基于文本的聊天平台等等。在一个实施例中,开发者可以从可用平台列表中选择目标平台。在一个实施例中,可用平台列表可以包括数字通信平台,与应用管理服务相关联的开发人员先前已经例如通过开发和/或部署运行时间程序接口1555将其与应用管理服务集成在一起。

在描绘的实施例中,应用程序开发者可使用元素1804提供应用程序名称(例如“订购披萨(OrderPizza)”)。在一些实施例中,开发者可明确指示用于应用程序(例如,对于展示之实例应用程序,“订食物”)的问题域,作为组织相关应用程序的方式,其可为有帮助的。在一些实施例中,应用程序管理系统可推断或推导应用程序定址到的问题域,例如,使用自然语言理解算法。在一些实施例中,所述域信息可用以增强与给定应用程序相关联的词典,例如,通过使用机器学习模型分析在所述域内的类似应用程序的词典和将习得的字串和/或额外措辞选择添加到给定应用程序的词典。

在一个实施例中,可以在字段1806中提供关于从数字通信平台访问应用程序的信息。在一个实施例中,信息1806可以代表用于对话框驱动式应用程序的认证数据,诸如密码或密钥。在一实施例中,认证数据1806可以在数字通信平台上注册,使得从平台路由来的输入可以由应用管理服务使用也由平台提供的认证数据来认证。

在一个实施例中,可以在字段1808中提供启动短语。在一个实施例中,启动短语(例如,“打开订购披萨(OrderPizza)应用程序”)可以表示一个字符串,如果终端用户将其说出或包含在文本消息中,则该字符串将导致应用程序对话被启动。在一个实施例中,可以使用导出接口1801指定启动短语的一组变型。在一个实施例中,举例来说,话语序列“我想要一份披萨”、“我想要订一份披萨”或“能给我送一份披萨吗”中的任一个可用以启动应用程序。在一个实施例中,可以在接口1801中指定一个或多个退出短语,其中退出短语表示自然语言序列,该自然语言序列导致终端用户与对话驱动式应用程序之间的交互终止。在一个实施例中,例如,开发人员可以指定退出短语,例如“我完成了”。在一个实施例中,一个或多个默认退出短语可以在没有开发者输入的情况下被应用于该应用程序。在一个实施例中,应用名称1804可以代表一些数字通信平台的启动条件,使得用户对名称的手动选择将引起用户输入路由到应用程序。在语音(而非文字)由终端用户用以与应用程序交互的实施例中,可在运行时间使用ASR与NLP资源的组合以检测由个人说出的具体话语,并且然后指派指示发声匹配由应用程序开发者在建立时间指示的字串中的一个或多个的程度的评分。在一个实施例中,如果匹配评分超过阈值,那么应用程序可开始与意图相关联的对话。

将对话驱动式应用程序导出到数字通信平台的方法

图19是示出根据至少一些实施例的可以执行以向一个或多个数字通信平台注册对话驱动式应用操作的各方面的流程图。如1901所示,在一个实施例中,可以生成对话驱动式应用程序。在一个实施例中,例如如上关于图15所讨论,通过网络可访问的应用管理服务至少部分地基于来自开发者的输入来生成所述应用程序。如1904所示,在一个实施例中,可以选择一个或多个数字通信平台。在一个实施例中,数字通信平台可以代表在其上寻求使对话驱动式应用操作的功能对终端用户可访问的平台。在一个实施例中,例如,如以上关于图18所讨论的,可以从网络可访问的应用管理服务的用户接收代表平台的选择的数据。在一些实施例中,术语“数字通信平台”可以指这样的计算环境,其接受用自然语言表达的输入,例如,作为语音输入和/或字母数字文本输入,并且与应用程序管理服务分离并且不同。在一个实施例中,对话驱动式应用可以被异类数字通信平台访问,使得平台的输入形式可以变化。例如,在一个实施例中,(一个或多个)数字通信平台可以包括使用云计算资源实现的基于语音的服务,其中基于语音的服务接收并分析来自语音捕获设备的语音输入。在一个实施例中,作为另一个实例,(一个或多个)数字通信平台可以包括与社交网络环境相关联的人对人信使应用程序。在一个实施例中,作为又一个实例,数字通信平台可以包括群聊系统或服务。

对话驱动式应用程序的至少一部分可以托管在网络可访问的应用程序管理服务处。在一个实施例中,可以使用一个或多个运行时间组件来托管应用程序,所述组件例如可运行对话驱动式应用程序的至少一些部分的应用程序执行平台,以及可存储终端用户与应用程序的交互的记录的日志记录存储库。在一些实施例中,执行平台可以包括例如与应用管理服务相关联的各种虚拟和/或物理计算机服务器。在至少一些实施例中,可以在应用执行平台中使用提供商网络的一项或多项其他服务的资源。

如1907所示,在一个实施例中,可以接收指示与该应用相关联的一个或多个启动条件的数据。在一个实施例中,启动条件可以从网络可访问的应用管理服务的用户接收,例如,如以上关于图18所讨论的。在一个实施例中,启动条件可以表示这样一种条件,当认为满足时,该条件使得来自终端用户的输入被数字通信平台转发给应用管理服务。在一些实施例中,启动条件可以包括可以通过对语音输入或文本输入的分析来检测的自然语言短语。在一些实施例中,启动条件可以包括可由终端用户在与数字通信平台相关联的用户界面中选择的应用的名称或标识符。

如1910所示,在一个实施例中,(一个或多个)选定的数字通信平台可以被配置为将与该应用相关联的自然语言输入路由到应用管理服务。在一个实施例中,为了配置数字通信平台,服务可以在数字通信平台上注册应用程序的各个方面,以使该平台知道何时何地路由自然语言输入。在各种实施例中,在数字通信平台上注册应用可以包括注册应用的名称或标识符、指定表示终端用户可以调用应用的功能的方式的启动条件、指定应当将通过数字通信平台的输入路由以进行处理的路由地址(例如URL)等等。在一个实施例中,例如,可以将与应用程序相关联的自然语言启动短语注册到基于语音的服务,以便基于语音的服务知道(在检测到语音输入中的启动短语时)何时开始将语音输入路由到应用程序管理服务以使用该应用程序进行处理。在一个实施例中,作为另一实例,对话驱动式应用程序的名称可以在信使或聊天平台上注册,以便终端用户可以选择该应用程序,如同它是用户可以与之通信的一个人一样。

图20是示出了根据至少一些实施例的可以执行以将自然语言输入从一个或多个数字通信平台路由到应用管理服务的操作的各方面的流程图。如2013处所示,在一个实施例中,可以在数字通信平台之一处接收来自客户端设备处的终端用户的输入。在各种实施例中,输入可以表示自然语言输入(例如讲话或文本)或用户与平台之间的其他交互,例如,如使用图形用户界面所输入的。如2016处所示,在一个实施例中,平台可以尝试检测是否满足与应用相关联的任何启动条件。在一个实施例中,检测启动条件可以包括分析语音输入并检测语音输入中启动短语的存在。在一个实施例中,检测启动条件可以包括分析文本输入并检测文本输入中启动短语的存在。在一个实施例中,检测应用程序的启动条件可以包括确定用户已经在诸如聊天窗口或消息收发窗口的用户界面中选择了应用程序的名称或图标。

在一个实施例中,如果检测到启动条件,则如2019处所示,可以将来自终端用户的自然语言输入从数字通信平台路由到应用管理服务。在一个实施例中,自然语言输入可以被路由到已经由应用管理服务向平台注册的路由地址(例如URL)。在各种实施例中,所述自然语言输入可基于语音、基于文字消息、基于语音与文字的组合,或可使用其它信号模态。在一个实施例中,可以使用数字通信平台调节客户端设备与应用程序之间的交互。在一个实施例中,可以使用数字通信平台从客户端设备提供自然语言输入,并且数字通信平台可以使用运行时间编程接口将输入发送到应用管理服务。在一个实施例中,使用运行时间编程接口,服务可以实现与终端用户交互的认证和路由,包括与数字通信平台的任何消息协议或编程接口的交互。在一个实施例中,一个或多个数字通信平台可以实质上用作用于访问对话驱动式应用操作的功能的路由层或代理层。

如2022处所示,在一个实施例中,可以使用对话驱动式应用程序处理自然语言输入。在一个实施例中,可以根据应用程序的自然语言对话在应用程序管理服务处处理自然语言输入。在一实施例中,应用管理服务还可使用应用程序的自然语言对话来生成一个或多个响应并将其返回给数字通信平台。在一个实施例中,例如,可以根据应用程序分析经由基于语音的数字通信平台接收的语音输入,并且可以由应用管理服务生成响应于语音输入的语音输出,并将其发送到基于语音的数字通信平台,用于交付给终端用户(例如,使用扬声器或客户端设备的声音生成组件)。在一个实施例中,作为另一实例,可以根据应用程序来分析经由信使或聊天数字通信平台接收的文本输入,并且可以由应用管理服务生成响应于文本输入的文本输出,并将其发送至基于文本的数字通信平台,用于交付给终端用户(例如,通过在聊天窗口中显示文本输出)。在一些实施例中,可以在应用管理服务处处理自然语言输入,直到检测到退出条件(例如,说出或键入自然语言退出短语、完成交易等),此时可以指示数字通信平台停止将自然语言输入路由到服务。在各种实施例中,可以将对话驱动式应用程序的功能导出(或使其可访问)到异类数字通信平台,同时提供应用程序的一致属性。

应注意,在各种实施例中,图19或图20中展示的操作中的一些可按与在图中展示的次序不同的次序实施,或可并行而非依序地执行。另外,在一个或多个实施例中,可不需要在图19和/或图20中展示的操作中的一些。

也可根据以下条款描述本公开的实施例:

1.一种系统,其包含:

一个或多个处理器;

存储器,其用于存储计算机可执行指令,所述计算机可执行指令如果被执行则使所述一个或多个处理器:

从用户接收与对话驱动式应用程序相关的启动条件;和

使所述启动条件注册到一个或多个数字通信平台,其中检测到所述启动条件使自然语言输入从至少一个数字通信平台路由到应用管理服务,并且其中所述对话驱动式应用程序使用所述应用程序管理服务实现。

2.根据条款1所述的系统,其中所述自然语言输入包括语音输入,并且其中所述启动条件包括自然语言启动短语。

3.根据条款1所述的系统,其中自然语言输入包括语音输入,并且其中所述计算机可执行指令如果执行则使得所述一个或多个处理器执行:

从所述用户接收退出短语,其中检测到所述自然语言输入中的所述退出短语将导致终止所述自然语言输入到所述应用程序管理服务的路由。

4.根据条款1所述的系统,其中所述数字通信平台包括语音启用的平台和基于文本的消息收发平台,其中与所述对话驱动式应用程序相关联的语音输入从所述语音启用的平台被路由至所述应用管理服务,并使用所述对话驱动式应用程序进行分析,并且其中与所述对话驱动式应用程序关联的文本输入从所述基于文本的消息收发平台路由到所述应用程序管理服务,并使用所述对话驱动式应用程序进行分析。

5.一种方法,其包括:

从用户接收启动条件;和

使所述启动条件注册到一个或多个数字通信平台,其中检测到所述启动条件使自然语言输入从至少一个所述数字通信平台路由到应用管理服务。

6.根据条款5所述的方法,其中所述自然语言输入包括语音输入,并且其中所述启动条件包括自然语言启动短语。

7.根据条款5所述的方法,其中所述自然语言输入包括语音输入,并且其中所述方法还包括:

接收来自用户的退出短语,其中检测到所述自然语言输入中的所述退出短语将导致终止所述自然语言输入到所述应用程序管理服务的路由。

8.根据条款5所述的方法,其中所述自然语言输入包括文本输入,并且其中所述启动条件包括自然语言启动短语。

9.根据条款5所述的方法,其中所述数字通信平台包括语音启用的平台和基于文本的消息收发平台,其中与所述对话驱动式应用程序相关联的语音输入从所述语音启用的平台被路由至所述应用管理服务,并使用对话驱动式应用程序进行分析,并且其中与所述对话驱动式应用程序关联的文本输入从所述基于文本的消息收发平台路由到所述应用程序管理服务,并使用所述对话驱动式应用程序进行分析。

10.根据条款5所述的方法,其进一步包括:

从所述用户接收代表一个或多个数字通信平台的选择的输入。

11.根据条款5所述的方法,其进一步包括:

使路由地址注册到所述一个或多个数字通信平台,其中检测到所述启动条件使自然语言输入从至少一个所述数字通信平台路由到所述应用管理服务的所述路由地址。

12.根据条款5所述的方法,其中所述启动条件和所述自然语言输入与对话驱动式应用程序相关联,并且其中所述对话驱动式应用程序使用所述应用程序管理服务实现。

13.一种用于存储程序指令的非暂时性计算机可读存储介质,所述程序指令如果被执行则使一个或多个处理器执行以下操作:

从用户接收自然语言输入;

至少部分地基于检测到向所述一个或多个数字通信平台注册的启动条件,

使所述自然语言输入从一个或多个数字通信平台路由至至少一个应用程序管理服务。

14.根据条款13所述的非暂时性计算机可读存储介质,其中所述自然语言输入包括语音输入,并且其中所述启动条件包括自然语言启动短语。

15.根据条款13所述的非暂时性计算机可读存储介质,其中所述自然语言输入包括语音输入,并且其中检测到所述语音输入中的退出短语将导致所述自然语言输入到至少一个应用程序管理服务的路由的终止。

16.根据条款13所述的非暂时性计算机可读存储介质,其中所述自然语言输入包括文本输入,并且其中所述启动条件包括自然语言启动短语。

17.根据条款13所述的非暂时性计算机可读存储介质,其中所述数字通信平台包括语音启用的平台和基于文本的消息收发平台,其中与所述对话驱动式应用程序相关联的语音输入从所述语音启用的平台被路由至所述至少一个应用管理服务,并使用对话驱动式应用程序进行分析,并且其中与所述对话驱动式应用程序关联的文本输入从所述基于文本的消息收发平台路由到所述至少一个应用程序管理服务,并使用所述对话驱动式应用程序进行分析。

18.根据条款13所述的非暂时性计算机可读存储介质,其中将所述自然语言输入路由到所述至少一个应用管理服务的路由地址,其中所述路由地址被注册到所述一个或多个数字通信平台。

19.根据条款13所述的非暂时性计算机可读存储介质,其中所述启动条件和所述自然语言输入与对话驱动式应用程序相关联,并且其中所述对话驱动式应用程序使用所述至少一个应用程序管理服务实现。

20.根据条款19所述的非暂时性计算机可读存储介质,其中所述一个或多个数字通信平台由与所述对话驱动式应用程序关联的开发人员选择。

说明性计算机系统

在至少一些实施例中,实施以上针对开发和部署对话驱动式应用程序(包含产生用于多步骤对话以及意图任务的履行的代码)描述的技术中的一个或多个的服务器可包含通用计算机系统,其包含或被配置成访问一个或多个计算机可访问媒体。图21说明这种通用计算装置9000。在所说明的实施例中,计算装置9000包含经由输入/输出(I/O)接口9030联接到系统存储器9020(其可以包括非易失性和易失性存储器模块)的一个或多个处理器9010。计算装置9000进一步包含联接到I/O接口9030的网络接口9040。

在各种实施例中,计算装置9000可以是包含一个处理器9010的单处理器系统,或者包含若干处理器9010(例如,两个、四个、八个或另一合适数目)的多处理器系统。处理器9010可以是能够执行指令的任何合适的处理器。例如,在各种实施例中,处理器9010可以是实施多种指令集架构(ISA)中的任何一种的通用或嵌入式处理器,例如,x86、PowerPC、SPARC或MIPS ISA或任何其它合适的ISA。在多处理器系统中,处理器9010中的每一个可以共同但不是必须地实施相同的ISA。在一些实施中,可以使用图形处理单元(GPU)来代替常规的处理器或作为常规处理器的补充。

系统存储器9020可以被配置成存储可由一个或多个处理器9010访问的指令和数据。在至少一些实施例中,系统存储器9020可以包括易失性和非易失性部分;在其它实施例中,可以仅使用易失性存储器。在各种实施例中,系统存储器9020的易失性部分可以使用任何合适的存储器技术来实施,例如,静态随机存取存储器(SRAM)、同步动态RAM或任何其它类型的存储器。对于系统存储器的非易失性部分(例如,其可以包括一个或多个NVDIMM),在一些实施例中,可以使用基于闪存的存储器装置,包含NAND闪存装置。在至少一些实施例中,系统存储器的非挥发性部分可包含电源,例如,超级电容器或其它电力存储装置(例如,电池)。在各种实施例中,基于忆阻器的电阻随机存取存储器(ReRAM)、三维NAND技术、铁电RAM、磁阻RAM(MRAM)或任何各种类型的相变存储器(PCM)可以至少用于系统存储器的非易失性部分。在所说明的实施例中,实施例如以上描述的那些方法、技术和数据的一个或多个所期望函数的程序指令和数据被展示为存储在系统存储器9020中,作为代码9025和数据9026。

在一个实施例中,I/O接口9030可被配置成协调处理器9010、系统存储器9020、网络接口9040或其它外周接口(例如,各种类型的持久性和/或易失性存储装置)之间的I/O流量。在一些实施例中,I/O接口9030可执行任何必要协定、时序或其它数据变换以将来自一个组件(例如,系统存储器9020)的数据信号转换成适合于由另一组件(例如,处理器9010)使用的格式。在一些实施例中,I/O接口9030可包含对通过各种类型的***总线(例如,低接脚计数(LPC)总线、***组件互连(PCI)汇流排标准的变体或通用串行总线(USB)标准)附接装置的支持。在一些实施例中,I/O接口9030的功能可以分成两个或更多个单独的组件,例如,北桥和南桥。而且,在一些实施例中,I/O接口9030的一些或全部功能性(例如,到系统存储器9020的接口)可以直接并入到处理器9010内。

网络接口9040可以被配置成允许数据在计算装置9000和附接到一个或多个网络9050的其它装置9060之间交换,例如,如图1到图20中所说明的其它计算机系统或装置。在各种实施例中,网络接口9040可以支持经由任何合适的有线或无线通用数据网络的通信,例如,以太网网络的类型。另外,网络接口9040可以支持经由例如模拟语音网络或数字光纤通信网络的电信/电话网络,经由例如光纤通道的存储区域网络SAN或经由任一其它合适类型的网络和/或协议的通信。

在一些实施例中,系统存储器9020可以是计算机可访问媒体的一个实施例,所述计算机可访问媒体被配置成存储如上文针对图1到图20所描述的程序指令和数据,以用于实施对应方法和设备的实施例。然而,在其它实施例中,可以在不同类型的计算机可存取介质上接收、发送或存储程序指令和/或数据。在一个实施例中,计算机可访问媒体可包含非暂时性存储介质或存储器媒体,例如,磁性或光学媒体,例如,经由I/O接口9030联接到计算装置9000的磁碟或DVD/CD。非暂时性计算机可访问存储介质还可以包含任何易失性或非易失性媒体,例如,RAM(例如,SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等,其可以包含在计算装置9000的一些实施例中作为系统存储器9020或另一类型的存储器。另外,计算机可访问媒体可以包含传输媒体或经由例如网络和/或无线链路的通信媒体传送的例如电信号、电磁信号或数字信号的信号,例如,可以经由网络接口9040实施。可使用如图21所示的计算设备的多个计算设备中的部分或全部计算设备来实施各个实施例中的所描述功能;例如,在各种不同的设备和服务器上运行的软件组件可协作以提供功能。在一些实施例中,除了使用通用计算机系统实施之外或代替使用通用计算机系统实施,还可以使用存储装置、网络装置或专用计算机系统来实施所描述的功能性的部分。如本文所使用的术语“计算装置”指至少所有这些类型的装置,并且不限于这些类型的装置。

结论

各种实施例可以进一步包含在计算机可访问媒体上接收、发送或存储根据前述描述实施的指令和/或数据。在一些实施例中,计算机可访问媒体可以包含例如磁性或光学媒体的存储介质或存储器媒体,例如,磁盘或DVD/CD-ROM、易失性或非易失性媒体,例如,RAM(例如,SDRAM、DDR、RDRAM、SRAM等)、ROM等,以及传输媒体或经由例如网络和/或无线链路的通信媒体传送的例如电信号、电磁信号或数字信号的信号。

如图中所说明和本文描述的各种方法表示方法的示例性实施例。所述方法可以用软件、硬件或其组合来实施。可改变方法的顺序,并且可添加、重新排序、组合、省略、修改等各种元件。

可以进行各种修改和改变,这对于受益于本公开的所属领域的技术人员来说将是明显的。希望包含所有此类修改和改变,并且因此,以上描述应按说明性而不是限制性意义来看待。

57页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:包括神经网络的半导体装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!