阿里云云开发平台名称以及网址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】相关推荐

  1. 在 CloudIDE 里实现天猫精灵自定义技能的业务逻辑

    技能后端编码 技能的后端编码是天猫精灵自定义技能开发的重头戏.点击 代码编辑 面板,可以为该技能针对的业务接口实现,选择对应的服务部署方式. 在线开发模式同阿里云云原生开发即 FAAS,这两种方式均无 ...

  2. 使用node js 和天猫精灵 开发交互

    这里写自定义目录标题 使用node js 和天猫精灵 开发交互 准备工作 最好的教程 使用node js 和天猫精灵 开发交互 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页.如果你 ...

  3. 一个前端开发工程师的天猫精灵评测报告

    虽然从普通用户眼中,使用语音向天猫精灵发起指令,然后收到后者的语音回复,这个流程似乎很简单,但背后实际上有着人工智能中 ASR(语音识别).NLP(自然语言处理).TTS(语音合成)等自然语言处理技术 ...

  4. ESP8266开发、ESP8266连接阿里云物联网、天猫精灵控制esp8266、esp8266一键配网、智能家居

    ESP8266开发.ESP8266连接阿里云物联网.天猫精灵控制esp8266.esp8266一键配网.智能家居 项目介绍 最近会 将arduino IDE开发ESP8266中一些值得记录得部分写下来 ...

  5. Python实现天猫精灵OAuth2.0和语音技能配置

    之前用tornado实现tcp server与硬件的client的连接,以便下发指令.基于django/tornado与wifi模块,lora设备的TCP/UDP即时通讯 现在考虑到天猫精灵可以语音接 ...

  6. 天猫精灵智能家居对接,及天猫iot官网配置图文讲解(二)

    天猫精灵智能家居对接,及天猫iot官网配置图文讲解(二) 2.天猫精灵设备对接 2-1.介绍 ​ 上一章里,我已经讲了天猫精灵的技能配置,设备创建,登录验证这三个部分做了,此次篇文章就讲之后的设备查询 ...

  7. 天猫精灵OAUTH2的authorize无法认证,认证参数不全,token错误的排查

    目录 写在前面 感想与目的 调试的方法 使用天猫精灵开发平台提供的在线测试工具 手动输入链接与GET信息 错误排查 authorize.php不发生跳转,直接显示错误码 链接发生了跳转,但是提示认证参 ...

  8. 当你和天猫精灵对话时,它在想什么?阿里智能对话技术深度解读

    摘要: 术语对齐 TaskBot引擎: 核心处理对象是"技能",我们把技能定义成结构化(query+content).垂直场景化的任务,比如实时场景查询.工具类.控制类等QABot ...

  9. 天猫精灵使用体验之一——天猫精灵初体验

    在前面,小智已经介绍过,天猫精灵是小智在2017年双11下单的,等了一个多月,12月下旬才收到货.所以当天猫精灵从盒子里面蹦出来到体验官面前时,体验官就迫不可待地开始了一列表的体验和测评--什么开箱照 ...

最新文章

  1. 时间序列、时间序列分析、时间序列效应分解、平稳时间序列、AIC和BIC
  2. samba网络服务的搭建和配置
  3. 嵌入式处理器 cisc risc_RISC-V能否“重构”芯片产业格局
  4. C# 多线程之List的线程安全问题
  5. java中CompletionService的使用
  6. oracle biee
  7. Windows Phone 执行模型概述
  8. [译]WPF开源控件扩展库ControlzEx
  9. linux脚本传参修改配置文件,shell脚本修改配置文件指定行的值
  10. win10下安装ubuntu14.04双系统(UEFI固件)
  11. Inception(Pytorch实现)
  12. 计算机专业考试知识点,2016计算机专业知识:精选知识点练习(126)
  13. Angular 7 和 .Net Core 2.2——全球天气(第1部分)
  14. jquery隐式迭代
  15. 65883-12-7,PEG5-Ms带有甲磺酸基和羟基的PEG连接剂
  16. 优秀课程案例|如何用scratch画扇形统计图
  17. linux系统下以存储从大到小并以K,M,G为单位的方式查看当前目录下的文件信息
  18. 【MVC、Spring MVC介绍、区别、执行流程】
  19. OA系统管理项目工作内容
  20. 计算机原理接口,《计算机原理与接口》教学大纲

热门文章

  1. 充电站网络安全风险危及电动汽车普及
  2. 如何将多个pdf合成一个pdf?
  3. Prometheus 配置钉钉告警
  4. Mac Mojave10.14安装vmvare Fusion 11.0.0 win8 镜像
  5. 计算机运行库,VC2010运行库
  6. 2021寒假笔记(数论)
  7. PMP项目管理五大过程组
  8. 一条命令轻松调节mac鼠标移动速度
  9. Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.Generi
  10. html5个人收藏页面,safari个人收藏全不见 大侠不过一剑之遥是倚天的新版本吗?...