天猫精灵:微博热搜播报助手

简介: 看热搜不用太麻烦

2.jpeg

🎈 创建技能应用

  • 首先进入天猫精灵开放平台 https://www.aligenie.com
  • 从右上角的 控制台 中选择 技能应用平台
  • 点击创建新技能,即可开始你的创作之旅了

image.png


🎈 选择技能配置

  • 因为我们是自己开发,所以选择 语音技能 中的自定义模版
  • 技能名称:最好取一个跟你开发的功能相对应的名字,比较好识别
  • 技能调用词:是用来唤醒天猫精灵的这个功能的词语
  • 收费情况:因为收费暂时不面对个人用户,所以我们选择免费的
  • 部署方式:我选择的在线开发,如果你在阿里云有自己的服务器,也可以选择FAAS方式进行开发

image.png


🎈 选择开发语言

  • 然后选择自己想要开发的语言
  • 暂时平台提供三种语言来开发天猫精灵 java、nodejs、python
  • 因为个人更喜欢python,这里我选择 python 来进行开发
  • 对于模版的选择,我们看到除了空白模版,我们可以看到系统还会提供另外的三个模版供你选择,如果你开发的是一个电影功能,可以选择对应的电影模版
  • 系统提供的模版,里面已经写好了一些功能逻辑方法,不需要从0开发,可以根据自己的功能去修改其中的代码即可
  • 这里因为我开发的功能是微博热搜实时提供,所以并不适用于其他模版,我选择的是空白模版
  • 然后点击创建即可

image.png


🎈 天猫精灵开发流程

  • 在创建上面的流程后我们可以看到天猫精灵功能的开发流程
  • 主要是配置基本信息、定义交互模型、编写代码逻辑、添加屏幕显示设备、测试、发布
  • 上面的三个步骤就是进行基本信息的配置,所以到了这里可以看到第一步是已经完成的状态了

image.png


🎈 定义语音交互模型

  • 什么是语音交互模型:其实就是你说出你设定的关键词,然后天猫精灵可以自动触发你编写的代码里面的方法,进行执行同你交互
  • 所以在这里我们需要去定义一下关键词
  • 意图:其实就是自定义的关键字
  • 公共意图:其实就是官方已经定义好的一些关键词,比如返回桌面、接听电话等等

image.png


🎈 自定义意图

  • 我们首先需要创建一个默认意图 welcome
  • 就是你说第二步中设置的调用词的时候,天猫精灵默认触发的方法
  • 我们还需要创建一个搜索意图 queryHotNews
  • 用来进行触发天猫精灵实现微博热搜的功能

image.png

image.png


🎈 定义实体

  • 实体是指某领域词汇的集合,技能平台提供了丰富的系统词典来支持技能引用
  • 这里我们需要定义 platform 实体来表示我们需要搜索哪个平台的热门新闻
  • 还需要定义一个 date 日期实体来表示我们需要查找哪天的热门新闻
  • 其实关于热门搜索我们定义这两个实体就已经足够了
  • 这里只是教程,当然在开发中我只开发当天的热门新闻播放,所以 date 实体对于我而言意义并不大
  • 如果是自定义实体的话,需要自己添加实体值
  • 当然我这里只开发微博热门功能,其实只定义微博即可,其他的平台只用做展示

image.png


🎈 实体的使用

  • 在定义完实体后,我们需要在意图中使用实体
  • 也就是告诉天猫精灵,在对话中,将哪些关键字剥离成实体,供开发人员去做逻辑代码的编写
  • 所以我们要在搜索意图 queryHotNews 中使用自己设置的实体
  • 所以我们点击该意图去编辑,在编辑页面可以看到单轮对话表达这个选项
  • 这个选项就是你输入什么话,天猫精灵才会对你的话作出反应
  • 这里我们可以输入几个搜索对话的例句,如下
  • 例句其实就是你跟天猫精灵说这些例句的时候,你才会得到回复,也就是正常用户跟天猫精灵时候所说的话
  • 可以看出我们在例句中写死了交流的句式,这样非常难以变通,如果平台很多,你就得把用户所有想问的话语都写下来,这肯定是不现实的,所以我们需要在例句中引入实体
  • 我们将关键词选中,系统就会跳出实体的选择框,你可以自定义将关键词标记成对应的实体
  • 这里我们将今天标记成 date 实体
  • 将微博标记成 platform 实体
  • 就可以将对话关键词直用实体代替,当天猫精灵捕捉到这些实体时,会将其作为参数传递给你,你进行响应的逻辑编写即可

image.png

image.png

image.png


🎈 代码开发

  • 此时我们可以进入开发流程的第三步
  • 进行代码开发了,首先我们需要创建应用,会进行项目和代码的初始化
  • 然后进入云编辑器中编写代码即可
  • 可以看到初始化的代码中只有简单的回复逻辑
  • 那是因为我们选择的是空白模版

image.png

defhandler(event, context):
request=json.loads(event)
logger=logging.getLogger()
body=base64.b64decode(request['body']).decode()
data=json.loads(body)
logger.info(data)
response= {
"isBase64Encoded": "false",
"statusCode": "200",
"headers": {"content-type": "application/json"},
"body": {
"returnCode": "0",
"returnErrorSolution": "",
"returnMessage": "",
"returnValue": {
"reply": '欢迎使用天猫精灵',
"resultType": "RESULT",
"executeCode": "SUCCESS",
"msgInfo": ""          }
      }
  }
returnresponse


🎈 热搜开发

  • 通过 intent_name = data['intentName'] 可以获得意图名称
  • 通过 data['slotEntities'] 可以获得所有的实体参数
  • 这里我们需要引入 requests 模块,所以我们需要在终端执行 pip install requests 命令进行安装
  • 我们在逻辑里面判断,如果是欢迎 welcome 的意图的话,就回复欢迎使用飞兔热搜
  • 如果是 queryHotNews 意图的话,就查询微博热搜接口进行播放即可
importloggingimportjsonimportbase64importrequestsdefreply(msg):
response= {
"isBase64Encoded": "false",
"statusCode": "200",
"headers": {"content-type": "application/json"},
"body": {
"returnCode": "0",
"returnErrorSolution": "",
"returnMessage": "",
"returnValue": {
"reply": msg,
"resultType": "RESULT",
"executeCode": "SUCCESS",
"msgInfo": ""          }
      }
  }
returnresponsedefhandler(event, context):
request=json.loads(event)
logger=logging.getLogger()
body=base64.b64decode(request['body']).decode()
data=json.loads(body)
logger.info(data)
intent_name=data['intentName']
platform=Nonedate=Noneforslotindata['slotEntities']:
ifslot['intentParameterName'] =="platform":
platform=slot['originalValue']
elifslot['intentParameterName'] =="date":
date=slot['originalValue']
ifintent_name=='welcome':
returnreply('欢迎使用飞兔热搜~')
ifintent_name=='queryHotNews':
response=requests.get('https://api.mdnice.com/trendings')
response=json.loads(response.text)
ifresponse['code'] !=0:
returnreply('网络似乎出现了问题呢~')
current=0msg=''foriteminresponse['data'][1]['trendingItemList']:
current+=1msg+='{},{}\n' . format(current, item['title'])
ifcurrent>=10:
breakreturnreply(msg)


🎈 预发环境部署

  • 我们需要先将代码推送到线上
  • 然后选择将其发布到预发环境即可

image.png



🎈 在线测试和真机测试

  • 在部署之后我们就可以进行测试了
  • 我们可以使用在线测试和真机测试看看自己程序是否可以正常运行
  • 真机测试需要购买天猫精灵才可以的哦,需要跟天猫精灵说 打开技能测试 即可输入验证码进行设备绑定了
  • 真机测试跟在线测试是一样的,只是多了个语言播放功能
  • 至此,微博热搜功能开发完毕

image.png

相关文章
微信数据小助手
微信数据小助手
165 0
|
自然语言处理 Serverless
云开发天猫精灵天气小助手语音技能
使用阿里云云开发平台实现天猫精灵天气小助手语音技能
255 0
云开发天猫精灵天气小助手语音技能
|
数据可视化 Java 开发工具
天猫精灵体验:天气小助手开发
猫精灵技能应用开发平台是阿里巴巴天猫精灵面向不同类型的广大开发者推出的技能应用开发、接入平台。 该平台提供了从语音交互模型定义、语义解析理解能力,到技能开发、测试、部署的一整套开发工具和便捷的可视化操作工作台,帮助开发者高效地将各类技能应用快速接入到天猫精灵音箱以及精灵生态硬件终端。
253 0
天猫精灵体验:天气小助手开发
|
智能硬件 Python
天猫精灵天气助手快速上手
天猫精灵是受众很广泛的智能音箱品牌,它目前的功能已经很丰富。接下来介绍天气助手接入
195 0
天猫精灵天气助手快速上手
|
JavaScript IDE 开发工具
天猫精灵天气助手
天气助手快速部署
176 0
天猫精灵天气助手
|
Java 物联网 开发者
天猫精灵开发 [ 天气助手 ]
按照例子实现一个天猫精灵天气查询的功能~
天猫精灵开发 [ 天气助手 ]
|
开发者
天猫精灵天气小助手云开发体验
通过云开发平台实现天猫精灵的天气小助手技能
天猫精灵天气小助手云开发体验
|
数据可视化 Java 开发者
在天猫精灵开放平台上搭建自己的语音小助手
在天猫精灵开发平台中,对于新人官方很好的提供了一些轻代码的模板,在demo上稍微添加一些调用接口就可以轻松完成自己的需求,根据这一点,对于开发者来说是十分方便了,在demo基础上,很方便的就可以到达自己所需要的效果,也全程无需自己搭建环境,仅靠web端就可以实现代码编写、编译、调试、上线一整套流程。
1461 1
在天猫精灵开放平台上搭建自己的语音小助手
|
自然语言处理 开发工具 git
天猫精灵语音开发-第三天
图文详解如何开发天猫精灵语音应用,以及阿里云云开发平台的基本使用,最后将介绍如何把使用阿里云云开发平台做后台开发天猫精灵应用
187 0
|
自然语言处理 开发工具 git
天猫精灵语音开发-第二天
图文详解如何开发天猫精灵语音应用,以及阿里云云开发平台的基本使用,最后将介绍如何把使用阿里云云开发平台做后台开发天猫精灵应用
144 0