如在第一节课上打下扎实的基础,会让第二节课上的内容变得更佳好理解。
https://developer.aliyun.com/article/801602?spm=a2c6h.13148508.0.0.65b54f0ebVzPXR
在第一节课上,我们对天猫精灵开发平台的一些概念,开发方式有了大致了解,其中首页的文档中心也可以帮助我们进行更深入的学习。今天我们来学习创建意图,让天猫精灵具备一个简单的服务能力。
首先进入天猫精灵开发平台,登录账号,打开第一节课上创建的应用,点击语音交互模型,创建意图,在这里我们创建一个天气查询的意图,按照下图填写意图信息。
在意图的 单轮对话表达 中,输入用户常用的表达语句,回车完成输入,最后点击提交。
由于每个人的表达方式不同,所以表达也就多种多样。单轮对话表达即只有一轮的对话。
接下来创建实体,点击实体,创建实体,按照下图输入实体名称,实体标识名,最后保存。
实体用来告诉平台算法,当从用户语句中解析参数时,参数的取值范围是什么。您可以自定义实体,也可以引用平台提供的公共实体。
设置自定义实体值,例如上海,北京,杭州,按回车键完成。
支持多个实体值同时输入(最多20个)。添加多个实体值时,以空格分隔。
当某条实体值还有其它同义词时,您可以将同义词配置到相应的实体值中,也是按回车键完成。
我们还需要设置一个公共实体值,找到022 日期 点击引用。
公共实体是平台提供的已经填充好内容的实体,可以直接使用,减少大家维护的成本。
下面回到意图,点击 天气查询 后面的编辑,进行一语料的标记。
选中词语“杭州”,在弹出框中选择标注“city”实体。选中词语“今天”,在弹出框中选择标注“sys.date(公共实体)”实体。平台会自动创建两个参数:city、sys.date(公共实体)。如下图所示:
如果每个都这样一个一个配是不可能的,我们还可以使用一个模板。
手动创建参数,然后在语料中使用 @{参数名称} 替代原本的关键字。如下图所示:
如果用户只问了天气怎么样,这时候我们还需要设置系统默认值以及精灵追问。
可以参考下图进行设置:
假如客户问完今天天气怎么样,又问那明天呢,这里我们就要来设置多轮对话。
例句的话,可以参考下图进行设置,
同样的,我们也可以利用模板,参考下图进行设置。最后提交保存。
意图配置这块就做完了。
接下来点击后端服务,前往开发。
阿里云-云开发平台 https://workbench.aliyun.com/
输入我们需要的代码,别忘了保存,
//处理名称为 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(公共实体)") + "天气 晴");
最后进入到部署面板,选择预发环境进行部署,等待部署成功。
部署成功之后,我们就可以进行测试了。