首页 首页 资讯 查看内容

云开发系列课程 | 快速上手 Java天猫精灵智能应用

2021-12-30| 发布者: 智远传媒| 查看: 135| 评论: 1|文章来源: 互联网

摘要: 我们都知道天猫精灵具有语音互动和问答的能力,那么语音交互的流程是怎样的呢?一、传统开发模式传统的开发......

本文主要介绍天猫精灵智能应用云原生开发模式及如何使用云原生开发模式开发一个智能应用。

我们都知道天猫精灵具有语音互动和问答的能力,那么语音交互的流程是怎样的呢?


如上图所示,精灵平台会把用户说的话转成文字,再加上自然语言处理,识别出对应的意图,提取出对应的参数,最后传给开发者。开发者根据业务逻辑进行处理,把对应的结果返回给精灵平台,精灵平台对返回的信息做TTS合成,把对应的音频链接下发给天猫精灵,天猫精灵会把对应的结果汇报给用户。这就是整个智能应用的交互流程。

一、传统开发模式

在介绍云开发模式之前,先来看看传统开发模式。

传统的开发流程

首先需要做好基础设施的准备,这里包括服务器、域名等等;然后是开发环境的准备,例如ID的安装、运行环境配置、代码框架搭建等等;接着需要配置语音模型,再然后是业务开发、部署,最后是应用提审。传统的开发流程对开发者来说门槛比较高,因为需要去准备好基础设施与开发环境。

传统运维模式

传统运维模式提倡DevOPS,希望通过一系列工具和自动化技术来降低运维难度,促进研发运维一体化,提升软件的开发效率,缩短软件的交付周期。

总的来说,传统开发模式有两大痛点:开发门槛高和研发成本高。

二、云原生开发模式

原生开发流程

云原生开发流程是直接进入智能应用开发平台进行语音模型的配置,然后进入云开发去开发业务代码,然后是部署和测试,最后是应用提审。

在云开发的流程中不需要关注基础设施和开发环境,所以对开发者来说开发门槛很低。

云原生运维模式

云原生运维模式提倡的是noOps理念,它会根据流量的大小自动地弹性伸缩。

云原生开发模式的优势是:

Ø  开发门槛低,无需关注基础设施和开发环境;

Ø  以帮助开发者脱离繁琐的运维工作,聚焦核心的业务开发;

Ø  云原生的运维模式是按量收费的,帮助企业节约资源投入成本。尤其是初创企业的业务试错期,它的流量非常低甚至可以达到免费。

云原生模式的架构

最上层是智能应用开放平台,它提供了智能应用的全生命周期管理能力。其中的云开发主要依托于天猫精灵与阿里云合作共建的云开发平台。

向下一层的云开发平台,主要提供了CloudIDE、资源管理、日志监控等能力。当前也为天猫精灵提供了NodeJS和Java两种语言的解决方案,并且集成了语音技能SDK,帮助开发者快速开发智能应用。

再向下一层是FaaS服务和BaaS服务。FaaS服务是通过触发器触发的,在智能应用的场景中,主要使用的是HTTP触发器;BaaS服务主要提供了一些存储能力、通信能力和运维能力,这些能力主要通过BaaS SDK进行调用。

最底层阿里集团和阿里云的Serverless资源池,它主要通过开放API服务能力层进行调度。

以上就是整个云原生的架构。

三、何使用云原生开发模式进行开发

以问答百科为例。

问答百科的交互模型

Ø  意图介绍

问答百科有两个意图,当唤醒问答百科时,进入的是欢迎意图;当向问答百科问问题时,进入的是问题的意图。

Ø  语料介绍

语料是指用户说的话,比如用户可能问什么是函数计算,意图就是不同语料所代表的同一种意思。

Ø  实体介绍

语料当中像“函数计算”、“智能应用平台”都是可以被替换的,是作为参数可以被提取的。那么这些词的集合就是一个实体,实体是指某一类名词的集合,相当于提供了有限定范围的词典。

在问答百科当中,这些词都是可以根据知识库的范围去动态补充的。

通过语料和实体就可以拼装出一个语料模板,如上图右侧所示“什么是@[noun]”“ @[noun]是什么”

如何使用云原生模式进行开发

Ø  创建语音交互模型

第一步,创建语音技能。打开智能应用开放平台,创建一个语音技能问答百科,设置一些标签,点击确认创建。

第二步,创建语音交互模型。首先创建实体,补充实体名称并做好标识(noun),完成创建。

第三步,创建意图。

首先是欢迎意图,它的标识是welcome,再将欢迎意图设置为默认意图。那么当唤醒问答百科的时候就会默认进入欢迎意图。

其次是问题的意图。当向天猫精灵问问题的时候,默认进入的是问题意图。创建完成,再配置问题意图对应的语料,比如说“什么是函数计算”、“智能应用开放平台是什么”等等。那么“函数计算”和“智能应用开放平台”都是可以被提取的参数,是可以被替换的,所以把它标注为实体。

这样,整个语音交互模型就创建完成了。

Ø  设置回复逻辑

由于使用的是云原生开发模式,所以需要设置的回复逻辑为默认阿里云FaaS,将它设置为默认集合,然后去开通。

提醒:如果是首次使用阿里云FaaS进行开发,建议先阅读一下新手引导文档,文档中有关于如何使用阿里云FaaS进行开发的详细介绍。

点击开通后,登录到云开发平台。

点击刚刚创建的智能应用下面的代码仓库地址(也支持进行本地开发),在弹出窗口,生成SSH密钥,然后进行绑定。绑定完成后,就可以通过本地下载代码进行开发。

由于此次介绍的是云开发的模式,所以可以直接使用Cloud IDE进行开发。

那么直接点击“进入开发”,打开一个Cloud IDE后会加载一些插件,然后下载初始化代码。如下图所示可以看到左侧的项目代码结构。

通过上图右侧的初始代码就可以直接进行语音技能SDK开发。

问答百科的逻辑是首先要有一个数据库去存储知识,如下示例是通过map存储知识,mapkey就是实体值,比如“函数计算”、“云原生模式”等等。它的value就是对应的答案。

下面是整个函数的执行入口。首先输出一段请求参数的日志,然后获取意图名称,再获取参数,然后再判断这个意图是不是欢迎意图。如果是欢迎意图就播放一段话;如果是问题意图就获取对应的参数,再接下来判断参数存不存在。

如果参数不存在就追问参数是什么;如果参数存在就判断当前问题是不是知识库里包含的问题。如果知识库里面存在该问题对应的答案,就直接返回;如果不存在,则直接回答“对不起您的问题超出了我的范围”。

如果既不是欢迎意图也不是问题意图,也可以直接返回成“对不起您的问题超出了我的知识范围”。

以上就是一个非常简单的问答百科的后台逻辑。当开发完这套逻辑之后,需要把代码上传到代码仓库。

上传代码仓库有两种方法,第一种是可以使用CloudIDE自带的插件去完成添加推送;第二种是可以通过git的命令进行操作。

Ø  应用部署

部署分三个环境:日常环境、预发环境、线上环境。

首先选择日常环境点击部署,点击后系统会开始构建打包。当部署完成且相关信息完全提交到天猫精灵平台后,接下来可以试着选择线上环境进行部署。完成后可以到智能应用开放平台进行在线测试,去验证逻辑是否正确。

Ø  在线测试和提审

问答百科页面有在线测试功能。

首先可以使用唤醒词对技能进行唤醒。当唤醒技能时,它会回答“欢迎进入问答百科,你可以按照如下格式向我提问”。然后再通过上面的设置,提出问题进行测试。

测试完成并无误,就可以对应用进行提审了。



鲜花

握手

雷人

路过

鸡蛋
| 收藏

最新评论(1)

Powered by 智远传媒 X3.2  © 2015-2020 智远传媒版权所有