如何玩转天猫精灵智能应用云开发?
预计阅读时长10分钟
云开发是一种软件开发方法,软件的开发和运行都是在云上。随着技术的进步,如容器技术Docker和Kubernetes,云开发也将会成为基于云的应用程序的标准开发模式。
今天,我们将通过一个智能应用《问答百科》,来给大家介绍如何基于云开发快速开发一个天猫精灵智能应用。
视频演示
看完是不是很想自己动手设计开发一个智能应用?不要着急,只需按照以下步骤,你也可以做出一样的天猫精灵智能应用,让我们一起来试试吧~
在开始之前,我们得做以下准备:
-
准备一台天猫精灵智能音箱,完成的应用将在这台机器上与你互动,这样更有体感(淘宝搜索“天猫精灵X1”)。
-
准备一台可以上网的电脑。
都准备好了吧,接下来我们按照步骤去操作
云开发步骤
1. 智能应用语音对话设计
根据视频当中的演示,整体的语音对话设计如下:
-
欢迎
问题: 打开问答百科
回复: 欢迎进入问答百科, 您可以按照如下格式向我提问哦【什么是云原生、函数计算是什么】
-
询问
问题: 什么是智能应用
回复: 天猫精灵智能应用包括语音技能、支付宝小程序、APP等应用
…….
2. 智能应用开放平台技能配置
ps. 准备好淘宝账号, 看过官方文档可以绕过这一步
2.1. 创建自定义技能
首先我们需要使用淘宝账号登录 AliGenie 智能应用开放平台 (https://open.aligenie.com/home),进入技能列表。点击页面右上角创建语音技能,开始创建自定义技能。
2.2 创建语音交互模型
在创建语音交互模型前,大家先理解以下这些概念
-
语料
即用户说的话,同一个问题可以使用多种话术进行提问,比如“什么是函数计算”就是一种语料。
-
意图
即对用户说的话的背后的目的进行一个抽象,比如“什么是函数技术,什么是云原生”,这些话的意图就是询问。一个意图的背后可以有多种语料(话术)。
-
实体
即一个规范的自然语言短语集合,通常定义为应用所在领域的关键词、术语。如常见的时间、地点、POI、人名、数量等,都可以作为实体来处理。平台提供了公共实体,我们也可以自定义实体。
-
参数
即平台在识别用户所说的语料时,能够从语料中提取到关键信息保存在参数中。参数关联实体,则是规定了此关键词的取值范围。例如当用户通过语料“什么是云计算”进入询问意图时,平台可以从这句话中提取到“名词:云计算”参数,开发者可以拿到这个参数进行业务处理。
-
回复逻辑
即平台针对用户说的话识别出其中的意图,并且解析出其中的参数,通过请求传递给开发者提供的服务进行处理,然后返回给音箱进行播报。开发者可以选择回复逻辑执行方式有Webhook (https://www.aligenie.com/doc/357834/xwndex) 或阿里云 FaaS (https://www.aligenie.com/doc/357834/vxhdf8)。
2.3. 设置回复逻辑
本文主要介绍的是云开发,所以我们需要设置回复逻辑为【默认逻辑阿里云FaaS】
整体过程演示:
3. 在云开发平台进行编码
云开发平台主要负责完成FaaS函数的开发与部署。如果当前淘宝账号是首次使用云开发,需要手动开通依赖的云服务权限。
当我们选择了云开发模式后, 回复逻辑背后的服务将以FaaS的形式提供服务,因此我们需要进入云开发平台进行业务代码的开发与部署。
3.1. 创建应用
首次使用, 点击默认逻辑阿里云FaaS中的开通入口,输入淘宝账号进入云开发平台, 这里会让你选择一个解决方案,这里我们选择Java语言作为我们的解决方案。
当应用的环境管理、成员管理都一切就绪后(图表变:white_check_mark:) 我们就直接点击开发进行业务开发。
3.2 业务开发
目前我们选择的解决方案是Java。云平台会帮我们以Maven构建项目, 并且初始化代码脚手架, 并且集成了语音技能SDK. 我们可以快速的在当前demo的基础上进行开发。
当前Java解决方案的函数入口文件是GenieEntry.java,初始化的代码逻辑就是返回识别出的意图和参数。我们可以在这之上进行开发。
《问答百科》的业务逻辑代码我放到了GitHub中,大家可以自行下载:
https://github.com/weakwater/faas-demo/blob/master/GenieEntry.java
4. 部署与测试
4.1 代码提交
业务代码开发完成后,我们需要把代码推送到仓库,这里我们可以使用命令推送,也可以使用CloudIDE插件推送。
• 命令行
• GIT插件
4.2 代码部署
云开发平台当前分别提供了日常、预发、线上3套环境,这里我们直接使用线上环境进行部署。
点击部署后,云平台会自动的拉取最新的代码打包、编译、部署,当出现下图表示应用部署完成。
4.3 在线测试
应用部署完成后,我们回到智能应用开放平台进行应用的在线测试,根据之前的对话设计,测试命中的意图、识别的参数、回复的内容是否正确。
4.4 真机测试
真机测试只要自己的淘宝账号和设备之间完成配网即可直接使用,不再需要单独绑定设备了。
在线测试通过后,我们可以通过真机测试来验证一下,毕竟打字和说话的交互体感还是不一样的,这里我们点击真机测试TAB,然后开启测试后,就可以直接对着自己的音箱按照对话设计方式进行对话了。如果一切符合预期,那么至此整个应用就开发完成了。我们就可以直接把应用提交审核了。
4.5 日志查看
ps. 当前函数计算的日志还未集成到云开发平台,需要单独去阿里云函数计算控制台进行查看。查看函数计算的日志时请选择函数对应区域进行查找。
如果在线测试过程中遇到了“IDE ERROR”的错误,我们可以打开函数计算控制台,选择服务函数,找到自己的函数进行日志查询。
结语
怎么样,是不是很简单。只要一台可以上网的电脑就可以完成一个智能应用的开发了。如果你对背后的技术实现感兴趣,请关注公众号后续的更新,我们将会为您介绍天猫精灵云开发背后的技术架构与实现。
其它精选文章:
扫码或长按关注微信公众号: 天猫精灵技术。
讲述天猫精灵背后的技术