背景:家庭中小米产品比较多,特别是音箱,无意间发现小爱有开放平台,了解了下,决定开发来玩玩
小爱开放平台
官方QQ群:1091193908
介绍下主流程
1、小爱开放平台配置 ,当进入自定义技能是,调用内部系统的接口。
2、内部系统接口区分小爱的请求,不同类型加上不同类型的积分。接口返回数据到小爱,小爱播放返回的语音数据。
基本流程确定了之后,开始撸起袖子干。
一、小爱平台注册加创建技能
小爱开放平台的官方文档还是可以的。虽然也有些小坑,但是基本还是能走下来的。
1、填写基本信息
注意:这个页面的唤醒词,只是用作展示,就是上线的时候,会在简介中看到。并不是实际使用的配置。在这个上边纠结了很久,后边才摸索出来。刚开始理解成了要和意图中对应,就比较好奇干嘛要配两个。。。。。
2、填写意图
顾名思义,就是你想做的事情。在整个技能中是比较核心的地方。比如我的技能,喊了小爱之后,让他去帮我在内部系统中加分,就是在这里配置,
注意:意图中的系统意图必须加完整,就是要加三个系统意图。不然会报错,还是加了官方qq群,直接@管理员解决的。emmmmm… 有点秀。类似这种,虽然报错但是用户并不知道为什么报错,就很难受。
意图中的语料,就是用户说的话,中间有槽位可以配置,槽位在下方可以配置有哪些可选项。
槽位添加了之后,对应另一个页面的词表,在用户说话的时候,就能提取其中的变量。
意图中我的配置只有这么多了。下边还有更多的配置。
自定义回复:匹配到意图后直接回复。注意这里可能会跟调接口回复冲突,前边排查了很久,为什么没有调用接口,后来发现是配置了自动回复。
意图确认:就是会在匹配到意图后,确认下是否执行改意图
模糊匹配:顾名思义,模糊匹配意图
3、词表
词表,在我的理解中类似字典的存在。匹配到意图后,会去找意图中的槽位,每个槽位都会对应一个词表。所以我是将用户列表和类型都配置成了词表。
4、配置信息
我配置的是https回复,没有使用自定义回复。 其实觉得自定义回复也很好玩。只是功能没有那么定制化,不满足开发类的需求。
这里有个坑。。。。,保存的时候个人承诺书变动,让重新签承诺书,然后找了几圈,都没有找到承诺书的入口在哪。。。。。。。也是直接qq群找技术支持
5、账户管理 (未配置,默认值)
6、隐私策略 (未配置,默认值)
7、设备调测
注意,这里必须在隐私策略中点一下【进入测试】才能进入。。。。。尴尬,刚开始看到隐私策略直接跳过去了。 不过发现了一个bug,f12中的标签携带有链接,能直接点进来的。
这里边就能测试你添加的意图了。包括接口返回值都能看到。不过意图推荐还是在添加意图的时候去测试。
二、系统搭建小爱调用接口
其实讲道理,这块应该是整个对接过程中最简单的。 只是受限于平时做前端,接触的这块内容比较少。也碰了不少坑
1、node搭建小爱调用服务
技术栈:node、express、mysql、axios
实现思路是,node起一个服务,提供一个api,在小爱开发平台配置。小爱匹配到意图后,就会调用这个接口,我这边收到传递过来的插槽信息,通过mysql模块去查询数据库,然后axios调用内部系统接口实现添加,之后给小爱返回添加成功的tts。
2、linux部署node服务
为什么这块也单独拉出来写,因为实在是没做过node开发。在linux上部署加测试费老大劲了。小爱开放平台只支持https的测试环境,所以我是在本地开发之后,通过git上传,linux再通过git拉下来。直接在linux跑的node项目。
还有关于pm2的包。通过命令行链接的linux服务器,命令行一关闭node项目就被关闭,这哪行。 后来搜索到了pm2这个包。可以在命令行关闭后,继续保持node服务的运行。挺好用的,安利一下。