CN110321413A - 会话框架 - Google Patents

会话框架 Download PDF

Info

Publication number
CN110321413A
CN110321413A CN201910211563.8A CN201910211563A CN110321413A CN 110321413 A CN110321413 A CN 110321413A CN 201910211563 A CN201910211563 A CN 201910211563A CN 110321413 A CN110321413 A CN 110321413A
Authority
CN
China
Prior art keywords
session
workflow
response
conversational system
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910211563.8A
Other languages
English (en)
Other versions
CN110321413B (zh
Inventor
D.纳哈莫
L.波利美纳科斯
N.米尔斯
L.朱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN110321413A publication Critical patent/CN110321413A/zh
Application granted granted Critical
Publication of CN110321413B publication Critical patent/CN110321413B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/225Feedback of the input speech

Abstract

本发明一般涉及计算机软件,并且更具体地,涉及会话框架。提供了一种计算机实现的会话系统框架,用于执行与客户端请求相关联的任务。在硬件处理器上运行的会话应用提供应用工作流编排,该会话应用接收客户端请求并基于应用工作流编排发送一个或多个应用请求。在硬件处理器上运行的会话系统提供会话工作流编排,该会话系统接收一个或多个应用请求。会话应用和会话系统开发对话上下文并将对话上下文存储在存储器设备中。会话应用和会话系统通过调用至少一个微服务以执行与一个或多个应用请求相关联的任务从而开发对话上下文。会话应用基于开发的对话上下文生成对客户端请求的响应。

Description

会话框架
技术领域
本发明总体上涉及计算机软件,并且更具体地,涉及会话框架。
背景技术
近年来,会话系统已经经历了从随意闲聊体验到更有指导性的、特定于任务的交互的转变。面向目标的对话系统被设计为以及时有效的方式处理特定用户对定义明确的目标的需求。这种系统的示例是:信息搜索和/或提供;专注于完成任务(例如预订);就用户选项做出推荐;或这些目标的任意组合。会话不仅仅被视为独立的系统,而且被视为具有许多模块、知识库和业务逻辑组件的更大和复杂的应用的通用的接口。因此,本申请的发明人已经认识到,会话系统应该能够在设计期间和操作期间利用应用特定数据。这样的会话系统应该能够保持管理所有组件的一致的上下文,并且允许逻辑的分离以及应用和会话组件的紧密耦合的能力两者,而不会导致混乱的代码和不可管理的系统。此外,它们应该使复杂会话应用的增量开发变得容易,例如,通过实现应用逻辑、知识库和人类交互行为模式的扩展和持续演进。
发明内容
可以提供一种计算机实现的方法和系统。在一个方面,一种方法可以包括由会话应用接收客户端请求,并在会话线程中发起对话。该方法还可以包括进行与对话相关联的工作流编排,所述工作流编排将请求传达给会话系统,以通过调用至少一个微服务来执行与会话相关的工作流任务。该方法还可以包括由会话应用接收由会话系统返回的作为调用所述至少一个微服务的结果的响应,会话应用确定应用任务并基于由会话系统返回的响应来响应客户端请求。
在一个方面,会话系统可以包括在至少一个硬件处理器上运行并提供应用工作流编排的会话应用,会话应用接收客户端请求并基于应用工作流编排发送一个或多个应用请求。会话系统在至少一个硬件处理器上运行,并提供会话工作流编排,该会话系统接收一个或多个应用请求。会话应用和会话系统开发对话上下文并将对话上下文存储在存储器设备中,会话应用和会话系统通过调用至少一个微服务来开发对话上下文。会话应用基于开发的对话上下文生成对客户端请求的响应。
还可以提供一种存储指令程序的计算机可读存储介质,该指令程序可由机器运行以执行本文描述的一种或多种方法。
还可以提供一种存储指令程序的计算机程序产品,该指令程序可由机器运行以执行本文描述的一种或多种方法。
还可以提供一种计算机系统,该计算机系统包括存储器和处理单元,该处理单元可操作地耦合到存储器以根据本文描述的一种或多种方法来执行动作。
还可以提供一种会话系统,包括根据本文描述的一种或多种方法来运行步骤的模型。
下面参考附图详细描述各种实施例的进一步特征以及结构和操作。在附图中,相同的附图标记表示相同或功能相似的元件。
附图说明
下面参考附图详细描述各种实施例的特征以及结构和操作。在附图中,相同的附图标记表示相同或功能相似的元件。
图1示出一个实施例中的系统概观。
图2是示出一个实施例中的会话系统的组件的图。
图3是示出一个实施例中的会话系统的架构框架的图。
图4示出一个实施例中的云计算环境。
图5示出一个实施例中由云计算环境提供的功能抽象层集合。
图6示出在本发明的一个实施例中可以实施会话系统的示例计算机或处理系统的示意图。
图7是示出一个实施例中的会话系统的架构的图。
图8是示出一个实施例中会话系统的方法流程的图。
具体实施方式
可以提供一种系统、方法和技术,该系统、方法和技术使得推理、机器学习和过程逻辑组件的混合能够由应用和会话过程的工作流编排来管理。在一些方面,一些实施例中的系统通过使用两个不同的组件组来完成应用和会话逻辑的分离,其中这两个不同的组件组包括例如在一些实施例中参考图1、2和3描述的会话应用组件和会话系统组件。
一些实施例中的会话系统框架提供模块化、可扩展性、应用逻辑与会话逻辑的分离、不同模块之间的编排、跨不同会话机器人之间的协调以及上下文的统一处理。框架的实现特征可以包括:直观的图形开发环境、易于使用的组件接口,以及对利用WebSocket、代表状态转移应用编程接口(Representational State Transfer Application ProgrammingInterfaces,REST API)和云功能在不同应用接口技术上开发和部署的会话组件的支持。该框架可以允许会话系统的快速和一致(可重复)开发,在没有所有需要的组件的情况下支持实现和实验,并提供一旦部署后维护、修复、扩展和更新整个系统的目标方法。在一些实施例中的框架允许组件(微)服务定义和部署、组件编排、应用回调和上下文处理。
图1示出一个实施例中的系统概观。参考图1,从鸟瞰图来看,采用会话作为用户体验的一部分的客户端应用(100)与会话应用(110)接合(engage),其中该会话应用(110)利用一个或多个会话系统(120)通过生成对客户端请求的响应来进行会话。在一些实施例中,这由客户端应用(100)向会话应用(110)发送包含输入(例如,文本输入)的客户端请求(105)来完成。会话应用然后可以按照其应用工作流编排(175)的指导,向一个或多个会话系统(120)发送一个或多个应用请求(115)。会话应用和会话系统两者通过利用由应用和会话工作流编排(175,170)指导的会话微服务(130)和业务应用(150)来使用和开发对话上下文(165),直到客户端响应(180)可以返回给客户端应用(100)。例如,业务应用(150)包括实体或组织特定的应用。
在一些实施例中,会话系统(120)是被开发来响应人类语言(所有可能的人类语言的子集)输入并基于朝向完成目标的、隐式(来自数据)或显式(编程的)已知的可能交互路径来提供响应的计算机系统。在一些实施例中,会话应用(110)是包括应用的计算机系统,该应用使用一个或多个会话系统和附加的基于知识且内部或外部的模块,以便允许与它的业务应用逻辑和知识库进行自然语言交互,并使得用户能够完成任务。会话应用(110)也被称为对话使能应用(Dialog Enabled Application)。在一些实施例中,在构建涉及解决或实现任务的会话的系统时定义任务。任务可以满足系统的用户可能追求完成的一个或多个目标。同样,用户目标可以由一个或多个标识的任务的完成来满足。例如,用户可能具有为其家庭组织一次负担得起的假期的目标。这可以与附加的目标相结合,附加的目标类似收集关于旅行选项或目的地的信息、活动探索、咨询天气状况和/或其他。这个目标可以通过旅行预订系统来实现,该旅行预订系统允许用户完成以下或附加的未列出的任务:找到并呈现目的地选项、提供不同旅行选项的价格信息、预订家庭旅行的不同方面(交通、住宿、活动)、并且最后为旅行提供最符合用户的价格标准的可靠和安全的账单。
会话应用编排(175)通过发送触发会话系统(120)中的会话工作流编排(170)的应用请求(115)来提供一个或多个会话系统(120)的编排。会话工作流编排(170)处理应用请求(115),并且可以利用会话请求(330.x,图3)来呼叫一个或多个微服务代理(340.x,图3)。微服务代理(340.x)利用微服务请求(125)与会话微服务(130)进行接合。微服务请求(125)可以包含由微服务执行其功能和生成微服务响应(135)所需的对话上下文(165)的部分。对话上下文(165)能够在会话工作流编排(170)期间由来自微服务响应(135)的内容更新。对话上下文(165)随着工作流进展而累积。在对话上下文(165)的状态足以提供应用响应(145)的情况下,生成一个应用响应(145)并将其返回到会话应用编排(175)。
可能存在其他中间情况,这些情况需要来自业务应用(150)(诸如插件应用)的附加数据或消歧(disambiguation),或者需要业务应用(150)(诸如插件应用)的进一步分析。在这种情况下,会话工作流编排(170)被暂停,并且在应用响应(145)中返回“回调(callback)”,以供会话应用编排器(175)采取行动。会话应用(110)的应用工作流编排(175)可以触发将被发送到业务应用(150)进行处理的业务请求(148)。当完成处理时,业务应用(150)利用业务响应(155)来响应。会话应用(110)还可以通过发出微服务请求(160)并接收微服务响应(163)来联系会话微服务(130)以获取数据和/或进行处理。这些响应被进一步处理以增大对话上下文(165),并且会话应用可以通过返回客户端响应(180)来接合客户端应用(100)用于消歧,和/或可以与会话系统(120)重新接合以恢复会话工作流编排(170)。在某个时刻,会话系统(120)和会话应用(110)在对话上下文(165)中实现一状态,该状态使得能够生成对应于发起客户端请求(105)的最终客户端响应(180)。这构成了会话线程中的一个对话回合,并且重复该过程直到客户端应用(100)对结果满意并且已经实现其目标或者意识到该目标是不可实现的。
图2更详细地示出了一个实施例中的会话系统。在一个实施例中,各种会话微服务(130)可以被分类如下:(多个)推理引擎(例如,所示的210.x、210.1、…、210.n);假设搜索(220);NLU(230);语义匹配器(240);查询生成(250);响应生成(260)。在一些实施例中,会话系统120还包括会话工作流编排(170),会话系统120与会话应用(110)和会话应用的应用工作流编排(175)通信,并且还访问和/或构建对话上下文(165)。
在一些实施例中,本公开的系统和方法通过利用会话应用(110)来支持客户端应用(100)的客户端请求(105),其中会话应用(110)经由其应用工作流编排(175)与一个或多个会话系统(120)的会话工作流编排器(170)通信,以最终生成并返回客户端响应(180)。应用工作流编排(175)将包含对话上下文(165)和/或来自客户端请求(105)的输入的应用请求(115)转发到会话系统(120),并且在会话工作流编排(170)已经与会话微服务(130)接合之后并且根据对话上下文(165)的状态指示来接收应用响应(145)。会话系统(120)的会话微服务(130)的实施例连同会话工作流编排(170)的描述一起被分类如下。
会话工作流编排(170):在一些实施例中,该组件分析当前对话上下文(165),并将其映射到对话状态(例如,关于客户端应用(100)、会话应用(110)以及会话系统(120)之间的会话的、朝向完成任务的隐式已知(来自数据)或显式编程(编码的)的演进路径的已知/预期中间步骤之一)。在一些实施例中,该映射用于(多个)推理引擎(210.x)决定或推理应用工作流编排(175)的会话中的下一步(其可以是客户端应用(100)期望的完整/最终答案,或者任务完成的确认;消歧请求;或参数收集请求等)。会话工作流编排(170)还可以接合假设搜索(220)来搜索对话上下文(165),以从由会话工作流编排(170)和/或推理引擎(210.x)提供的可用选项中决定朝向完成对话的目标的最佳预测对话路径。
(多个)推理引擎(所示的210.x,例如210.1、…、210.n):在一些实施例中,这些组件专用于特定类型/模式的对话交互:非穷举示例包括具有特定数据结构的对话交互模式和处理不同类型的人类行为的对话交互,因为它应用于整个会话系统或与结构化数据的特定对话交互。推理引擎可以被视为专用引擎,用于帮助将会话工作流编排(170)任务(对话流管理任务)分裂(分解)成有限的专用推论(reasoning)/决策引擎集合,其中该专用推论/决策引擎的结果可以被组合以向客户端应用(100)提供最终的客户端响应(180)(例如,答案)。推理引擎的响应成为对话上下文的一部分(165)。例如,在WCS中,框架实现可以被视为表单交互的推理引擎,并集成在更大更通用的对话流引擎中。在该示例中,与在对话流树中对其进行编码相比,框架组件允许更快、一致和可重复地实现对话交互的表单模式。
假设搜索(220):在一些实施例中,该组件搜索包括推理引擎(210.x)的结果的对话上下文(165),以便从由应用和会话工作流编排(175,170)和/或推理引擎(210.x)提供的可用选项中决定朝向完成对话的目标的最佳预测对话路径。通过选择最佳预测对话路径,还决定了对客户端应用(100)的下一客户端响应(180)。该组件可以是对话流的实现的一部分,例如,在Watson会话系统(Watson Conversation System,“WCS”)中,并且它可以在对话树的节点中被显式编程。
NLU(230)(上下文的)自然语言理解:本公开将NLU统称为负责分析自然人类语言输入并提取特征/参数的组件,其中这些特征/参数随后可映射到语义表示-例如,将已知含义连同相关参数分配给整个人类语言输入,以及其源自客户端请求(105)并在应用请求(115)中进一步增强的部分。例如,在Watson会话系统(“WCS”)中,NLU包括用于分配实体/槽(slot)/值的输入文本匹配器和意图分类器。本公开的系统可以包括附加的和更复杂的NLU组件,其不仅考虑当前的客户端输入,还考虑对话上下文(165),以便处理各种自然语言现象,类似省略、回指、关于(改变或修复)其他话语的话语、冗长和杂乱的用户输入。此外,会话工作流编排(170)可以使用多个NLU(230)来确保通过组合训练的人工智能、模糊匹配、正则表达式、语言扩展和转换来导出客户端输入的最佳表示。
语义匹配器(240):在一些实施例中,该组件将提取的NLU参数与一个或多个预期的、任务相关的表示相匹配。例如,在Watson会话系统(“WCS”)中,此操作可能发生在对话流有向图(Dialog Flow directed graph)中的一个节点内,其中提取的NLU参数与对话流中的一个节点匹配—该节点是任务相关的表示。
查询生成(250):在一些实施例中,该组件基于提取的参数(意图、实体、上下文值)的任务表示,并将它们映射到适当的知识库查询。这种查询可以是以下形式:对数据库的结构化查询语言(structured query language,SQL)查询、对图形数据库的SPARQL协议和RDF查询语言(SPARQL Protocol and RDF Query Language,SPARQL)查询、对应用服务或对象存储的应用编程接口(application programming interface,API)呼叫、对问答(QuestionAnswering,QA)系统的呼叫和/或其他。例如,在Watson会话系统(“WCS”)中,该操作可以是对话流的逻辑节点中可以采取的动作之一。
响应生成(260):在一些实施例中,该组件将由应用和会话工作流编排(175,170)推理的下一步转换成对客户端应用(100)的合适的客户端响应(180)。这可能涉及将响应格式化为适当的语言,其中该适当的语言具有适当的参数插入以及对响应音调、风格、情感的适当编码。例如,在Watson会话系统(“WCS”)中,这也可以被包括在对话流节点中,在该节点中它可以是完全或参数地脚本化的。
对话上下文(165):在一些实施例中,该组件包括对话历史、应用和会话工作流编排(175,170)历史、来自NLU和语义匹配微服务的输出、和已经作为参数传递给其他会话微服务(130)和业务应用(150)的所有附加变量以及来自其他会话微服务(130)和业务应用(150)的响应数据。例如,以下可以是对话上下文的一部分:a)所收集的关于从当前客户端输入中收集的(多个)意图、实体和槽值,连同从由呼叫应用API直接设置的先前客户端输入、简档变量或数据中识别的(多个)意图、实体和槽值的信息;b)系统响应和动作的历史;c)(例如,结构化的)查询/检索结果;d)如由应用和会话工作流编排(175,170)编码的演进对话状态和可能的下一步/响应。它们定义了在会话组件之间以及在会话系统(120)、会话应用(110)和客户端应用(100)之间传递的(例如,增长的)会话上下文。
会话应用(110)可以包括一个或多个组件,其中该一个或多个组件包括多个会话系统(120)、专有或第三方数据库和知识库、内部或外部应用(例如,业务应用(150))的插件以及编码业务逻辑、合规逻辑、算法逻辑和/或其他的模块。会话系统(120)被用作输入方法,并且会话组件(例如,会话微服务(130))对客户端请求(105)和应用请求(115)的分析、导出的对话上下文(165)以及对话路径进行编码,其中该对话路径允许与完成由应用和会话工作流编排(175,170)指定的任务所需的所有应用和会话组件进行交互。
在一些方面,在设计和实现复杂应用的会话启用时,本公开的会话开发方法不需要将在会话应用(110)处管理的所有应用逻辑和组件功能重新编码到会话系统(120)的模块中。例如,本公开的方法支持开发者将会话应用(110)和会话系统(120)通过其收集并为客户端应用(100)提供必要信息的(多个)过程从应用逻辑中分离以处理该信息,从而允许客户端应用(100)完成任务集合。
图3示出了一个实施例中的会话框架。在一些方面,在各种会话应用(110)和会话系统(120)组件之间的编排满足客户端应用(100)的目标。在一些实施例中,存在可以构建鲁棒会话应用的附加类型的编排。例如,编排的会话系统组件与应用编排逻辑的协调交互可以提供对用户模型或补充原始用户输入的其他应用数据的消歧或检索。为了呈现总体框架并说明设计中应用和会话逻辑的分离,以及处理专有数据和API的安全,会话框架可以被分成两个主要子系统:每个主要子系统各自处理会话应用(110)和会话系统(120)。
会话应用(110)包括以下部分:对话上下文(165)存储和管理、专有或外部应用和数据库(业务应用(150.x))的插件注册表(390)和插件(395.x)、负责呼叫插件注册表(390)来运行一个或多个插件(395.x)的回调管理器(380)(该一个或多个插件由对对话上下文(165)状态做出反应的应用编排(310)引导)、以及会话工作流编排(170)暂停期间的应用响应(145.x)。会话应用(110)管理与客户端应用(100)的所有通信,根据客户端请求(105)采取行动并返回客户端响应(180)。
应用工作流编排(175)可以包括两个组件:应用工作流(300)和应用编排(310)。应用工作流(300)负责向适当的会话系统(120)发出应用请求(115.x),或者根据对话上下文(165)状态,经由插件注册表(390)呼叫回调管理器(380)来运行插件(395.x)。回调管理器(380)处理的结果和对话上下文(165)由应用编排(310)检查,以确定应用工作流(300)应该如何处理、改变和寻址工作流,或者是否应该将客户端响应(180)返回给客户端应用(100)。应用工作流(300)运行下一工作流步骤,其中该下一工作流步骤可以使它向会话系统(120)的会话工作流(320)组件发送应用请求(115.x),或者呼叫回调管理器(380)用于业务逻辑处理。
应用编排(310)负责评价和处理来自会话系统(120)的会话工作流编排(170)的会话编排(350)的应用响应(145.x)。应用编排(310)评价对话上下文(165)和应用响应(145.x),以确定应用工作流是否应该按计划继续,或者是否应该由应用工作流(300)改变和处理,或者是否应该将客户端响应(180)返回给客户端应用(100)。
会话系统(120)可以包括动态会话工作流编排器(170),其在运行期间使用对话上下文(165)状态和会话响应(345.x)处理以及由其会话编排(350)执行的附加路由逻辑来决定最佳会话微服务(130)工作流。会话系统(120)还可以包括提供对会话微服务(130.n)(例如,REST服务和/或包含各种会话组件逻辑的云功能,或者设计者/开发者为了开发高性能会话系统而希望使用的任何其他第三方组件)的访问的微服务代理(340.x)。会话工作流编排(170)的会话工作流(320)组件负责建立会话请求(330.x)并与微服务代理(340.x)通信。从微服务代理(340.x)返回的会话响应(345.x)由会话编排(350)组件处理。
微服务代理(340.x)负责将常量值和对话上下文(165)的转换的混合组合成微服务请求(125.x),并呼叫会话微服务(130.x)或提供提供模拟响应的模拟呼叫。微服务响应(135.x)或模拟响应被解析,并且部分可以被微服务代理(340.x)用来更新对话上下文(165)。
由会话工作流(320)运行的会话工作流可以包含对所需的和可选的微服务代理(340.x)引用两者的引用。微服务响应(135.x)或模拟响应被转换成微服务代理(340.x)中的会话响应(345.x),并被转发到会话编排(350)。会话编排(350)运行逻辑来评价对话上下文(165)的状态,以确定会话工作流是否应该被修改,对话上下文(165)是否应该被更新,或者应用响应(145.x)是否应该被返回给应用工作流编排(175)中的应用编排器(310)。如果会话工作流和/或对话上下文(165)已经被修改,但是不需要应用响应(145.x),则会话编排(350)可以将工作流请求(360)转发给会话工作流(320),并且该过程重复,直到产生应用响应(145.x)。
在会话编排需要暂停会话工作流(例如,为了消歧,或者为了呼叫另一会话系统(120))的情况下,它生成应用响应(145.x)以对会话应用(110)进行“回调”,从而其应用工作流编排(175)可以确定需要什么处理。它可以为应用工作流(300)配置应用工作流,以呼叫回调管理器(380)呼叫插件注册表(390)来调用一个或多个插件(395.n)。插件(395.n)向业务应用(150.x)(例如,实体特定应用)发出业务请求(148.1),以收集业务数据和/或影响使得返回业务响应(155.x)的业务逻辑,以使对话上下文(165)被更新。插件(395.x)还可以调用对会话微服务(130.1)的微服务请求(160),以引发微服务响应(163),以使对话上下文(165)被更新。回调管理器(380)的输出由应用编排(310)处理,以确定接下来会发生什么。
在一些方面,插件(395.n)可以是客户生成的向会话框架注册以执行服务的代码。插件允许在会话期间触发逻辑来收集数据或消歧意图和实体。在会话工作流编排期间,插件可用于为有歧义的实体提供实际实体引用(例如,航班目的地成为特定机场)或计算新的上下文值(例如,获取给定机场的纬度和经度,或获取特定纬度/经度位置的天气)。在一些实施例中,框架中的插件通过会话编排创建引用各种插件动作的ConvApplCallback来触发。例如:
插件可以经由REST服务访问客户应用,以在他们的内部网上运行。框架中的插件可以由会话应用(110)运行。插件的结果可以被传递回会话系统(120)以继续工作流编排。
回调管理器(380)还可以使应用工作流(300)生成对相同或不同会话系统(120)的新应用请求(115.x)以进行进一步处理。根据对话上下文(165)的状态和/或回调管理器(380)的插件处理的结果,和/或来自会话系统(120)的应用响应(145.x),应用编排(310)可以确定是否应该发出客户端响应(180),或者是否需要进一步的应用工作流并将控制转发给应用工作流(300),或者它可以决定将应用请求(115.x)返回给会话系统(120)的会话工作流编排(170)的会话工作流(320)。如果该应用请求(115.x)包含对回调的响应(或者当应用请求包含错误(errant)内容时),会话工作流(320)将工作流响应(370)转发给会话编排(350),以恢复对话上下文(165)状态评价,或者评价和处理错误,然后确定暂停的工作流是否应该按计划恢复、改变(例如,通过呼叫可选的微服务代理(340.x)),或者是否应该生成应用响应(145.x)。
客户端应用(100)发出客户端请求(105)以调用会话应用(110)来发起会话线程中的对话回合。会话应用(110)进行应用工作流编排(175),该应用工作流编排调用回调管理器(380)或将应用请求(115.x)传达给会话系统(120),以使用会话微服务(130.x)的会话工作流编排(170)来执行会话相关的工作流任务。应用响应(145.x)被返回到会话应用,在会话应用中,其应用工作流编排(175)确定需要什么应用任务,并最终利用客户端响应(180)来响应客户端应用(100)。
在一些实施例中的整个系统包括以下组件:
I.会话应用(110)
a.应用工作流程编排(175)
i.应用工作流(300)
1.经由会话系统(120)的会话工作流编排(170)呼叫回调管理器或向会话工作流(320)发出应用请求(115.x)
ii.应用编排(310)
1.向客户端应用(100)发出客户端响应(180)或将控制返回给应用工作流(300)
b.回调管理器(380)
i.呼叫插件注册表
ii.管理回调状态
iii.更新对话上下文(165)
c.插件注册表(390)
i.插件(395.x)
1.向业务应用(150.x)发出业务请求(148.x)或向会话微服务(130.x)发出微服务请求(160)
2.处理业务响应(155.x)或微服务响应(163)
3.更新对话上下文(165)
II.会话系统(120)
a.会话工作流编排(170)
i.会话工作流(320)
1.向微服务代理(340.x)发出会话请求(330.x)
2.当工作流因回调而暂停时,将应用请求(115.x)作为工作流响应(370)转发给会话编排(350)
3.向会话编排(350)发送错误
4.更新对话上下文(165)
ii.会话编排(350)
1.更新对话上下文(165)
2.评价对话上下文(165)状态
3.更改会话工作流
4.向会话工作流(320)发出工作流请求(360)
5.发出应用响应(145.x)
b.微服务代理(340.x)
i.构建微服务请求(125.x)请求主体
ii.向会话微服务(130.x)发出微服务请求(125.x)
iii.处理微服务响应(135.x)以更新对话上下文(165)
iv.向会话编排(350)发出会话响应(345.x)
在一些方面,将会话组件(如云功能或应用API)与用于在会话工作流中表示它们的代理分离能够在不中断会话流设计的情况下扩展和增强它们。该分离许可并发运行多个会话线程,并将性能负载分配给云,从而改善可用性和响应时间。它还允许代理模拟尚未开发或部署的会话组件,从而允许会话应用原型化,并然后采用正在开发的正在进展中的工作的会话组件。
会话应用
在某些方面,会话应用负责:管理来自会话应用的请求;经由插件与业务应用进行接口连接,以代表会话工作流编排收集数据;管理微服务调用所需的访问凭证;路由和调用会话工作流编排;在会话应用和会话工作流编排之间转发用户、会议和会话线程标识以及上下文数据;跨多个会话工作流编排器执行应用编排(例如,用于多代理通信);响应会话应用。
会话应用编排
会话应用中的请求处理可以包括将来自会话应用的请求转发给单个会话工作流编排器以导出响应,然后将响应返回给会话应用。在一些情况下,请求可以包括上下文,其中该上下文允许会话应用从几个会话系统工作流编排器中挑选,以确定哪个对服务该请求来说是最佳的。在来自会话应用的请求需要由多于一个会话工作流编排器处理的情况下,会话应用可以使用异步通信来发出请求并处理它们的响应。在一些实施例中,(多个)会话工作流编排器的选择基于用于检查请求的上下文和话语的应用编排逻辑。此外,应用编排逻辑用于检查从多个会话工作流编排器征求的响应,以确定要返回给会话应用的最佳响应。
会话系统工作流编排
通过标识一系列工作流步骤来执行工作流编排,每个步骤都引用要调用的会话微服务。工作流指针用于标识接下来要运行的步骤(或步骤集合)。工作流组件负责运行接下来的一个(多个)工作流步骤,同时编排器负责评估(多个)步骤的结果,以确定接下来应该发生什么。编排器使用规则、模式匹配和推理的组合来做出该决定。在多个步骤并行发生的情况下,编排器在允许会话线程的工作流进展之前负责收集/管理这些步骤的结果。
会话系统会话编排
会话编排提供评估上下文和会话线程状态的必要分析,以及修改工作流以确保能够产生响应的必要工作流操作。会话编排可以评估当前NLU微服务是否成功识别提供的话语的意图和实体,并选择调用附加的NLU微服务。会话编排还可以确定是否需要消歧(例如,当多个实体已经从话语的同一部分导出时——纽约可能被标识为州和城市实体引用)。用于微服务的编排可以确定是否需要回调插件来收集附加的业务应用上下文数据(例如,在飞行期间,飞行员可能会问“我们目的地处的天气如何”,并且飞行管理应用需要提供飞行的当前目的地的位置、它的到达时间、以及然后气象服务可以提供那里的天气预报)。会话编排可以确定何时向会话应用返回响应以及何时继续工作流。会话编排还可以处理取消当前会话线程的请求,或者当已经发出帮助请求时,使工作流暂停,并且由会话应用返回帮助信息。
当由会话系统编排器接收到消息时,对这些消息应用编排逻辑。在一些实施例中,存在三类逻辑:预处理、步骤特定和后处理。预处理逻辑应用于接收的每条消息。它们可以确定应该将消息返回给会话应用用于进一步处理(例如,用于调用应用插件的回调或用于类似取消或帮助的动作)。步骤特定逻辑仅应用于来自特定微服务步骤的消息。这些可以处理上下文更新或工作流路由决定,以调用可选的微服务,或者在工作流中向后或向前跳过以继续处理。在运行适当的步骤特定逻辑之后,并且当正被检查的消息还没有被选择返回到会话应用用于进一步处理时,应用后处理逻辑。在步骤特定逻辑可能已经添加了对要运行的回调的请求的情况下,后处理逻辑可以将消息引导回会话应用。
微服务
微服务为会话服务提供逻辑和推理。会话系统的力量在于它能够利用多个微服务来支持会话应用。在一些实施例中,微服务包括自然语言理解(natural languageunderstanding,NLU)、自然语言处理(natural language processing,NLP)和任何会话模式,它们演进上下文并生成响应,例如,问题/回答、帧流、表格流、多代理流、二部流、森林流、Web流和/或图形流。例如,帧流类型推理引擎可以用于与交易内容交互,在该交易内容中存在有限数量的意图,并且每个意图有少量的实体角色,并且需要用于填写交易表单的无限制的自由流。集合流类型推理引擎可用于与共享共同属性(例如,在零售店、服装中)的项目交互。可能存在大量的实体、大量的实体分类,例如,衬衫、图案、尺寸以及其他,需要无限制的自由流动属性选择。推理引擎可以动态地找到最优的下一问题,以最小化完成购买所需的步骤数,并且策略可以是脚本化的和/或可训练的。森林流类型引用引擎可以包括多个树或网络,其中这些树或网络表示用于基于案例的推论(诸如技术支持问题确定、医疗诊断和/或其他)的逻辑。特征可能包括大量的条件(节点)和大量的树/网络,不熟悉该领域的用户提供有歧义或未知的响应(例如,我不知道,不合时宜的答案、召回(recall)和错误)、严重的任务模糊。森林流类型推理引擎支持多个路径假设搜索和语义匹配。RDB流类型推理引擎可用于与关系数据库(Relational Database,RDB)交互。应用的语义表示可以从现有RDB模式中被重构。这可能涉及利用语义匹配和查询匹配的隐式流推导(implicit flowderivation)。Web流类型推理引擎可用于通过从现有网站架构重构应用的语义表示来与网页上的半结构化信息交互。这可能涉及使用语义匹配和知识图表查询匹配对会话网络进行隐式流推导。
微服务可以基于会话历史或理解话语所需的其他领域知识来合并机器学习或提供响应。微服务可以独立于会话系统进行训练和调整,并根据需要进行部署或更新微服务。在一些实施例中,每个微服务具有用于通信(如何连接和呼叫REST服务)的逻辑:协议、主机名(或互联网协议(Internet Protocol,IP)地址)、端口号、REST动词(例如,POST、GET、PUT)、入口点(在协议之后的统一资源标识符(Uniform Resource Identifier,URI)://主机名:统一资源定位器(Uniform Resource Locator,URL)中的端口);基本认证用户标识符(user identifier,userid)和密码(例如,被称为标识);超时(例如毫秒)。在一些实施例中,每个微服务还具有用于参数映射(如何将上下文数据复制到REST呼叫参数中)的逻辑;响应映射(如何将响应数据复制到上下文(或其他msg.payload变量)中);和编排逻辑(例如,除了应用于所有微服务的预处理和后处理规则之外,每个微服务都可以具有对msg.payload数据的状态(上下文、输出或其他值)做出反应的自己的编排规则集合)。这允许微服务状态逻辑在继续工作流(或者经由会话应用响应用户)之前改变工作流、回调会话应用中的插件或者进一步调整msg.payload。
在一些实施例中,除了问题/回答之外,所有上述类型的微服务都采用某种程度的推理来生成中间响应,以帮助引导客户端到达期望的响应。推理驱动的会话模式的一个优点是,它们不像基于规则的对话流那么脆弱,因为它们可以适应变化,而不产生需要重新评价规则逻辑的连锁效应。它们也比基于规则的对话流更容易配置,因为重点是数据源和数据组织,而不是预期会话查询以及如何生成相应的响应。
图1、图2和图3所示的组件可以在一个或多个硬件处理器(诸如中央处理单元(central processing unit,CPU)、图形处理单元(graphic process unit,GPU)和/或现场可编程门阵列(Field Programmable Gate Array,FPGA)、专用集成电路(applicationspecific integrated circuit,ASIC)和/或另一处理器)上运行或实现,可以与存储器设备耦合,并且如上所述处理转换逻辑。存储器设备可以包括随机存取存储器(randomaccess memory,RAM)、只读存储器(read-only memory,ROM)或另一存储器设备,并且可以存储用于实现与本文描述的方法和/或系统相关联的各种功能的数据和/或处理器指令。处理器可以运行存储在存储器中或从另一计算机设备或介质接收的计算机指令。存储器设备可以例如存储用于一个或多个硬件处理器的运转的指令和/或数据,并且可以包括操作系统和其他指令的程序和/或数据。一个或多个硬件处理器可以与接口设备(诸如用于例如经由网络与远程系统通信的网络接口,以及用于与诸如键盘、鼠标、显示器和/或其他设备的输入和/或输出设备通信的输入/输出接口)耦合。
图7是示出一个实施例中的会话系统的架构的图。输入语言(例如,用户话语或输入)702由自然语言处理组件704处理,其中自然语言处理组件704识别可以为管线(pipeline)可以响应的术语提供语义意义的话语的元素。例如,问题:“This AmericanPresident was shot fallen in 1865”可以由类似限定(This,其标识了正被寻求作为响应的内容)、名词(President)及其形容词(American)、年份标识(1865年)以及“shotfallen”-形成习语的动词和形容词来表征。语音的部分(part of speech,POS)标签提供:
DTThis NNP American NNP President VBD was VBN shot JJ fallen IN in CD1865.
语义匹配器706获取输入的上述NLU特征,并将它们与与任务相关的可能术语(含义)集合匹配。例如,著名的人会有出生国、出生或死亡日期、特定类型的工作和/或其他术语属性。在上面的例子中,语义匹配器706识别问题的目标是找到一个著名的人,他是“PRESIDENT”,“COUNTRY”是美国,YEAR_OF_DEMISE是1865年,并且“Shot Fallen”习语相当于“ASSASINATED”。
查询匹配器708获取任务语义表示,并将其映射到数据库的适当查询。对于上述示例,可能的查询可以是:
SELECT FIRST_NAME,LAST_NAME
FROM FAMOUS_PEOPLE_TABLE
WHERE JOB=‘PRESIDENT’AND COUNTRY=‘USA’AND YEAR_OF_DEMISE=‘1865’ANDMETHOD_OF_DEMISE=‘ASSASINATED’;
如果返回了多个答案,语义匹配器706可以对它们进行排名并将答案返回给用户。虽然上述查询示出了对数据或知识库710的SQL查询,但是其他查询可以被表述为API、树索引和/或问答技术。
历史712和上下文引擎714可以包括对话上下文,例如,来自先前交互的用户输入,连同语义分析和可能的查询结果以及来自会话系统的先前答案。这允许上下文和历史的用户(例如,在高级NLU组件中)引用和解析过去提供的实体和值,以解决类似省略号和指代的歧义。历史的一部分也是可能具有用户偏好(例如,飞行时偏好的座位或膳食)的用户模型。
会话推理引擎716可以基于以下内容决定与用户的交互中的下一步骤:对话上下文以及用于当前用户输入702的NLU 704、语义匹配器706和查询匹配器708的结果。推理引擎716应用关于接下来向用户询问什么或者向用户提供什么答案的策略,以便促进对话朝向目标的完成。用户输入的歧义可能是语言歧义、部分信息或用户关于可能选项的这部分缺乏理解的结果。推理引擎基于当前输入和上下文评价几个假设,并找到识别正确的假设、并从用户确定支持该假设的所有参数的适当的下一动作。
答案生成(反向语义匹配器718和自然语言生成器720):到目前为止,作为会话系统的推理引擎(例如,对话流)的一部分,响应可以是脚本化的,或者可以是对数据库710的查询的结果。与用户的更复杂的交互可以包括基于用户722的专业知识(expertise)和简档、到目前为止的上下文和回合、预期完成任务的回合和/或其他(同情回答、安慰回答和/或其他)来调整响应。一个完整的反向会话可以由推理引擎管理,以通过让用户提供更具体的选择标准来减少大量的结果。
会话推理引擎716基于底层数据表示的结构或人类与这种数据或应用交互的模式,将会话问题的分解定义为基于模式的会话子问题。在一些实施例中,一方面知识库和任务的类型与另一方面会话交互之间的连接被链接,以提供适当的方式来设计简化会话交互的任务特定和知识特定的可重用推理引擎。表1示出在一些实施例中已经被标识为其对应的会话组件的知识表示的类型和对应的推理引擎。
表1
编排器组件可以包括多个推理引擎。例如,一个会话式电子商务应用可能有3个推理引擎:一个用于与用户聊天的对话流、一个帮助用户找到期望的项目的表格流、以及一个帮助用户完成购买交易的框架流。基于与用户会话的进展来在它们之间进行编排可以提供自动化对话系统的成功,并保持应用逻辑和会话逻辑之间的分离。
反向语义匹配器718映射由(多个)会话推理引擎输出的任务语义表示以输出语义表示。自然语言生成器720生成对应于语义表示的输出自然语言。
如上所述,会话应用可以管理客户端请求、执行应用编排、回调并包括注册插件。会话系统可以为不同的应用编排微服务的工作流,例如,基于工作流编排调用微服务。微服务执行操作并返回结果。在一个实施例中的本公开的系统可以使会话线程能够通过在客户端应用和系统之间的各种回合而继续进行。该系统允许会话线程的暂停,以便在恢复工作流编排之前呼叫插件或经由客户端应用检索响应。在一些方面,该系统可以被用作允许跨不同应用编排工作流的微服务,实现在客户端应用和充当微服务的框架之间的传递会话,实现从完成的子会话线程返回的结果的可见性以便在呼叫框架的编排中进行处理,并且保留实现对作为微服务的框架应用的其他呼叫的子会话的内容。
图8是示出一个实施例中会话系统的方法流程的图。该方法可以由一个或多个硬件处理器运行或在其上运行。在802处,会话应用接收客户端请求,并且会话应用可以在会话线程中发起对话。在804处,进行与对话相关联的工作流编排。工作流编排向会话系统传达请求,以通过调用至少一个微服务来执行会话相关的工作流任务。在806处,会话应用接收会话系统返回的响应,作为调用至少一个微服务的结果。在808处,会话应用确定应用任务,并基于会话系统返回的响应来响应客户端请求。
在一些实施例中,会话系统返回的响应可以包括回调请求,并且响应于接收回调请求,会话应用调用插件应用。在一些实施例中,当经由会话应用调用插件应用时,暂停与会话系统中正在执行的会话线程相关联的会话相关工作流任务。在一些实施例中,插件应用的结果被返回到会话系统,并且会话相关工作流任务在会话系统中恢复。对话上下文可以基于会话相关工作流任务的结果来构建。微服务可以包括推理引擎、假设搜索、自然语言理解、语义匹配器、查询生成和响应生成组件中的一个或多个。在一些实施例中,可以经由与会话系统耦合的微服务代理来访问微服务。
可以预先理解,尽管本公开可以包括关于云计算的描述,但是本文陈述的教导的实施不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如,移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如,国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境面向服务,侧重于无状态(statelessness)、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
现在参考图4,描绘说明性云计算环境50。如图所示,云计算环境50包括一个或多个云计算节点10,云消费者使用的本地计算设备,诸如个人数字助理(personal digitalassistant,PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N可以与这些云计算节点10通信。节点10可以彼此通信。它们可以在一个或多个网络(诸如如上所述的私有、社区、公共或混合云,或者它们的组合)中物理地或虚拟地分组(未示出)。这允许云计算环境50提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图4中所示的计算设备54A-N的类型仅旨在用于说明,并且计算节点10和云计算环境50可以通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备通信。
现在参考图5,示出了由云计算环境50(图4)提供的一组功能抽象层。首先应当理解,图5中所示的组件、层和功能都仅仅是示意性的,本发明的实施例不限于此。如图所示,提供了以下层和对应功能。
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:大型机61;基于精简指令集计算机(Reduced Instruction Set Computer)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;和虚拟客户机75。
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境中执行任务的计算资源和其他资源的动态采购。计量和定价82随着在云计算环境中利用资源而提供成本跟踪,并为这些资源的消耗开帐单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及对数据和其他资源的保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务级别协议(Service LevelAgreement,SLA)规划和实施85提供对云计算资源的预先安排和采购,其中根据SLA,预计未来对该云计算资源的需求。
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:映射和导航91;软件开发和生命周期管理92;虚拟教室教育交付93;数据分析处理94;交易处理95;和协作会话管理96。
图6示出了在本公开的一个实施例中可以实现会话系统的示例计算机或处理系统的示意图。计算机系统仅仅是合适的处理系统的一个示例,并不旨在对本文描述的方法的实施例的使用范围或功能提出任何限制。所示的处理系统可以与许多其它通用或专用计算系统环境或配置一起操作。可以适用于图6所示处理系统的众所周知的计算系统、环境和/或配置的示例可以包括但不限于个人计算机系统、服务器计算机系统、瘦客户机(thinclient)、胖客户机(thick client)、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统以及包括上述系统或设备中的任何一个的分布式云计算环境等。
计算机系统可以在由计算机系统运行的计算机系统可运行指令(诸如程序模块)的一般上下文中描述。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备来执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
计算机系统的组件可以包括但不限于一个或多个处理器或处理单元12、系统存储器16以及将包括系统存储器16的各种系统组件耦合到处理器12的总线14。处理器12可以包括执行本文描述的方法的一个或多个模块30。一个或多个模块30可以被编程到处理器12的集成电路中,或者从存储器16、存储设备18或网络24加载或其组合。
总线14可以表示若干类型总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口以及使用各种总线架构中的任何一种的处理器或本地总线。作为示例而非限制,这种架构包括工业标准架构(Industry StandardArchitecture,ISA)总线、微通道架构(Micro Channel Architecture,MCA)总线、增强型ISA(Enhanced ISA,EISA)总线、视频电子标准协会(Video Electronics StandardsAssociation,VESA)本地总线和外围组件互连(Peripheral Component Interconnect,PCI)总线。
计算机系统可以包括各种计算机系统可读介质。这种介质可以是计算机系统可访问的任何可用介质,并且它可以包括易失性和非易失性介质、可移动和不可移动介质。
系统存储器16可以包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(RAM)和/或高速缓冲存储器或其他。计算机系统还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统18可以被提供用于从不可移动、非易失性磁介质(例如,“硬盘驱动器”)读取和向其写入。尽管未示出,但是可以提供用于从可移动非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器,以及用于从诸如CD-ROM、DVD-ROM或其他光学介质的可移动非易失性光盘读取或向其写入的光盘驱动器。在这种情况下,每一个都可以通过一个或多个数据介质接口连接到总线14。
计算机系统还可以与一个或多个外部设备26(诸如键盘、定点设备、显示器28等)、使用户能够与计算机系统交互的一个或多个设备和/或使得计算机系统能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这种通信可以经由输入/输出(Input/Output,I/O)接口20发生。
再者,计算机系统可以经由网络适配器22与一个或多个网络24(诸如局域网(local area network,LAN)、通用广域网(wide area network,WAN)和/或公共网络(例如,互联网))通信。如图所述,网络适配器22经由总线14与计算机系统的其他组件通信。应当理解,尽管未示出,但是其他硬件和/或软件组件可以与计算机系统结合使用。示例包括但不限于:微码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据档案存储系统等。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),用于使处理器执行本发明的各方面。
计算机可读存储介质可以是有形设备,其可以保存和存储指令供指令执行设备使用。计算机可读存储介质可以是,例如,但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备,或者上述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、机械编码设备(诸如其上记录有指令的凹槽中的穿孔卡或凸起结构),以及上述内容的任何合适的组合。本文使用的计算机可读存储介质本身不应被解释为瞬时信号,诸如无线电波或其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如互联网、局域网、广域网和/或无线网络下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集体系结构(Instruction-Set-Architecture,ISA)指令、机器指令、机器相关指令、微码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,该编程语言包括诸如Smalltalk、C++等的面向对象编程语言,以及诸如“C”编程语言或类似编程语言的常规程序编程语言。计算机可读程序指令可以完全在用户计算机上执行、部分在用户计算机上执行(作为独立软件包)、部分在用户计算机上执行并且部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,其中该网络包括局域网(LAN)或广域网(WAN),或者远程计算机可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(Field-Programmable Gate Arrays,FPGA)或可编程逻辑阵列(Programmable Logic Arrays,PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来个性化电子电路从而执行计算机可读程序指令,以便执行本发明的各方面。
本文参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各方面。应当理解,可以通过计算机可读程序指令来实现流程图例示和/或框图的每个框,以及流程图例示和/或框图中的框的组合。
这些计算机程序可读指令可以被提供给通用计算机、专用计算机的处理器或者其它可编程数据处理装置以便产生机器,使得经由计算机的处理器或者其它可编程数据处理装置执行的所述指令创建用于实现由流程图和/或框图的框或者多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其中该计算机可读存储介质可以引导计算机、可编程数据处理设备和/或其他设备以特定方式运行,使得其中存储有指令的计算机可读存储介质包括制造品,其中该制造品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理设备或其他设备上,以使得在计算机、其他可编程设备或其他设备上执行一系列操作步骤,从而产生计算机实现的过程,使得在计算机、其他可编程设备或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这方面,流程图或框图中的每个框可以表示模块、分段或指令的部分,其中指令的部分包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方式中,框中标注的功能可以不按图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者有时这两个框可以以相反的顺序执行。还将注意到,框图和/或流程图例示中的每个框和框图和/或流程图例示中的框的组合可以由执行指定功能或动作的基于硬件的专用系统或执行专用硬件和计算机指令的组合来实现。
本文使用的术语仅仅是为了描述特定的实施例,而不旨在限制本发明。如本文所使用的,单数形式“一个”、“一个”和“该”也旨在包括复数形式,除非上下文清楚地另有说明。还应当理解,当在本说明书中使用时,术语“包括”和/或“包含”指定所述特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组合的存在或添加。
以下权利要求中的所有装置或步骤加功能元素的相应结构、材料、动作和等同物(如果有的话)旨在包括用于与具体要求保护的其它要求保护的元件结合执行功能的任何结构、材料或动作。本发明的描述是出于说明和描述的目的而给出的,但并不旨在穷举或限制以所公开的形式的本发明。在不脱离本发明的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。选择和描述该实施例是为了最好地解释本发明的原理和实际应用,并且使本领域的其他普通技术人员能够理解本发明的各种实施例,这些实施例具有适合于预期的特定用途的各种修改。

Claims (11)

1.一种由至少一个硬件处理器运行的方法,包括:
由会话应用接收客户端请求,并在会话线程中发起对话;
进行与所述对话相关联的工作流编排,所述工作流编排将请求传达给会话系统,以通过调用至少一个微服务来执行会话相关的工作流任务;和
由所述会话应用接收由所述会话系统返回的作为调用所述至少一个微服务的结果的响应,所述会话应用确定应用任务并基于由所述会话系统返回的响应来响应客户端请求。
2.根据权利要求1所述的方法,其中,由所述会话系统返回的响应包括回调请求,并且响应于接收所述回调请求,所述会话应用调用插件应用。
3.根据权利要求2所述的方法,其中,当经由所述会话应用调用所述插件应用时,暂停与所述会话系统中正在执行的会话线程相关联的会话相关的工作流任务。
4.根据权利要求3所述的方法,其中,所述插件应用的结果被返回到所述会话系统,并且所述会话相关的工作流任务在所述会话系统中恢复。
5.根据权利要求1所述的方法,其中,基于所述会话相关的工作流任务的结果来构建对话上下文。
6.根据权利要求1所述的方法,其中,所述至少一个微服务包括以下各项中的一个或多个:推理引擎、假设搜索、自然语言理解、语义匹配器、查询生成和响应生成组件。
7.根据权利要求1所述的方法,其中,经由与所述会话系统耦合的微服务代理来访问所述至少一个微服务。
8.根据权利要求1所述的方法,其中,所述会话应用和会话系统的多个实例同时运行以服务多个客户端请求。
9.一种存储指令程序的计算机程序产品,所述指令程序可由机器运行以执行根据权利要求1至8的任一方法。
10.一种计算机系统,包括:
存储器;
处理单元,可操作地耦合到所述存储器以执行根据权利要求1至8中任一方法的动作。
11.一种会话系统,包括用于运行根据权利要求1至8中任一方法的步骤的模型。
CN201910211563.8A 2018-03-30 2019-03-20 会话框架 Active CN110321413B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862650455P 2018-03-30 2018-03-30
US62/650,455 2018-03-30
US16/128,012 2018-09-11
US16/128,012 US11056107B2 (en) 2018-03-30 2018-09-11 Conversational framework

Publications (2)

Publication Number Publication Date
CN110321413A true CN110321413A (zh) 2019-10-11
CN110321413B CN110321413B (zh) 2023-06-09

Family

ID=68054987

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910211563.8A Active CN110321413B (zh) 2018-03-30 2019-03-20 会话框架

Country Status (2)

Country Link
US (1) US11056107B2 (zh)
CN (1) CN110321413B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111402872A (zh) * 2020-02-11 2020-07-10 升智信息科技(南京)有限公司 用于智能语音对话系统的语音数据处理方法及装置
CN113407321A (zh) * 2021-06-18 2021-09-17 斑马网络技术有限公司 基于计算图的任务型会话管理框架、设备及存储介质
CN114416224A (zh) * 2022-03-25 2022-04-29 共道网络科技有限公司 一种在多微服务环境下调用微服务的方法及装置
CN115277775A (zh) * 2019-12-13 2022-11-01 尤帕斯公司 用于为联络中心应用提供上下文协助的系统和方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11182809B2 (en) * 2019-04-01 2021-11-23 Paypal, Inc. Dynamic information probing for classifying an item
CN111045823A (zh) * 2019-12-11 2020-04-21 上海智臻智能网络科技股份有限公司 上下文数据的负载分发方法、装置、设备及存储介质
CN110912939A (zh) * 2019-12-24 2020-03-24 北京每日优鲜电子商务有限公司 云客服的分配方法、装置、服务器及存储介质
US11550552B2 (en) 2020-03-30 2023-01-10 Nuance Communications, Inc. Development system and method for a conversational application
CN111722929A (zh) * 2020-06-18 2020-09-29 南京龙猫商业智能科技股份有限公司 一种基于PaaS的微服务编排引擎管理方法
CN112711483A (zh) * 2020-12-10 2021-04-27 广州广电运通金融电子股份有限公司 一种处理大数据标注服务高并发方法、系统及设备
CN112799803B (zh) * 2021-01-14 2023-11-17 深圳市瞬点科技有限公司 微服务架构运行维护方法、装置、设备及可读存储介质
US20220308918A1 (en) * 2021-03-23 2022-09-29 Paypal, Inc. Automated generation of conversational workflows for automation chatbots
US11726759B2 (en) * 2021-04-12 2023-08-15 Capital One Services, Llc Deployment of a computing environment
US11803703B2 (en) * 2021-05-27 2023-10-31 Microsoft Technology Licensing, Llc Collaborative communication triage assistance
CN113326367B (zh) * 2021-06-30 2023-06-16 四川启睿克科技有限公司 基于端到端文本生成的任务型对话方法和系统
CN114244729A (zh) * 2021-12-01 2022-03-25 中国邮政储蓄银行股份有限公司 一种适用于服务编排的漏斗型超时控制方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1321296A (zh) * 1998-10-02 2001-11-07 国际商业机器公司 通过会话虚拟机进行会话式计算
US20030005174A1 (en) * 2001-06-29 2003-01-02 Coffman Daniel M. System and method for providing dialog management and arbitration in a multi-modal environment
CN103226949A (zh) * 2011-09-30 2013-07-31 苹果公司 在虚拟助理中使用情境信息来促进命令的处理
US20140019522A1 (en) * 2012-07-12 2014-01-16 Robert Bosch Gmbh System And Method Of Conversational Assistance For Automated Tasks With Integrated Intelligence
US20140337010A1 (en) * 2013-05-09 2014-11-13 International Business Machines Corporation Interactive acquisition of remote services
US20160373552A1 (en) * 2015-06-22 2016-12-22 International Business Machines Corporation Automatically enforcing uniform resource locator workflow presentation
CN107463601A (zh) * 2017-06-13 2017-12-12 北京百度网讯科技有限公司 基于人工智能的对话理解系统构建方法、装置、设备及计算机可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070162560A1 (en) * 2006-01-11 2007-07-12 Bea Systems, Inc. System and method for asynchronous request response
US8374881B2 (en) * 2008-11-26 2013-02-12 At&T Intellectual Property I, L.P. System and method for enriching spoken language translation with dialog acts
US20160344777A1 (en) * 2015-05-18 2016-11-24 Twilio, Inc. System and method for providing a media communication conversation service
KR102426171B1 (ko) * 2017-10-13 2022-07-29 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 서비스 처리 방법

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1321296A (zh) * 1998-10-02 2001-11-07 国际商业机器公司 通过会话虚拟机进行会话式计算
US7137126B1 (en) * 1998-10-02 2006-11-14 International Business Machines Corporation Conversational computing via conversational virtual machine
US20030005174A1 (en) * 2001-06-29 2003-01-02 Coffman Daniel M. System and method for providing dialog management and arbitration in a multi-modal environment
CN1491382A (zh) * 2001-06-29 2004-04-21 �Ҵ���˾ 在多模式环境中提供对话管理和仲裁的系统和方法
CN103226949A (zh) * 2011-09-30 2013-07-31 苹果公司 在虚拟助理中使用情境信息来促进命令的处理
US20140019522A1 (en) * 2012-07-12 2014-01-16 Robert Bosch Gmbh System And Method Of Conversational Assistance For Automated Tasks With Integrated Intelligence
US20140337010A1 (en) * 2013-05-09 2014-11-13 International Business Machines Corporation Interactive acquisition of remote services
US20160373552A1 (en) * 2015-06-22 2016-12-22 International Business Machines Corporation Automatically enforcing uniform resource locator workflow presentation
CN107463601A (zh) * 2017-06-13 2017-12-12 北京百度网讯科技有限公司 基于人工智能的对话理解系统构建方法、装置、设备及计算机可读存储介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115277775A (zh) * 2019-12-13 2022-11-01 尤帕斯公司 用于为联络中心应用提供上下文协助的系统和方法
CN111402872A (zh) * 2020-02-11 2020-07-10 升智信息科技(南京)有限公司 用于智能语音对话系统的语音数据处理方法及装置
CN111402872B (zh) * 2020-02-11 2023-12-19 升智信息科技(南京)有限公司 用于智能语音对话系统的语音数据处理方法及装置
CN113407321A (zh) * 2021-06-18 2021-09-17 斑马网络技术有限公司 基于计算图的任务型会话管理框架、设备及存储介质
CN113407321B (zh) * 2021-06-18 2023-07-25 斑马网络技术有限公司 基于计算图的任务型会话管理框架、设备及存储介质
CN114416224A (zh) * 2022-03-25 2022-04-29 共道网络科技有限公司 一种在多微服务环境下调用微服务的方法及装置

Also Published As

Publication number Publication date
CN110321413B (zh) 2023-06-09
US11056107B2 (en) 2021-07-06
US20190304445A1 (en) 2019-10-03

Similar Documents

Publication Publication Date Title
CN110321413A (zh) 会话框架
US11657215B2 (en) Robust expandable dialogue system
US10599644B2 (en) System and method for managing artificial conversational entities enhanced by social knowledge
US11159457B2 (en) Chatbot orchestration
CN115485690A (zh) 用于处置聊天机器人的不平衡训练数据的分批技术
JP2021534493A (ja) 限られた知識ドメイン内でナレッジグラフを構築するための技術
JP2021523464A (ja) 収束質問に対する回答を改善するための仮想談話ツリーの構築
US20180090141A1 (en) Conversational interactions using superbots
US20150294216A1 (en) Cognitive distributed network
US20210150398A1 (en) Conversational interchange optimization
CN108140007A (zh) 跨部署位置安全地部署应用程序
WO2019203859A1 (en) Dependency graph conversation modeling for use in conducting human-to-computer dialog sessions with a computer-implemented automated assistant
CN109067819A (zh) 用于服务平台的多网络集成的集成平台
US11157533B2 (en) Designing conversational systems driven by a semantic network with a library of templated query operators
JP2019502981A (ja) 自動的な音声対話スクリプトの発見
CN110083455A (zh) 图计算处理方法、装置、介质及电子设备
US11328715B2 (en) Automatic assignment of cooperative platform tasks
CN110362663A (zh) 自适应多感知相似度检测和解析
US20180365552A1 (en) Cognitive communication assistant services
CN116802629A (zh) 用于自然语言处理的多因素建模
CN108536733A (zh) 人工智能数字代理
CN110276510A (zh) 具有技能差异分析的协作平台
US11288322B2 (en) Conversational agents over domain structured knowledge
Mittal Getting Started with Chatbots: Learn and create your own chatbot with deep understanding of Artificial Intelligence and Machine Learning
US20210157881A1 (en) Object oriented self-discovered cognitive chatbot

Legal Events

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