CN114730321A - 会话机器人的视觉设计 - Google Patents

会话机器人的视觉设计 Download PDF

Info

Publication number
CN114730321A
CN114730321A CN202080076950.6A CN202080076950A CN114730321A CN 114730321 A CN114730321 A CN 114730321A CN 202080076950 A CN202080076950 A CN 202080076950A CN 114730321 A CN114730321 A CN 114730321A
Authority
CN
China
Prior art keywords
author
robot
visual
action
authoring
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.)
Pending
Application number
CN202080076950.6A
Other languages
English (en)
Inventor
C·惠顿
S·韩
B·A·R·布朗
V·S·坎南
A·S·布朗
M·W·伊维玛
Y·基里亚缇
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN114730321A publication Critical patent/CN114730321A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04803Split screen, i.e. subdividing the display area or the window area into separate subareas

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

一种视觉机器人设计者显示具有视觉创作画布和特性窗格的用户接口。它还可以具有序列化的文件显示窗格。用户可以在用户接口中的任一用户接口上提供创作输入,并且视觉机器人设计者计算系统生成更新,并且在用户接口的其他部分上显示更新。

Description

会话机器人的视觉设计
背景技术
存在广泛多种不同类型的计算系统。一些计算系统运行被配置为与用户交互的应用。一些应用是用户设备的本地应用,而其他应用则由远程服务器架构(诸如,在云上)上的服务托管。
机器人是在广域网(诸如,互联网)上执行任务的软件应用。通常,部署机器人以实现用户以重复方式交互的接口。例如,会话机器人或聊天机器人通常接收来自用户的自然语言查询,并且通过采取动作或通过以自然语言响应用户来响应这些自然语言查询。设计并创作动态体验可能很困难。当人们设计并开发机器人时,这个过程可能会很繁琐、耗时,并且易于出错。
上述讨论仅仅提供给一般背景信息,并不旨在用作确定所要求保护的主题的范围的帮助。
发明内容
视觉机器人设计者显示具有视觉创作画布和特性显示部分的用户接口。它还可以具有序列化的文件显示窗格。用户可以在用户接口中的任一用户接口上提供创作输入,并且视觉机器人设计者计算系统生成更新并且在用户接口的其他部分上显示更新。
提供本发明内容是为了以简化形式介绍一系列概念,这些概念下文将在具体实施方式中进行进一步描述。本发明内容并非旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用作确定所要求保护的主题的范围的帮助。所要求保护的主题不限于解决背景技术中所提及的任何或所有缺点的实现。
附图说明
图1是视觉机器人设计者的一个示例的框图。
图2是示出了聊天机器人或会话机器人的一个示例的框图。
图3是示出了对话流的组件的一个示例的框图。
图4是示出了由视觉机器人设计者计算系统生成的设计者用户接口的一个示例的框图。
图5是示出了一个用户接口的特定示例的屏幕截图。
图6A和图6B(在本文中统称为图6)示出了图示了使用图1所图示的视觉机器人设计者计算系统执行的设计操作的一个示例的流程图。
图6C示出了将一个接口上的改变传播到另一接口的一个示例。
图7A是图示了用于将视觉元素添加到视觉创作画布的一个机制的屏幕截图。
图7B是与图7相似的用户接口的示例,但是它示出了对话管理致动器集。
图8A至图8G示出了可以在用户接口的特性窗格中生成以生成和配置触发器的用户接口的示例。
图8H、图8I和图8J示出了其中用户可以在正在被设计的机器人中创作触发处置的事件的用户接口的示例。
图8K是示出了触发器如何被配置的一个示例的流程图。
图9A至图9U示出了用于表示可以被添加到对话流的动作的动作节点的特性配置接口的示例。
图10是示出了机器人中触发器可以处置的事物列表的一个示例的屏幕截图。
图11示出了其中循环动作在视觉创作画布中被选择并且显示在特性窗格中的视觉机器人设计者计算系统的用户接口的一个示例。
图12A和图12B示出了视觉创作画布上的并且显示在JSON文件窗格中的视觉表示的JSON序列化的一个示例。
图13示出了可以从JSON序列化生成并且可以由计算系统处理以执行机器人操作的语言生成模板的一个示例。
图14是图示了视觉机器人设计者计算系统在接收并且处理视觉创作画布上的创作输入时的操作的一个示例的流程图。
图15A和图15B(本文中统称为图15)示出了图示了视觉机器人设计者计算系统在执行撤消/重做操作时的操作的流程图的一个示例。
图16是部署在云计算架构中的图15所图示的架构的框图。
图17是可以被用于先前图中所示的架构的计算环境的一个示例的框图。
具体实施方式
如上文所讨论的,设计和创作会话机器人或聊天机器人可以是困难的、耗时的,并且易于出错的。而且,会话本质上是动态的。对于开发人员而言,设计预测并且处理意外响应或中断的系统是困难的并且复杂的。这种类型的系统可以难以设想、沟通和调试/改进。因此,本讨论针对具有作者可以与之交互以设计机器人的逻辑流的视觉创作画布的视觉机器人设计者进行。自动生成并且可以显示代码。这为机器人设计提供了直观视觉接口。因此,具有不同程度编码专业知识的人员可以创作机器人。用于机器人设计的这种技术提高了机器人生成的效率。它还促进重复使用机器人组件,从而提高处理效率并且降低存储需求。因为机器人设计者非常直观,所以它也提高了设计准确性。
图1是计算系统架构100的一个示例的框图。架构100示出了生成接口104以用于作者(或用户)106进行交互的视觉机器人设计者计算系统102。视觉机器人设计者计算系统102还包括一个或多个处理器或服务器108、数据存储装置110、应用编程接口(API)112,并且它可以包括其他项114。在一个示例中,系统102还包括语言生成系统116、自然语言理解系统118,并且它可以包括其他项120,所有这些都耦合到API 112。应当指出,语言生成系统116、自然语言理解系统118和其他项120可以与视觉机器人设计者计算系统102分开,并且由API 112以广泛多种方式(诸如通过大区域网、局域网、近场通信网络、蜂窝通信网络或广泛多种其他网络其中的任一网络或网络组合)访问。另外,作者(或用户)106可以直接与用户接口104交互,或可以通过网络与视觉机器人设计者计算系统102交互,其中视觉机器人设计者计算系统102托管在远程服务器环境中。本文中设想了这些和其他架构。
在图1所图示的示例中,设计者用户接口104说明性地包括视觉创作画布122、特性窗格124、序列化的(例如,JSON)文件显示窗格126、用户接口控制逻辑127,并且可以包括其他项128。设计者用户接口104中的每个设计者用户接口说明性地包括允许作者106与用户接口交互以便在其上生成、删除和修改信息的功能。例如,视觉创作画布122可以具有允许作者106将元素拖放到创作画布122上以及从创作画布122移除视觉元素的拖放功能。特性窗格124可以具有作者106使用的文本框或作者106可以与之交互以配置特性的其他可编辑元素。序列化文件显示窗格126可以在视觉创作画布122上显示元素的序列化版本以及在窗格124上显示对应特性。序列化窗格126在本文中可以被称为JSON文件显示窗格126,但这仅作为示例。窗格126可以是可编辑的或以其他方式允许作者106交互。接口控制逻辑147检测作者106与接口104的交互,并且将交互的指示提供给API112。
数据存储装置110说明性地包括处于设计的各个阶段的机器人130至132集。它还可以包括其他项134。每个机器人(例如,机器人130)包括指示将由机器人130使用的语言元素的内容136。它还可以包括定义机器人130将如何运行的流/逻辑138。每个机器人130还可以包括撤消/重做堆栈140(或它们可以存储在其他地方),以便作者106可以在机器人130正在被设计时在机器人130的不同功能版本之间切换。每个机器人130也可以包括广泛多种的其他项142。
应用编程接口112说明性地促进计算系统102中的各种项之间的通信,并且它也可以实现机器人设计功能113。作为一个示例,机器人设计功能113在API 112中示出,但它(或它的一部分)也可以驻留在其他地方。机器人设计功能113可以包括机器人模式(或逻辑)144。作者106通过设计者用户接口104的输入允许作者106根据机器人模式144生成机器人。机器人设计功能113还说明性地包括代码翻译器/生成器146、平面视图生成器147、机器人验证逻辑148、机器人存储逻辑149、撤消/重做逻辑150、部署逻辑151,它可以包括其他项152。
代码翻译器/生成器146说明性地接收设计者用户接口104的不同部分上的输入并且生成更新,然后将其显示在设计者用户接口104的其他部分上。下文对其一些示例进行描述。例如,如果作者106将节点(或其他视觉元素)添加到视觉创作画布122,则逻辑127检测该元素,并且将该元素的指示提供给API 112。代码翻译器/生成器146生成代码,或将该视觉元素翻译为可以在JSON文件显示窗格126上显示的序列化表示。同样,如果作者106编辑显示窗格126上的JSON序列化,例如,以向机器人添加动作,则代码翻译器/生成器146说明性地生成对应于动作的视觉元素,并且以对应于JSON文件显示窗格126上显示的经编辑的序列化的方式将其放置在视觉创作画布122上。对于作者106在特性窗格104中所做的修改也是如此。如果作者106修改特性窗格124中的特性,则代码翻译器/生成器146基于对特性的修改来生成信息以更新视觉创作画布122和JSON文件显示窗格126。同样,如果视觉表示或JSON文件被修改,则修改也会传播到特性窗格124。
撤消/重做逻辑150说明性地检测用户与撤消/重做致动器的交互(下文进行更详细的描述)并且允许用户在正在被设计的机器人应用的不同功能状态之间切换。因此,它控制数据存储装置110中的撤销/重做堆栈140的内容,以允许用户以这种方式来回切换。
由于机器人由作者106设计,所以机器人验证逻辑148说明性地在该机器人上执行验证。它可以显示那些验证的结果,所以作者106可以根据需要来校正机器人应用。
此外,如下文所更详细描述的,当设计或创作机器人时,作者106可以提供文本输入的示例,当机器人最终用户输入提示时,该文本输入要稍后在运行时响应于该提示而被识别。在另一示例中,当满足指定条件时,作者106可以提供可以由机器人输出的响应的文本示例。在这种情况下,语言模型构建控制逻辑145可以将文本提供给语言生成系统116和/或自然语言理解系统118。语言生成系统116(单独或与自然语言理解系统118组合)可以是任何形式的语言生成系统(诸如,基于人工智能、或其他模型),并且可以基于作者106所提供的文本示例来生成附加示例输入和/或输出或其模型。这样,正在被设计的机器人在识别和自然响应最终用户方面将具有更大的灵活性,而作者106无需写出所有可能预期对话输入或输出。
自然语言理解系统118可以是广泛多种不同类型的自然语言理解系统中的任一类型的自然语言理解系统。它可以是基于规则的系统,也可以是基于使用人工智能和/或机器学习而生成的模型的系统。在一个示例中,作者106可以简单地选择需要哪种类型的自然语言理解系统(或哪个特定系统)来处理正在被设计的机器人中的自然语言,并且API 112说明性地将机器人功能连接到那个特定自然语言理解系统118。当部署机器人时,它使用所选择的自然语言理解系统。
平面视图生成器147生成作者106在上下文中易于读取并且可以容易搜索、翻译等的在机器人中使用的语言元素(单词、数字、其他字母数字字符或元素等)的视图。这将在下文进行更详细的描述。机器人存储逻辑149与数据存储器装置110交互以存储机器人,并且部署逻辑151可以用于将机器人部署到期望信道。
图2是更详细地图示了机器人的一个示例的简化框图。图2示出了已经设计了聊天/会话机器人130后的该聊天/会话机器人130的示例。在该示例中,机器人130具有一个或多个触发器154。触发器被配置为响应诸如来自最终用户的输入、运行中对话中的事件或其他事物的触发事件,下文关于图8A至图8G和图10对触发事件中的一些触发事件进行描述。当对应于触发器的触发事件发生时,该触发器导致一些操作发生。例如,触发器可以被配置为(在其触发事件发生时)启动对话流或使得机器人响应于为其配置的触发事件而执行其他操作。触发器154可以被配置为响应于意图156或广泛多种其他事件158中的任一事件。当机器人130被触发器154中的一个触发器提示时,它说明性地启动一个或多个对话流160至162。下文关于图3对对话流的一个示例进行更详细的描述。对话流说明性地是可中断的,因此它们可以动态响应最终用户交互(或其他触发条件)的改变。也就是说,机器人130可以响应于所检测的改变而启动不同的对话流。机器人130也可以具有其他项164。
图3是更详细地示出了对话流154的一个示例的框图。可以在图3中看出,对话流154说明性地包括语言元素内容文件166,该语言元素内容文件166包括用于对话的输入和输出的文本表示。文件166也可以包括其他字母数字内容或其他符号。对话流154还说明性地包括流/逻辑文件168,该流/逻辑文件168定义机器人的流或逻辑以及它如何使用语言内容文件166。
流/逻辑文件168可以包括触发器170。它们可以包括广泛多种动作172中的任一动作,并且它们可以包括其他项174。动作是机器人执行的步骤。可以包括在对话流154的流/逻辑文件中的动作172的一些示例包括开始对话动作176,提示178,发送响应动作180,分支动作182,循环动作184,编辑/重复/替换对话动作186,初始化/设置/删除特性动作188,发出跟踪事件以供调试的动作190,结束对话动作192,HTTP请求动作194,以及广泛多种其他动作196中的任一动作。下文对动作172中的许多动作172进行更详细的描述。
然而,简而言之,开始对话动作176说明性地开始机器人130中的特定对话。提示动作178提示机器人的用户输入。发送响应动作180响应于用户输入或其他方式而发送响应。分支动作182定义在机器人的流或逻辑中要采取不同分支的条件。循环动作184控制机器人基于循环准则来循环各种动作或项。编辑/重复/替换对话动作186使得对话被编辑、重复或替换为不同对话。初始化/设置/删除特性动作188使得动作或其他元素的特性被初始化、设置为特定值、或被删除。发出跟踪事件以用于调试的动作190说明性地发出允许开发者通过机器人流/逻辑168跟踪哪里正在发生处理的跟踪事件。
结束对话动作192说明性地结束对话。HTTP请求动作194允许机器人向外部服务或另一外部计算系统发出HTTP请求。
触发器170和动作172中的每个触发器和动作可以具有可以由作者106配置的特性集。因此,当在视觉创作画布122上选择触发器或动作时,其对应特性值显示在特性窗格124中,可以在在特性窗格124中对这些特性值进行编辑。此外,当在视觉创作画布122上选择该触发器170或动作172时,该触发器170或动作172的JSON序列化显示在JSON文件显示窗格126上。
图4是更详细地示出了设计用户接口104集的一个示例的框图。在图4所示的示例中,设计用户接口104示例性地包括菜单窗格200、导航窗格202、视觉创作画布122、选择驱动特性窗格124和JSON文件显示窗格126。菜单窗格200可以包括多个不同的菜单选择器204至206。导航窗格202可以包括多个对话选择器208至210。当作者106自动所选择的对话选择器208至210中的一个对话选择器时,作者被导航到对应的对话,该对应对话显示在视觉创作画布122、特性窗格124和JSON文件窗格126上。然后,作者106可以致动多种不同致动器212至220中的任一致动器以采取用于在所选择的对话上执行设计操作的动作。在图4所示的示例中,那些致动器包括添加意图致动器212、删除意图致动器214、示出意图致动器216、新触发致动器218,并且它可以包括其他致动器220。导航窗格202还可以说明性地包括新对话致动器222。当作者106致动新对话致动器222时,向作者提供接口,该接口允许作者106使用视觉创作画布122、选择驱动特性窗格124和/或JSON文件窗格126开始设计新对话。导航窗格202还可以包括广泛多种其他致动器226中的任一致动器。
在图4所示的示例中,视觉创作画布122显示对应于机器人228的视觉元素。机器人228示例性地包括对应于在机器人228中开始对话的触发器的触发器节点230。机器人228包括多个不同对话节点230至232,该多个不同对话节点230至232可以是不同对话中的动作节点、同一对话中的不同动作节点等。节点230、232和234示例性地通过链接236至238彼此链接。
在一个示例中,链路236和238中的致动器可以被致动以便在两个链接节点之间插入或添加节点。例如,如果用户希望在对话节点232和234之间添加对话节点,则用户可以说明性地致动链接238并且显示允许用户添加节点的菜单。在一个示例中,菜单由API 112中的机器人模式144定义。因此,接口控制逻辑147访问机器人模式144以显示用户可以生成的用于在节点232和234之间插入的不同可能动作。机器人228也可以包括广泛多种其他节点和/或链路240。
选择驱动特性窗格124说明性地显示在视觉创作画布122上选择的节点的特性。这些特性由图4中的框242指示。特性可以包括诸如节点的名称244、在节点处执行的动作的描述246以及所选择的节点的各种其他特性248的事物。在一个示例中,特性242中的一些或所有特性242可以由作者106编辑。例如,它们可以使用点击设备来创作然后通过键入或以其他方式编辑该特性以选择特性。
JSON文件窗格126说明性地包括显示在视觉创作画布122上的机器人的JSON文件的显示。这由图4的框图中的框250指示。JSON文件只是一个示例;在其他方面中,所显示的文件可以是正在在视觉创作画布122上显示的机器人的另一序列化或其他表示。另外,在一个示例中,当用户选择在视觉创作画布122上显示的节点(或其他视觉元素)中的一个节点时,然后更新选择驱动特性窗格124和JSON文件窗格126以显示对应于所选择的视觉元素的信息。反之亦然。例如,在作者106选择显示在窗格126中的JSON文件的一部分的情况下,则在视觉创作画布122上选择、突出显示或以其他方式视觉可感知的对应的视觉元素,并且在特性窗格124上显示对应的特性。
图4还示出了在一个示例中用户接口104包括重做/撤消致动器252(其可以备选地是分开的致动器)和启动机器人致动器254。如下文所更详细描述的,当作者106致动重做/撤消致动器252时,用户可以在正在被设计的机器人的不同功能状态之间导航。功能意味着机器人将运行,尽管它可能不会按照作者106的预期运行。同样,当作者106致动启动机器人致动器254时,启动正在被设计的机器人,以便因为该机器人被部署(诸如,以测试机器人等),所以作者106可以与该机器人交互。
图5是表示示例设计者用户接口104的用户接口显示的图示。图5中的示例示出了菜单窗格200、导航窗格202、视觉创作画布122和选择驱动特性窗格124。图5所示的项中的一些项与图4所示的项相似,它们的编号也相似。
在图5所示的示例中,菜单窗格200包括允许要显示在接口104上的与机器人相对应的不同信息的菜单选择器。例如,设计流致动器256可以由作者106选择以显示诸如图5所示的信息的信息。视觉创作画布122示出了对应于所选择的机器人的设计流的视觉元素。菜单窗格200可以包括“测试会话”致动器258,该“测试会话”致动器258可以被致动以测试正在被设计的机器人的会话部分。菜单窗格200包括“机器人说”致动器260和“用户说”致动器262。作者可以选择这些致动器以在窗格122中分别显示机器人输出的对话和机器人的用户预期的对话。“评估性能”致动器264可以被致动以根据测试数据评估机器人的性能,并且设置致动器266可以被致动以显示并修改设置。
导航窗格202示例性地具有多个不同的致动器,关于图4对其中一些致动器进行了讨论。
视觉创作画布122示出了对应于正在被设计的机器人的视觉元素。所图示的视觉元素包括触发器节点268、分支节点270和开始对话节点272。节点268和270通过链接274而被连接,并且节点270和272通过分支链接276而被连接。图5还示出了触发器节点268表示由反映用户意图(用户希望做什么)的特定最终用户输入激活的触发器。意图可以用作激活触发器的触发事件。在自然语言理解系统118中,意图可以映射到由机器人最终用户输入(说出、键入或以其他方式)的话语。例如,用户可以说出或键入短语或话语,诸如“显示我的代办事项(to do)清单”。最终用户输入提供给自然语言理解系统118(如图1所示),该自然语言理解系统118将返回所识别的意图。该意图说明性地映射到一个或多个不同的触发器,该一个或多个不同的触发器可以包括触发器268。当机器人被部署时,触发器268将使得对应节点中的对话运行。
分支节点270表示分支if/else(如果/其他)动作。这允许作者106将分支引入机器人逻辑流,使得如果满足某个条件,则逻辑流将遵循一个分支,并且如果不满足该条件,则遵循不同分支。
开始对话节点272对应于在正在被设计的机器人中开始对话的动作。在所图示的示例中,当机器人被部署并且处理到达节点272时,对应于“添加待办事项”动作的对话将开始。这将说明性地通过允许机器人最终用户将项添加到用户的待办事项列表的体验来导航机器人最终用户。
可以在图5中看出,作者106已经选择了分支节点270。因此,分支节点270的特性显示在选择驱动特性窗格124中。因此,窗格124包括分支节点的名称244,在这种情况下,为“分支:if/else”。它还说明性地包括对在节点246处执行的动作的描述。在这种情况下,描述读作:“有条件地判定接下来要执行哪个动作的动作”。它还包括附加特性248。附加特性248包括如框280所指示的条件的描述。在一个示例中,作者106可以在文本框中键入以定义条件。在另一示例中,作者106可以从下拉菜单等中选择条件。
特性248还定义如果条件280为真或假则要采取的动作。因此,窗格124包括“真分支”致动器282和“假分支”致动器284。如果条件为真,则作者106可以选择致动器282来定义要执行的动作。如果条件280为假,作者106可以选择致动器284来定义执行的动作。在一个示例中,作者106可以选择致动器282和284以将多个动作添加到真分支和/或假分支中。
当作者106在真分支或假分支中定义动作时,对应于那些动作的视觉元素被添加到视觉创作画布122上的链接276中的对应分支中。
图5还图示了将条件和节点添加到机器人的其他方式。链接274、276和277中的每个链接都具有对应“添加”致动器,该“添加”致动器可以被致动以添加动作(或节点)。链接274包括添加致动器286。当它被作者106致动时,向作者106提供了标识要添加到设计流中的另一动作(或节点)的功能(诸如,下拉菜单或其他功能)。链路276在真分支中具有添加致动器288,在假分支中具有添加致动器290,在分支之后具有添加致动器292。因此,如果作者106选择了致动器288,则作者106可以在真分支中添加节点。除了在特性窗格124中选择致动器282之外或作为其备选方式,这是将功能添加到真分支的另一方式。同样,当作者106选择添加致动器290时,作者可以在假分支中将动作添加到设计流中。当作者选择致动器292时,作者106可以将动作添加到真分支和假分支下方的设计流中。
此外,当作者在链接277中选择添加致动器294时,作者可以将动作(或节点)添加到节点272之后的设计流。
图6A和图6B(在本文中统称为图6)示出了图示了使用视觉机器人设计者计算系统102的设计体验的整体操作的一个示例的流程图。首先,假设作者106提供输入调用、或启动、视觉机器人设计者计算系统102,以便设计、创作或修改机器人。检测调取视觉机器人设计者的输入由图6的流程图中的框300指示。然后,视觉机器人设计者计算系统102检测指示作者106希望开始执行机器人设计操作的作者输入。这由框302指示。例如,作者106可以在菜单窗格200上提供致动设计流致动器256的输入(如图5所示)。作者106还可以在导航窗格202上提供选择要修改的特定机器人或选择致动器以生成新机器人等的输入。检测菜单和导航窗格上的输入由图6的流程图中的框304指示。输入可以指示作者106希望开始设计新机器人/对话306。这可以通过作者选择致动器来开始设计新机器人或新对话来完成。备选地,输入可以指示作者106希望加载现有机器人或对话以进行编辑308。所检测的输入也可以指示广泛多种其他项,如框310所示。
作为响应,视觉机器人设计者计算系统102访问模式144以获取要生成的接口的表示,并且说明性地生成并且暴露设计者用户接口104。这由框312指示。如上文所讨论的,设计者用户接口104也可以包括菜单和导航窗格200、202、视觉创作画布122、选择驱动特性窗格124、JSON表示窗格126、以及广泛多种其他接口元素,如框314所示。
然后,设计者用户接口104检测在接口的第一部分上的作者输入。这由图6的流程图中的框316指示。例如,作者可以在视觉创作画布122、选择驱动特性窗格124、JSON文件窗格126或用户接口的另一部分上提供输入。作者可以提供生成或修改触发器和/或意图的输入(如框318所示)以及修改另一对话节点的输入(如框320所示)。作者106可以提供将机器人配置为使用特定外部或远程语言处理系统(诸如,语言生成系统116和/或自然语言理解系统118)的输入。这是机器人将在运行时期间使用的语言处理系统。该创作输入由框321指示。通过示例,作者106可以配置由画布122上的节点表示的使用自然语言理解的动作。因此,作者106可以选择在执行该动作期间要使用的系统。作者106还可以提供另一设计输入,如框322所示。
当用户在设计者用户接口104的一个部分上提供输入时,用户接口的该部分(或接口控制逻辑127)调用指示输入的API 112。然后,API 112使用模式144来确定应当如何将更新反映在其他设计者用户接口104上并且在设计者用户接口104的其他部分上生成更新。基于接口的第一部分的所检测的设计输入来生成对接口的其他部分的更新由图6的流程图中的框324指示,并且下文参考图6C进行更详细的描述。
简而言之,通过示例,作者106可以编辑显示在JSON文件显示窗格126上的JSON字符串。作为响应,API 112使用访问模式144的代码翻译器/生成器146来标识应当如何在其他接口104中表示该编辑的JSON字符串。它使用模式144中的信息来生成对视觉创作画布122和特性窗格124的更新。这由图6的流程图中的框326指示。当作者106对视觉创作画布122做出改变时,API 112使用代码翻译器/生成器146来访问模式144并且更新特性窗格124和JSON文件显示窗格126以反映该更新。这由框328指示。当作者106对特性窗格124中显示的特性进行改变时,API 112使用代码翻译器/生成器146来访问模式144并且生成对视觉创作画布122和JSON文件显示窗格126的更新。这由图6的流程图中的框330指示。API 112可以检测对设计用户接口104的一部分的改变,并且也可以以其他方式更新其他部分,并且这由图6的流程图中的框332指示。
然后,设计者用户接口104和/或API 112基于所检测的用户设计输入来执行任何其他处理步骤。这由图6的流程图中的框334指示。例如,当作者106在使用期间从机器人的最终用户输入机器人所期望的语言或输入要由机器人输出的语言时,则平面视图生成器147说明性地生成“语言内容的平面视图”。在一个示例中,这是在相对于彼此的上下文中存储机器人响应和预期用户输入以便可以查看它们的文件。这可以用于搜索和替换各种术语、本地化(例如,翻译为不同的语言或针对单个语言的本地化)或其他原因。生成语言内容的平面视图由图6的流程图中的框336指示。
作者106还可以选择要由机器人使用的特定语言生成系统116或自然语言理解系统118。作为响应,对特定识别器或语言生成器的引用添加到机器人逻辑中,以便在部署机器人后在运行时期间访问该引用。这由图6的流程图中的框338指示。
此外,在作者106提供要由机器人生成的预期输入或输出的情况下,可以生成动态响应或输入。例如,作者可能会提供机器人最终用户预期数目相对较少的响应示例。作为响应,API 112中的语言/模型构建控制逻辑145可以将该信息提供给语言生成系统116,该语言生成系统116将在使用期间生成附加预期响应或可以用于标识预期响应的模型。同样,当作者向最终用户提供示例机器人响应时,API 112中的逻辑145说明性地将该信息提供给语言生成系统116,该语言生成系统116生成机器人可以使用的附加对话示例。这可能很有用,因此机器人不会在每次到达机器人的逻辑流中的特定点时简单重复相同短语。相反,机器人可以从多个不同的输出中进行选取,使得输出就不会变得重复。例如,这可以通过引入循环动作来完成,该循环动作循环不同的备选语言表达集。同样,可以插入条件,以使响应于特定条件(例如,特定日期,诸如假期),可以使用不同响应。语言生成系统116可以在为机器人生成的预期输入或输出生成附加示例或模型时还利用自然语言理解系统118。通过使用不同的表达式来避免冗余或基于其他条件或准则来处理动态响应由图6的流程图中的框340指示。响应的变化可以存储并引用在语言生成模板中,该语言生成模板在下文进行更详细的描述。
语言/模型构建控制逻辑148也可以以其他方式与语言生成系统116和/或自然语言理解系统118交互。在作者106已经致动撤消/重做致动器252中的一个致动器的情况下,撤消/重做逻辑150执行撤消/重做处理以允许作者106在机器人应用的操作版本之间切换。这由图6的流程图中的框342指示,并且再问参考图15A和图15B对其进行更详细的描述。
只要用户106继续向设计者用户接口104提供设计输入,处理就返回到框316。这由图6的流程图中的框346指示。
当作者106希望结束视觉机器人设计操作时,作者将提供对该效果的输入,诸如点击关闭致动器。这由框348指示。在这种情况下,机器人存储逻辑149说明性地将机器人存储在数据存储装置110中以用于进一步设计和/或部署。这由框350指示。当检测到部署输入时,如框352所示,机器人部署逻辑151标识要部署机器人的信道。这由框354指示。这可以例如由作者106或以其他方式提供。然后,逻辑151将机器人推送到所标识的信道,并且根据需要将其在功能上附加到该信道。这由框356指示。例如,机器人可以部署在社交媒体信道358、网页会议信道360或广泛多种其他信道362中的任一信道中。
还应当指出,在机器人设计者体验期间,机器人验证逻辑148可以执行验证操作,因为作者106存储改变、修订或其他设计输入。因此,机器人验证逻辑148可以标识无效表达、丢失的逻辑元素、或其他验证问题,并且在设计体验期间、当作者尝试存储或运行机器人时或以其他方式将它们呈现给作者106。
图6C示出了如何将对接口104中的一个接口的改变传播到其他接口104的一个示例。传播被描述为检测对视觉创作画布122的作者改变并且将改变传播到其他接口。然而,无论在何处检测到作者改变,都会发生相同类型的传播。
首先,假设作者106通过添加给定节点类型的节点来对视觉创作画布122进行改变。这由框301指示并且节点类型由图3中的框303指示。6C。接口控制逻辑127进行API调用以将其传达给代码生成器/翻译器146。这由框305指示。
然后,代码生成器/翻译器146访问可以是SDK的机器人模式144,以获取作者106已经添加的节点的模式定义。这由框307指示。模式定义可以包括节点的特性309和其他项311。模式定义的部分示例在框313处示出。模式定义313被提供给代码翻译器/生成器146,该代码翻译器/生成器146序列化定义,并且将正在被编辑的对话中的经过序列化的定义置于数据存储装置110中。这由框315指示。代码翻译器/生成器146可以输出指示序列化也已经成功的确认。这由框317指示。
然后,代码翻译器/生成器146将机器人应用状态的更新提供给设计者用户接口104,或提供给可以正在实现设计者用户接口104的客户端系统。然后,接口控制逻辑127基于从API 112中的代码翻译器/生成器146接收的经过更新的机器人应用状态来将改变传播到窗格124和126。
图7A示出了如何可以将视觉元素(例如,节点)添加到视觉创作画布122(以及因此可以如何将触发器和动作添加到正在被设计的机器人)的一个示例。可以在图7A中看出,触发器节点370已经被添加到画布122。触发器节点已经被配置为当检测到对正在由机器人执行的会话进行的会话更新时被激活。此外,已经添加了“发送响应”节点372。节点370和372之间的链接374包括“添加”致动器376,该“添加”致动器可以由作者106致动,以便将节点或其他视觉元素添加到节点372和374之间的画布122。它还可以在图7A中看出,作者106已经选择了添加致动器376。接口控制逻辑127检测该致动,并且在API 112中检测到对机器人模式(或逻辑)144的致动的指示。逻辑144标识当选择致动器376时可以采取的操作。它将所标识的动作提供给接口控制逻辑127,该接口控制逻辑127生成下拉菜单378,该下拉菜单378具有可以被选择为以在节点370和372之间添加项的多个致动器。
在图7A所示的示例中,当被选择时,致动器允许作者106在节点370和372之间插入动作。致动器380允许作者106插入发送响应动作180(如图3所示)。致动器382允许作者106插入用于询问问题的功能(动作)。致动器384允许作者106插入分支动作182或循环动作184。致动器386允许作者106插入对话管理动作。致动器388启用特性管理动作。致动器390允许作者106插入功能(或动作)以进行HTTP请求194或执行访问外部资源的其他动作,并且致动器392允许作者106插入发出跟踪事件功能(或动作)190或其他调试选项。
图7A示出了作者106已经选择了“创建条件”致动器384。作为响应,接口控制逻辑127检测到该致动,并且向API 112中的逻辑144提供该致动的指示。逻辑144向接口控制逻辑127提供指示可以采取的动作的类型,并且接口控制逻辑127显示具有多个动作的窗格394,这些动作包括插入分支或循环逻辑。致动器396允许作者106插入分支:if/else动作。致动器398允许作者106插入分支切换(多个选项)动作。致动器400允许作者106插入循环:对于每个项动作,并且致动器402允许作者106插入循环:对于每个页面(多个项)动作。如果作者106选择致动器396至402中的一个致动器,则在画布122上的节点370和372之间显示对应显示元素。同时,特性窗格124和JSON文件显示窗格126也被更新,如上文所讨论的。在一个示例中,作者106可以折叠或隐藏不同窗格以仅查看他或她希望看到的窗格。
图7B类似于图7B,不同之处在于,对话管理致动器386被致动以示出作者106可以用来操纵会话流的多个不同致动器401。这些致动器可以包括开始新对话、结束当前对话、取消所有对话、结束对话回合、重复当前对话,以及替换当前对话。其中一些下文进行更详细的描述。
图8A至图8G示出了可以显示在特性窗格124上并且允许作者106在逻辑或对话流中为正在被设计的机器人配置不同类型的触发器的用户接口显示。
在一个示例中,当触发器插入机器人时,它可以处理各种项。作者106可以通过定义触发器将处理的特定项来配置它。因此,图8A示出了当触发器要添加到机器人时可以显示在特性窗格124中的用户接口显示404。显示404指示它是“创建触发器”显示并且询问作者106该触发器要处理什么。然后,它提供作者106可以致动该以选择触发器要处理的特定项的致动器406。用户接口显示器404还包括取消致动器408和下一致动器410,它们可以分别用于取消触发器创建或导航到下一步骤。
图8B类似于图8A,不同之处在于,它示出了用户现在已经选择了致动器406,从而显示了下拉菜单412。下拉菜单412指示可以由作者106选择以配置正在被创建的触发器的项的数目。下拉菜单412指示由模式144定义的触发器可以响应的不同项。项可以包括意图(已知或未知)、对话事件、活动类型和自定义事件以及其他项。
当机器人最终用户提供自然语言输入时,可以标识意图。自然语言输入可以提供给自然语言理解系统118,该自然语言理解系统118可以将该自然语言输入映射到意图,该意图指示用户希望使用机器人完成什么。当自然语言理解系统没有与用户所提供的自然语言输入相匹配的特定意图时,就会遇到未知意图。对话事件可能由机器人或其他机器人中的对话引发。事件可以是生成可以被删除的输出的任何处理步骤。活动类型指示由用户或机器人执行的动作,并且自定义事件是可以由作者106自定义的事件。这些只是触发器可以处置的项类型的示例。
图10是如由模式144定义的触发器可以处置的项(或可以激活触发器的触发事件)列表的一个示例。图10示出了每个项具有名称、描述、用作触发事件的基本对话事件、以及预构建到逻辑144中的任何条件。当创建某些对话组件时,添加预构建条件。一个示例是在接收到会话更新事件时。例如,该事件可以用于一旦用户加入会话就会欢迎他们。然而,需要以某种方式配置触发器才能实现该目的。由于这是“HandleConversationUpdate(处置会话更新)”触发器的常见用例,所以当创建触发器时,也会自动创建评价用户何时加入会话的必要条件。示例条件可以如下:
条件:toLower(turn.Activity.membersAdded[0].name)!=′bot′
图10还示出了对话事件触发器可以被配置为响应或处理的特定对话事件的示例列表。
图8C类似于图8B,不同之处在于,用户已经从下拉菜单412中选择“意图”项。因此,它显示在致动器框406中。一旦已经选择了意图,就提示作者106录入要处理的意图的名称。这可以在文本框414中提供。
图8D类似于图8C,不同之处在于,可以看出用户已经从下拉菜单412中选择了“对话事件”项作为触发器要处理的项。作为响应,提示作者106选择对话事件。因此,作者106可以选择致动器416以向其提供可以选择的各种对话事件的另一下拉菜单。它们由模式144确定,并且对话事件集的一个示例如图10所示。
图8E类似于图8D,不同之处在于,代替选择对话事件,作者106选择了活动类型。作为响应,向作者106提供用于指定触发器要处理的特定活动的致动器418。活动类型的一些示例如图10所示。
图8F类似于图8E,不同之处在于,作者106已经选择了未知意图作为触发器要处理的项。图8G类似于图8F,不同之处在于,用户已经选择了自定义事件作为触发器要处理的项。
图8H至图8J示出了可以生成以允许作者106向机器人添加意图的用户接口104。如上文所提及的,意图是可以基于由机器人最终用户提供的自然语言输入来标识的项。然后,可以向自然语言理解系统118提供自然语言输入,该自然语言理解系统118标识对应于(或映射到)该自然语言输入的意图。意图可以标识用户希望使用机器人执行的操作,诸如预订航班、进行预约、发送电子邮件、将项添加到用户的待办事项列表、或机器人可以用于完成的广泛多种动作中的任何其他动作。这些只是示例,意图也可以指示其他内容。在一个示例中,作者106可以创作意图同时还创作触发器。在另一示例中,触发器和意图可以分开地创作并稍后链接。本文还设想了其他创作序列。
图8H示出了包括菜单窗格200、导航窗格202、视觉创作画布122和特性窗格124的用户接口104的一个示例。可以在导航窗格202中看到用户已经选择了添加意图致动器212。作为响应,在选择驱动特性窗格124中示出的添加意图特性显示420提示作者106通过在文本框422中插入目标短语集来配置意图。目标短语是机器人最终用户可以说出或键入以便调用意图的短语的示例。接口420还包括允许作者106定义可以放置在意图上的各种约束的致动器424(其可以是文本框)。
如上文所描述的,在一个示例中,作者106可以在文本框422中键入相对较小的示例触发短语集。然后,接口控制逻辑127可以将那些示例提供给语言/模型构建控制逻辑145。逻辑145可以向语言生成系统116和/或自然语言理解系统118提供自动构建模型或生成与作者106键入的短语相似的附加短语的那些项,这些项将被机器人用于映射到正在被配置的意图。例如,如果机器人最终用户讲出自动生成的短语中的一个短语,则这些短语也会触发正在被配置的意图。
图8I类似于图8H,不同之处在于,在导航窗格202中,作者106已经选择了“未知意图”致动器426。作为响应,特性窗格124呈现允许作者106在描述未知意图时定义约束的用户接口。因此,为作者106呈现致动器428。
图8J类似于图8I,不同之处在于,用户已经在导航窗格202中致动了会话更新活动致动器430。应当指出,还可以使用其他活动致动器并且会话更新活动致动器是一个示例。在那种情况下,API 112呈现约束致动器432,作者106可以使用该约束致动器来定义或配置将对应于正被配置的项的会话更新活动。
图8K是图示了系统102可以如何用于生成触发机器人和/或运行对话的触发器的一个示例的流程图。上文关于图8A至图8J对关于图8K所讨论的示例中的一些示例进行更详细的讨论。
接口控制逻辑127首先检测来自作者106的创作输入,该创作输入指示作者106标识要在正在被设计的机器人中配置的触发器。这由图8K中的框433指示。可以在接口104中的任一接口104上接收输入。
然后,接口控制逻辑127访问机器人模式144并且标识哪个视觉节点要被显示在视觉创作画布122上并且显示那个节点。这由图8K中的框435指示。
然后,接口控制逻辑127再次访问机器人模式144以获取指示对应于触发器节点的可配置特性的触发器配置数据,并且触发器被添加到正在被设计的机器人。获取触发器配置数据由图8K的流程图中的框437指示。
然后,逻辑127控制特性窗格124以显示触发器配置UI。触发器配置UI说明性地具有一个或多个特性输入致动器,作者106可以致动该一个或多个特性输入致动器以输入或配置正在被添加到机器人的触发器的特性。这由框439指示。特性输入致动器可以包括可以用于输入文本的文本输入机制441。作者106可以输入文本作为可以激活触发器的短语。例如,当机器人最终用户讲出该短语时,该短语可以被识别为激活触发器的触发短语。特性输入致动器可以是可以用于标识激活触发器的对话事件的致动器。这由框443指示。致动器可以用于标识激活触发器的对话活动。这由框445指示。它可以是被致动以标识多种其他触发器激活的广泛多种其他致动器。这由框447指示。
然后,接口控制逻辑127检测特性输入致动器的作者致动,该作者致动标识激活触发器的特性。这由图8K中的框449指示。可以基于所标识的特性来执行其他特性处理。例如,当特性输入是文本输入时,该文本输入可以提供给语言生成系统116和/或自然语言理解系统118以获取在含义上可以与由作者106输入的文本相似并且也可以用作触发激活短语的附加的、相似的文本(变型)。这由框451指示。可以接收附加文本,或可以接收识别比由作者106输入的文本输入更多的文本输入的模型。这由框453指示。作为示例,如上文所更详细描述的,变型可以在语言生成模板中使用和管理。还可以执行其他特性处理,这由框455指示。
然后,代码翻译器/生成器146访问机器人模式144以获取用于将触发器映射到激活触发器的特性的代码表示,并且配置触发器以使其被所配置的特性激活。这由框457指示。
图9A至图9U示出了可以由作者106用来配置对应于机器人动作节点的动作的特性配置接口的示例。作者106可以通过将动作节点拖放到视觉创作画布122、使用特性窗格124配置它们或通过在JSON文件窗格126上定义它们来将动作节点放置在机器人中。如上文所讨论的,当接收到这些输入中的任一输入时,动作也显示在设计者用户接口104的其他部分上。图9A至图9U中的用户接口显示各自示出了可以显示在特性窗格124中以允许作者106配置特定动作172(如图3所示)的接口的示例。
图9A示出了可以用于配置“发送活动”动作的特性的用户接口显示434,该“发送活动”动作是发送给机器人最终用户的输出响应。作者106可以在文本框436中键入要发送的消息的变型。语言生成系统116和/或自然语言理解系统118可以使用这些消息变型来构建附加模型或示例。
图9B示出了允许作者106为提示机器人最终用户进行文本输入的动作定义特性的用户接口显示438。因此,作者106可以在文本框440中键入初始提示,在文本框442中定义特性,使用致动器444定义输出格式,添加可以用于通过致动器446验证输入的验证表达式,以及定义当响应于提示而接收到无法识别的值时机器人应当如何做出响应。后一项可以使用文本框448来定义。作者106可以定义当接收到对提示的无效响应时将由机器人生成的消息。这可以使用文本框450来完成。作者106可以定义最大回合数452以接收对提示的有效响应(例如,机器人将提示用户输入的最大次数)。作者106可以使用文本框454和456来定义可以响应于提示而接收的值。作者106可以使用文本框458来指示机器人默认要如何响应。致动器460允许作者106配置何时将使用提示,并且致动器462允许作者106定义将被识别的不同类型的最终用户中断,从而处理可以转移到另一对话,转移到相同对话的另一部分等等。
类似用户接口可以用于配置提示最终用户数字、确认所识别的输入或允许用户从多个选项中进行选择的动作。还可以生成类似用户接口以允许作者106配置提示用户附件、特定日期、授权令牌或登录信息等的动作。
图9C和图9D示出了可以生成以允许作者106配置机器人逻辑流中的分支动作的用户接口显示。图9C示出了允许作者106定义“分支:if/else”动作的用户接口显示464。这种类型的操作有条件地决定当正在执行机器人时遵循哪个逻辑流。文本框466允许作者106在确定要遵循哪个逻辑分支时输入要评估的条件。致动器468允许作者106定义在致动器466所定义的条件为真时则要执行哪个动作,并且致动器470允许作者106定义如果致动器466所定义的条件为假时则要执行哪个动作。
图9D示出了可以生成以允许作者106定义“分支:切换”动作的用户接口显示472。这种类型的操作控制机器人基于要评估的条件来切换到不同的逻辑流。与二进制分支逻辑(if/else)相比,作者106可以为任意数目的条件添加分支逻辑。再者,文本框474允许作者106定义要评估的条件。分支致动器476允许作者106定义如果特定机器人执行案例满足致动器474所标识的条件则采用哪个分支。致动器478允许作者106定义要被评估并且对应于对话逻辑流中的不同分支的新机器人执行案例。致动器480允许作者106定义在其他致动器定义的案例都不满足致动器474所定义的条件时则要采取默认动作。一个示例可能是询问机器人最终用户他/她最喜欢的颜色是什么,然后基于该答案来分支会话。一个示例条件和案例集可能如下:
条件:user.favoriteColor(用户.最喜欢的颜色)
案例:
·红色
·蓝色
·绿色
图9E和图9F是允许作者106定义要采取的循环动作的用户接口。图9E示出了允许作者106配置要采取的动作的用户接口显示482,这些动作循环项集合中的每个项。如上文所描述的,机器人可以执行这种循环以提供动态响应。文本框484允许作者106定义要遍历的列表(例如,备选响应的列表),文本框486和488允许作者106定义标识要使用的对话的特性值和索引值。致动器490可以由作者106选择以针对由特性484、486和488定义的集合中的每个项选择要采取的多个不同动作中的任一动作。
图9F示出了允许作者106配置要针对集合中的每个项页面执行的动作的用户接口显示492。因此,例如,如果机器人要返回待办事项列表,则作者106可以定义每页面要显示的数目以及对每个项页面采取的操作(诸如,按紧急程度、按字母顺序等排序)。此外,文本框484和486允许作者106定义要处理的列表,并且致动器494允许作者106定义列表中每个页面要执行的动作的项的数目。如上文关于图9E所描述的,致动器490允许作者106定义列表中的每个项页面要执行的特定动作。
图9G至图9I示出了可以生成以允许作者106在机器人逻辑流中定义动作以分别开始对话、结束对话和取消所有正在运行的对话的用户接口的示例。在图9G中,用户接口显示496允许作者106使用致动器498来标识要开始的对话。致动器500可以用于将对象传递到正在被开始的对话中,并且文本框502可以用于定义传递到正在被开始的对话中的特性。
在图9H中,用户接口显示504允许作者106使用致动器506来标识将在当前对话结束时返回的特性。作为示例,当对话结束时,它可以输出指示对话已经结束的对话名称。这可以当使用结束对话的命令配置机器人时完成。在图9I中,用户接口显示508允许作者106使用命令配置机器人,以通过发出必须被捕获的事件来取消所有当前对话,以防止传播取消。例如,如果发出命令以取消所有正在运行的对话,则该命令可以通过取消一个对话运转,继续到下一对话并取消它,除非该事件被所取消的第一对话吸收。如果事件不是将被吸收的事件,则取消命令将通过所有正在运行的对话传播。作者106可以使用文本510来标识事件。作者106可以使用致动器512来标识要与正在使用致动器510标识的事件一起发出(返回或输出)的值。
图9J示出了用户接口514,作者106可以使用该用户接口514来插入结束对话逻辑流中的回合而非结束对话本身的动作。图9K示出了用户接口显示516,作者106可以使用该用户接口显示516插入重复当前对话的动作。例如,如果机器人最终用户正在将项添加到待办事项列表,则可以重复源对话,只要机器人最终用户继续将项添加到列表即可。图9L示出了用户接口显示518,作者106可以使用该用户接口显示518在机器人逻辑流中插入使用目标对话替换当前对话的动作。例如,如果机器人最终用户开始一个对话,但随后切换或进一步定义了他或她的意图,则可以进行对话切换。该对话切换的一个示例是正在制定酒店预约。该机器人可能首先运行允许最终用户指定日期的对话,然后切换对话以允许用户进行酒店预约。这只是一个示例。致动器520可以用于标识目标对话,致动器522可以用于配置传递到目标对话的信息。
图9M示出了用户接口显示524,作者106可以使用该用户接口显示524修改活动对话。致动器526允许作者106选择要执行的特定类型的改变。在图9M所示的示例中,改变是在活动对话中插入动作。然后,作者106可以使用致动器528来选择在活动对话中执行或插入哪些特定动作。这些动作可以包括图3中描述的动作172中的任一动作或其他动作。
图9N是用户接口显示530,作者106可以使用该用户接口显示530来插入使得机器人逻辑流做出HTTP请求的动作。致动器532允许作者106选择提出请求的方法。例如,一种方法是使用URL从给定服务器检索信息。另一方法只检索标题部分。另一方法可以向服务器发送数据。这些只是几个示例。文本框534允许作者106标识要进行请求的URL。文本框536允许作者106在HTTP请求的主体中定义特性或其他项。文本框538允许作者106定义其他特性。致动器540允许作者106标识附加标题以包括在HTTP请求中。致动器542允许作者106定义响应类型。
图9O示出了允许作者106插入发出(或返回或输出)定制事件的动作的用户接口显示544的示例。文本框546允许作者106命名事件,并且致动器548允许作者106定义可以与事件一起发出(返回或输出)的值。
图9P示出了允许作者106插入写入日志的动作的用户接口显示550。例如,在开发中,日志记录可以用于调试机器人。因此,作者106可以将机器人配置为输出要记录的任意数据以进行调试。该日志可以是终端窗口,视觉机器人设计者应用正在该终端窗口中运行。用户接口550允许作者106配置创建跟踪活动并且也发送它的动作。文本框552允许作者106定义文本并且致动器554允许作者106指示要发送跟踪活动。
图9Q示出了允许作者106插入用于发出跟踪事件以用于调试目的的动作的用户接口显示556。文本框558允许作者106命名跟踪事件。文本框560允许作者106定义跟踪事件的值类型,并且文本框562允许作者106定义跟踪事件的值。
图9R、图9S和图9T示出了用户接口564、566和568,它们允许作者106插入将特性设置为值、将特性定义和初始化为对象或数组以及分别删除特性以及它持有的任一值的动作。例如,图9R示出了特性“user.taskList.todo(用户.任务列表.待办事项)”被设置为“去杂货店购物”。图9S示出了特性“user.taskLists(用户.任务列表)”被定义并初始化为对象。图9T示出了特性“dialog.item(对话.项)”被删除。
图9U示出了允许作者106插入允许修改存储器中的数组的动作的用户接口显示570。致动器572允许作者106选择要进行的改变的类型(例如,移除)。文本框574允许作者106标识数组特性(例如,用户任务列表[dialog.listType](对话.列表类型))。文本框576允许作者106定义结果特性(例如,turn.itemDeleted(回合.项删除)),并且文本框578允许作者106定义要改变的项的值(例如,dialog.item(对话.项))。
图11是使得能够配置循环:对于每个页面动作的用户接口104集的另一示例。可以看出,循环动作的节点201在视觉创作画布122上显示和选择,配置接口显示在选择驱动特性窗格124上。
图12A和图12B(本文中统称为图12)图示了表示视觉创作画布122上的视觉表示的JSON字符串的一个示例。可以对JSON字符串(诸如如图12所示的JSON字符串)进行处理以生成语言生成模板,诸如如图12所示的语言生成模板。语言生成模板是作者106可以用来定义文本响应的一个或多个变型的功能。当调用模板时,它不但会返回模板中标识的文本的变型中的一个变型,而且当出于合成的目的时,还会(例如,通过作者106)解析对模板的其他引用。例如,当定义多个响应时,可以随机选择一个响应。进一步地,模板可以是条件模板,其中定义了表达式以控制机器人选择若干个不同变型集合中的一个集合,并且从所选择的集合中选择特定变型。作者106还可以对模板进行参数化,以便模板的不同调用者可以传入不同的值,以用于解析对特定变型的调用。因此,使用模板,作者106可以向机器人添加复杂的响应行为,但仍然可以合并和共享公共响应逻辑。图13仅通过示例示出了多个分支动作和活动。
图14是图示了视觉机器人设计者计算系统102在通过设计者用户接口104上的视觉创作画布122接收创作输入时的操作的一个示例的流程图。首先,接口控制逻辑127检测作者106的输入以修改视觉创作画布122上的元素。这由图14的流程图中的框590指示。所检测的输入可以是拖放输入592,作者106通过该拖放输入将节点拖到视觉创作画布上并且将其放在那里。备选地或附加地,所检测的输入可以是用于将节点或动作添加到视觉创作画布的致动器的选择,如框594所示。例如,作者106可以选择视觉创作画布上的“添加”致动器。备选地或附加地,所检测的输入可以是从视觉创作画布122中删除节点的指示,如框596所示。或者,它可以是广泛多种的其他输入。这由框598指示。然后,逻辑127访问机器人模式(或逻辑)144以基于作者106的输入来标识可以进行的可能修改。这由框600指示。
此外,参考图7,假设用户已经选择了添加致动器376。然后,逻辑127访问模式144以标识哪些动作可用并且在窗格378中显示它们。显示致动器以做出可能修改由图14的流程图中的框602指示。
然后,接口控制逻辑127检测作者106对所显示的致动器(诸如,图7中的窗格278或394中的致动器中的一个致动器)的选择。这由图14的流程图中的框604指示。该致动可以是插入或删除触发器节点606,插入或删除动作节点608。在另一示例中,作者106选择已经显示在视觉创作画布122上的节点。这由框609指示。致动可以是广泛多种其他项610中的任一项。
然后,接口控制逻辑104与视觉创作画布122交互以基于所检测的动作来修改视觉创作画布122。这由框612指示。再者,这可以是从视觉创作画布122添加或删除节点,如框614所示。它可以是添加或删除链接,如框616所示,或者它可以将对视觉创作画布122进行广泛多种其他修改,如框618所示。然后,逻辑127调用API 112以获取更新特性窗格124的信息。这由图14的流程图中的框613指示。例如,代码翻译器/生成器146可以接收在视觉创作画布122上被选择或改变的视觉元素的身份的指示,并且访问机器人模式144以获取被选择或改变的视觉元素的特性,并且显示在视觉显示画布122上选择的项的可编辑特性(或特性致动器)。基于视觉元素的身份来访问机器人模式144由框615指示。显示可编辑特性致动器由框617指示。基于对视觉创作画布122的修改,特性窗格124也可以以其他方式更新。这由框619指示。逻辑127还调用API 112来更新JSON文件显示窗格126。此外,它可以调用代码翻译器/生成器146,该代码翻译器/生成器146访问机器人模式144以获取序列化信息以生成在视觉创作画布122上被改变的视觉元素的序列化表示。在添加了视觉元素的情况下,它可以在JSON文件显示窗格126上的JSON文件中插入该序列化。在删除视觉元素的情况下,它可以从JSON文件显示窗格中删除该表示126。调用用于更新JSON文件窗格126的API访问机器人模式144由框620指示。基于更新插入或删除JSON字符串由框622指示,并且以其他方式更新JSON文件窗格由框624指示。更新可以跨接口104自动传播。自动意味着在没有其他人为参与的情况下执行操作,除非可能启动或批准他们。
图15A和图15B(本文中统称为图15)示出了图示了系统102(并且具体地,撤消/重做逻辑150)在基于作者106在设计者用户接口104上检测到对撤消/重做致动器252的致动来执行撤消/重做操作时的操作的一个示例的流程图。首先,假设作者106正在创作机器人,并且机器人应用处于特定状态N。这由图15的流程图中的框630指示。然后,撤消/重做逻辑150将机器人应用的表示(处于状态N)放置在存储器110中的撤消堆栈140上。这由图15的流程图中的框631指示。然后,作者106对应用进行修改以将机器人应用置于新状态N+1。这由框632指示。将机器人置于新状态N+1的改变可以是修改(诸如,在视觉创作画布122上添加或删除节点)。这由框634指示。备选地或附加地,改变可以包括编辑表达式并完成表达式以使机器人应用运转。这由框636指示。它可以是将机器人应用置于状态N+1的广泛多种其他改变中的任一改变。这由框638指示。
在机器人应用达到另一功能状态之前,接口控制逻辑127在接口104上检测用户对撤消致动器252的致动,并且向撤消/重做逻辑150提供指示。这由图15的流程图中的框642指示。然后,撤消/重做逻辑150将机器人应用的表示(处于状态N+1)放置在存储器110中的重做堆栈140上。这由框644指示。然后,撤消/重做逻辑150从撤消堆栈中检索机器人应用(处于状态N)的表示。这由框646指示。它向接口控制逻辑127提供该表示,使得机器人应用的状态N现在显示在接口104上。在设计者用户接口104上显示机器人应用的状态N由图15的流程图中的框648指示。这可以包括在视觉创作画布122上生成显示,如框650所示。它可以包括:为JSON显示窗格126生成序列化表示。这由图15的流程图中的框652指示。它可以包括自动选择节点并且在特性窗格124上显示其特性,或以其他方式在设计者用户接口104上生成表示,并且这由框654指示。
然后,假设作者106致动重做致动器252,这由接口控制逻辑127检测并提供给撤消/重做逻辑150。作者106无需这样做,但是提供图15以图示如果作者106确实致动重做致动器252则发生的操作。因此,为了本描述的目的,假设作者106确实致动重做致动器252。检测重做致动器的致动由图15的流程图中的框656指示。因为机器人应用的状态N当前显示在接口104上,所以撤消/重做逻辑150将机器人应用(处于状态N)放回存储器110中的撤消堆栈140上。这由图15的流程图中的框658指示图。然后,撤消/重做逻辑150从重做堆栈中检索机器人应用(处于状态N+1)的表示。这由框660指示。它将指示的表示(处于状态N+1的机器人应用)提供回给设计者用户接口104上的接口控制逻辑127,其中它(处于状态N+1的机器人应用)在设计者用户接口104上显示。这由框662指示。因此,逻辑127在视觉创作画布122上生成显示。这由框664指示。它为JSON显示窗格126生成序列化输出。这由框666指示。它也可以更新特性窗格124和其他项,这由框668指示
应当指出,上述讨论已经描述了多种不同系统、组件和/或逻辑。应当领会,这样的系统、组件和/或逻辑可以由执行与那些系统、组件和/或/或逻辑相关联的功能的硬件项(诸如处理器和相关存储器、或其他处理组件,其中一些在下文进行描述)组成。另外,系统、组件和/或逻辑可以由加载到存储器中并随后由处理器或服务器或其他计算组件执行的软件组成,如下文所描述的。系统、组件和/或逻辑也可以由硬件、软件、固件等的不同组合组成,其中一些示例在下文进行描述。这些只是可以用于形成上文所描述的系统、组件和/或逻辑的不同结构的一些示例。还可以使用其他结构。
本讨论已经提及处理器和服务器。在一个示例中,处理器和服务器包括具有未单独示出的相关存储器和定时电路系统的计算机处理器。它们是它们所属的系统或设备的功能部分,由这些系统中其他组件或项激活,并且促进这些系统中其他组件或项的功能。
此外,已经对若干个用户接口显示进行了讨论。它们可以采用广泛多种不同的形式,并且可以在其上设置广泛多种不同的用户可致动输入机制。例如,用户可致动输入机制可以是文本框、复选框、图标、链接、下拉菜单、搜索框等。它们也可以以广泛多种不同的方式致动。例如,它们可以使用点击设备(诸如跟踪球或鼠标)来致动。它们可以使用硬件按钮、开关、操纵杆或键盘、拇指开关或拇指垫等来致动。它们也可以使用虚拟键盘或其他虚拟驱动器来致动。另外,在显示它们的屏幕是触敏屏幕的情况下,它们可以使用触摸手势来致动。此外,在显示它们的设备具有语音识别组件的情况下,它们可以使用语音命令来致动。
还对若干个数据存储器进行了讨论。应当指出,它们每个都可以分解为多个数据存储器。对于访问它们的系统,所有都可以是本地的,也可以是远程的,或者一些可以是本地的,而其他的可以是远程的。本文中设想了所有这些配置。
此外,附图示出了具有归属于每个框的功能的多个框。应当指出,可以使用更少的框,因此功能由更少的组件执行。此外,更多的框可以与分布在更多组件之间的功能一起使用。
图16是除了其元件设置在云计算体系结构500中之外的图1所示的架构100的框图。云计算提供计算、软件、数据访问和存储服务,这些服务不需要最终用户知道递送服务的系统的物理位置或配置。在各种示例中,云计算使用适当协议通过广域网(诸如,互联网)提供服务。例如,云计算提供方通过广域网递送应用,并且可以通过网页浏览器或任何其他计算组件访问它们。架构100的软件或组件以及对应数据可以存储在远程位置处的服务器上。云计算环境中的计算资源可以在远程数据中心位置处进行整合,也可以分散。云计算基础设施可以通过共享数据中心递送服务,即使它们看起来是用户的单一访问点。因此,本文中所描述的组件和功能可以使用云计算架构从远程位置处的服务提供方提供。备选地,它们可以从传统服务器提供,或它们可以直接或以其他方式安装在客户端设备上。
该描述旨在包括公共云计算和私有云计算两者。云计算(公共和私有)提供了基本无缝资源池化,并且减少了管理和配置底层硬件基础设施的需求。
公共云由供应商管理,并且通常支持使用相同基础设施的多个消费者。此外,与私有云相反,公共云可以将最终用户从管理硬件中解放出来。私有云可以由组织本身管理,并且基础设施通常不与其他组织共享。该组织仍然在一定程度上(诸如安装和维修等)维护硬件。
在图6所示的示例中,一些项类似于图1所示的项,并且它们的编号类似。图16具体示出了视觉机器人设计者计算系统102可以位于云502(其可以是公共云、私有云或其中部分为公共云而其他部分为私有云的组合)中。因此,作者106使用用户设备704通过云702访问那些系统。
图16还描绘了云架构的另一示例。图16示出了还设想了计算系统102的一些元件可以设置在云702中而其他元件没有设置在云702中。通过示例,数据存储装置110可以设置在云702外部,并且通过云702访问。在另一示例中,语言生成系统116和自然语言理解系统118(或其他项)可以位于云702外部。无论它们位于何处,它们都可以由设备704通过网络(要么广域网要么局域网)直接访问,它们可以由服务托管在远程站点处,或者它们可以通过云作为服务提供或通过驻留在云中的连接服务访问。本文中设想了所有这些架构。
还应当指出,架构100或其部分可以布置在广泛多种不同的设备上。这些设备中的一些设备包括服务器、台式计算机、膝上型计算机、平板计算机或其他移动设备,诸如掌上计算机、手机、智能手机、多媒体播放器、个人数字助理等。
图17是其中可以部署架构100或其部分(例如)的计算环境的一个示例。参考图17,用于实现一些实施例的示例系统包括计算机810形式的通用计算设备。计算机810的组件可以包括但不限于处理单元820(其可以包括来自先前附图的处理器或服务器)、系统存储器830和将包括系统存储器在内的各种系统组件耦合到处理单元820的系统总线821。系统总线821可以是包括存储器总线或存储器控制器的几种总线结构中的任一总线结构,外围总线和使用广泛多种总线架构中的任一总线架构的本地总线。作为示例而非限制,这些架构包括工业标准架构(ISA)总线、微信道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线和外围组件互连(PCI)总线(也称为夹层总线)。关于图1所描述的存储器和程序可以部署在图17的对应部分中。
计算机810通常包括多种计算机可读介质。计算机可读介质可以是计算机810可以访问的任何可用介质,并且包括易失性和非易失性、可移除介质和不可移除介质两者。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质不同于且不包括经调制数据信号或载波。它包括硬件存储介质,这些硬件存储介质包括以任何方法或技术实现的易失性和非易失性、可移除介质和不可移除介质,用于存储信息,诸如计算机可读指令、数据结构、编程模块或其他数据。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能磁盘(DVD)或其他光盘存储、盒式磁带、磁带、磁盘存储或其他磁存储设备、或可以用于存储期望信息并且可以由计算机810访问的任何其他介质。通信介质通常体现计算机可读指令、数据结构、编程模块、或传输机制中的其他数据,并且包括任何信息递送介质。术语“经调制数据信号”是指具有其特点中的一个或多个特点的信号,该一个或多个特点以对信号中的信息进行编码的这样一种方式进行设置或改变。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、RF、红外线和其他无线介质的无线介质。上述中的任一项的组合也应当包括在计算机可读介质的范围内。
系统存储器830包括易失性存储器和/或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM)831和随机存取存储器(RAM)832。基本输入/输出系统833(BIOS)包含有助于(诸如在起动期间)在计算机810内的元件之间传送信息的基本例程,通常存储在ROM831中。RAM 832通常包含可立即访问和/或当前正在由处理单元820操作的数据和/或编程模块。作为示例而非限制,图17图示了操作系统834、应用程序835、其他编程模块836和编程数据837。
计算机810还可以包括其他可移除/不可移除易失性/非易失性计算机存储介质。仅作为示例,图17示出了从不可移除非易失性磁性介质读取或写入不可移除非易失性磁性介质的硬盘驱动器841以及从诸如CD ROM或其他光学介质的可移除非易失性光盘856读取或写入该可移除非易失性光盘856的光盘驱动器855。可以在示例性操作环境中使用的其他可移除/不可移除易失性/非易失性计算机存储介质包括但不限于合适磁带、闪存卡、数字多功能磁盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器841通常通过诸如接口840的不可移除存储器接口连接到系统总线821,并且光盘驱动器855通常通过诸如接口850的可移除存储器接口连接到系统总线821。
备选地或附加地,本文中所描述的功能可以至少部分由一个或多个硬件逻辑组件来执行。例如,但不限于,可以使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、程序特定集成电路(ASIC)、程序特定标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。
上文所讨论并且在图17中图示的驱动器及其相关计算机存储介质为计算机810提供计算机可读指令、数据结构、编程模块和其他数据的存储。在图17中,例如,硬盘驱动器841被图示为存储操作系统844、应用程序845、其他编程模块846和编程数据847。注意,这些组件可以与操作系统834、应用程序835、其他编程模块836和编程数据837相同或不同。操作系统844、应用程序845、其他编程模块846和编程数据847本文中被赋予不同编号以说明至少它们是不同复制品。
用户可以通过诸如键盘862、麦克风863和诸如鼠标、轨迹球或触摸板的定点设备861的输入设备将命令和信息录入到计算机810中。其他输入设备(未示出)可以包括操纵杆、游戏手柄、卫星天线、扫描仪等。这些和其他输入设备通常通过耦合到系统总线的用户输入接口860连接到处理单元820,而且还可以通过诸如并行端口、游戏端口或通用串行总线(USB)的其他接口和总线结构连接。视觉显示器891或其他类型的显示设备也经由诸如视频接口890的接口连接到系统总线821。除了监测器之外,计算机还可以包括其他外围输出设备,诸如扬声器897和打印机896,这些外围输出设备可以通过输出外围接口895连接。
计算机810使用与诸如远程计算机880的一个或多个远程计算机的逻辑连接在联网环境中进行操作。远程计算机880可以是个人计算机、手持式设备、服务器、路由器、网络PC、对等设备或其他公共网络节点,并且通常包括上文相对于计算机810所描述的许多或所有元件。图7中所描绘的网络包括局域网(LAN)871和广域网(WAN)873,而且还可以包括其他网络。这种联网环境常见于办公室、企业范围的计算机网络、内部网和互联网。
当用于LAN联网环境时,计算机810通过网络接口或适配器870连接到LAN 871。当用于WAN联网环境时,计算机810通常包括调制解调器872或用于通过诸如互联网的WAN 873建立通信的其他手段。可以位于内部或外部的调制解调器872可以经由用户输入接口860或其他适当机制连接到系统总线821。在联网环境中,相对于计算机810所描绘的编程模块或其部分可以存储在远程存储器存储设备中。通过示例而非限制,图17图示了如驻留在远程计算机880上的远程应用程序885。应当领会,所示的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他手段。
还应当指出,本文中所描述的不同示例可以以不同方式组合。也就是说,一个或多个示例的各部分可以与一个或多个其他示例的各部分组合。本文中设想了所有这些。
示例1是一种创作聊天机器人的计算机实现的方法,包括:
显示第一显示窗格;
在第一显示窗格上检测相对于通过作为流程图的链接而被连接的视觉节点集的创作输入,该流程图中的视觉节点指示聊天机器人被配置为执行的动作;
检测节点选择创作输入,在第一显示窗格上选择视觉节点集中的视觉节点,所选择的视觉节点对应于聊天机器人被配置为执行的动作;以及
利用一个或多个特性创作致动器显示第二显示窗格连同第一显示窗格,该一个或多个特性创作致动器可致动以配置对应于所选择的视觉节点的动作的特性。
示例2是任何或所有先前示例的计算机实现的方法,其中利用一个或多个特性创作致动器显示第二显示窗格包括:
基于所选择的视觉节点的身份来访问机器人模式以标识一个或多个特性创作致动器以在第二显示窗格上显示。
示例3是任何或所有先前示例的计算机实现方法,并且还包括:
检测第二显示窗格上的特性创作致动器中的至少一个特性创作致动器的致动以获取配置动作,所检测的致动指示配置对应于所选择的视觉节点的动作的特性配置输入。
示例4是任何或所有先前示例的计算机实现的方法,并且还包括:
自动生成配置动作的序列化表示。
示例5是任何或所有先前示例的计算机实现的方法,其中自动生成序列化表示包括:
基于配置动作来访问聊天机器人模式以获取对应于配置动作的序列化信息;以及
基于序列化信息来生成配置动作的序列化表示。
示例6是任何或所有先前示例的计算机实现的方法,并且还包括:
在第三显示窗格连同第一显示窗格和第二显示窗格上显示序列化表示。
示例7是任何或所有先前示例的计算机实现的方法,其中检测相对于视觉节点集的创作输入包括:
在流程图的链接中检测添加致动器的致动;
访问聊天机器人模式以标识要添加的可能动作;以及
显示与所标识的可能动作中的每个可能动作相对应的动作致动器,动作致动器中的每个动作致动器可致动以选择可能动作中的对应的可能动作以用于添加到流程图。
示例8是任何或所有先前示例的计算机实现的方法,其中检测相对于视觉节点集的创作输入还包括:
检测动作致动器中的一个动作致动器的致动以选择对应的动作;以及
向流程图添加视觉节点,所添加的视觉节点对应于所选择的动作。
示例9是任何或所有先前示例的计算机实现的方法,其中检测相对于视觉节点集的创作输入还包括:
在对应于所添加的视觉节点的第二显示窗格连同第一显示窗格上自动显示一个或多个特性创作致动器,该一个或多个特性创作致动器可致动以配置所选择的动作的特性;以及
自动生成所选择的动作的序列化表示。
示例10是任何或所有先前示例的计算机实现的方法,其中流程图表示聊天机器人被配置为执行的对话,该对话具有包括聊天机器人输出的语言元素和包括预期用户输入的语言元素,并且还包括:
在对话中相对于彼此的上下文中生成聊天机器人输出和预期用户输入的可编辑和可搜索视图。
示例11是任何或所有先前示例的计算机实现的方法,其中所选择的视觉节点对应于分支动作,并且其中利用可致动以配置分支动作的特性的一个或多个特性创作致动器显示第二显示窗格连同第一显示窗格包括:
在第二显示窗格上显示一个或多个特性致动器,一个或多个特性致动器可致动以设置分支跟随准则,当分支跟随准则被满足时,该一个或多个特性致动器配置聊天机器人跟随给定的操作的分支。
示例12是任何或所有先前示例的计算机实现的方法,其中所选择的视觉节点对应于循环动作,并且其中利用可致动以配置循环动作的特性的一个或多个特性创作致动器显示第二显示窗格连同第一显示窗格包括:
在第二显示窗格上显示一个或多个特性致动器,一个或多个特性致动器可致动以标识项集合并且将聊天机器人配置为在执行循环动作时使用项集合中的不同项。
示例13是任何或所有先前示例的计算机实现的方法,其中项集合包括备选聊天机器人响应列表,并且其中每次聊天机器人到达流程图中的循环动作时,循环动作将聊天机器人配置为当生成聊天机器人输出时,使用聊天机器人响应中的不同的聊天机器人响应。
示例14是任何或所有先前示例的计算机实现的方法,其中所选择的视觉节点对应于提示聊天机器人最终用户针对输入的用户提示动作,并且其中利用可致动以配置分支动作的特性的一个或多个特性创作致动器显示第二显示窗格连同第一显示窗格包括:
在第二显示窗格上显示一个或多个特性致动器,一个或多个特性致动器可致动以标识用户提示。
示例15是任何或所有先前示例的计算机实现的方法,并且还包括:
检测修改作者输入在第三显示窗格上的序列化表示,以获取经过修改的序列化表示;
基于经过修改的序列化表示来访问聊天机器人模式以标识新视觉节点和流程图中要添加视觉节点的位置;以及
将所标识的新视觉节点自动添加到第一显示窗格上的流程图中的所标识的位置。
示例16是一种计算机系统,包括:
一个或多个处理器;以及
存储器,存储器存储指令,指令在由一个或多个处理器执行时,使一个或多个处理器执行步骤,步骤包括:
显示第一显示窗格;
在第一显示窗格上检测相对于通过作为流程图的链接而被连接的视觉节点集的创作输入,该流程图中的视觉节点对应于聊天机器人被配置为执行的动作;
在流程图的链接中检测添加致动器的致动;
访问聊天机器人模式以标识要添加的可能动作;
显示对应于所标识的可能动作中的每个可能动作的动作致动器,动作致动器中的每个动作致动器可致动以选择可能动作中的对应的可能动作以用于添加到流程图;
检测动作致动器中的一个动作致动器的致动以标识所选择的动作;以及
将视觉节点添加到链接中的流程图中,所添加的视觉节点对应于所选择的动作。
示例17是任何或所有先前示例的计算机系统,其中检测相对于视觉节点集的创作输入还包括:
在对应于所添加的视觉节点的第二显示窗格连同第一显示窗格上自动显示一个或多个特性创作致动器,该一个或多个特性创作致动器可致动以配置所选择的动作的特性;以及
自动生成所选择的动作的序列化表示。
示例18是任何或所有先前示例的计算机系统,其中指令在由一个或多个处理器执行时,使一个或多个处理器执行步骤,步骤还包括:
在第三显示窗格连同第一显示窗格和第二显示窗格上显示所选择的动作的序列化表示;
在第三显示窗格上检测修改序列化表示的作者输入以获取经修改的序列化表示;
基于经修改的序列化表示来访问聊天机器人模式以标识视觉节点和流程图中要被添加的视觉节点的位置;以及
将所标识的视觉节点自动添加到视觉创作窗格上的流程图中的所标识的位置。
示例19是一种计算机系统,包括:
一个或多个处理器;以及
存储器,存储器存储指令,指令在由一个或多个处理器执行时,使一个或多个处理器执行步骤,这些步骤包括:
在序列化显示窗格上显示聊天机器人被配置为执行的对话的序列化表示;
在视觉创作窗格连同序列化显示窗格上显示具有节点和链接的流程图,该流程图指示对话;
在序列化显示窗格上检测修改序列化表示的作者输入以获取经修改的序列化表示;
基于经修改的序列化表示来访问聊天机器人模式以标识视觉节点和流程图中要被添加的视觉节点的位置,该位置由经修改的序列化指示;以及
将所标识的视觉节点自动添加到视觉创作窗格上的流程图中的所标识的位置。
示例20是任何或所有先前示例的计算机系统,其中检测布置视觉节点集的创作输入还包括:
在特性显示窗格连同视觉创作窗格上自动显示特性创作致动器集,特性创作致动器可致动以配置由所标识的视觉节点指示的动作的特性。
尽管已经以特定于结构特征和/或方法动作的语言对主题进行了描述,但是应当理解,在所附权利要求中定义的主题不一定限于上文所描述的特定特征或动作。相反,上文所描述的具体特征和动作被公开为实现权利要求的示例形式。

Claims (15)

1.一种创作聊天机器人的计算机实现的方法,包括:
显示第一显示窗格;
在所述第一显示窗格上检测相对于通过作为流程图的链接而被连接的视觉节点集的创作输入,所述流程图中的所述视觉节点指示所述聊天机器人被配置为执行的动作;
检测节点选择创作输入,在所述第一显示窗格上选择所述视觉节点集中的视觉节点,所选择的所述视觉节点对应于所述聊天机器人被配置为执行的动作;以及
利用一个或多个特性创作致动器显示第二显示窗格连同所述第一显示窗格,所述一个或多个特性创作致动器可致动以配置对应于所选择的所述视觉节点的所述动作的特性。
2.根据权利要求1所述的计算机实现的方法,其中利用所述一个或多个特性创作致动器显示所述第二显示窗格包括:
基于所选择的所述视觉节点的身份来访问机器人模式以标识所述一个或多个特性创作致动器以在所述第二显示窗格上显示。
3.根据权利要求1所述的计算机实现的方法,并且还包括:
检测所述第二显示窗格上的所述特性创作致动器中的至少一个特性创作致动器的致动以获取配置动作,所检测的所述致动指示配置对应于所选择的所述视觉节点的所述动作的特性配置输入。
4.根据权利要求3所述的计算机实现的方法,并且还包括:
自动生成所述配置动作的序列化表示。
5.根据权利要求4所述的计算机实现的方法,其中自动生成所述序列化表示包括:
基于所述配置动作来访问所述聊天机器人模式以获取对应于所述配置动作的序列化信息;以及
基于所述序列化信息来生成所述配置动作的所述序列化表示。
6.根据权利要求5所述的计算机实现的方法,并且还包括:
在第三显示窗格连同所述第一显示窗格和所述第二显示窗格上显示所述序列化表示。
7.根据权利要求2所述的计算机实现的方法,其中检测相对于所述视觉节点集的创作输入包括:
在所述流程图的链接中检测添加致动器的致动;
访问所述聊天机器人模式以标识要添加的可能动作;以及
显示与所标识的所述可能动作中的每个可能动作相对应的动作致动器,所述动作致动器中的每个动作致动器可致动以选择所述可能动作中的对应的可能动作以用于添加到所述流程图。
8.根据权利要求7所述的计算机实现的方法,其中检测相对于所述视觉节点集的创作输入还包括:
检测所述动作致动器中的一个动作致动器的致动以选择对应的动作;以及
向所述流程图添加视觉节点,所添加的所述视觉节点对应于所选择的所述动作。
9.根据权利要求8所述的计算机实现的方法,其中检测相对于所述视觉节点集的创作输入还包括:
在对应于所添加的所述视觉节点的所述第二显示窗格连同所述第一显示窗格上自动显示一个或多个特性创作致动器,所述一个或多个特性创作致动器可致动以配置所选择的所述动作的特性;以及
自动生成所选择的所述动作的序列化表示。
10.根据权利要求1所述的计算机实现的方法,其中所述流程图表示所述聊天机器人被配置为执行的对话,所述对话具有包括聊天机器人输出的语言元素和包括预期用户输入的语言元素,并且还包括:
在所述对话中相对于彼此的上下文中生成所述聊天机器人输出和预期用户输入的可编辑和可搜索视图。
11.根据权利要求1所述的计算机实现的方法,其中所选择的所述视觉节点对应于分支动作,并且其中利用可致动以配置所述分支动作的特性的所述一个或多个特性创作致动器显示所述第二显示窗格连同所述第一显示窗格包括:
在所述第二显示窗格上显示一个或多个特性致动器,所述一个或多个特性致动器可致动以设置分支跟随准则,当所述分支跟随准则被满足时,所述一个或多个特性致动器配置所述聊天机器人跟随给定的操作的分支。
12.根据权利要求1所述的计算机实现的方法,其中所选择的所述视觉节点对应于循环动作,并且其中利用可致动以配置所述循环动作的特性的所述一个或多个特性创作致动器显示所述第二显示窗格连同所述第一显示窗格包括:
在所述第二显示窗格上显示一个或多个特性致动器,所述一个或多个特性致动器可致动以标识项集合并且将所述聊天机器人配置为在执行所述循环动作时使用所述项集合中的不同项。
13.根据权利要求12所述的计算机实现的方法,其中所述项集合包括备选聊天机器人响应列表,并且其中每次所述聊天机器人到达所述流程图中的所述循环动作时,所述循环动作将所述聊天机器人配置为当生成聊天机器人输出时,使用所述聊天机器人响应中的不同的聊天机器人响应。
14.根据权利要求10所述的计算机实现的方法,其中所选择的所述视觉节点对应于提示聊天机器人最终用户针对输入的用户提示动作,并且其中利用可致动以配置所述分支动作的特性的所述一个或多个特性创作致动器显示所述第二显示窗格连同所述第一显示窗格包括:
在所述第二显示窗格上显示一个或多个特性致动器,所述一个或多个特性致动器可致动以标识所述用户提示。
15.一种计算机系统,包括:
一个或多个处理器;以及
存储器,所述存储器存储指令,所述指令在由所述一个或多个处理器执行时,使所述一个或多个处理器执行步骤,所述步骤包括:
在序列化显示窗格上显示聊天机器人被配置为执行的对话的序列化表示;
在视觉创作窗格连同所述序列化显示窗格上显示具有节点和链接的流程图,所述流程图指示所述对话;
在所述序列化显示窗格上检测修改所述序列化表示的作者输入以获取经修改的序列化表示;
基于所述经修改的序列化表示来访问聊天机器人模式以标识视觉节点和所述流程图中要被添加的所述视觉节点的位置,所述位置由所述经修改的序列化指示;以及
将所标识的所述视觉节点自动添加到所述视觉创作窗格上的所述流程图中的所标识的所述位置。
CN202080076950.6A 2019-11-01 2020-10-23 会话机器人的视觉设计 Pending CN114730321A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962929566P 2019-11-01 2019-11-01
US62/929,566 2019-11-01
US16/696,181 US11329932B2 (en) 2019-11-01 2019-11-26 Visual design of a conversational bot
US16/696,181 2019-11-26
PCT/US2020/056951 WO2021086733A1 (en) 2019-11-01 2020-10-23 Visual design of a conversational bot

Publications (1)

Publication Number Publication Date
CN114730321A true CN114730321A (zh) 2022-07-08

Family

ID=75688315

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080076950.6A Pending CN114730321A (zh) 2019-11-01 2020-10-23 会话机器人的视觉设计

Country Status (4)

Country Link
US (5) US11329932B2 (zh)
EP (1) EP4052120A1 (zh)
CN (1) CN114730321A (zh)
WO (3) WO2021086733A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11329932B2 (en) 2019-11-01 2022-05-10 Microsoft Technology Licensing, Llc Visual design of a conversational bot
US11561775B2 (en) * 2020-03-30 2023-01-24 Nuance Communications, Inc. Development system and method
US11580112B2 (en) 2020-03-31 2023-02-14 Pricewaterhousecoopers Llp Systems and methods for automatically determining utterances, entities, and intents based on natural language inputs
US11482223B2 (en) 2020-03-31 2022-10-25 Pricewaterhousecoopers Llp Systems and methods for automatically determining utterances, entities, and intents based on natural language inputs
US12079584B2 (en) * 2020-03-31 2024-09-03 PwC Product Sales LLC Systems and methods for conversation modeling
US20220108079A1 (en) * 2020-10-06 2022-04-07 Sap Se Application-Specific Generated Chatbot
EP4281868A1 (en) * 2021-01-19 2023-11-29 Slack Technologies, LLC Asynchronous distributed modular function calling
US20220405068A1 (en) * 2021-06-16 2022-12-22 Microsoft Technology Licensing, Llc Managing asset packages for interactive bot development
US11743211B2 (en) 2021-12-28 2023-08-29 Oracle International Corporation Bot omni channel auto expansion
WO2024040028A1 (en) * 2022-08-18 2024-02-22 Murat Yildirim Voice activated multiple format virtual assistant

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016191749A1 (en) * 2015-05-27 2016-12-01 Genesys Telecommunications Laboratories, Inc. Flow designer for contact centers
US20180075014A1 (en) * 2016-09-11 2018-03-15 Xiaojiang Duan Conversational artificial intelligence system and method using advanced language elements
US20180107461A1 (en) * 2016-10-14 2018-04-19 Microsoft Technology Licensing, Llc Bot creation with workflow development system
CN109313665A (zh) * 2016-06-14 2019-02-05 微软技术许可有限责任公司 计算机消息机器人的创建
CN109597883A (zh) * 2018-12-20 2019-04-09 福州瑞芯微电子股份有限公司 一种基于视频采集的语音识别装置和方法
US20190163694A1 (en) * 2017-11-27 2019-05-30 Baidu Usa Llc System and method for visually searching and debugging conversational agents of electronic devices
CN109840089A (zh) * 2017-11-27 2019-06-04 百度(美国)有限责任公司 用于对电子设备的会话代理进行视觉理解和编程的系统和方法
CN110287299A (zh) * 2019-06-17 2019-09-27 浙江百应科技有限公司 一种通话中多话术语句智能切换方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7849440B1 (en) 2004-04-16 2010-12-07 The Mathworks, Inc. Real-time code preview for a model based development process
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
WO2010078614A1 (en) 2009-01-08 2010-07-15 Relevancenow Pty Limited Chatbots
US8768934B2 (en) 2010-06-15 2014-07-01 Chacha Search, Inc Method and system of providing verified content
US8577671B1 (en) * 2012-07-20 2013-11-05 Veveo, Inc. Method of and system for using conversation state information in a conversational interaction system
US10223636B2 (en) 2012-07-25 2019-03-05 Pullstring, Inc. Artificial intelligence script tool
US10813584B2 (en) 2013-05-21 2020-10-27 Happify, Inc. Assessing adherence fidelity to behavioral interventions using interactivity and natural language processing
US10645034B2 (en) 2016-04-22 2020-05-05 Smartbothub, Inc. System and method for facilitating computer generated conversations with the aid of a digital computer
US20170329466A1 (en) * 2016-05-13 2017-11-16 Sap Se User interface application and digital assistant
US9940390B1 (en) * 2016-09-27 2018-04-10 Microsoft Technology Licensing, Llc Control system using scoped search and conversational interface
US20180131643A1 (en) 2016-11-04 2018-05-10 Microsoft Technology Licensing, Llc Application context aware chatbots
US20180129484A1 (en) 2016-11-04 2018-05-10 Microsoft Technology Licensing, Llc Conversational user interface agent development environment
US11256743B2 (en) 2017-03-30 2022-02-22 Microsoft Technology Licensing, Llc Intermixing literal text and formulas in workflow steps
US10817265B2 (en) 2017-09-01 2020-10-27 Nationwide Mutual Insurance Company Chatbot development and deployment platform
US20210006478A1 (en) 2017-09-05 2021-01-07 Trixta, Inc. Distributed computing platform service management
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US11394667B2 (en) 2017-10-03 2022-07-19 Rupert Labs, Inc. Chatbot skills systems and methods
US20190103111A1 (en) * 2017-10-03 2019-04-04 Rupert Labs Inc. ( DBA Passage AI) Natural Language Processing Systems and Methods
US10891430B2 (en) 2018-02-02 2021-01-12 Fuji Xerox Co., Ltd. Semi-automated methods for translating structured document content to chat-based interaction
US20190340527A1 (en) * 2018-05-07 2019-11-07 Microsoft Technology Licensing, Llc Graphical user interface features for updating a conversational bot
US10976904B2 (en) * 2019-05-07 2021-04-13 International Business Machines Corporation Graphical chatbot interface facilitating user-chatbot interaction
US11329932B2 (en) 2019-11-01 2022-05-10 Microsoft Technology Licensing, Llc Visual design of a conversational bot

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016191749A1 (en) * 2015-05-27 2016-12-01 Genesys Telecommunications Laboratories, Inc. Flow designer for contact centers
CN109313665A (zh) * 2016-06-14 2019-02-05 微软技术许可有限责任公司 计算机消息机器人的创建
US20180075014A1 (en) * 2016-09-11 2018-03-15 Xiaojiang Duan Conversational artificial intelligence system and method using advanced language elements
US20180107461A1 (en) * 2016-10-14 2018-04-19 Microsoft Technology Licensing, Llc Bot creation with workflow development system
US20190163694A1 (en) * 2017-11-27 2019-05-30 Baidu Usa Llc System and method for visually searching and debugging conversational agents of electronic devices
CN109840089A (zh) * 2017-11-27 2019-06-04 百度(美国)有限责任公司 用于对电子设备的会话代理进行视觉理解和编程的系统和方法
CN109597883A (zh) * 2018-12-20 2019-04-09 福州瑞芯微电子股份有限公司 一种基于视频采集的语音识别装置和方法
CN110287299A (zh) * 2019-06-17 2019-09-27 浙江百应科技有限公司 一种通话中多话术语句智能切换方法

Also Published As

Publication number Publication date
WO2021086730A1 (en) 2021-05-06
US11329932B2 (en) 2022-05-10
US20210132960A1 (en) 2021-05-06
US11658925B2 (en) 2023-05-23
US20210132916A1 (en) 2021-05-06
US11190466B2 (en) 2021-11-30
US20210136008A1 (en) 2021-05-06
WO2021086739A1 (en) 2021-05-06
US11431657B2 (en) 2022-08-30
EP4052120A1 (en) 2022-09-07
WO2021086733A1 (en) 2021-05-06
US20220231974A1 (en) 2022-07-21
US20220060435A1 (en) 2022-02-24
US11722440B2 (en) 2023-08-08

Similar Documents

Publication Publication Date Title
US11329932B2 (en) Visual design of a conversational bot
US11461311B2 (en) Bot extensibility infrastructure
US20230138159A1 (en) Invoking an Automatic Process in a Web-Based Target System Using a Chat-Bot
JP5249755B2 (ja) セマンティックリッチオブジェクトによる動的なユーザエクスペリエンス
US9978361B2 (en) Systems and methods for building state specific multi-turn contextual language understanding systems
CN111078845B (zh) 为聊天机器人对话流能力生成决策树的方法、系统和程序
US20190340527A1 (en) Graphical user interface features for updating a conversational bot
WO2018063922A1 (en) Conversational interactions using superbots
US10338959B2 (en) Task state tracking in systems and services
JP2021099874A (ja) 複数ターン会話におけるパブリックシナリオ会話のバックトラッキング方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム
US7395206B1 (en) Systems and methods for managing and building directed dialogue portal applications
US12079584B2 (en) Systems and methods for conversation modeling
WO2020214282A1 (en) Visualization of training dialogs for a conversational bot
EP3472721A1 (en) Systems and methods for building conversational understanding systems
Freed Conversational ai
Mayo Programming the Microsoft BOT framework: A multiplatform approach to Building Chatbots
US20220075960A1 (en) Interactive Communication System with Natural Language Adaptive Components
US20220043973A1 (en) Conversational graph structures
CN109891410B (zh) 用于新的会话对话系统的数据收集
US11151333B2 (en) Conversational event modeling
Heo et al. Form to Flow: Exploring Challenges and Roles of Conversational UX Designers in Real-world, Multi-channel Service Environments
EP3563375B1 (en) Expandable dialogue system
Ahmed An Architecture for Dynamic Conversational Agents for Citizen Participation and Ideation
WO2021202279A1 (en) Systems and methods for conversation modeling
Vu et al. GPTVoiceTasker: Advancing Multi-step Mobile Task Efficiency Through Dynamic Interface Exploration and Learning

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