【2】天猫精灵开放实验平台实验—创建单轮或多轮天气查询意图

简介: 【2】天猫精灵开放实验平台实验—创建单轮或多轮天气查询意图

天猫精灵开放实验平台实验—创建天气查询意图


基于 阿里云云开发平台 开发学习 https://workbench.aliyun.com/


一、创建天气查询意图


参考链接:AliGenie - 技能应用平台,实现单轮、多轮对话


前言


创建天气查询功能的意图,实现机器与用户进行单轮或多轮的对话,让技能变得更加有趣和好玩。


1、登录天猫精灵开放平台。


网址:天猫精灵开放平台首页 (aligenie.com)



2、输入用户名和密码。



3、选择“技能应用平台”。



4、选择之前创建的语音技能。



5、选择语音交互模型,点击“创建意图”。



6、填写意图名称、意图标识。



7、设置单轮对话表达,并提交保存。(即添加语料)




8、查看是否创建成功。



9、创建实体。



10、创建“城市”实体,并保存。



11、添加实体。


实体是指某领域词汇的集合,技能平台提供了丰富的系统词典来支持技能引用。


注意事项:实体值输入,一次最多输入20个,实体之间空格隔开。


这里,我们城市的实体采用“创建自定义舌实体”。“日期”选择“引入公共实体”。




12、查看实体是否创建完成。



13、进行语料标记。


选择城市名称,进行语料标记,如图所示。



① 针对所有城市的天气状况可以使用模板进行创建:


@{city}@{sys.date(公共实体)}天气怎么样


② 当用户直接询问“天气怎么样”时,即不知道城市名也不知道所问天气的日期是多少时,


我们可以做以下操作:


(1)不知道查询哪个城市的天气时,可以在参数中,添加追问语句,如“请问是哪个城市的天气呢?”;


(2)不知道所问天气的日期是哪天时,可以关闭“精灵追问”,设置“系统默认实体值”为“今天”。


设置完成后,保存提交。



14、创建多轮对话编辑。


假如用户想要进一步查询明天的天气,或者其他城市的天气,可以使用模板进行创建查询。



15、选择“后端服务”,并点击“前往开发”。


这里选择“阿里云云原生开发(FAAS)”进行后端服务开发,减少服务的创建和手动配置操作。



16、进入CLOUD IDE开发环境。



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 {
  @Override
    public 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 {
            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;
    }
}


17、提交保存代码,并选择预发环境,部署。


[admin@2776a5be-6dfb-4c7c-ade8-38edd23352d7-cf87b85b5-vh8zn /home/admin/workspace/codeup.aliyun.com/61518cd7ade19007d78e3930/workbench/repo_2021-11-01_2021110101453233]
$git status
On branch master
Your branch is up to date with 'origin/master'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
        modified:   src/main/java/com/alibaba/ailabs/GenieEntry.java
no changes added to commit (use "git add" and/or "git commit -a")
[admin@2776a5be-6dfb-4c7c-ade8-38edd23352d7-cf87b85b5-vh8zn /home/admin/workspace/codeup.aliyun.com/61518cd7ade19007d78e3930/workbench/repo_2021-11-01_2021110101453233]
$git add src
[admin@2776a5be-6dfb-4c7c-ade8-38edd23352d7-cf87b85b5-vh8zn /home/admin/workspace/codeup.aliyun.com/61518cd7ade19007d78e3930/workbench/repo_2021-11-01_2021110101453233]
$git commit -m "Checktheweahter"
[master 83cc356] Checktheweahter
 1 file changed, 28 insertions(+), 4 deletions(-)
[admin@2776a5be-6dfb-4c7c-ade8-38edd23352d7-cf87b85b5-vh8zn /home/admin/workspace/codeup.aliyun.com/61518cd7ade19007d78e3930/workbench/repo_2021-11-01_2021110101453233]
$git push
Counting objects: 9, done.
Delta compression using up to 5 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (9/9), 1.69 KiB | 101.00 KiB/s, done.
Total 9 (delta 1), reused 0 (delta 0)
To https://codeup.aliyun.com/61518cd7ade19007d78e3930/workbench/repo_2021-11-01_2021110101453233.git
   cd0452b..83cc356  master -> master
[admin@2776a5be-6dfb-4c7c-ade8-38edd23352d7-cf87b85b5-vh8zn /home/admin/workspace/codeup.aliyun.com/61518cd7ade19007d78e3930/workbench/repo_2021-11-01_2021110101453233]
$




18、等待部署完成。




19、部署完成。



20、完成在线测试。


相关文章
|
12天前
|
数据采集 人工智能 弹性计算
从零到英雄:利用百炼平台打造高效情感分析智能体的全攻略
百炼平台是阿里巴巴推出的面向开发者的AI模型训练和推理平台,提供丰富工具和服务,支持从需求分析到部署上线的全流程。本文以构建情感分析系统为例,详细介绍如何利用百炼平台完成数据准备、模型选择与训练、评估调优及最终部署。
|
3月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之有没有办法检测人是否驼背
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
3月前
|
人工智能 API 数据安全/隐私保护
通义听悟AI能力问题之API接口服务的潜在应用类别如何解决
通义听悟AI能力问题之API接口服务的潜在应用类别如何解决
71 0
|
5月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之是否支持用户自定义人物功能
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
5月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之图美学评分AssessComposition是同步接口还是异步接口
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
自然语言处理 人工智能
中文竞技场大模型测评后续之模型自动对话
中文竞技场大模型测评延续中,模型自动对话场景测评
573 0
中文竞技场大模型测评后续之模型自动对话
|
算法 自然语言处理 机器学习/深度学习
中文竞技场大模型测评后续之双模型匿名对话
在中文竞技场大模型测评的延续中,我们将在双模型匿名对话技术场景中,通过趣味游戏方式对写作创作、代码相关、知识常识等领域进行全面测评
629 0
中文竞技场大模型测评后续之双模型匿名对话
|
机器学习/深度学习 人工智能 JSON
HarmonyOS学习路之开发篇—AI功能开发(助手类意图识别)
随着人机交互越来越普遍,设备需要理解用户下达的各种指令,方便用户的操作。助手类意图识别能够利用机器学习技术,对用户发送给设备的文本消息进行语义分析和意图识别,进而衍生出各种智能的应用场景,使设备更智慧、更智能。
|
机器学习/深度学习 人工智能 自然语言处理
【产品进化论】支持100+种单证分类:开放免费测试
依托深源恒际自研的技术结合多重规则引擎,为健康险理赔流程提供集收单、初审、录入、扣费、理算、审核于一体的全流程自动化解决方案,助推理赔业务构建结构化数据,同时可结合医疗票据业务数据自动化无感地进行模型迭代训练,自动部署,形成优质的数据闭环和数据生态。
【产品进化论】支持100+种单证分类:开放免费测试
|
IDE Serverless 开发工具
【1】天猫精灵开放实验平台实验—创建语音技能
【1】天猫精灵开放实验平台实验—创建语音技能
321 0
【1】天猫精灵开放实验平台实验—创建语音技能
下一篇
无影云桌面