天猫精灵开发技能【3】
阿里云云开发平台名称以及网址workbench.aliyun.com
阿里云 - 云开发平台 (aliyun.com)
1.配置天气质量查询意图
点击 “创建意图”,创建 天气查询意图
创建一个空气质量 意图。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N4V7drT4-1635992735713)(simpread-(25%20%E6%9D%A1%E6%B6%88%E6%81%AF)]%20%E9%98%BF%E9%87%8C%E4%BA%91%20AI%20%E8%AF%AD%E9%9F%B3%E6%8A%80%E8%83%BD%E5%BC%80%E5%8F%91%E8%AE%AD%E7%BB%83%E8%90%A5%E7%AC%AC%E4%B8%89%E5%A4%A9_%E6%97%A0%E6%95%8C%E5%B0%8F%E5%B0%86%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%20%E5%8D%9A%E5%AE%A2.assets/8a82d464365db8c8cfb4e94453072402.png)
可选:
和天气查询意图一样,为了防止用户在日常语音交互过程中很有可能没有说出想要查询 的城市或者日期,导致语音交互识别过程中缺少必要的参数,我们要为空气质量查询意图设置参数追问来补全一些必要的信息,以便技能为用户提供精确的服务;
在系统默认实体值字段中,为时间参数配置默认参数为今天,为城市参数配置精灵追问为 “您要查询哪个城市的空气质量?”。
配置多轮对话语料,并把明天和北京分别进行标注,明天标注为时间实体,北京标注为城市实体。
2.配置前置意图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k1Yh2kXf-1635992735722)(simpread-(25%20%E6%9D%A1%E6%B6%88%E6%81%AF)]%20%E9%98%BF%E9%87%8C%E4%BA%91%20AI%20%E8%AF%AD%E9%9F%B3%E6%8A%80%E8%83%BD%E5%BC%80%E5%8F%91%E8%AE%AD%E7%BB%83%E8%90%A5%E7%AC%AC%E4%B8%89%E5%A4%A9_%E6%97%A0%E6%95%8C%E5%B0%8F%E5%B0%86%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%20%E5%8D%9A%E5%AE%A2.assets/c82d8c3b7832723a1e86c2f8dfc2e57b.png)
这样配置完后,我们一个最简单的意图关联和参数传递就完成了。简单来说,空气质量查询的意图可以用我们天气查询意图的 city 参数放到空气质量查询的 city 参数中。
保存意图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4DSvQp4u-1635992735725)(simpread-(25%20%E6%9D%A1%E6%B6%88%E6%81%AF)]%20%E9%98%BF%E9%87%8C%E4%BA%91%20AI%20%E8%AF%AD%E9%9F%B3%E6%8A%80%E8%83%BD%E5%BC%80%E5%8F%91%E8%AE%AD%E7%BB%83%E8%90%A5%E7%AC%AC%E4%B8%89%E5%A4%A9_%E6%97%A0%E6%95%8C%E5%B0%8F%E5%B0%86%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%20%E5%8D%9A%E5%AE%A2.assets/e872031eedae73fa462c076b790ca517.png)
3.开发部署后端服务
示例代码:
package com.alibaba.ailabs;import com.alibaba.ailabs.common.AbstractEntry;
import com.alibaba.da.coin.ide.spi.meta.AskedInfoMsg;
import com.alibaba.da.coin.ide.spi.meta.ExecuteCode;
import com.alibaba.da.coin.ide.spi.meta.ResultType;
import com.alibaba.da.coin.ide.spi.standard.ResultModel;
import com.alibaba.da.coin.ide.spi.standard.TaskQuery;
import com.alibaba.da.coin.ide.spi.standard.TaskResult;
import com.alibaba.fastjson.JSON;
import com.aliyun.fc.runtime.Context;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;/*** @Description 天猫精灵技能函数入口,FC* handler:com.alibaba.ailabs.GenieEntry::handleRequest* @Version 1.0**/
public class GenieEntry extends AbstractEntry {@Overridepublic ResultModel<TaskResult> execute(TaskQuery taskQuery, Context context) {context.getLogger().info("taskQuery: " + JSON.toJSONString(taskQuery));// ResultModel<TaskResult> res = new ResultModel<>();TaskResult taskResult = new TaskResult();// 从请求中获取意图参数以及参数值Map<String, String> paramMap = taskQuery.getSlotEntities().stream().collect(Collectors.toMap(slotItem -> slotItem.getIntentParameterName(), slotItem -> slotItem.getOriginalValue()));//处理名称为 welcome 的意图if ("welcome".equals(taskQuery.getIntentName())) {taskResult.setReply("欢迎使用天气小蜜,使用小蜜可以查询天气哟");//处理名称为 weather 的意图} else if ("weather".equals(taskQuery.getIntentName())) {//weather 意图中 date 参数勾选了必选,请求数据中一定会携带 date 参数,只需要判断 city 参数有没有。if (paramMap.get("city") == null) {taskResult.setReply("您要查询哪个城市的天气?");return askReply(taskResult, "city", taskQuery.getIntentId());}//TODO 根据参数获取天气信息,这里使用假数据替代taskResult.setReply(paramMap.get("city") + paramMap.get("sys.date(公共实体)") + "天气 晴");//处理名称为 ari_quality 的意图}else if ("ari_quality".equals(taskQuery.getIntentName())) {//air_quality 意图中 date 参数勾选了必选,请求数据中一定会携带 date 参数,只需要判断 city 参数有没有。if (paramMap.get("city") == null) {taskResult.setReply("您要查询哪个城市的空气质量?");return askReply(taskResult, "city", taskQuery.getIntentId());}//TODO 根据参数获取空气质量信息,这里使用假数据替代taskResult.setReply(paramMap.get("city") + paramMap.get("sys.date(公共实体)") + "空气质量 优");//其他意图}else {taskResult.setReply("请检查意图名称是否正确,或者新增的意图没有在代码里添加对应的处理分支。");}return reply(taskResult);}/*** 结束对话的回复,回复后音箱闭麦*/private ResultModel<TaskResult> reply(TaskResult taskResult) {ResultModel<TaskResult> res = new ResultModel<>();taskResult.setExecuteCode(ExecuteCode.SUCCESS);taskResult.setResultType(ResultType.RESULT);res.setReturnCode("0");res.setReturnValue(taskResult);return res;}/*** 指定追问参数,音箱自动开麦,用户的回答优先匹配追问的参数*/private ResultModel<TaskResult> askReply(TaskResult taskResult, String parameterName, Long intentId) {ResultModel<TaskResult> res = new ResultModel<>();taskResult.setExecuteCode(ExecuteCode.SUCCESS);taskResult.setResultType(ResultType.ASK_INF);AskedInfoMsg askedInfoMsg = new AskedInfoMsg();askedInfoMsg.setIntentId(intentId);askedInfoMsg.setParameterName(parameterName);List<AskedInfoMsg> askedInfos = new ArrayList<>();askedInfos.add(askedInfoMsg);taskResult.setAskedInfos(askedInfos);res.setReturnValue(taskResult);return res;}
}
完成代码编写后,要把代码提交到仓库中,不然再进来就没有了,提交步骤:点击源代码管理,然后点击提交按钮;提交完成后要选择部署环境,打开 CloudIDE 左侧的 部署调试插件,进入到部署面板,选择预发环境进行部署。
4.测试
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Ky11eVY-1635992735729)(simpread-(25%20%E6%9D%A1%E6%B6%88%E6%81%AF)]%20%E9%98%BF%E9%87%8C%E4%BA%91%20AI%20%E8%AF%AD%E9%9F%B3%E6%8A%80%E8%83%BD%E5%BC%80%E5%8F%91%E8%AE%AD%E7%BB%83%E8%90%A5%E7%AC%AC%E4%B8%89%E5%A4%A9_%E6%97%A0%E6%95%8C%E5%B0%8F%E5%B0%86%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%20%E5%8D%9A%E5%AE%A2.assets/99f9500233c94b01af37eb721a6484e2.png)
天猫精灵开发技能【3】相关推荐
- 在 CloudIDE 里实现天猫精灵自定义技能的业务逻辑
技能后端编码 技能的后端编码是天猫精灵自定义技能开发的重头戏.点击 代码编辑 面板,可以为该技能针对的业务接口实现,选择对应的服务部署方式. 在线开发模式同阿里云云原生开发即 FAAS,这两种方式均无 ...
- 使用node js 和天猫精灵 开发交互
这里写自定义目录标题 使用node js 和天猫精灵 开发交互 准备工作 最好的教程 使用node js 和天猫精灵 开发交互 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页.如果你 ...
- 一个前端开发工程师的天猫精灵评测报告
虽然从普通用户眼中,使用语音向天猫精灵发起指令,然后收到后者的语音回复,这个流程似乎很简单,但背后实际上有着人工智能中 ASR(语音识别).NLP(自然语言处理).TTS(语音合成)等自然语言处理技术 ...
- ESP8266开发、ESP8266连接阿里云物联网、天猫精灵控制esp8266、esp8266一键配网、智能家居
ESP8266开发.ESP8266连接阿里云物联网.天猫精灵控制esp8266.esp8266一键配网.智能家居 项目介绍 最近会 将arduino IDE开发ESP8266中一些值得记录得部分写下来 ...
- Python实现天猫精灵OAuth2.0和语音技能配置
之前用tornado实现tcp server与硬件的client的连接,以便下发指令.基于django/tornado与wifi模块,lora设备的TCP/UDP即时通讯 现在考虑到天猫精灵可以语音接 ...
- 天猫精灵智能家居对接,及天猫iot官网配置图文讲解(二)
天猫精灵智能家居对接,及天猫iot官网配置图文讲解(二) 2.天猫精灵设备对接 2-1.介绍 上一章里,我已经讲了天猫精灵的技能配置,设备创建,登录验证这三个部分做了,此次篇文章就讲之后的设备查询 ...
- 天猫精灵OAUTH2的authorize无法认证,认证参数不全,token错误的排查
目录 写在前面 感想与目的 调试的方法 使用天猫精灵开发平台提供的在线测试工具 手动输入链接与GET信息 错误排查 authorize.php不发生跳转,直接显示错误码 链接发生了跳转,但是提示认证参 ...
- 当你和天猫精灵对话时,它在想什么?阿里智能对话技术深度解读
摘要: 术语对齐 TaskBot引擎: 核心处理对象是"技能",我们把技能定义成结构化(query+content).垂直场景化的任务,比如实时场景查询.工具类.控制类等QABot ...
- 天猫精灵使用体验之一——天猫精灵初体验
在前面,小智已经介绍过,天猫精灵是小智在2017年双11下单的,等了一个多月,12月下旬才收到货.所以当天猫精灵从盒子里面蹦出来到体验官面前时,体验官就迫不可待地开始了一列表的体验和测评--什么开箱照 ...
最新文章
- 时间序列、时间序列分析、时间序列效应分解、平稳时间序列、AIC和BIC
- samba网络服务的搭建和配置
- 嵌入式处理器 cisc risc_RISC-V能否“重构”芯片产业格局
- C# 多线程之List的线程安全问题
- java中CompletionService的使用
- oracle biee
- Windows Phone 执行模型概述
- [译]WPF开源控件扩展库ControlzEx
- linux脚本传参修改配置文件,shell脚本修改配置文件指定行的值
- win10下安装ubuntu14.04双系统(UEFI固件)
- Inception(Pytorch实现)
- 计算机专业考试知识点,2016计算机专业知识:精选知识点练习(126)
- Angular 7 和 .Net Core 2.2——全球天气(第1部分)
- jquery隐式迭代
- 65883-12-7,PEG5-Ms带有甲磺酸基和羟基的PEG连接剂
- 优秀课程案例|如何用scratch画扇形统计图
- linux系统下以存储从大到小并以K,M,G为单位的方式查看当前目录下的文件信息
- 【MVC、Spring MVC介绍、区别、执行流程】
- OA系统管理项目工作内容
- 计算机原理接口,《计算机原理与接口》教学大纲
热门文章
- 充电站网络安全风险危及电动汽车普及
- 如何将多个pdf合成一个pdf?
- Prometheus 配置钉钉告警
- Mac Mojave10.14安装vmvare Fusion 11.0.0 win8 镜像
- 计算机运行库,VC2010运行库
- 2021寒假笔记(数论)
- PMP项目管理五大过程组
- 一条命令轻松调节mac鼠标移动速度
- Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.Generi
- html5个人收藏页面,safari个人收藏全不见 大侠不过一剑之遥是倚天的新版本吗?...