APP下载

Alexa关键Chatbot引擎Lex正式释出,更完整对话管理,打造多工Bot服务更容易

消息来源:baojiabao.com 作者: 发布时间:2024-05-23

报价宝综合消息Alexa关键Chatbot引擎Lex正式释出,更完整对话管理,打造多工Bot服务更容易
图片来源: 

AWS

AWS终于在近日释出Alexa的背后Chatbot引擎Amazon Lex,曾在2016年11月底AWS re:Invent的活动上推出Lex的测试版,2017年的4月发布正式版本,不过,目前只在美国东部(维吉尼亚北部)的区域提供服务,且只支援英文。

Lex是AWS旗下的一项服务,提供使用者打造对话机器人的引擎,Lex能介接到对话界面的通讯平台,并提供开发人员深度学习的技术,像是自然语言理解技术和自动语音辨识。

开发人员使用Lex的服务建立Chatbot的过程中,不需要自行建立机器学习的模型,可直接使用Lex自动产生的机器学习模型,建立完成之后,开发人员也可以在Lex的平台的测试视窗(Test Window)测试Chatbot。

Lex与Lambda无服务器运算服务整合,让使用者将程式码上传后,AWS即会自动调派AWS EC2运算服务,建立Lambda程式的执行环境,让执行程式变得更便利,开发人员建置完对话机器人后,能将Chatbot部署到通讯平台、行动用户端,甚至是IoT装置。

若开发人员想将Chatbot部署到行动装置上,Lex也提供开发人员可用iOS和Android的SDK介接,开发人员可透过Amazon Cognito启用使用者身份验证,并使用AWS Mobile Hub来建立行动装置平台上的Chatbot。

若是要部署到通讯平台,Lex整合了Facebook Messenger、Slack和Twilio SMS这3项对话通道,开发人员可以在Lex的界面上选择要部署的通道,在提供Token之后,Lex会给予Callback URL,开发人员即可将Chatbot发布到对话通道上执行。

Lex的界面也提供了监控界面(Monitoring Dashboard),让开发人员监控对话机器人的状况,目前,Lex可以显示遗漏的讯息、回应延迟时间和使用流量等相关资讯,也能检视未被Lex辨识出来语句,这样的监控机制,让开发人员能够获得修改Chatbot的参考依据。

打造自家Chatbot,建立语意分析资料搭配讯息管理

企业开发人员使用Lex之前,要先注册AWS的账户,注册完即可开始使用Lex的服务。首先,Lex将Chatbot语意分析分为意图(Intent)、例句(Utterance)和Slot。

意图是使用者要对话机器人完成的任务,例句是使用者依据不同表达方式说明意图的语句,与微软和IBM不一样的是,Lex将例句设定为意图的平行项目,这也意味着,Lex的例句能够用在不同意图中,省去在不同意图下建立一样例句的步骤。

Slot则是要满足执行意图的条件所输入的参数,与微软和IBM的Entity不同,Slot能够记录此参数触发程式的状态(Statement),Lex遇到类似的意图,像是订饭店或是订机票,就会保留Slot的资讯,供不同意图使用。

举例来说,我要订机票这个例句就会触发订票的意图,对话机器人透过提示(Prompt)的反问机制问使用者“请问您要到哪里?”使用者输入“纽约”这个参数便是要满足意图的Slot。

其中,Slot又可以依照对应的意图,分为不同的条件词汇类别(Slot Type),像是订机票意图的条件词汇又可分为出发地、目的地、时间、班机编号等类别,此外,Lex不仅像微软一样,有提供开发人员内建的条件词汇类别,包含日期、时间、数字等,还提供了一些基本的意图,像是查询天气、电影时刻表、音乐等。

开发人员建立完语意分析的资料后,就可以开始建置讯息管理,让Chatbot更聪明。Lex讯息的管理上,采用提示(Prompt)来获得足够的Slot,例如,开发人员可以设定在接收到订机票的意图后,建立“请问您要到哪里?”的提示。

Lex能透过问答的方式,取得语意分析所需的Slot,经过多轮的对话,得到足够的条件后,再执行使用者的意图。

Lex将语意分析的元件分为意图(Intent)、例句(Utterance)和Slot,与微软和IBM不一样的是,Lex将例句设定为意图的平行项目,Slot也与微软和IBM的Entity不同,Slot能够记录此参数触发程式的状态(Statement),Lex遇到类似的意图,就会保留Slot的资讯,供不同意图使用。

图片来源:AWS

Amazon Lex的特性

Lex也有提供对话管理的机制,不同于IBM的Conversation服务的对话树,Lex采用Session timeout与Cross-intent information sharing这2项机制来管理对话。

Session timeout提供开发人员设定一段时间,让Lex保留对话的资讯,让使用者在有效的时间内,可延续对话,不需要每次都重新输入资讯。

举例来说,订购机票的Chatbot与使用者互动时,会支援订票、查询订单状况等意图,当Chatbot收到使用者要订票的意图时,会开始反问问题以得到足够的Slot,像是时间、舱等和目的地等。

若使用者提供了相关的条件词汇资讯,但尚未完成订购,Lex会将使用者的提供资讯的记录保留一段时间,若使用者在时效内回到对话,即可继续订购的对话,不需要重新对话一次,开发人员可以自由设定时效的时间,Lex的预设值为5分钟。

Cross-intent information sharing则是让Chatbot在执行不同的意图时,可以同时使用对话内容的资讯,例如,在订购机票的Chatbot中,若使用者已完成订购机票的意图,也提供了Slot的资讯,想转移到查询订购状况的意图,Lex则是透过询问使用者订购编号和日期,将两项意图的资讯串在一起,这样一来,订购的资讯就可以同时被不同意图使用,不需要重新再问一次使用者订购的相关资讯。

另外,Lex还提供意图链(Intent Chain)机制来管理上下文,根据使用者表达的语句,动态地转移意图,能够让开发人员将对话分成多个元件,简化复杂的对话。

以旅游的对话机器人为例,开发人员可在使用者订购机票之后,设计对话机器人接续询问是否要订饭店或是车子,根据使用者的回复,可能会触发或是拒绝额外的订购,Lex也都正确地处理。

比较特别的是,Lex提供2个版本管理的功能,分别是Versioning和Alias,Versioning是在开发人员第一次发布(Publish)Chatbot后,Lex会自动记录并产生一个版本,之后每一次发布都会产生一个新的版本,版本编号依序增加1,像是Version2的下一个版本就是Version3。

不过,Lex在开发人员发布Chatbot时会与最新的版本比较,若没有修改或调整任何内容,Lex并不会建立新的版本。

版本管理的功能,让开发人员在部署Chatbot时,有更高的自由度,例如,开发人员要将Chatbot部署到不同的通讯平台上,就能使用不同的版本。

Alias则是提供开发人员指定特定版本的Chatbot,每个开发和执行阶段都可以指定不同版本的Chatbot,甚至,开发人员可以在使用者使用Chatbot时更新版本。

举例来说,开发人员可以先指定发布版本一的对话机器人,若版本二要发布,开发人员可以在版本二发布后,直接将Alias转为指定新的版本。由于Lex采用Alias的机制,而不用另外发布新的版本,使用者可以随时使用Chatbot最新的功能。

这样的机制对开发人员而言,是一大优点,若新的版本有问题时,就可直接透过Alias转到前一个版本。除此之外,Lex的服务还能提供企业的开发人员一同参与设计Chatbot的过程,能允许多个开发人员在Lex服务中开发、测试。

Lex提供2项版本管理的功能,分别是Versioning和Alias,Versioning能记录每次开发人员发布的Chatbot版本,Alias则是提供开发人员能在开发、执行阶段,分别指定使用特定版本的Chatbot。

图片来源:AWS

2018-01-17 10:25:00

相关文章