介绍下主流程

1、小爱开放平台配置 ,当进入自定义技能是,调用内部系统的接口。
2、内部系统接口区分小爱的请求,不同类型加上不同类型的积分。接口返回数据到小爱,小爱播放返回的语音数据。

基本流程确定了之后,开始撸起袖子干。

一、小爱平台注册加创建技能

小爱开放平台的官方文档还是可以的。虽然也有些小坑,但是基本还是能走下来的。

1、填写基本信息

python 调用小爱音响 小爱音箱 开发_小爱开发

注意:这个页面的唤醒词,只是用作展示,就是上线的时候,会在简介中看到。并不是实际使用的配置。在这个上边纠结了很久,后边才摸索出来。刚开始理解成了要和意图中对应,就比较好奇干嘛要配两个。。。。。

2、填写意图

顾名思义,就是你想做的事情。在整个技能中是比较核心的地方。比如我的技能,喊了小爱之后,让他去帮我在内部系统中加分,就是在这里配置,

python 调用小爱音响 小爱音箱 开发_linux_02

注意:意图中的系统意图必须加完整,就是要加三个系统意图。不然会报错,还是加了官方qq群,直接@管理员解决的。emmmmm… 有点秀。类似这种,虽然报错但是用户并不知道为什么报错,就很难受。

python 调用小爱音响 小爱音箱 开发_node_03


意图中的语料,就是用户说的话,中间有槽位可以配置,槽位在下方可以配置有哪些可选项。

python 调用小爱音响 小爱音箱 开发_python 调用小爱音响_04


槽位添加了之后,对应另一个页面的词表,在用户说话的时候,就能提取其中的变量。

python 调用小爱音响 小爱音箱 开发_python 调用小爱音响_05


意图中我的配置只有这么多了。下边还有更多的配置。

自定义回复:匹配到意图后直接回复。注意这里可能会跟调接口回复冲突,前边排查了很久,为什么没有调用接口,后来发现是配置了自动回复。

意图确认:就是会在匹配到意图后,确认下是否执行改意图

模糊匹配:顾名思义,模糊匹配意图

3、词表

词表,在我的理解中类似字典的存在。匹配到意图后,会去找意图中的槽位,每个槽位都会对应一个词表。所以我是将用户列表和类型都配置成了词表。

python 调用小爱音响 小爱音箱 开发_python 调用小爱音响_06

4、配置信息

我配置的是https回复,没有使用自定义回复。 其实觉得自定义回复也很好玩。只是功能没有那么定制化,不满足开发类的需求。

这里有个坑。。。。,保存的时候个人承诺书变动,让重新签承诺书,然后找了几圈,都没有找到承诺书的入口在哪。。。。。。。也是直接qq群找技术支持

python 调用小爱音响 小爱音箱 开发_开放平台_07

5、账户管理 (未配置,默认值)

6、隐私策略 (未配置,默认值)

7、设备调测

注意,这里必须在隐私策略中点一下【进入测试】才能进入。。。。。尴尬,刚开始看到隐私策略直接跳过去了。 不过发现了一个bug,f12中的标签携带有链接,能直接点进来的。

python 调用小爱音响 小爱音箱 开发_python 调用小爱音响_08


这里边就能测试你添加的意图了。包括接口返回值都能看到。不过意图推荐还是在添加意图的时候去测试。

python 调用小爱音响 小爱音箱 开发_linux_09

二、系统搭建小爱调用接口

其实讲道理,这块应该是整个对接过程中最简单的。 只是受限于平时做前端,接触的这块内容比较少。也碰了不少坑

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服务的运行。挺好用的,安利一下。