CN109076010B - 互联网云托管的自然语言交互式消息传送系统用户解析器 - Google Patents
互联网云托管的自然语言交互式消息传送系统用户解析器 Download PDFInfo
- Publication number
- CN109076010B CN109076010B CN201780028692.2A CN201780028692A CN109076010B CN 109076010 B CN109076010 B CN 109076010B CN 201780028692 A CN201780028692 A CN 201780028692A CN 109076010 B CN109076010 B CN 109076010B
- Authority
- CN
- China
- Prior art keywords
- server
- message
- messaging application
- http post
- user
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/02—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
- G06F40/35—Discourse or dialogue representation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/216—Handling conversation history, e.g. grouping of messages in sessions or threads
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
- Machine Translation (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
提供了用于将多个消息与用户相关联的方法、系统和计算机程序产品。例如,方法可以包括接收两个超文本传输协议(HTTP)post调用消息。该方法还可以包括解析post调用消息的内容以识别关键字、基于关键字和post调用消息的上下文从多个用户中识别现有用户,以及将来自post调用消息的信息与现有用户相关联。在一些示例中,现有用户可以在消息之间是相同的。该方法还可以包括基于来自第一HTTP post调用消息、第二HTTP post调用消息和现有用户中的至少一个或多个的信息来对第二HTTP post调用消息进行响应。
Description
相关申请的交叉引用
本申请根据35 U.S.C.§119要求于2016年6月21日提交的美国临时申请No.62/353,007的权益,该申请的全部内容通过引用并入本文。
背景技术
发明内容
本文提供的是用于提供机器人(bot)服务器以与使用消息传送应用的用户进行通信的方法、系统和计算机程序产品。在一些实现中,提供了一种用于关联由使用消息传送应用的机器人服务器接收到的消息的方法、系统和计算机程序产品。例如,第一方法可以包括从消息传送应用服务器接收超文本传输协议(HTTP)post调用(post call)消息。在一些示例中,HTTP post调用消息可以由与统一资源标识符(URI)相关联的机器人服务器接收。在这样的示例中,HTTP post调用消息可以与用户相关联,并且从消息传送应用服务器被引导到该URI。
第一方法还可以包括解析HTTP post调用消息的内容以识别关键字。第一方法还可以包括基于该关键字和HTTP post调用消息的上下文从多个会话中识别现有会话。在一些示例中,多个会话中的会话表示用户与机器人服务器之间的交互。在一些实现中,现有会话可以是该会话。
第一方法还可以包括将来自HTTP post调用消息的信息与现有会话相关联。第一方法还可以包括基于现有会话生成对HTTP post调用消息的响应。
在一些实现中,HTTP post调用消息可以包括自然语言交互。在一些实现中,消息传送应用服务器可以与Messenger、即时消息传送软件、移动文本和语音消息传送通信服务、Messenger、Messenger和SKYPE MOBILE中的至少一个或多个相关联。在这样的实现中,可以使用移动设备上的消息传送应用将HTTP post调用消息的内容的至少一部分发送到消息传送应用服务器。例如,可以将诸如文本、音频或媒体之类的用户内容从移动设备发送到消息传送应用服务器。然后,消息传送应用服务器可以使用用户内容创建要被发送到机器人服务器的HTTP post调用消息。
在一些实现中,HTTP post调用消息可以由机器人服务器的连接器接收。在这样的实现中,连接器可以是消息传送应用服务器和机器人服务器之间的接口。在这样的实现中,连接器可以规范化多个消息传送应用服务器之间的消息。规范化可以包括将HTTP post调用消息格式化为公共格式。
在一些实现中,HTTP post调用消息可以由机器人服务器的负载均衡部件接收。在这样的实现中,负载均衡部件可以基于机器人服务器的负载将HTTP post调用消息发送到机器人服务器上的多个连接器中的连接器。
在一些实现中,会话可以包括来自第一机器人服务器的第一HTTP post调用消息中的信息和来自第二机器人服务器的第二HTTP post调用消息中的信息。在一些实现中,会话可以包括来自第一消息传送应用的第一HTTP post调用消息中的信息和来自第二消息传送应用的第二HTTP post调用消息中的信息。
在一些实现中,识别现有会话可以包括确定HTTP post调用消息是否与现有会话相关。在一些实现中,HTTP post调用消息可以被包括在两个或更多个用户之间的对话中,其中对话通过消息传送应用来促进。在这样的实现中,对话可以包括第一主题和第二主题。第一主题可以与第一会话相关联,并且第二主题可以与第二会话相关联。在一些实现中,两个或更多个用户中的用户是机器人服务器。
在一些实现中,上下文可以包括以下各项中的至少一个或多个:HTTP post调用消息的时间戳、企业数据、来自用户的一个或多个先前消息、用户的用户简档、用户的一个或多个用户偏好、用户和与机器人服务器相关联的企业之间的一个或多个交互的先前历史、或其任何组合。在一些示例中,先前历史可以包括过去的购买、过去的会话、过去的动作、过去的查询、过去的应用程序接口(API)调用、过去的数据请求或过去的数据搜索。在一些示例中,企业数据可以包括由机器人服务器从与消息传送应用服务器无关的源获得的信息。在这样的实现中,对话可以在两个或更多个用户之间。对话可以由消息传送应用服务器促进,并且对话可以包括HTTP post调用消息的至少一部分。在一些实现中,第一方法还可以包括将来自对HTTP post调用消息的响应的信息与会话相关联。
在一些实现中,提供了一种用于将多个消息与用户相关联的方法、系统和计算机程序产品。例如,第二方法可以包括接收第一超文本传输协议(HTTP)post调用消息。在一些实现中,第一HTTP post调用消息可以由与统一资源标识符(URI)相关联的机器人服务器接收。第一HTTP post调用消息可以与第一用户相关联并且可以从第一消息传送应用服务器被引导到该URI。
第二方法还可以包括接收第二HTTP post调用消息。在一些实现中,第二HTTPpost调用消息可以由与URI相关联的机器人服务器接收。第二HTTP post调用消息可以与第二用户相关联,并且可以从第二消息传送应用服务器被引导到该URI。
第二方法还可以包括解析第一HTTP post调用消息的内容以识别第一关键字。第二方法还可以包括基于第一关键字和第一HTTP post调用消息的上下文从多个用户中识别第一现有用户。第二方法还可以包括将来自第一HTTP post调用消息的信息与第一现有用户相关联。
第二方法还可以包括解析第二HTTP post调用消息的内容以识别第二关键字。第二方法还可以包括基于第二关键字和第二HTTP post调用消息的上下文从多个用户中识别第二HTTP post调用消息的第二现有用户。在一些示例中,第二现有用户可以是第一现有用户。
第二方法还可以包括将来自第二HTTP post调用消息的信息与第一现有用户相关联。第二方法还可以包括基于来自第一HTTP post调用消息、第二HTTP post调用消息和第一现有用户中的至少一个或多个的信息来对第二HTTP post调用消息进行响应。
在一些实现中,第一用户的标识可以与第二用户的标识不同。可以使用第一消息传送应用服务器将对第二HTTP post调用消息的响应发送给用户。
第二方法还可以包括将第一现有用户与企业账户相关联。企业账户可以与消息传送应用服务器分开。在一些实现中,第一消息传送应用服务器和第二消息传送应用服务器中的每一个可以与Messenger、即时消息传送软件、移动文本和语音消息传送通信服务、Messenger、Messenger和SKYPE 之一相关联。在一些示例中,第一HTTP post调用消息的内容的至少一部分可以从第一移动设备发送到第一消息传送应用服务器,并且第二消息的内容的至少一部分可以从第二移动设备发送到第二消息传送应用服务器。第一移动设备可以与第二移动设备相同或不同。
在一些实现中,第一HTTP post调用消息和第二HTTP post调用消息各自可以包括自然语言交互。在一些实现中,来自第一HTTP post调用消息、第二HTTP post调用消息、第一消息传送应用服务器、第二消息传送应用服务器、第一用户、第二用户或其任何组合中的至少一个或多个的信息可以与会话相关联。
在一些实现中,提供了一种用于服务器协作的方法、系统和计算机程序产品。例如,第三方法可以包括接收超文本传输协议(HTTP)post调用消息。HTTP post调用消息可以由第一机器人服务器接收。在一些实现中,第一机器人服务器可以包括第一统一资源标识符(URI)。HTTP post调用消息可以与用户相关联,并且从第一消息传送应用服务器被引导到URI。来自HTTP post调用消息的信息可以与会话相关联。
第三方法还可以包括基于HTTP post消息确定将会话转移到第二机器人服务器。该确定可以由第一机器人服务器做出。在一些实现中,第二机器人服务器可以包括第二URI。
第三方法还可以包括由第一机器人服务器发送转移请求。在一些实现中,转移请求可以被引导到第二机器人服务器。转移请求可以使会话与第一机器人服务器解关联并且与第二机器人服务器相关联。在一些实现中,与第一机器人服务器相关联的信息可以在会话中与和第二机器人服务器相关联的信息分开保存。
第三方法还可以包括由第一机器人服务器接收返回请求。该返回请求可以使会话与第二机器人服务器解关联并且与第一机器人服务器相关联。在一些实现中,在第二机器人服务器完成会话之后或者在自从转移请求被发送以来已经过去一定时间量之后,返回请求可以从第二机器人服务器被发送到第一机器人服务器。
在一些示例中,HTTP post调用消息可以包括自然语言交互。在一些实现中,消息传送应用服务器可以与Messenger、即时消息传送软件、移动文本和语音消息传送通信服务、Messenger、Messenger和SKYPE 之一相关联。在这样的实现中,HTTPpost调用消息的内容的至少一部分可以从移动设备被发送到消息传送应用服务器。
已经采用的术语和表达被用作描述的术语而非限制,并且无意使用这些术语和表达来排除所示出和描述的特征或其部分的任何等同物。但是,应该认识到的是,在所要求保护的系统和方法的范围内可以进行各种修改。因此,应该理解的是,虽然本发明的系统和方法已经通过示例和可选特征具体地公开,但是本领域技术人员可以采用本文公开的概念的修改和变化,并且这些修改和变化要被认为是在由所附权利要求限定的系统和方法的范围内。
本发明内容不旨在识别所要求保护的主题的关键或必要特征,也不旨在单独使用以确定所要求保护的主题的范围。应该通过参考本专利的整个说明书的适当部分、任何或所有附图以及每项权利要求来理解本主题。
下面将在以下说明书、权利要求和附图中更详细地描述前述以及其它特征和示例。
附图说明
下面参考以下各图详细描述说明性示例:
图1图示了实现用于与使用消息传送应用的用户通信的机器人服务器的系统的示例;
图2图示了可缩放的用于使用一个或多个消息传送应用与用户通信的机器人服务器的示例;
图3图示了具有在移动设备上的用户和机器人服务器之间的多个会话的对话的示例;
图4是图示用于将消息与会话相关联的处理的示例的流程图;
图5A图示了在机器人服务器和使用第一消息传送应用的用户之间的第一对话的示例;
图5B图示了在机器人服务器和使用第二消息传送应用的用户之间的第二对话的示例;
图6图示了使用与接收先前消息的消息传送应用不同的消息传送应用进行响应的机器人服务器的示例;
图7是图示用于将多个消息与用户相关联的处理的示例的流程图;
图8A图示了在单个对话期间第一机器人服务器和第二机器人服务器之间的切换的示例;
图8B图示了在单个对话期间第一机器人服务器和第二机器人服务器之间的切换的示例的进一步对话;
图9图示了在第二机器人服务器根据第一机器人服务器超时之后第一机器人服务器和第二机器人服务器之间的切换的示例;
图10是图示用于服务器协作的处理的示例的流程图;
图11图示了分布式系统的示例;
图12是系统环境的部件的简化框图;以及
图13图示了计算机系统的示例。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节,以便提供对本公开的示例的透彻理解。但是,将清楚的是,可以在没有这些具体细节的情况下实践各种示例。图和描述不旨在是限制性的。
随后的描述仅是示例,并且不旨在限制本公开的范围、适用性或配置。而是,随后对示例的描述将为本领域技术人员提供用于实现本公开的示例的使能描述。应该理解的是,在不脱离如所附权利要求中阐述的本公开的精神和范围的情况下,可以对元素的功能和布置进行各种改变。
在以下描述中给出了具体细节以提供对示例的透彻理解。但是,本领域普通技术人员将理解的是,可以在没有这些具体细节的情况下实践这些示例。例如,电路、系统、网络、处理和其它部件可以被示为框图形式的部件,以便不以不必要的细节模糊示例。在其它情况下,众所周知的电路、处理、算法、结构和技术可以在没有不必要的细节的情况下示出,以便避免模糊示例。
此外,应该注意的是,各个示例可以被描述为处理,该处理被描绘为流程图(flowchart)、流图(flow diagram)、数据流图、结构图或框图。虽然流程图可以将操作描述为顺序处理,但是许多操作可以并行或并发执行。此外,操作的次序可以被重新布置。当处理的操作完成时,该处理终止,但是可以具有不被包括在图中的附加步骤。处理可以与方法、函数、过程、子例程,子程序等对应。当处理与函数对应时,该处理的终止可以与函数返回到调用函数或主函数对应。
术语“机器可读存储介质”或“计算机可读存储介质”包括但不限于:便携式或非便携式存储设备、光学存储设备,以及能够存储、包含或携带(一条或多条)指令和/或数据的各种其它介质。机器可读存储介质或计算机可读存储介质可以包括非瞬态介质,其中可以存储数据并且不包括载波和/或无线地或通过有线连接传播的瞬态电子信号。非瞬态介质的示例可以包括但不限于:磁盘或磁带、诸如压缩盘(CD)或数字通用盘(DVD)的光学存储介质、闪存、存储器或存储器设备。计算机程序产品可以包括代码和/或机器可执行指令,其可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类、或者指令、数据结构或程序语句的任意组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容耦合到另一个代码段或硬件电路。信息、自变量、参数、数据等可以经由任何合适的手段(包括存储器共享、消息传递、令牌传递、网络传送等)被传递、转发或传送。
另外,示例可以由硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实现。当在软件、固件、中间件或微代码中实现时,执行必要任务的程序代码或代码段(例如,计算机程序产品)可以存储在机器可读介质中。(一个或多个)处理器可以执行这些必要任务。
在一些图中描绘的系统可以以各种配置被提供。在一些示例中,系统可以被配置为分布式系统,其中系统的一个或多个部件跨云计算系统中的一个或多个网络分布。
A.概述
本文的示例涉及可以使用自然语言消息通过消息传送应用来对自然语言问题和/或评论进行响应的机器人服务器。具体而言,示例可以允许企业定义与用户通信的一个或多个机器人服务器,并以多租户、跨消息传送平台的方式大规模运行该一个或多个机器人服务器。在一些示例中,该一个或多个机器人服务器可以发起与用户的通信。
在一些示例中,机器人服务器可以与统一资源标识符(URI)(例如,统一资源定位符(URL)和统一资源名称(URN))相关联。URI可以使用字符串来标识机器人服务器。在一些示例中,URI可以用作一个或多个消息传送应用服务器的网络钩子(webhook)(例如,HTTP回调,诸如HTTP post调用消息)。在一些示例中,当发生一个或多个事件时,消息传送应用服务器可以使用webhook向机器人服务器发送消息。webhook可以用作机器人服务器在信息发生时接收信息的一种方式,而不是连续地对信息进行轮询。
在一些示例中,机器人服务器可以被设计为从消息传送应用服务器接收消息(例如,超文本传输协议(HTTP)post调用消息)。HTTP post调用消息可以从消息传送应用服务器被引导到URI。在一些示例中,该消息可以与HTTP post调用消息不同。例如,机器人服务器可以从短消息服务器(SMS)接收消息。虽然本文的讨论将把机器人服务器接收的数据称为消息,但是本领域普通技术人员将认识到该消息可以是HTTP post调用消息、SMS消息或来自消息传送平台的任何其它类型的消息。此外,无论何时机器人服务器将消息从一个部件发送到另一个部件,本领域普通技术人员将认识到实际消息可能没有被发送。替代地,可以发送来自消息的信息或指向消息的存储器位置的指针。
在一些示例中,机器人服务器可以自动处理一个或多个用户交互。例如,用户可以向机器人服务器发送一个或多个消息以便实现期望的目标。消息可以包括自然语言的消息(例如,文本、表情符号(emojis)、语音或传达消息的其它方法)。机器人服务器可以将消息转换为标准化形式(例如,针对企业服务的具有适当参数的REST调用)并生成自然语言响应。机器人服务器还可以提示用户输入附加所需参数和请求附加信息。在一些示例中,机器人服务器也可以发起与用户的通信。
图1图示了实现用于与使用消息传送应用的用户进行通信的机器人服务器120的系统的示例。在一些示例中,消息传送应用可以安装在电子设备(例如,台式计算机、膝上型电脑、移动设备110)上。虽然本文的讨论将参考移动设备和消息传送应用,但是本领域普通技术人员将认识到的是,可以使用任何电子设备并且可以使用任何消息传送平台(例如,Messenger、即时消息传送软件、移动文本和语音消息传送通信服务、Messenger、Messenger、SKYPE短消息服务(SMS))。在其它示例中,消息传送应用可以通过安装在移动设备110上的浏览器(例如,GOOGLE 和INTERNET EXPLORER)运行。消息传送应用可以是Messenger、即时消息传送软件、移动文本和语音消息传送通信服务、Messenger、Messenger、SKYPE或任何其它为用户提供通信平台的消息传送应用。消息传送应用可以与消息传送应用服务器115相关联。在一些示例中,移动设备110可以通过第一网络(例如,互联网或将一个设备与另一个设备连接的其它方法)连接到消息传送应用服务器115。消息传送应用服务器115可以管理跨多个移动设备通过消息传送应用发送和接收的内容。内容可以包括文本、表情符号、语音、媒体(例如,图片、视频、链接)或传达消息的其它方法。在一些示例中,由机器人服务器120从Messenger接收到的正常消息可以是:
在一些示例中,消息传送应用服务器115也可以与机器人服务器120通信。消息传送应用服务器115和机器人服务器120之间的通信可以使用第二网络(例如,互联网或将一个设备与另一个设备连接的其它方法)。第一网络和第二网络可以是相同的网络,或者它们可以是相似或完全不同的网络。消息传送应用服务器115可以使用互联网将内容(例如,消息、来自消息的信息或指向消息的存储器位置的指针)从移动设备110路由到机器人服务器120。内容的目的地(例如,机器人服务器120的标识)可以作为名义收件人被包括在该内容中。
机器人服务器120可以使用连接器130来接收内容。连接器130可以充当消息传送应用服务器115和机器人服务器120之间的接口。在一些示例中,连接器120可以规范化来自消息传送应用服务器115的内容,使得机器人服务器120可以跨不同的消息传送应用服务器分析内容。规范化可以包括将来自每种类型的消息传送应用的内容格式化为用于处理的公共格式。在一些示例中,机器人服务器120可以包括用于每个消息传送应用(诸如Messenger、即时消息传送软件、移动文本和语音消息传送通信服务、Messenger、Messenger和SKYPE 短消息服务(SMS))的一个或多个连接器,如将在图2中描述的那样。
连接器130可以将内容路由到消息输入(message-in)队列140。在一些示例中,消息输入队列140可以按照接收到的顺序来存储内容。在其它示例中,消息输入队列140可以基于分配给每个方法的优先级来存储内容。在这样的示例中,优先级可以基于内容、内容的时间戳、与发送内容的用户相关联的信息、或关于内容或机器人服务器的任何其它信息(例如,机器人服务器的负载与内容的估计处理量相比较)中的至少一个或多个。在一些示例中,连接器130可以与一个或多个消息输入队列相关联,如将在图2中描述的那样。
当消息处理器流水线(pipeline)150变得可用时,消息输入队列140可以将内容发送到消息处理器流水线150。在一些示例中,消息处理器流水线150可以使用本文描述的一个或多个创新来分析内容。例如,消息处理器流水线150可以包括会话器(sessionizer)152、用户解析器154、自然语言处理器156或其任何组合中的至少一个或多个。通常,会话器152可以为用户和机器人服务器创建和管理会话。通常,用户解析器154可以确定由于用户使用多个消息传送应用而可以被组合的会话。通常,自然语言处理器156可以解析消息以确定消息的会话或意图。意图可以包括消息的目的。例如,消息的目的可以是订购比萨、订购计算机、询问关于递送的问题等。
在内容被消息处理器流水线150分析之后,经分析的内容可以被发送到机器人代码160。机器人代码160可以由第三方(例如,机器人服务器相关联的企业)编写以基于经分析的内容和会话确定要执行的动作。在一些示例中,机器人代码160可以将出站(outbound)内容发送到消息输出(message-out)队列170。消息输出队列170可以将出站内容发送到连接器130。然后,连接器130可以将出站内容发送到由机器人代码160指示的消息传送应用服务器。然后,消息传送应用服务器115可以将出站内容转发到移动设备115上的消息传送应用。
机器人服务器120还可以与一个或多个企业服务(例如,企业服务125)、知识图形服务器(未示出)或其它内容源(例如,远程数据库、远程设备等)通信。企业服务125可以与连接器130、机器人代码160或其任何组合中的至少一个或多个通信。企业服务125可以以与消息传送应用服务器115类似的方式与连接器130通信。企业服务125可以将内容发送到连接器130以与一个或多个用户相关联。企业服务125也可以将内容发送到连接器130以使机器人服务器120执行与用户相关联的动作。机器人代码160可以与企业服务125通信以从企业服务125获得信息和/或使企业服务125采取由机器人代码160识别出的动作。
在一些示例中,机器人服务器120可以包括一个或多个计时器。在流逝一定时间之后,计时器可以使机器人代码160通过连接器130使用消息传送应用服务器115将内容发送给用户。内容可以在安装在用户的设备上的消息传送应用上到达用户。在一些示例中,计时器可以类似于用户或企业服务125的方式向机器人服务器120发送内容。例如,因为来自用户的消息将被分析,所以计时器可以向机器人服务器120发送要被分析的消息。
为了图示机器人服务器120的通信处理,现在将描述示例。用户可以使用用户的设备上的消息传送应用向消息传送应用服务器发送消息。消息传送应用服务器可以解析该消息以识别与要发送该消息的消息传送应用服务器相关联的账户。消息传送应用服务器可以将机器人服务器识别为账户。然后,消息传送应用服务器可以将消息发送到该机器人服务器。在一些示例中,消息传送应用服务器可以将消息重新打包成不同格式(例如,HTTP post调用消息)以发送到机器人服务器。消息可以包括问候语(greeting)。机器人服务器可以识别出与用户的新对话已经开始。机器人服务器可以识别用户的一个或多个特性。例如,机器人服务器可以使用与消息传送应用服务器上的用户相关联的简档来识别用户的名称。使用该一个或多个特性,机器人服务器可以在消息传送应用上对用户进行响应。响应可以包括给用户的对从用户接收到的消息进行响应的个人消息。例如,响应可以包括使用用户的名称的问候语。
取决于与机器人服务器相关联的企业,机器人服务器可以前进以完成企业的目标。例如,如果机器人服务器与比萨递送企业相关联,那么机器人服务器可以促进比萨购买。机器人服务器和用户之间的对话可以继续、来回进行,直到机器人服务器已完成对话或用户停止对机器人服务器响应。
在一些示例中,机器人服务器可以发起与用户的对话。机器人服务器发起的对话可以是响应于与用户的先前对话。例如,用户可以在先前对话中订购比萨。然后,当比萨已准备好时,机器人服务器可以发起对话。在一些示例中,当从与机器人服务器相关联的企业接收到指示时(例如,员工向机器人服务器发送比萨准备好的消息),机器人服务器可以确定比萨已准备好。对话可以包括发送给用户的指示比萨已准备好的消息。对于另一个示例,在自从先前对话以来经过一定量时间之后,机器人服务器可以发起对话。
在一些示例中,机器人服务器可以在与接收到先前消息的消息传送应用不同的消息传送应用上向用户发送消息。例如,机器人服务器可以确定使用短消息服务(SMS)而不是Messenger来发送消息。在这样的实现中,机器人服务器可以集成多个消息传送应用。
在一些示例中,机器人服务器可以基于计时器确定开始对话。例如,机器人服务器可以确定,在通过消息传送应用购买上一个比萨的一周之后,机器人服务器应该询问用户该用户是否想要另一个比萨。计时器可以由企业配置并由机器人服务器实现。
在一些示例中,机器人服务器可以在对话之间维护用户的信息。可以使用该信息,使得每次在用户和机器人服务器之间启动新对话时,机器人服务器不需要询问一些问题。例如,机器人服务器可以存储用户先前的比萨订购。在新的对话中,机器人服务器可以向用户发送消息,询问用户是否想要与上次相同的订购。
图2图示了可缩放的用于使用一个或多个消息传送应用与用户通信的机器人服务器220的示例。机器人服务器220可以包括图1中讨论的许多部件的多个实例。例如,机器人服务器220可以从消息传送应用服务器接收内容。但是,不是在连接器处接收内容,而是可以在第一负载均衡器225处接收内容。第一负载均衡器225可以智能地将内容路由到一个或多个连接器230,以提高机器人服务器220的效率。第一负载均衡器225可以通过对消息的一个或多个属性进行散列(hashing)来确定要将消息发送到其的连接器。例如,可以对用户的标识和消息的长度进行散列。
在一些示例中,一个或多个连接器230中的至少一个可以与每个消息传送应用服务器相关联。在一些示例中,取决于来自每个消息传送应用服务器的在机器人服务器220上的典型或当前负载,不同的消息传送应用服务器可以与不同数量的连接器相关联。
一个或多个连接器230可以在一个或多个消息输入队列240之间划分由机器人服务器220接收到的内容。可以使用诸如Apache Kafka之类的排队系统来管理一个或多个消息输入队列240。每个企业或用户可以与一个或多个消息输入队列240中的至少一个相关联。
在一些示例中,可以基于在来自用户的传入消息中识别出的一个或多个属性来确定一个或多个消息输入队列240中的消息输入队列。例如,来自特定用户或对话的传入消息可以被放入到同一消息输入队列中。
在一些示例中,消息输入队列可以将内容发送到一个或多个消息处理器流水线250。在一些示例中,一个或多个消息处理器流水线中的每一个可以是虚拟机。在这样的示例中,取决于一个或多个消息处理流水线250的负载,可以添加附加的虚拟机。
在一些示例中,一个或多个消息处理流水线250可以将经分析的内容发送到第二负载均衡器255。第二负载均衡器255可以在机器人代码260的一个或多个实例之间划分经分析的内容。机器人代码260的一个或多个实例可以将一个或多个出站消息发送到一个或多个消息输出队列270。在一些示例中,一个或多个消息输出队列270的数量可以与机器人代码260的一个或多个实例的数量对应。在其它示例中,一个或多个消息输出队列270可以与从机器人代码260发送的消息的负载对应。一个或多个消息输出队列270可以递增地将一个或多个出站消息发送到第三负载均衡器275。第三负载均衡器275可以智能地将一个或多个出站消息路由到一个或多个连接器230,连接器230可以将一个或多个出站消息发送到消息传送应用服务器。类似于图1,一个或多个连接器230和机器人代码260的一个或多个实例可以与一个或多个企业服务通信。
当识别出机器人服务器220处理和发送消息减慢时,机器人服务器220可以允许机器人服务器220的每个部件进行缩放。例如,如果机器人服务器220识别出到达连接器230的消息的数量超过阈值(例如,指示机器人服务器220的当前配置可以高效处理的消息的数量的阈值),那么可以将附加的一个或多个连接器添加到连接器230。此外,取决于是否和/或在哪里识别出减慢,可以增加消息输入队列、消息处理器流水线、机器人代码的实例、消息输出队列或其任何组合的数量。在这样的实现中,可以添加附加部件(例如,连接器)而不必添加其它附加部件(例如,消息输入队列)。例如,可以添加连接器,而不必添加机器人代码的附加实例。在一些实现中,机器人服务器220的一个或多个部件或部件的一部分可以在虚拟机上运行。通过在虚拟机上运行,可以随意发起附加的虚拟机。
在一些示例中,机器人服务器220可以将与用户相关联的信息存储在高速缓存中。高速缓存可以写入长期存储器(例如,诸如数据库、只读存储器、闪存、硬盘驱动器、软盘、磁带、光盘等的非易失性存储器)以在出站消息从连接器230被发送到消息传送应用服务器之后保存该信息。在其它示例中,高速缓存可以在不同时间(例如,在特定部件之后、在每个部件之后、在一定量时间之后、或确定何时写入长期存储器的任何其它度量)写入长期存储器。
应该认识到的是,在本公开中,无论何时描述机器人服务器执行动作,该动作都可以由管理服务器来执行,该管理服务器控制机器人服务器的会话以及机器人服务器之间的会话。
B.会话器
如上所述,消息处理器流水线150可以包括会话器152。会话器152可以将由机器人服务器120接收到的消息与会话相关联并管理该会话。在一些示例中,消息可能不与会话相关联;替代地,消息的一部分、指向消息的存储器位置的指针或者来自消息的信息可以与会话相关联。在一些示例中,将消息与会话相关联可以意味着在表示会话的对象(或其它数据结构)中包括消息的一部分或来自消息的信息。会话可以包括表示一个或多个用户和一个或多个机器人服务器之间的交互的一个或多个消息(或来自这一个或多个消息的信息)。会话可以是由会话器152创建的、存储在与机器人服务器152相关联的易失性和/或非易失性存储器中的对象。
在一些示例中,将消息与会话相关联可以包括确定会话的开始、消息是否应该被包括在会话中以及会话的结束。例如,对话可以讨论多个主题,每个主题表示不同的会话。在这样的示例中,即使在单个通信中一个或多个消息被交织,会话器152也可以确定与每个会话相关联的一个或多个消息。即使当消息不包括主题时,也可以进行这种确定。该确定可以基于消息的内容和消息的上下文。
消息内容可以包括消息中包括的数据。例如,消息内容可以包括机器人服务器的标识、消息传送应用的标识、消息传送应用服务器上的用户的标识、消息传送应用的类型、消息传送应用中的窗口的标识、消息的标识、消息中的内容、消息中的内容的类型、或者本文讨论的与消息的内容相关的任何其它信息中的至少一个或多个。在一些示例中,消息中的内容可以在消息的主体中,并且包括文本、表情符号、语音、媒体(例如,图片、视频、链接)或其任何其它组合中的至少一个或多个。在一些示例中,可以分析内容以确定消息的主题。
消息上下文可以包括HTTP post调用消息的时间戳、企业数据(例如,企业已知的信息)、来自用户的一个或多个先前消息、用户的用户简档、用户的一个或多个用户偏好、用户和与机器人服务器相关联的企业之间的一个或多个交互的先前历史、或其任何组合中的至少一个或多个。在一些示例中,先前历史可以包括过去的购买、过去的对话、过去的动作、过去的查询、过去的应用程序接口(API)调用、过去的数据请求或过去的数据搜索。在一些示例中,企业数据可以包括由机器人服务器从与消息传送应用服务器无关的源获得的信息。在一些示例中,来自第一消息的时间戳和来自第二消息的时间戳的差可以超过阈值,从而指示第一消息和第二消息与不同的会话相关联。企业数据可以包括不被直接包括在消息的内容中的内容。例如,企业数据可以包括由机器人服务器在消息之外识别出的信息。在一些示例中,消息的部分可以与会话相关联。
一旦创建了会话,会话器152就可以在机器人服务器120接收到新消息时维持会话。例如,会话器152可以将来自被确定为与会话相关联的新消息的信息添加到该会话。在一些示例中,也可以将与对消息的响应相关联的信息添加到会话。
在一些示例中,可以基于消息的上下文来识别一个或多个会话。一旦识别出一个或多个会话,就可以解析消息的内容以识别关键字。然后可以将关键字与一个或多个会话之一中的词语匹配以确定匹配的会话。如果没有匹配,则可以为该消息创建新的会话。在其它示例中,可以解析消息的内容以识别关键字。关键字可以用于识别一个或多个相似的会话。然后,可以基于消息的上下文将一个或多个会话中的会话与消息进行匹配。
图3图示了具有在移动设备310上的用户和机器人服务器之间的多个会话的对话的示例。在一些示例中,可以通过消息传送应用服务器来促进对话(例如,移动设备310可以包括与消息传送应用服务器相关联的消息传送应用)。左侧的消息(例如,消息320、340、360)可以来自用户,右侧的消息(例如,消息330、350)可以来自机器人服务器。例如,用户可以使用安装在移动设备310上的消息传送应用将第一消息320发送到消息传送应用服务器。第一消息320可以包括词语“我想要比萨”。
如以上所提到的,取决于机器人服务器的设置,第一消息320可以到达机器人服务器的连接器或负载均衡器。可以将第一消息320放入到消息输入队列中,并最终发送到信使(messenger)处理器流水线。在信使处理器流水线中,第一消息320可以由自然语言处理器进行分析。可以基于第一消息320的内容和消息320的上下文将第一消息320放入到会话中。因为这是用户和机器人服务器之间的第一个消息,因此第一消息320可以具有为其创建的会话。会话可以存储与用户相关的信息、消息的内容以及与第一消息320相关联的机器人服务器可访问的任何其它信息。可以将第一消息和/或会话发送到机器人代码以确定响应。
响应可以包括第二消息330中的词语:“您想要哪种比萨?”。第二消息330可以从机器人代码被发送到消息输出队列,并最终被发送到连接器以使用消息传送应用服务器发送回安装在移动设备310上的消息传送应用。安装在移动设备310上的消息传送应用可以接收第二消息330并显示第二消息330,如图3所示。来自第二消息330的信息可以被保存在会话中。
在接收到第二消息330之后,用户可以使用移动设备310上的消息传送应用将第三消息340发送到机器人服务器。第三消息340可以包括词语“我想要比萨”。机器人服务器使用会话器可以基于第三消息的内容和第三消息的上下文确定第三消息340是新会话。例如,从用户接收到第二消息330可能已经流逝了时间并且用户发送第三消息340。在另一个示例中,会话器可以确定第三消息340不是对第二消息330的响应。在任一示例中,会话器可以为第三消息340创建新会话。机器人服务器可以类似于第一消息320来对第三消息340进行响应(例如,通过发送第四消息350,该消息询问用户想要哪种比萨)。
用户可以用第五消息360来对第四消息350进行响应,第五消息360包括用户想要的比萨的种类。如上所述,机器人服务器可以接收第五消息360。但是,不是为第五消息360创建新会话,而是会话器可以确定第五消息360是包括第三消息340和第四消息350的会话的一部分。通过机器人服务器将三个消息分组在一起,机器人服务器的机器人代码可以通过一起分析第三、第四和第五消息来确定如何响应第五消息360。在一些示例中,响应可以是被发送到与机器人服务器相关联的企业以向企业通知用户想要辣香肠(pepperoni)比萨的消息。
图4是图示用于将消息与会话相关联的处理400的示例的流程图。在一些方面,处理400可以由机器人服务器执行。虽然可能给出了机器人服务器的具体示例,但是本领域普通技术人员将认识到的是,处理400中可以包括其它设备。
处理400被示为逻辑流图,其操作表示可以用硬件、计算机指令或其组合实现的一系列操作。在计算机指令的上下文中,操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,当指令由一个或多个处理器执行时,执行所述操作。通常,计算机可执行指令包括执行特定函数或实现特定数据类型的例程、程序、对象、部件、数据结构等。其中操作被描述的次序不旨在被解释为限制,并且任何数量的所描述的操作可以以任何次序和/或并行地组合以实现该处理。
此外,处理400可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以被实现为在一个或多个处理器上、由硬件、或其组合集体执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)。如上所述,代码可以例如以包括可由一个或多个处理器执行的多条指令的计算机程序的形式存储在机器可读存储介质上。机器可读存储介质可以是非瞬态的。
在步骤410处,处理400包括接收超文本传输协议(HTTP)post调用消息。在一些示例中,HTTP post调用消息可以由与统一资源标识符(URI)相关联的机器人服务器接收。HTTP post调用消息可以与用户相关联,并从消息传送应用服务器被引导到URI。消息传送应用服务器可以与Messenger、即时消息传送软件、移动文本和语音消息传送通信服务、Messenger、Messenger和SKYPE之一相关联。HTTP post调用消息的内容的至少一部分可以从移动设备发送到消息传送应用服务器。在一些示例中,HTTP post调用消息可以包括自然语言交互。在一些示例中,HTTP post调用消息可以与两个或更多个用户(例如,至少一个用户和机器人服务器)之间的对话相关联。对话可以通过消息传送应用服务器来促进。在这样的示例中,对话可以包括第一主题和第二主题。第一主题可以与第一会话相关联,并且第二主题可以与第二会话相关联。
在一些示例中,HTTP post调用消息可以由机器人服务器的连接器接收。连接器可以是消息传送应用服务器和机器人服务器之间的接口。在一些示例中,连接器可以规范化多个消息传送应用服务器之间的消息。在这样的示例中,规范化可以包括将来自消息传送应用服务器的HTTP post调用消息(或HTTP post调用消息中包括的内容)格式化为公共格式。在其它示例中,HTTP post调用消息可以由机器人服务器的负载均衡部件接收。负载均衡部件可以基于机器人服务器的负载将HTTP post调用消息发送到多个连接器中的连接器。机器人服务器可以包括该多个连接器。
在步骤420处,处理400还包括解析消息的内容以识别关键字。在步骤430处,处理400还包括基于关键字和消息的上下文从多个会话中识别现有会话。在一些示例中,多个会话中的会话可以表示用户和机器人服务器之间的交互。会话可以包括来自第一机器人服务器的第一HTTP post调用消息中的信息和来自第二机器人服务器的第二HTTP post调用消息中的信息。在一些示例中,会话可以包括来自第一消息传送应用服务器的第一HTTP post调用消息中的信息和来自第二消息传送应用服务器的第二HTTP post调用消息中的信息。
上下文可以包括HTTP post调用消息的时间戳、企业数据、来自用户的一个或多个先前消息、用户的用户简档、用户的一个或多个用户偏好、用户和与机器人服务器相关联的企业之间的一个或多个交互的先前历史、或其任何组合中的至少一个或多个。在一些示例中,先前历史可以包括过去的购买、过去的会话、过去的动作、过去的查询、过去的应用程序接口(API)调用、过去的数据请求或过去的数据搜索。在一些示例中,企业数据可以包括由机器人服务器从与消息传送应用服务器无关的源获得的信息。企业数据可以包括HTTPpost调用消息中未包括的内容。时间戳可以与HTTP消息中的信息的至少一部分被消息传送应用、消息传送应用服务器或机器人服务器接收到的时间相关联。在一些示例中,现有会话是该会话。
在步骤440处,处理400还包括将来自HTTP post调用消息的信息与现有会话相关联。在一些示例中,将HTTP post调用消息与现有会话相关联可以包括确定会话的开始以及确定HTTP post调用消息是否与现有会话相关中的至少一个或多个。
在步骤450处,处理400还包括基于现有会话生成对HTTP post调用消息的响应。在一些示例中,处理400还可以包括将来自对HTTP post调用消息的响应的信息与会话相关联。
C.用户解析器
如上所述,消息处理器流水线还可以包括用户解析器154。用户解析器154可以跨不同消息传送应用服务器将由机器人服务器120接收到的消息与用户相关联。在一些示例中,用户解析器154可以确定由机器人服务器120从第一消息传送应用服务器接收到的至少第一消息和由机器人服务器120从第二消息传送应用服务器接收到的至少第二消息二者都与相同的用户、账户和/或会话相关联。在这样的示例中,即使消息与相同的用户、账户和/或会话相关联,与每个消息的发送者相关联的标识符(例如,用户id)也可以是不同的。用户解析器154可以确定该关联性并链接消息、用户、账户和/或会话。
在一些示例中,由会话器152维护的会话可以包括对消息传送应用服务器的与同一用户相关联的一个或多个账户的引用。在这样的示例中,机器人服务器120可以从第一消息传送应用服务器接收消息。机器人服务器120可以使用第二消息传送应用服务器来对该消息进行响应。当在不同的消息传送应用上发送消息时,可以格式化消息以适合不同的消息传送应用。在一些示例中,消息可以利用对于不同消息传送应用唯一的选项。例如,消息可以使用不同消息传送应用提供的小部件(widget)。
在一些示例中,用户解析器154可以将一个或多个消息与已知的企业账户链接。例如,企业账户可以包括银行账户、实用工具(utilities)账户或与非消息传送应用相关联的其它账户。在这样的示例中,用户解析器可以如上所述类似地将非消息传送账户与消息传送账户链接。例如,银行的机器人服务器可以促进用户和银行之间的交易。用户可以从消息传送应用与银行的服务器通信,消息传送应用诸如Messenger、即时消息传送软件、移动文本和语音消息传送通信服务、Messenger、Messenger或SKYPE用户可以通过一个或多个认证问题确认用户的身份。一旦被链接,用户就可以使用消息传送应用与机器人服务器进行通信,就像他们直接与银行进行通信一样。
图5A图示了在机器人服务器和使用安装在移动设备510上的第一消息传送应用的用户之间的第一对话的示例。对话可以从用户使用第一消息传送应用向机器人服务器发送第一消息520开始。第一消息520可以包括“我想要比萨”。第一消息520可以通过与第一消息传送应用相关联的第一消息传送应用服务器被发送到机器人服务器。
使用机器人代码的机器人服务器可以用第二消息525对第一消息520进行响应,第二消息525可以包括“您想要哪种比萨?”用户可以用第三消息530对第二消息525进行响应,第三消息530可以包括“辣香肠”。使用机器人代码的机器人服务器可以用第四消息535对第三消息530进行响应,从而询问用户“您想要把您的比萨送到哪里?”。第一、第二、第三、第四条消息都可以被机器人服务器的会话器包含在会话中。
图5B图示了在机器人服务器和使用安装在移动设备510上的第二消息传送应用的用户之间的第二对话的示例。第二对话可以在如图5A中所描述的第一对话之后发生。第二会话可以再次以用户在第一消息540中告诉机器人服务器“我想要比萨”开始。
机器人服务器可以确定与第二消息传送应用服务器相关联的用户是与第一消息传送应用服务器相关联的用户相同的用户。该确定可以包括比较与第一消息传送应用服务器相关联的用户的标识和与第二消息传送应用服务器相关联的用户的标识。该确定还可以包括检测在其上安装第一消息传送应用和第二消息传送应用的移动设备。该确定还可以包括与第一消息传送应用服务器相关联的用户和与第二消息传送应用服务器相关联的用户的预先识别出的链接。
在用户被链接之后,可以将与两个用户相关联的会话信息包括在单个会话中。例如,来自第一对话的会话可以与第二对话组合。在一些示例中,可以在从特定消息传送应用服务器接收到两个或更多个消息之后确定用户之间的链接。在这样的示例中,仍然可以链接用户,并且组合会话。在一些示例中,机器人服务器可以在第二消息传送应用上向用户发送消息,以询问与第一消息传送应用相关联的用户是否是与第二消息传送应用相关联的用户。
一旦用户、账户和/或会话被链接,机器人服务器就可以将与第一消息传送应用服务器相关联的信息用于使用第二消息传送应用服务器的对话。例如,不是(如在第二消息525中所做的那样)机器人服务器再次用询问比萨的一般性问题进行响应,而是机器人服务器可以用个性化消息响应用户,诸如包括“您想要辣香肠比萨吗?”的第二消息545。第二问题545可以包括辣香肠的附加信息,因为会话是根据图5A中的第一个对话创建的。机器人服务器可以保存用户之前已请求过辣香肠比萨的信息。
第二会话可以继续消息550、555、560、565。消息550、555、560、565可以完成用户和机器人服务器之间的第二对话和为第二对话创建的会话。
图6图示了使用与接收先前消息的消息传送应用不同的消息传送应用进行响应的机器人服务器的示例。具体而言,如图5A中所描述的,消息620、630、640、650可以使用第二消息传送应用被包括在第一对话中。但是,使用机器人代码的机器人服务器可以确定使用第一消息传送应用而不是第二消息传送应用向用户发送第五消息660,即使最后的通信是在第二消息传送应用中(例如,第六消息565)。
由于许多原因,机器人服务器可以确定使用第一消息传送应用将第五消息660发送给用户。例如,用户可以指示对于使用第一消息传送应用来发送消息的偏好。又例如,机器人服务器可以确定用户没有正在读取发送到第二消息传送应用的消息。在这样的示例中,机器人服务器可以使用诸如自从发送或接收消息以来流逝的时间以及用户接收到第五消息660的紧急程度之类的信息。再例如,机器人服务器可以确定第一消息传送应用包括第二消息传送应用不包括的选项,并且该选项将更好地呈现第五消息660的信息。例如,第一消息传送应用可以允许特定小部件,而第二消息传送应用不允许该特定小部件。
图7是图示用于将多个消息与用户(或账户)相关联的处理的示例的流程图。在一些方面,处理700可以由机器人服务器执行。虽然可能给出了机器人服务器的具体示例,但是本领域普通技术人员将认识到的是,处理700中可以包括其它设备。
处理700被示为逻辑流图,其操作表示可以用硬件、计算机指令或其组合实现的一系列操作。在计算机指令的上下文中,操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,当指令由一个或多个处理器执行时,执行所述操作。通常,计算机可执行指令包括执行特定函数或实现特定数据类型的例程、程序、对象、部件、数据结构等。其中操作被描述的次序不旨在被解释为限制,并且任何数量的所描述的操作可以以任何次序和/或并行地组合以实现处理。
另外,处理700可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以被实现为在一个或多个处理器上、由硬件或其组合集体执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)。如上所述,代码可以例如以包括可由一个或多个处理器执行的多条指令的计算机程序的形式存储在机器可读存储介质上。机器可读存储介质可以是非瞬态的。
在步骤710处,处理700包括接收第一超文本传输协议(HTTP)post调用消息。在一些示例中,第一HTTP post调用消息可以由与统一资源标识符(URI)相关联的机器人服务器接收。第一HTTP post调用消息可以与第一用户相关联,并从第一消息传送应用服务器被引导到URI。在一些示例中,第一消息传送应用服务器可以与Messenger、即时消息传送软件、移动文本和语音消息传送通信服务、Messenger、Messenger和SKYPE之一相关联。在一些示例中,第一HTTP post调用消息的内容的至少一部分可以从第一移动设备发送到第一消息传送应用服务器。第一HTTP post调用消息可以包括与机器人服务器的自然语言交互。
在步骤720处,处理700还包括接收第二HTTP post调用消息。在一些示例中,第二HTTP post调用消息可以由机器人服务器接收。第二HTTP post调用消息可以与第二用户相关联,并从第二消息传送应用服务器被引导到URI。在一些示例中,第二消息传送应用服务器可以与第一消息传送应用服务器不同。在一些示例中,第一用户的标识可以与第二用户的标识不同。在一些示例中,第二消息传送应用服务器可以与Messenger、即时消息传送软件、移动文本和语音消息传送通信服务、Messenger、Messenger和SKYPE 之一相关联。在这样的示例中,第一消息传送应用服务器可以与第二消息传送应用服务器不同。在其它示例中,第一消息传送应用服务器可以与第二消息传送应用服务器相同。在这样的示例中,第一用户和第二用户可以包括不同的标识。在一些示例中,第二HTTP post调用消息的内容的至少一部分可以从第二移动设备被发送到第二消息传送应用服务器。第二HTTP post调用消息可以包括与机器人服务器的自然语言交互。
在步骤730处,处理700还包括解析第一HTTP post调用消息的内容以识别第一关键字。在步骤740处,处理700还包括基于第一关键字和第一HTTP post调用消息的上下文从多个用户中识别第一现有用户。在一些示例中,可以为第一HTTP post调用消息识别第一现有用户。在步骤750处,处理700还包括将来自第一HTTP post调用消息的信息与第一现有用户相关联。
在步骤760处,处理700还包括解析第二HTTP post调用消息的内容以识别第二关键字。在步骤770处,处理700还包括基于第二关键字和第二消息的上下文从多个用户中识别第二现有用户。在一些示例中,可以为第二HTTP post调用消息识别第二现有用户。在一些示例中,第二现有用户可以是第一现有用户。在步骤780处,处理700还包括将来自第二HTTP post调用消息的信息与第一现有用户相关联。
在步骤790处,处理700还包括基于来自第一HTTP post调用消息、第二HTTP post调用消息和第一现有用户中的至少一个或多个的信息生成对第二HTTP post调用消息的响应。在一些示例中,可以使用第一消息传送应用服务器来发送对第二HTTP post调用消息的响应。在一些示例中,来自第一HTTP post调用消息、第二HTTP post调用消息、响应、第一消息传送应用服务器、第二消息传送应用服务器、第一用户和第二用户中的至少一个或多个的信息与会话相关联。
在一些示例中,处理700还可以包括将第一现有用户与企业账户相关联。企业账户可以与消息传送应用服务器分开。
D.服务器协作
在一些示例中,会话器152也可以管理机器人服务器之间的会话。在这样的示例中,会话器152可以维护一个或多个用户与第一机器人服务器之间的会话。该会话可以包括与会话的第一位置中的第一机器人服务器相关联的信息。会话也可以包括与会话的第二位置中的第二机器人服务器相关联的信息。第一位置和第二位置可以是不同的。通过具有与不同位置中的每个机器人服务器相关联的信息,可以避免信息的重写。
在一些示例中,第一机器人服务器可以确定将用户、账户和/或会话切换或转移到第二机器人服务器。在这样的示例中,第一机器人服务器的会话可以被转移到第二机器人服务器,使得第二机器人服务器可以在会话中具有第一机器人服务器收集到的、保存的和/或接收到的信息。例如,第一机器人服务器可以与人力资源中心相关联。第一机器人服务器可以确定将用户发送到第二机器人服务器以从第二机器人服务器接收服务。在这样的示例中,第二机器人服务器可以受益于由第一机器人服务器存储或保存的信息。
为了促进切换,第一机器人服务器可以向第二机器人服务器发送消息,就像用户向第二机器人服务器发送消息一样。该消息可以使与第二机器人服务器相关联的会话器将会话从第一机器人服务器重新配置到第二机器人服务器。在其它示例中,第一机器人服务器可以向第二机器人服务器的另一个部件(诸如负载均衡部件、消息输入队列或消息处理器流水线)发送消息。例如,切换消息可以是:
在一些示例中,可以在机器人服务器之间隔离会话信息。例如,当发生切换时,可以分开保存来自第一机器人服务器的会话信息和来自第二机器人服务器的会话信息。
在一些示例中,第二机器人服务器可以将会话转移回第一机器人服务器。该转移可以在第二机器人服务器完成其目的时发生。在一些示例中,如以上所讨论的,第二机器人服务器可以向第一机器人服务器的会话器发送消息,以将会话改变回第一机器人服务器。该转移也可以在第一机器人服务器取消切换时发生。例如,第一机器人服务器可以确定第二机器人服务器花费太长时间。在这样的示例中,第一机器人服务器可以向第二机器人服务器的会话器发送消息以将会话改变回第一机器人服务器。例如,将会话从第二机器人服务器返回到第一机器人服务器的消息可以是:
为了说明,可以描述企业中的新员工的示例。新员工可以具有在开始时必须完成的若干任务。例如,可以发出电子邮件、可以订购笔记本电脑、并且可以分配办公室。但是,每个任务可以与企业中的不同人相关联。在这样的示例中,机器人服务器可以与每个任务相关联。每个机器人服务器都可以与其它机器人服务器通信,以提高效率。
图8A-图8B图示了在单个对话期间第一机器人服务器和第二机器人服务器之间的切换的示例。对于图8A-图8B的目的,图8B中的对话应被视为图8A中的对话的继续。该单个对话可以与企业中的新员工相关。不是让新员工分别联系企业中的若干实体,而是本文的示例允许该员工在安装在移动设备810上的消息传送应用中使用单个消息线程。
例如,用户可以在安装在移动设备810上的消息传送应用的聊天窗口中向第一机器人服务器发送第一消息820。第一消息820可以被发送到与消息传送应用相关联的消息传送应用服务器。该消息传送应用服务器可以将第一消息820发送到第一机器人服务器。使用机器人代码的第一机器人服务器可以用第二消息825对第一消息820进行响应,第二消息825包括“您好,这是人力资源部。您叫什么名字?”。用户可以用第三消息830对第二消息825进行响应,第三消息830包括“Bob”。第一机器人服务器可以在与用户相关联的会话中将“Bob”保存为用户的名字。
第一机器人服务器可以用第四消息835来回复第三消息,询问用户是否“想要新计算机”。通过用户在第五消息840中对第四消息835响应“是”,第一机器人服务器的机器人代码可以确定该会话应该被切换到第二机器人服务器。第二机器人服务器可以与订购计算机(新员工的第一步)相关联。为了促进切换,第一机器人服务器可以向第二机器人服务器发送转移请求。取决于第二机器人服务器的设置,可以在连接器或负载均衡器处接收转移请求。在一些示例中,转移请求可以被发送到第二机器人服务器的不同元件,包括消息输入队列或会话器。转移请求可以使与用户相关联的会话与第一机器人服务器解关联并且与第二机器人服务器相关联,使得接收到的与会话相关联的一个或多个新消息将被第二机器人服务器而不是第一机器人服务器接收。
在一些示例中,一个或多个新消息可以由第二机器人服务器而不是第一机器人服务器接收,因为与第一机器人服务器相关联的URI可以被改变。例如,通过重新配置第一机器人服务器和第二机器人服务器,可以将URI分配给第二机器人服务器而不是第一机器人服务器。又例如,可以将消息发送到消息传送应用服务器以改变会话的URI,使得消息传送应用服务器将新消息发送到第二机器人服务器。再例如,URI可以与管理服务器相关联,管理服务器接收给一个或多个机器人服务器的所有消息。管理服务器然后可以将消息发送到正确的机器人服务器。又例如,第一机器人服务器可以充当第二机器人服务器的中介,从而将由第一机器人服务器接收到的消息转发到第二机器人服务器。
现在,消息不是由第一机器人服务器响应,而是消息可以由第二机器人服务器通过消息传送应用服务器进行响应。但是,消息仍然可以被包含在聊天窗口中,就好像第二机器人服务器是第一机器人服务器一样。响应于转移请求以及用户在第五消息840中的肯定答复,第二机器人服务器可以向用户发送第六消息845。第六消息845可以包括:“Bob,您想要哪种计算机?”。在这样的示例中,用户可能不知道不同的机器人服务器正在与用户通信。用户可以用第七消息850对第六消息845进行响应。用户和第二机器人服务器之间的对话可以继续,直到第二机器人服务器已完成其目的(例如,为Bob订购计算机)。当第二机器人服务器已完成其目的时,第二机器人服务器可以将用户发送回第一机器人服务器、将用户发送到第三机器人服务器,或者完成对话(服务器之间的转移可以如上所述类似地执行)。
图9图示了在第二机器人服务器根据第一机器人服务器超时之后第一机器人服务器和第二机器人服务器之间的切换的示例。在这样的示例中,第一机器人服务器可以为第二机器人服务器设置完成其目的的计时器。例如,第一机器人服务器可以确定第二机器人服务器应该在10分钟内完成其目的。当计时器到期时,第一机器人服务器可以向第二机器人服务器发送消息以请求用户和第二机器人服务器之间的对话的状态。如果第二机器人服务器向第一机器人服务器响应第二机器人服务器仍在处理该用户,则第一用户可以确定终止与第二机器人服务器的切换(并将用户返回到第一机器人服务器)、为第二机器人服务器设置完成其目的的新计时器(其操作与上述类似),或者什么也不做。
为了终止切换,第一机器人服务器可以向第二机器人服务器发送消息。取决于第一和第二机器人服务器的设置,可以将消息发送到连接器、负载均衡器或会话器。该消息可以使会话与第二机器人服务器解关联并且与第一机器人服务器相关联,类似于上面在图8中所描述的那样。通过终止与第二机器人服务器的切换,本文的示例可以处理其中第二机器人服务器的机器人代码滞后、故障或冻结的情况。
例如,在用户发送第七消息950(类似于第七消息850)之后,第一机器人服务器可以确定第一机器人服务器应该终止到第二机器人服务器的切换。通过终止到第二机器人服务器的切换,会话与第二机器人服务器解关联并且与第一机器人服务器相关联,如上所述。在切换之后,第一机器人服务器可以向用户发送第八消息955,询问:“您是否完成您想要的计算机的订购?”。第一机器人服务器然后可以继续与用户的对话。
在其它示例中,第一机器人服务器可以确定第二机器人服务器未能完成。在这样的示例中,第一机器人服务器可以放弃发送第八消息955并且在知道第二机器人服务器未能完成的情况下继续进行对话。第一机器人服务器可以通过分析会话来确定第二机器人服务器未能完成。
图10是图示用于服务器协作的处理1000的示例的流程图。在一些方面,处理1000可以由机器人服务器执行。虽然可能给出了机器人服务器的具体示例,但是本领域普通技术人员将认识到的是,处理1000中可以包括其它设备。
处理1000被示为逻辑流图,其操作表示可以用硬件、计算机指令或其组合实现的一系列操作。在计算机指令的上下文中,操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,当指令由一个或多个处理器执行时,执行所述操作。通常,计算机可执行指令包括执行特定函数或实现特定数据类型的例程、程序、对象、部件、数据结构等。其中操作被描述的次序不旨在被解释为限制,并且任何数量的所描述的操作可以以任何次序和/或并行地组合以实现处理。
此外,处理1000可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以被实现为在一个或多个处理器上、由硬件或其组合集体执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)。如上所述,代码可以例如以包括可由一个或多个处理器执行的多条指令的计算机程序的形式存储在机器可读存储介质上。机器可读存储介质可以是非瞬态的。
在步骤1010处,处理1000包括接收超文本传输协议(HTTP)post调用消息。在一些示例中,HTTP post调用消息可以由具有第一统一资源标识符(URI)的第一机器人服务器接收。HTTP post调用消息可以与用户相关联,并从消息传送应用服务器被引导到URI。在一些示例中,来自HTTP post调用消息的信息可以与会话相关联。在一些示例中,HTTP post调用消息可以包括自然语言交互。在一些示例中,消息传送应用服务器可以与Messenger、即时消息传送软件、移动文本和语音消息传送通信服务、Messenger、Messenger和SKYPE之一相关联。在一些示例中,HTTP post调用消息的内容的至少一部分从移动设备被发送到消息传送应用服务器。
在步骤1020处,处理1000还包括基于HTTP post调用消息确定将会话转移到第二机器人服务器。在一些示例中,转移的确定可以由第一机器人服务器进行。在一些示例中,第二机器人服务器可以包括第二URI。
在步骤1030处,处理1000还包括由第一机器人服务器发送转移请求。在一些示例中,转移请求可以使会话与第一机器人服务器解关联并且与第二机器人服务器相关联。在一些示例中,与第一机器人服务器相关联的信息可以在会话中与和第二机器人服务器相关联的信息分开保存。
在一些示例中,处理1000还可以包括由第一机器人服务器或者第二机器人服务器发送返回请求。返回请求可以使会话与第二机器人服务器解关联并且与第一机器人服务器相关联。在一些示例中,可以在自从发送或接收转移请求以来已经过去一定时间量之后发送返回请求。
E.示例系统
图11描绘了分布式系统1100的简化图。分布式系统1100包括一个或多个客户端计算设备1102、1104、1106和1108,每个客户端计算设备可以被配置为通过一个或多个网络1110执行和操作客户端应用,诸如web浏览器、专有客户端(例如,Oracle Forms)等。服务器1112可以经由网络1110与远程客户端计算设备1102、1104、1106和1108通信地耦合。
在各种示例中,服务器1112可以适于运行由分布式系统1100的一个或多个部件提供的一个或多个服务或软件应用。服务或软件应用可以包括非虚拟环境和虚拟环境。虚拟环境可以包括用于虚拟事件、商业展览、模拟器、教室、购物交换和企业的虚拟环境,无论是二维或三维(3D)表示、基于页面的逻辑环境还是其它。在一些示例中,这些服务可以作为基于web的服务或云服务或者在软件即服务(SaaS)模型下被供应给客户端计算设备1102、1104、1106和/或1108的用户。操作客户端计算设备1102、1104、1106和/或1108的用户进而可以利用一个或多个客户端应用来与服务器1112交互以利用由这些部件提供的服务。
在图11中,分布式系统1100的软件部件1118、1120和1122被示出为在服务器1112上实现。在其它示例中,分布式系统1100的一个或多个部件和/或由这些部件提供的服务也可以由客户端计算设备1102、1104、1106和/或1108中的一个或多个来实现。然后,操作客户端计算设备的用户可以利用一个或多个客户端应用来使用由这些部件提供的服务。这些部件可以用硬件、固件、软件或其组合来实现。应该认识到的是,各种不同的系统配置是可能的,这些配置可能与分布式系统1100不同。图中所示的示例因此是用于实现示例系统的分布式系统的一个示例,而不旨在是限制性的。
客户端计算设备1102、1104、1106和/或1108可以是便携式手持设备(例如,蜂窝电话、计算平板电脑、个人数字助理(PDA))或可穿戴设备(例如,Google头戴式显示器),运行诸如Microsoft Windows和/或各种移动操作系统(诸如iOS、Windows Phone、Android、BlackBerry 10、Palm OS等)的软件,并且启用互联网、电子邮件、短消息服务(SMS)、或其它通信协议。客户端计算设备可以是通用个人计算机,作为示例,包括运行各种版本的MicrosoftApple 和/或Linux操作系统的个人计算机和/或膝上型计算机。客户端计算设备可以是运行各种可商业获得的或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统,诸如例如Google Chrome OS)中的任何操作系统的工作站计算机。替代地或附加地,客户端计算设备1102、1104、1106和1108可以是能够通过(一个或多个)网络1110进行通信的任何其它电子设备,诸如瘦客户端计算机、启用互联网的游戏系统(例如,具有或不具有手势输入设备的Microsoft Xbox游戏控制台)和/或个人消息传送设备。
虽然示出了具有四个客户端计算设备的示例性分布式系统1100,但是可以支持任何数量的客户端计算设备。其它设备(诸如具有传感器等的设备等)可以与服务器1112交互。
分布式系统1100中的(一个或多个)网络1110可以是本领域技术人员熟悉的、可以使用各种可商业获得的协议中的任何协议来支持数据通信的任何类型的网络,其中协议包括但不限于TCP/IP(传输控制协议/互联网协议)、SNA(系统网络体系架构)、IPX(互联网分组交换)、AppleTalk等。仅仅作为示例,(一个或多个)网络1110可以是局域网(LAN),诸如基于以太网、令牌环等的LAN。(一个或多个)网络1110可以是广域网和互联网。它可以包括虚拟网络,包括但不限于虚拟专用网络(VPN)、内联网、外联网、公共交换电话网(PSTN)、红外网络、无线网络(例如,依据电气和电子协会(IEEE)802.11协议套件、和/或任何其它无线协议的任何协议而操作的网络);和/或这些网络和/或其它网络的任何组合。
服务器1112可以由一个或多个通用计算机、专用服务器计算机(作为示例,包括PC(个人计算机)服务器、服务器、中档服务器、大型计算机、机架安装的服务器等)、服务器场、服务器集群或任何其它适当的布置和/或组合组成。服务器1112可以包括运行虚拟操作系统的一个或多个虚拟机,或涉及虚拟化的其它计算体系架构。可以虚拟化逻辑存储设备的一个或多个灵活的池以维护用于服务器的虚拟存储设备。虚拟网络可以由服务器1112使用软件定义的网络来控制。在各种示例中,服务器1112可以适于运行在前述公开中描述的一个或多个服务或软件应用。例如,服务器1112可以与用于执行以上根据本公开的示例描述的处理的服务器对应。
服务器1112可以运行包括以上讨论的任何操作系统中的操作系统,以及任何可商业获得的服务器操作系统。服务器1112还可以运行各种附加的服务器应用和/或中间层应用中的任何一种,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(公共网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于可从Oracle、Microsoft、Sybase、IBM(国际商业机器)等商业获得的那些数据库服务器。
在一些实现中,服务器1112可以包括一个或多个应用,以分析和整合从客户端计算设备1102、1104、1106和1108的用户接收到的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于,馈送、更新或者从一个或多个第三方信息源和连续数据流接收到的实时更新,实时更新可以包括与传感器数据应用、金融报价机(financial ticker)、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视等相关的实时事件。服务器1112还可以包括一个或多个应用,以经由客户端计算设备1102、1104、1106和1108的一个或多个显示设备来显示数据馈送和/或实时事件。
分布式系统1100还可以包括一个或多个数据库1114和1116。数据库1114和1116可以驻留在各种位置。作为示例,数据库1114和1116中的一个或多个可以驻留在服务器1112本地(和/或驻留在服务器1112中)的非瞬态存储介质上。可替代地,数据库1114和1116可以远离服务器1112并且经由基于网络的连接或专用的连接与服务器1112进行通信。在一组示例中,数据库1114和1116可以驻留在存储区域网络(SAN)中。类似地,用于执行服务器1112所具有的功能的任何必要文件都可以适当地本地存储在服务器1112上和/或远程存储。在一组示例中,数据库1114和1116可以包括适于响应SQL格式的命令而存储、更新和检索数据的关系数据库,诸如由Oracle提供的数据库。
图12是系统环境1200的一个或多个部件的简化框图,通过该环境,由一个或多个部件提供的服务可以作为云服务供应。在所示示例中,系统环境1200包括可以由用户使用以与提供云服务的云基础设施系统1202进行交互的一个或多个客户端计算设备1204、1206和1208。客户端计算设备可以被配置为操作客户端应用,诸如web浏览器、专有客户端应用(例如,Oracle Forms)或某种其它应用,这些应用可以由客户端计算设备的用户用来与云基础设施系统1202交互以使用由云基础设施系统1202提供的服务。
应该认识到的是,云基础设施系统1202可以具有除了所描绘的那些部件之外的其它部件。另外,所示示例仅是可以结合本公开的示例的云基础设施系统的一个示例。在一些其它示例中,云基础设施系统1202可以具有比图12中所示更多或更少的部件、可以组合两个或更多个部件、或者可以具有不同的部件配置或布置。
客户端计算设备1204、1206和1208可以是与上面针对1102、1104、1106和1108所描述的设备类似的设备。虽然示例性系统环境1200被示出具有三个客户端计算设备,但是任何数量的客户端计算设备可以被支持。其它设备(诸如具有传感器的设备)可以与云基础设施系统1202交互。
(一个或多个)网络1210可以促进客户端1204、1206和1208与云基础设施系统1202之间的数据的通信和交换。每个网络可以是本领域技术人员所熟悉的可以使用各种商业上可获得的协议(包括上面针对(一个或多个)网络1210所描述的那些协议)中的任何一种支持数据通信的任何类型的网络。
云基础设施系统1202可以包括一个或多个计算机和/或服务器,这些计算机和/或服务器可以包括上面针对服务器1112所描述的那些计算机和/或服务器。
在某些示例中,由云基础设施系统提供的服务可以包括按需对云基础设施系统的用户可用的许多服务,诸如在线数据存储和备份解决方案、基于Web的电子邮件服务、被托管的办公室(office)套件和文档协作服务、数据库处理、受管理的技术支持服务等。由云基础设施系统提供的服务可以动态缩放以满足云基础设施系统的用户的需要。由云基础设施系统提供的服务的具体实例化在本文中被称为“服务实例”。一般而言,从云服务提供商的系统经由通信网络(诸如互联网)对用户可用的任何服务被称为“云服务”。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统与客户自己的室内服务器和系统不同。例如,云服务提供商的系统可以托管应用,并且用户可以经由诸如互联网的通信网络按需订购和使用该应用。
在一些示例中,计算机网络云基础设施中的服务可以包括由云供应商向用户提供的或者如本领域中已知的以其他方式提供的对存储装置、被托管的数据库、被托管的Web服务器、软件应用或其它服务的受保护的计算机网络访问。例如,服务可以包括通过互联网对云上的远程存储装置进行密码保护的访问。作为另一个示例,服务可以包括基于Web服务的被托管的关系数据库和脚本语言中间件引擎,以供联网的开发人员私有使用。作为另一个示例,服务可以包括对在云供应商的web站点上托管的电子邮件软件应用的访问。
在某些示例中,云基础设施系统1202可以包括以自助服务、基于订阅、弹性可缩放、可靠、高度可用和安全的方式递送给客户的应用、中间件和数据库服务供应的套件。这种云基础设施系统的示例是由本受让人提供的Oracle公共云。
基础设施系统可以在许多级别上和以不同规模托管和/或操纵大量数据(有时被称为大数据)。这样的数据可以包括如此之大且复杂的数据集,该数据集可能难以使用典型的数据库管理工具或传统的数据处理应用进行处理。例如,数兆兆字节(terabytes)的数据可能难以使用个人计算机或其基于机架的对应物进行存储、检索和处理。这样大小的数据可能难以使用大多数当前的关系数据库管理系统和桌面统计以及可视化软件包一起工作。它们可能要求运行数千台服务器计算机的大规模并行处理软件(这超出常用软件工具的结构)来在可容忍的时间内捕获、驾驭(curate)、管理和处理数据。
分析人员和研究人员可以存储和操纵极大的数据集,以可视化大量数据、检测趋势和/或以其它方式与数据交互。并行链接的数十、数百或数千个处理器可以对这些数据起作用,以便呈现数据或模拟数据上的外力或数据表示的内容。这些数据集可以涉及诸如在数据库中或者以其它方式根据结构化模型组织的结构化数据,和/或非结构化数据(例如,电子邮件、图像、数据blob(二进制大对象)、网页、复杂事件处理等)。通过利用相对快速地将更多(或更少)计算资源集中在目标上的示例的能力,云基础设施系统可以更好地用于基于来自企业、政府机关、研究组织、私有个人、志同道合的个人团体或组织、或其它实体的需求对大型数据集执行任务。
在各种示例中,云基础设施系统1202可以适于自动供给、管理和跟踪客户对云基础设施系统1202供应的服务的订阅。云基础设施系统1202可以经由不同的部署模型来提供云服务。例如,可以依据公共云模型提供服务,其中云基础设施系统1202被销售云服务的组织拥有(例如,被Oracle拥有),并且服务对一般公众或不同的行业企业可用。作为另一个示例,可以依据私有云模型来提供服务,其中云基础设施系统1202仅针对单个组织操作,并且可以为该组织内的一个或多个实体提供服务。还可以依据社区云模型来提供云服务,其中云基础设施系统1202和由云基础设施系统1202提供的服务由相关社区中的若干组织共享。云服务还可以依据混合云模型被提供,该混合云模型是两个或更多个不同模型的组合。
在一些示例中,由云基础设施系统1202提供的服务可以包括在软件即服务(SaaS)类别、平台即服务(PaaS)类别、基础设施即服务(IaaS)类别或包括混合服务的其它服务类别下提供的一个或多个服务。客户经由订阅订单可以订购由云基础设施系统1202提供的一个或多个服务。云基础设施系统1202然后执行处理以提供客户的订阅订单中的服务。
在一些示例中,由云基础设施系统1202提供的服务可以包括但不限于应用服务、平台服务和基础设施服务。在一些示例中,应用服务可以由云基础设施系统经由SaaS平台提供。SaaS平台可以被配置为提供落入SaaS类别的云服务。例如,SaaS平台可以提供在集成开发和部署平台上构建和递送按需应用套件的能力。SaaS平台可以管理和控制用于提供SaaS服务的底层软件和基础设施。通过利用由SaaS平台提供的服务,客户可以利用在云基础设施系统上执行的应用。客户可以获取应用服务,而无需客户购买单独许可证和支持。可以提供各种不同的SaaS服务。示例包括但不限于为大型组织提供销售绩效管理、企业集成和商务灵活性的解决方案的服务。
在一些示例中,平台服务可以由云基础设施系统经由PaaS平台提供。PaaS平台可以被配置为提供落入PaaS类别的云服务。平台服务的示例可以包括但不限于使组织(诸如Oracle)能够在共享的公共体系架构上整合现有应用以及充分利用平台服务提供的共享服务来构建新应用的能力的服务。PaaS平台可以管理和控制用于提供PaaS服务的底层软件和基础设施。客户可以获取由云基础架构系统提供的PaaS服务,而无需客户购买单独的许可证和支持。平台服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)等。
通过利用由PaaS平台提供的服务,客户可以采用由云基础设施系统支持的编程语言和工具,并且还控制所部署的服务。在一些示例中,由云基础设施系统提供的平台服务可以包括数据库云服务、中间件云服务(例如,Oracle融合中间件服务)和Java云服务。在一个示例中,数据库云服务可以支持共享服务部署模型,该模型使得组织能够汇集数据库资源并且以数据库云的形式向客户供应数据库即服务。中间件云服务可以为客户提供开发和部署各种业务应用的平台,并且Java云服务可以为客户提供在云基础设施系统中部署Java应用的平台。
各种不同的基础设施服务可以由云基础设施系统中的IaaS平台提供。基础设施服务促进底层计算资源(诸如存储装置、网络和其它基础计算资源)的管理和控制,以供客户利用由SaaS平台和PaaS平台提供的服务。
在某些示例中,云基础设施系统1202还可以包括基础设施资源1230,用于向云基础设施系统的客户提供用于提供各种服务的资源。在一个示例中,基础设施资源1230可以包括预先集成和优化的硬件(诸如服务器、存储装置和联网资源)的组合,以执行由PaaS平台和SaaS平台提供的服务。
在一些示例中,云基础设施系统1202中的资源可以由多个用户共享并且根据需要动态重新分配。此外,可以将资源分配给在不同时间区段的用户。例如,云基础设施系统1230可以使在第一时间区段中的第一组用户能够在指定的小时数内利用云基础设施系统的资源,并且然后使相同资源能够被重新分配给位于不同时间区段中的另一组用户,从而使资源的利用率最大化。
在某些示例中,可以提供由云基础设施系统1202的不同部件或模块以及由云基础设施系统1202提供的服务共享的多个内部共享服务1232。这些内部共享服务可以包括但不限于:安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。
在某些示例中,云基础设施系统1202可以提供云基础设施系统中的云服务(例如,SaaS、PaaS和IaaS服务)的综合管理。在一个示例中,云管理功能可以包括用于供给、管理和跟踪由云基础设施系统1202接收到的客户订阅等的能力。
在一个示例中,如图12中所绘出的,云管理功能可以由一个或多个模块提供,诸如订单管理模块1220、订单编排模块1222、订单供给模块1224、订单管理和监视模块1226,以及身份管理模块1228。这些模块可以包括一个或多个计算机和/或服务器或者使用一个或多个计算机和/或服务器来提供,这些计算机和/或服务器可以是通用计算机、专用服务器计算机、服务器场、服务器集群或任何其它适当的布置/或组合。
在示例性操作1234中,使用客户端设备(诸如客户端设备1204、1206或1208)的客户可以通过请求由云基础设施系统1202提供的一个或多个服务并且下订阅由云基础设施系统1202供应的一个或多个服务来的订单来与云基础设施系统1202交互。在某些示例中,客户可以访问云用户界面(UI)(云UI 1212、云UI 1214和/或云UI1216)并经由这些UI下订阅订单。云基础设施系统1202响应于客户下订单而接收到的订单信息可以包括识别客户以及客户想要订阅的云基础设施系统1202供应的一个或多个服务的信息。
在客户下订单之后,经由云UI 1212、1214和/或1216接收订单信息。
在操作1236处,订单存储在订单数据库1218中。订单数据库1218可以是由云基础设施系统1218操作的若干数据库之一并且与其它系统元件一起操作。
在操作1238处,订单信息被转发到订单管理模块1220。在一些情况下,订单管理模块1220可以被配置为执行与订单相关的计费和记账功能,诸如验证订单、以及在验证后预订订单。
在操作1240处,将关于订单的信息传送到订单编排模块1222。订单编排模块1222可以利用订单信息为客户下的订单编排服务和资源的供给。在一些情况下,订单编排模块1222可以使用订单供给模块1224的服务来编排资源的供给以支持订阅的服务。
在某些示例中,订单编排模块1222使得能够管理与每个订单相关联的业务处理并应用业务逻辑来确定订单是否应该进行到供给。在操作1242处,在接收到新订阅的订单时,订单编排模块1222向订单供给模块1224发送请求以分配资源并配置履行订阅订单所需的这些资源。订单供给模块1224使得能够为客户订购的服务分配资源。订单供给模块1224提供由云基础设施系统1200提供的云服务和用于供给用于提供所请求的服务的资源的物理实现层之间的抽象层。因此,订单编排模块1222可以与实现细节隔离,诸如服务和资源是实际上即时供给还是预先供给并仅在请求后才分配/指派。
在操作1244处,一旦供给了服务和资源,就可以通过云基础设施系统1202的订单供给模块1224向客户端设备1204、1206和/或1208上的客户发送所提供服务的通知。
在操作1246处,订单管理和监视模块1226可以管理和跟踪客户的订阅订单。在一些情况下,订单管理和监视模块1226可以被配置为收集订阅订单中的服务的使用统计信息,诸如所使用的存储量、传输的数据量、用户的数量,以及系统运行时间量和系统停机时间量。
在某些示例中,云基础设施系统1200可以包括身份管理模块1228。身份管理模块1228可以被配置为提供身份服务,诸如云基础设施系统1200中的访问管理和授权服务。在一些示例中,身份管理模块1228可以控制关于希望利用由云基础设施系统1202提供的服务的客户的信息。这样的信息可以包括认证这些客户的身份的信息以及描述这些客户被授权相对于各种系统资源(例如,文件、目录、应用、通信端口、存储器段等)执行哪些动作的信息。身份管理模块1228还可以包括对关于每个客户的描述性信息以及关于如何和由谁来访问和修改这些描述性信息的管理。
图13示出了其中可以实现本公开的各种实施例的计算机系统1300的示例。计算机系统1300可以用于实现上述任何计算机系统。如图所示,计算机系统1300包括经由总线子系统1302与多个外围子系统通信的处理单元1304。这些外围子系统可以包括处理加速单元1306、I/O子系统1308、存储子系统1318和通信子系统1324。存储子系统1318包括有形计算机可读存储介质1322和系统存储器1310。
总线子系统1302提供用于让计算机系统1300的各种部件和子系统按意图彼此通信的机制。虽然总线子系统1302被示意性地示出为单条总线,但是总线子系统的替代示例可以利用多条总线。总线子系统1302可以是若干种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用任何各种总线体系架构的局部总线。例如,这种体系架构可以包括工业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围部件互连(PCI)总线,其可以被实现为按IEEE P1386.1标准制造的Mezzanine总线。
可以被实现为一个或多个集成电路(例如,常规微处理器或微控制器)的处理单元1304可以控制计算机系统1300的操作。一个或多个处理器可以被包括在处理单元1304中。这些处理器可以包括单核或多核处理器。在某些示例中,处理单元1304可以被实现为一个或多个独立的处理单元1332和/或1334,其中在每个处理单元中包括单核或多核处理器。在其它示例中,处理单元1304也可以被实现为通过将两个双核处理器集成到单个芯片中形成的四核处理单元。
在各种示例中,处理单元1304可以响应于程序代码执行各种程序并且可以维护多个并发执行的程序或进程。在任何给定的时间,要被执行的程序代码中的一些或全部代码可以驻留在(一个或多个)处理器1304中和/或存储子系统1318中。通过适当的编程,(一个或多个)处理器1304可以提供上述各种功能。计算机系统1300可以附加地包括处理加速单元1306,其可以包括数字信号处理器(DSP)、专用处理器,等等。
I/O子系统1308可以包括用户接口输入设备和用户接口输出设备。用户接口输入设备可以包括键盘、诸如鼠标或轨迹球的定点设备、结合到显示器中的触摸板或触摸屏、滚动轮、点击轮、拨盘、按钮、开关、键盘、具有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备可以包括,例如,运动感测和/或手势识别设备,诸如的Microsoft运动传感器,其使得用户能够使用手势和语音命令通过自然用户接口来控制诸如的Microsoft360游戏控制器的输入设备并与之交互。用户接口输入设备也可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍摄照片和/或做出菜单选择时的“眨眼”)并且将眼睛姿势转换为到输入设备(例如,Google)中的输入的Google眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,导航器)交互的语音识别感测设备。
用户接口输入设备也可以包括但不限于三维(3D)鼠标、操纵杆或指向棒、游戏面板和绘图板,以及音频/视频设备,诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3D扫描仪、3D打印机、激光测距仪和视线跟踪设备。此外,用户接口输入设备可以包括,例如,医学成像输入设备,诸如计算机断层扫描、磁共振成像、正电子发射断层摄影术、医疗超声设备。用户接口输入设备也可以包括,例如,诸如MIDI键盘、数字乐器等的音频输入设备。
用户接口输出设备可以包括显示子系统、指示灯,或者诸如音频输出设备的非可视显示器,等等。显示子系统可以是阴极射线管(CRT)、诸如使用液晶显示器(LCD)或等离子显示器的平板设备、投影设备、触摸屏,等等。一般而言,术语“输出设备”的使用意在包括用于从计算机系统1300向用户或其它计算机输出信息的所有可能类型的设备和机制。例如,用户接口输出设备可以包括,但不限于,可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备,以及调制解调器。
计算机系统1300可以包括包含软件元件、被示为当前位于系统存储器1310中的存储子系统1318。系统存储器1310可以存储可加载并且可在处理单元1304上执行的程序指令,以及在这些程序的执行期间所产生的数据。
取决于计算机系统1300的配置和类型,系统存储器1310可以是易失性的(诸如随机存取存储器(RAM))和/或非易失性的(诸如只读存储器(ROM)、闪存存储器,等等)。RAM通常包含可被处理单元1304立即访问和/或目前正被处理单元1304操作和执行的数据和/或程序模块。在一些实现中,系统存储器1310可以包括多种不同类型的存储器,例如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。在一些实现中,诸如包含有助于在启动期间在计算机系统1300的元件之间传送信息的基本例程的基本输入/输出系统(BIOS),通常可以被存储在ROM中。作为示例,但不是限制,系统存储器1310也示出了可以包括客户端应用、web浏览器、中间层应用、关系数据库管理系统(RDBMS)等的应用程序1312,程序数据1314,以及操作系统1316。作为示例,操作系统1316可以包括各种版本的MicrosoftApple和/或Linux操作系统、各种可商业获得的或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、Google操作系统等)和/或诸如iOS、Phone、OS、10 OS和OS操作系统的移动操作系统。
存储子系统1318也可以提供用于存储提供一些示例的功能的基本编程和数据结构的有形计算机可读存储介质。当被处理器执行时提供上述功能的软件(程序、代码模块、指令)可以被存储在存储子系统1318中。这些软件模块或指令可以被处理单元1304执行。存储子系统1318也可以提供用于存储根据本公开被使用的数据的储存库。
存储子系统1300也可以包括可被进一步连接到计算机可读存储介质1322的计算机可读存储介质读取器1320。与系统存储器1310一起并且,可选地,与其相结合,计算机可读存储介质1322可以全面地表示用于临时和/或更持久地包含、存储、发送和检索计算机可读信息的远程、本地、固定和/或可移除存储设备加存储介质。
包含代码或代码的部分的计算机可读存储介质1322也可以包括本领域已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于,以用于信息的存储和/或传输的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。这可以包括有形的非瞬态的计算机可读存储介质,诸如RAM、ROM、电可擦除可编程ROM(EEPROM)、闪存存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学储存器、磁带盒、磁带、磁盘储存器或其它磁存储设备,或者其它有形的计算机可读介质。当被指定时,这也可以包括非有形的瞬态的计算机可读介质,诸如数据信号、数据传输,或者可以被用来发送期望信息并且可以被计算系统1300访问的任何其它介质。
作为示例,计算机可读存储介质1322可以包括从不可移除的非易失性磁介质读取或写到其的硬盘驱动器、从可移除的非易失性磁盘读取或写到其的磁盘驱动器、以及从可移除的非易失性光盘(诸如CD ROM、DVD和盘或其它光学介质)读取或写到其的光盘驱动器。计算机可读存储介质1322可以包括,但不限于,驱动器、闪存卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字音频带,等等。计算机可读存储介质1322也可以包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等)、基于易失性存储器的SSD(诸如固态RAM、动态RAM、静态RAM)、基于DRAM的SSD,磁阻RAM(MRAM)SSD,以及使用基于DRAM和闪存存储器的SSD的组合的混合SSD。盘驱动器及其关联的计算机可读介质可以为计算机系统1300提供计算机可读指令、数据结构、程序模块及其它数据的非易失性存储。
通信子系统1324提供到其它计算机系统和网络的接口。通信子系统1324用作用于从其它系统接收数据和从计算机系统1300向其它系统发送数据的接口。例如,通信子系统1324可以使计算机系统1300能够经由互联网连接到一个或多个设备。在一些示例中,通信子系统1324可以包括用于访问无线语音和/或数据网络的射频(RF)收发器部件(例如,使用蜂窝电话技术,诸如3G、4G或EDGE(用于全球演进的增强型数据速率)的先进数据网络技术,WiFi(IEEE 802.11系列标准),或其它移动通信技术,或其任意组合)、全球定位系统(GPS)接收器部件和/或其它部件。在一些示例中,作为无线接口的附加或者替代,通信子系统1324可以提供有线网络连接(例如,以太网)。
在一些示例中,通信子系统1324也可以代表可以使用计算机系统1300的一个或多个用户接收结构化和/或非结构化数据馈送1326、事件流1328、事件更新1330等形式的输入通信。
作为示例,通信子系统1324可被配置为实时地从社交媒体网络和/或其它通信服务的用户接收数据馈送1326,诸如馈送、更新、诸如丰富站点摘要(RSS)馈送的web馈送和/或来自一个或多个第三方信息源的实时更新。
此外,通信子系统1324也可被配置为接收连续数据流形式的数据,这可以包括本质上可以是连续的或无界的没有明确终止的实时事件的事件流1328和/或事件更新1330。产生连续数据的应用的示例可以包括,例如,传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视,等等。
通信子系统1324也可被配置为向一个或多个数据库输出结构化和/或非结构化数据馈送1326、事件流1328、事件更新1330,等等,这一个或多个数据库可以与耦合到计算机系统1300的一个或多个流式数据源计算机通信。
计算机系统1300可以是各种类型之一,包括手持便携式设备(例如,蜂窝电话、计算平板电脑、PDA)、可穿戴设备(例如,Google头戴式显示器)、PC、工作站、大型机、信息站、服务器机架、或任何其它数据处理系统。
由于计算机和网络的不断变化的本质,在图中绘出的计算机系统1300的描述仅旨在作为具体的示例。具有比图中绘出的系统更多或更少部件的许多其它配置是可能的。例如,定制的硬件也可以被使用和/或特定的元素可以在硬件、固件、软件(包括小程序应用(applets))或其组合中实现。另外,可以采用到诸如网络输入/输出设备的其它计算设备的连接。基于本文提供的公开内容和教导,本领域普通技术人员将认识到实现各种示例的其它方式和/或方法。
在前述说明书中,参考本公开的各方面的具体示例对本公开的各方面进行了描述,但是本领域技术人员将认识到的是,本公开不限于此。上述公开的各个特征和方面可以被单独使用或联合使用。另外,在不脱离本说明书的更广泛精神和范围的情况下,示例可以在除本文所述的那些环境和应用之外的任何数目的环境和应用中被使用。相应地,本说明书和附图应当被认为是说明性的而不是限制性的。
在前面的描述中,出于说明的目的,以特定顺序描述了方法。应该认识到的是,在替代示例中,可以以与所描述的顺序不同的顺序执行方法。还应该认识到的是,上述方法可以由硬件部件执行,或者可以以机器可执行指令的序列被实施,机器可执行指令可以用于使机器(诸如编程有指令的通用或专用处理器或逻辑电路)执行方法。这些机器可执行指令可以被存储在一个或多个机器可读介质上,诸如CD-ROM或其它类型的光盘、软盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡、闪存、或适合于存储电子指令的其它类型的机器可读介质。替代地,可以通过硬件和软件的组合来执行方法。
在部件被描述为被配置为执行某些操作的情况下,这种配置可以例如通过设计电子电路或其它硬件来执行操作、通过编程可编程电子电路(例如,微处理器或其它合适的电子电路)来执行操作、或其任何组合来实现。
虽然本文已经详细描述了本申请的说明性示例,但是应该理解的是,可以以其它方式不同地实施和采用本发明概念,并且除了受现有技术的限制之外,所附权利要求旨在被解释为包括这样的变型。
Claims (18)
1.一种用于将多个消息与用户相关联的方法,所述方法包括:
由与统一资源标识符URI相关联的机器人服务器接收第一超文本传输协议HTTP post调用消息,其中第一HTTP post调用消息与第一用户相关联并且使用第一消息传送应用从第一消息传送应用服务器被引导到所述URI;
由所述机器人服务器接收第二HTTP post调用消息,其中第二HTTP post调用消息使用第二消息传送应用从第二消息传送应用服务器被引导到所述URI,并且其中第二消息传送应用服务器与第一消息传送应用服务器不同,并且其中第二消息传送应用与第一消息传送应用不同;
由所述机器人服务器解析第一HTTP post调用消息的内容以识别第一关键字;
由所述机器人服务器基于第一关键字和第一HTTP post调用消息的上下文从多个用户中识别第一现有用户;
由所述机器人服务器将来自第一HTTP post调用消息的信息与第一现有用户相关联;
由所述机器人服务器解析第二HTTP post调用消息的内容以识别第二关键字;
由所述机器人服务器基于第二关键字和第二HTTP post调用消息的上下文从所述多个用户中识别第二现有用户;
由所述机器人服务器确定第一HTTP post调用消息与第二HTTP post调用消息二者与相同用户相关联;
由所述机器人服务器将第二现有用户与第一现有用户链接;
由所述机器人服务器将来自第二HTTP post调用消息的信息与第一现有用户相关联;以及
由所述机器人服务器基于来自第一HTTP post调用消息、第二HTTP post调用消息和第一现有用户中的至少一个或多个的信息,生成对第二HTTP post调用消息的响应。
2.如权利要求1所述的方法,其中使用第一消息传送应用服务器来发送对第二HTTPpost调用消息的响应。
3.如权利要求1所述的方法,还包括:
将第一现有用户与企业账户相关联,其中所述企业账户与消息传送应用服务器分开。
4.如权利要求1所述的方法,其中第一消息传送应用服务器与Messenger应用、即时消息传送软件、移动文本和语音消息传送通信服务、Messenger即时消息传送应用、Messenger消息传送应用或SKYPE视频呼叫应用中的一个相关联,其中第二消息传送应用服务器与Messenger应用、即时消息传送软件、移动文本和语音消息传送通信服务、Messenger即时消息传送应用、Messenger消息传送应用或SKYPE视频呼叫应用中的一个相关联,其中第一消息传送应用服务器与第二消息传送应用服务器不同,其中第一HTTPpost调用消息的内容的至少一部分从第一移动设备被发送到第一消息传送应用服务器,并且其中第二HTTP post调用消息的内容的至少一部分从第二移动设备被发送到第二消息传送应用服务器。
5.如权利要求1所述的方法,其中第一HTTP post调用消息包括第一自然语言交互,并且其中第二HTTP post调用消息包括第二自然语言交互。
6.如权利要求1所述的方法,其中来自第一HTTP post调用消息、第二HTTP post调用消息、所述响应、第一消息传送应用服务器、第二消息传送应用服务器、第一现有用户和第二现有用户中的至少一个或多个的信息被包含在会话中。
7.一种用于将多个消息与用户相关联的系统,所述系统包括:
一个或多个处理器;以及
包含指令的非瞬态计算机可读介质,所述指令当由所述一个或多个处理器执行时,使所述一个或多个处理器执行包括以下的操作:
由与统一资源标识符URI相关联的机器人服务器接收第一超文本传输协议HTTP post调用消息,其中第一HTTP post调用消息与第一用户相关联并且使用第一消息传送应用从第一消息传送应用服务器被引导到所述URI;
由所述机器人服务器接收第二HTTP post调用消息,其中第二HTTP post调用消息与第二用户相关联并且使用第二消息传送应用从第二消息传送应用服务器被引导到所述URI,并且其中第二消息传送应用服务器与第一消息传送应用服务器不同,并且其中第二消息传送应用与第一消息传送应用不同;
由所述机器人服务器解析第一HTTP post调用消息的内容以识别第一关键字;
由所述机器人服务器基于第一关键字和第一HTTP post调用消息的上下文从多个用户中识别第一现有用户;
由所述机器人服务器将来自第一HTTP post调用消息的信息与第一现有用户相关联;
由所述机器人服务器解析第二HTTP post调用消息的内容以识别第二关键字;
由所述机器人服务器基于第二关键字和第二HTTP post调用消息的上下文从所述多个用户中识别第二现有用户;
由所述机器人服务器确定第一HTTP post调用消息与第二HTTP post调用消息二者与相同用户相关联;
由所述机器人服务器将第二现有用户与第一现有用户链接;
由所述机器人服务器将来自第二HTTP post调用消息的信息与第一现有用户相关联;以及
由所述机器人服务器基于来自第一HTTP post调用消息、第二HTTP post调用消息和第一现有用户中的至少一个或多个的信息,生成对第二HTTP post调用消息的响应。
8.如权利要求7所述的系统,其中使用第一消息传送应用服务器来发送对第二HTTPpost调用消息的响应。
9.如权利要求7所述的系统,还包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行包括以下操作的指令:
将第一现有用户与企业账户相关联,其中所述企业账户与消息传送应用服务器分开。
10.如权利要求7所述的系统,其中所述第一消息传送应用服务器与Messenger应用、即时消息传送软件、移动文本和语音消息传送通信服务、Messenger即时消息传送应用、Messenger消息传送应用或SKYPE视频呼叫应用中的一个相关联,其中第二消息传送应用服务器与Messenger应用、即时消息传送软件、移动文本和语音消息传送通信服务、Messenger即时消息传送应用、Messenger消息传送应用或SKYPE视频呼叫应用中的一个相关联,其中第一消息传送应用服务器与第二消息传送应用服务器不同,其中第一HTTPpost调用消息的内容的至少一部分从第一移动设备被发送到第一消息传送应用服务器,并且其中第二HTTP post调用消息的内容的至少一部分从第二移动设备被发送到第二消息传送应用服务器。
11.如权利要求7所述的系统,其中第一HTTP post调用消息包括第一自然语言交互,并且其中第二HTTP post调用消息包括第二自然语言交互。
12.如权利要求7所述的系统,其中来自第一HTTP post调用消息、第二HTTP post调用消息、所述响应、第一消息传送应用服务器、第二消息传送应用服务器、第一现有用户和第二现有用户中的至少一个或多个的信息被包含在会话中。
13.一种包括用于将多个消息与用户相关联的指令的非瞬态机器可读存储介质,所述指令当由一个或多个处理器执行时,使所述一个或多个处理器:
由与统一资源标识符URI相关联的机器人服务器接收第一超文本传输协议HTTP post调用消息,其中第一HTTP post调用消息与第一用户相关联并且使用第一消息传送应用从第一消息传送应用服务器被引导到所述URI;
由所述机器人服务器接收第二HTTP post调用消息,其中第二HTTP post调用消息与第二用户相关联并且使用第二消息传送应用从第二消息传送应用服务器被引导到所述URI,并且其中第二消息传送应用服务器与第一消息传送应用服务器不同,并且其中第二消息传送应用与第一消息传送应用不同;
由所述机器人服务器解析第一HTTP post调用消息的内容以识别第一关键字;
由所述机器人服务器基于第一关键字和第一HTTP post调用消息的上下文从多个用户中识别第一现有用户;
由所述机器人服务器将来自第一HTTP post调用消息的信息与第一现有用户相关联;
由所述机器人服务器解析第二HTTP post调用消息的内容以识别第二关键字;
由所述机器人服务器基于第二关键字和第二HTTP post调用消息的上下文从所述多个用户中识别第二现有用户;
由所述机器人服务器确定第一HTTP post调用消息与第二HTTP post调用消息二者与相同用户相关联;
由所述机器人服务器将第二现有用户与第一现有用户链接;
由所述机器人服务器将来自第二HTTP post调用消息的信息与第一现有用户相关联;以及
由所述机器人服务器基于来自第一HTTP post调用消息、第二HTTP post调用消息和第一现有用户中的至少一个或多个的信息,生成对第二HTTP post调用消息的响应。
14.如权利要求13所述的非瞬态机器可读存储介质,其中使用第一消息传送应用服务器来发送对第二HTTP post调用消息的响应。
15.如权利要求13所述的非瞬态机器可读存储介质,还包括指令,该指令当由所述一个或多个处理器执行时,使所述一个或多个处理器:
将第一现有用户与企业账户相关联,其中所述企业账户与消息传送应用服务器分开。
16.如权利要求13所述的非瞬态机器可读存储介质,其中第一消息传送应用服务器与Messenger应用、即时消息传送软件、移动文本和语音消息传送通信服务、Messenger即时消息传送应用、Messenger消息传送应用或SKYPE视频呼叫应用中的一个相关联,其中第二消息传送应用服务器与Messenger应用、即时消息传送软件、移动文本和语音消息传送通信服务、Messenger即时消息传送应用、Messenger消息传送应用或SKYPE视频呼叫应用中的一个相关联,其中第一消息传送应用服务器与第二消息传送应用服务器不同,其中第一HTTP post调用消息的内容的至少一部分从第一移动设备被发送到第一消息传送应用服务器,并且其中第二HTTP post调用消息的内容的至少一部分从第二移动设备被发送到第二消息传送应用服务器。
17.如权利要求13所述的非瞬态机器可读存储介质,其中来自第一HTTP post调用消息、第二HTTP post调用消息、所述响应、第一消息传送应用服务器、第二消息传送应用服务器、第一现有用户、和第二现有用户中的至少一个或多个的信息被包含在会话中。
18.一种包括用于执行如权利要求1-6中任一项所述的方法的部件的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662353007P | 2016-06-21 | 2016-06-21 | |
US62/353,007 | 2016-06-21 | ||
PCT/US2017/022919 WO2017222616A1 (en) | 2016-06-21 | 2017-03-17 | Internet cloud-hosted natural language interactive messaging system user resolver |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109076010A CN109076010A (zh) | 2018-12-21 |
CN109076010B true CN109076010B (zh) | 2021-05-28 |
Family
ID=58464637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780028692.2A Active CN109076010B (zh) | 2016-06-21 | 2017-03-17 | 互联网云托管的自然语言交互式消息传送系统用户解析器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10491547B2 (zh) |
EP (1) | EP3472979B1 (zh) |
JP (1) | JP6952060B2 (zh) |
CN (1) | CN109076010B (zh) |
WO (1) | WO2017222616A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109155748B (zh) * | 2016-06-21 | 2021-06-08 | 甲骨文国际公司 | 互联网云托管的自然语言交互式消息传送系统服务器协作 |
WO2017222616A1 (en) | 2016-06-21 | 2017-12-28 | Oracle International Corporation | Internet cloud-hosted natural language interactive messaging system user resolver |
US10498674B2 (en) | 2016-06-21 | 2019-12-03 | Oracle International Corporation | Internet cloud-hosted natural language interactive messaging system sessionizer |
JP6917446B2 (ja) | 2016-09-16 | 2021-08-11 | オラクル・インターナショナル・コーポレイション | 意図判断を有する、インターネットクラウドによってホストされた自然言語インタラクティブメッセージングシステム |
US10361975B2 (en) * | 2016-10-10 | 2019-07-23 | Microsoft Technology Licensing, Llc | Messaging bot selection in multi-bot chat sessions |
US11107141B1 (en) * | 2017-07-20 | 2021-08-31 | Wells Fargo Bank, N.A. | Bot-to-bot intelligence for transactions and interactions |
JP7081245B2 (ja) * | 2018-03-20 | 2022-06-07 | 富士フイルムビジネスイノベーション株式会社 | メッセージ提供装置、プログラム、及び表示制御方法 |
JP7063031B2 (ja) * | 2018-03-20 | 2022-05-09 | 富士フイルムビジネスイノベーション株式会社 | メッセージ提供装置、プログラム、及び表示制御方法 |
JP7073888B2 (ja) * | 2018-04-25 | 2022-05-24 | 富士フイルムビジネスイノベーション株式会社 | メッセージ提供装置及びプログラム |
EP3624136A1 (en) * | 2018-09-14 | 2020-03-18 | Koninklijke Philips N.V. | Invoking chatbot in a communication session |
US11301629B2 (en) | 2019-08-21 | 2022-04-12 | International Business Machines Corporation | Interleaved conversation concept flow enhancement |
US20230008868A1 (en) * | 2021-07-08 | 2023-01-12 | Nippon Telegraph And Telephone Corporation | User authentication device, user authentication method, and user authentication computer program |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752388A (zh) * | 2012-06-29 | 2012-10-24 | 百度在线网络技术(北京)有限公司 | 基于浏览器的交互系统、方法、浏览器和云端服务器 |
CN103944923A (zh) * | 2014-05-14 | 2014-07-23 | 沈文策 | 网络信息处理系统及方法 |
Family Cites Families (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2176165A1 (en) | 1995-05-19 | 1996-11-20 | Hosagrahar Visvesvaraya Jagadish | Method for querying incrementally maintained transactional databases |
US8903950B2 (en) | 2000-05-05 | 2014-12-02 | Citrix Systems, Inc. | Personalized content delivery using peer-to-peer precaching |
US7181492B2 (en) | 2000-10-17 | 2007-02-20 | Concerto Software, Inc. | Transfer of an internet chat session between servers |
US20020152463A1 (en) | 2000-11-16 | 2002-10-17 | Dudkiewicz Gil Gavriel | System and method for personalized presentation of video programming events |
US7096262B2 (en) | 2001-03-22 | 2006-08-22 | Intel Corporation | Apparatus and method for asymmetric electronic commerce transactions |
EP1393224A4 (en) | 2001-04-30 | 2005-10-05 | Goldman Sachs & Co | UNIVERSAL INTERFACE FOR A SYSTEM OF FINANCIAL EXCHANGES |
US7516208B1 (en) | 2001-07-20 | 2009-04-07 | International Business Machines Corporation | Event database management method and system for network event reporting system |
US7287057B2 (en) | 2001-11-15 | 2007-10-23 | International Business Machines Corporation | Accessing information using an instant messaging system |
US7225232B2 (en) | 2002-03-28 | 2007-05-29 | Nortel Networks Limited, | Using existing web-based information to generate responses to user queries |
US8856236B2 (en) | 2002-04-02 | 2014-10-07 | Verizon Patent And Licensing Inc. | Messaging response system |
US7565425B2 (en) | 2003-07-02 | 2009-07-21 | Amazon Technologies, Inc. | Server architecture and methods for persistently storing and serving event data |
US7277895B2 (en) | 2003-08-22 | 2007-10-02 | Ora International, Inc. | System and method of parsing a template for generating presentation data |
US7454469B2 (en) | 2003-12-22 | 2008-11-18 | International Business Machines Corporation | Method and system for instant messaging Bots specification using state transition methodology and XML |
US7496500B2 (en) | 2004-03-01 | 2009-02-24 | Microsoft Corporation | Systems and methods that determine intent of data and respond to the data based on the intent |
US7747601B2 (en) | 2006-08-14 | 2010-06-29 | Inquira, Inc. | Method and apparatus for identifying and classifying query intent |
US7464141B2 (en) | 2004-06-30 | 2008-12-09 | Scencera Technologies, Llc | Method and system for associating related messages of different types |
US8103723B1 (en) | 2004-10-07 | 2012-01-24 | Google Inc. | Message server that retains messages deleted by one client application for access by another client application |
US20060136298A1 (en) | 2004-12-16 | 2006-06-22 | Conversagent, Inc. | Methods and apparatus for contextual advertisements in an online conversation thread |
US7356567B2 (en) | 2004-12-30 | 2008-04-08 | Aol Llc, A Delaware Limited Liability Company | Managing instant messaging sessions on multiple devices |
US9497600B2 (en) | 2005-10-28 | 2016-11-15 | Hewlett Packard Enterprise Development Lp | Service chaining |
US20070174246A1 (en) | 2006-01-25 | 2007-07-26 | Sigurdsson Johann T | Multiple client search method and system |
US7503007B2 (en) | 2006-05-16 | 2009-03-10 | International Business Machines Corporation | Context enhanced messaging and collaboration system |
EP2055082A1 (fr) | 2006-08-22 | 2009-05-06 | France Telecom | Procédé de gestion d'une session de transfert sécurisée au travers d'un dispositif de translation d'adresse, serveur et programme d'ordinateur correspondants |
US9318108B2 (en) | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
US7996855B2 (en) | 2006-09-15 | 2011-08-09 | Oracle International Corporation | Personal messaging application programming interface for integrating an application with groupware systems |
US7921214B2 (en) | 2006-12-19 | 2011-04-05 | International Business Machines Corporation | Switching between modalities in a speech application environment extended for interactive text exchanges |
US8331351B2 (en) | 2007-01-05 | 2012-12-11 | International Business Machines Corporation | Communicating with session initiation protocol (SIP) application sessions using a message-oriented middleware system |
US7286661B1 (en) | 2007-05-01 | 2007-10-23 | Unison Technologies Llc | Systems and methods for scalable hunt-group management |
US8543565B2 (en) | 2007-09-07 | 2013-09-24 | At&T Intellectual Property Ii, L.P. | System and method using a discriminative learning approach for question answering |
US20100004004A1 (en) | 2008-07-02 | 2010-01-07 | William Browne-Swinburne | System and Method for Matching User Preferences to Places of Interest |
US8583810B2 (en) | 2008-01-04 | 2013-11-12 | Red Hat, Inc. | Session affinity cache and manager |
US20090234924A1 (en) | 2008-03-14 | 2009-09-17 | Microsoft Corporation | Automatic Association of Messages with Conversations |
US8238891B1 (en) | 2008-05-01 | 2012-08-07 | Wendy W. Tam | Method and system for interactive delivery of data content to mobile devices |
US8260637B2 (en) * | 2008-10-03 | 2012-09-04 | The Curators Of The University Of Missouri | System and method for linking a web-based resource with an electronic medical record |
US9858925B2 (en) | 2009-06-05 | 2018-01-02 | Apple Inc. | Using context information to facilitate processing of commands in a virtual assistant |
US8554567B2 (en) * | 2009-08-21 | 2013-10-08 | Voxeo Corporation | Multi-channel interactive self-help application platform and method |
US8948057B2 (en) | 2009-12-15 | 2015-02-03 | At&T Intellectual Property I, L.P. | Securing uniform resource identifier information for multimedia calls |
US8676565B2 (en) | 2010-03-26 | 2014-03-18 | Virtuoz Sa | Semantic clustering and conversational agents |
JP5343166B2 (ja) | 2010-05-27 | 2013-11-13 | 株式会社日立製作所 | 通信ネットワークを介してリモートのファイルサーバにファイルを転送するローカルのファイルサーバ、及び、それらのファイルサーバを有するストレージシステム |
US9361604B2 (en) | 2010-09-23 | 2016-06-07 | Avaya Inc. | System and method for a context-based rich communication log |
US8943147B2 (en) | 2010-12-15 | 2015-01-27 | International Business Machines Corporation | Sending a chat context to a recipient |
US20120173566A1 (en) | 2010-12-31 | 2012-07-05 | Quora, Inc. | Multi-functional navigation bar |
US8914446B2 (en) | 2011-04-05 | 2014-12-16 | Avaya Inc. | IM continuation across SIP sessions and across clients for point-to-point and multi-user chat |
US20130103686A1 (en) | 2011-10-21 | 2013-04-25 | Startup Productions, Llc | Method and apparatus for interest matching, discovery, communication and collaboration |
US8732810B2 (en) | 2011-10-27 | 2014-05-20 | Cellco Partnership | IP push platform and connection protocol in a push notification framework |
KR101402506B1 (ko) * | 2011-12-01 | 2014-06-03 | 라인 가부시키가이샤 | 인스턴트 메시징 어플리케이션을 이용한 대화형 정보제공 시스템 및 방법 |
WO2013089740A1 (en) | 2011-12-15 | 2013-06-20 | Intel Corporation | Evolving metadata |
US20150172228A1 (en) * | 2012-04-17 | 2015-06-18 | George Zalepa | Method and system for communicating information over a network |
WO2013155619A1 (en) | 2012-04-20 | 2013-10-24 | Sam Pasupalak | Conversational agent |
US20120296638A1 (en) | 2012-05-18 | 2012-11-22 | Ashish Patwa | Method and system for quickly recognizing and responding to user intents and questions from natural language input using intelligent hierarchical processing and personalized adaptive semantic interface |
US20140122618A1 (en) | 2012-10-26 | 2014-05-01 | Xiaojiang Duan | User-aided learning chatbot system and method |
US20140122083A1 (en) | 2012-10-26 | 2014-05-01 | Duan Xiaojiang | Chatbot system and method with contextual input and output messages |
KR20140054481A (ko) | 2012-10-26 | 2014-05-09 | 삼성전자주식회사 | 전자장치에서 메시지 대화를 위한 방법 및 장치 |
EP2929502A4 (en) | 2012-12-07 | 2016-06-01 | Greeneden Us Holdings Ii Llc | CHANNEL INTERACTIONS WITH CONTEXTUAL CONVERSION BETWEEN CHANNELS |
US9875494B2 (en) | 2013-04-16 | 2018-01-23 | Sri International | Using intents to analyze and personalize a user's dialog experience with a virtual personal assistant |
WO2014183035A1 (en) | 2013-05-10 | 2014-11-13 | Veveo, Inc. | Method and system for capturing and exploiting user intent in a conversational interaction based information retrieval system |
US20150039675A1 (en) | 2013-07-31 | 2015-02-05 | Microsoft Corporation | Messaging over http protocol for data exchange |
US9015730B1 (en) | 2013-12-17 | 2015-04-21 | International Business Machines Corporation | Natural language access to application programming interfaces |
JP2017517063A (ja) | 2014-04-24 | 2017-06-22 | バークレイズ バンク ピーエルシー | インスタントメッセージングシステムおよび方法 |
US9705832B2 (en) | 2014-08-27 | 2017-07-11 | Lenovo (Singapore) Pte. Ltd. | Context-aware aggregation of text-based messages |
US11651242B2 (en) * | 2014-08-27 | 2023-05-16 | International Business Machines Corporation | Generating answers to text input in an electronic communication tool with a question answering system |
US10116596B2 (en) | 2014-09-29 | 2018-10-30 | International Business Machines Corporation | Personalizing data system components and data sources as chatbots in a group chat session |
US20180302437A1 (en) | 2014-11-13 | 2018-10-18 | Cleafy S.r.l. | Methods of identifying and counteracting internet attacks |
US10437835B2 (en) | 2014-12-18 | 2019-10-08 | International Business Machines Corporation | Scoring attributes in a deep question answering system based on syntactic or semantic guidelines |
US9608975B2 (en) | 2015-03-30 | 2017-03-28 | Shape Security, Inc. | Challenge-dynamic credential pairs for client/server request validation |
US10606848B2 (en) * | 2016-04-11 | 2020-03-31 | Facebook, Inc. | Techniques for device configuration using messaging history information |
WO2017222616A1 (en) | 2016-06-21 | 2017-12-28 | Oracle International Corporation | Internet cloud-hosted natural language interactive messaging system user resolver |
CN109155748B (zh) | 2016-06-21 | 2021-06-08 | 甲骨文国际公司 | 互联网云托管的自然语言交互式消息传送系统服务器协作 |
US10498674B2 (en) | 2016-06-21 | 2019-12-03 | Oracle International Corporation | Internet cloud-hosted natural language interactive messaging system sessionizer |
JP6917446B2 (ja) | 2016-09-16 | 2021-08-11 | オラクル・インターナショナル・コーポレイション | 意図判断を有する、インターネットクラウドによってホストされた自然言語インタラクティブメッセージングシステム |
-
2017
- 2017-03-17 WO PCT/US2017/022919 patent/WO2017222616A1/en unknown
- 2017-03-17 EP EP17715307.9A patent/EP3472979B1/en active Active
- 2017-03-17 JP JP2018562347A patent/JP6952060B2/ja active Active
- 2017-03-17 CN CN201780028692.2A patent/CN109076010B/zh active Active
- 2017-03-17 US US15/462,737 patent/US10491547B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752388A (zh) * | 2012-06-29 | 2012-10-24 | 百度在线网络技术(北京)有限公司 | 基于浏览器的交互系统、方法、浏览器和云端服务器 |
CN103944923A (zh) * | 2014-05-14 | 2014-07-23 | 沈文策 | 网络信息处理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
US10491547B2 (en) | 2019-11-26 |
EP3472979A1 (en) | 2019-04-24 |
US20170366481A1 (en) | 2017-12-21 |
CN109076010A (zh) | 2018-12-21 |
WO2017222616A1 (en) | 2017-12-28 |
EP3472979B1 (en) | 2021-11-24 |
JP2019528495A (ja) | 2019-10-10 |
JP6952060B2 (ja) | 2021-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109155748B (zh) | 互联网云托管的自然语言交互式消息传送系统服务器协作 | |
CN109155749B (zh) | 用于将消息与会话相关联的方法和系统 | |
CN109076010B (zh) | 互联网云托管的自然语言交互式消息传送系统用户解析器 | |
EP3127008B1 (en) | Infrastructure for synchronization of mobile device with mobile cloud service | |
CN110612545B (zh) | 自学习自适应路由系统 | |
KR102288858B1 (ko) | 모바일 클라우드 서비스 아키텍처 | |
CN109074265B (zh) | 移动云服务的预先形成的指令 | |
US20170374010A1 (en) | Techniques for reliable messaging for an intermediary in a network communication environment | |
EP3245781A1 (en) | Recommended roster based on customer relationship management data | |
US20150339677A1 (en) | Customer insight hub for multi-channel customer engagement solutions | |
US20160036977A1 (en) | Dynamic selection of optimum customer engagement channel | |
EP3047630A1 (en) | Techniques for reliable messaging for an intermediary in a network communication environment | |
US10015120B2 (en) | Providing message delivery services between requestors and providers |
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 |