【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、完成在线测试。


相关文章
|
人工智能
基于qwen2和qwenvl的自动批改作业应用!
针对作业批改中常见的问题,如低质量作业、大量简单作业耗时、需初筛异常作业等,开发了一款自动批改作业的应用。该应用通过备份作业文件、获取文档内容、利用AI生成评语,并保存关键信息与日志,简化了教师的工作流程,提高了效率。应用设计简洁,易于扩展,支持图片转文字处理,适合教育场景使用。
3333 1
基于qwen2和qwenvl的自动批改作业应用!
|
存储 人工智能 自动驾驶
高性能存储CPFS在AIGC场景的具体应用
高性能存储CPFS在AIGC场景的具体应用
|
人工智能 算法
众店模式:构建消费生态圈的创新商业模式
该平台结合线上自营商城与品牌商城,以及线下门店联盟,形成跨行业资源共享体系,提供无缝购物体验。绿色积分模式下,消费者与商家均可通过消费获得积分及消费券,积分可在多周期内增值,转化为高价值抵用券,甚至实现免单,有效促进循环消费。平台还通过强大的招商推广机制和多元化的盈利模式,提升用户粘性和商家盈利能力,成功案例显示其在降低获客成本、提升留存率和复购率方面成效显著。
|
9月前
|
缓存 监控 搜索推荐
【实战解析】smallredbook.item_get_video API:小红书视频数据获取与电商应用指南
本文介绍小红书官方API——`smallredbook.item_get_video`的功能与使用方法。该接口可获取笔记视频详情,包括无水印直链、封面图、时长、文本描述、标签及互动数据等,并支持电商场景分析。调用需提供`key`、`secret`和`num_iid`参数,返回字段涵盖视频链接、标题、标签及用户信息等。同时,文章提供了电商实战技巧,如竞品监控与个性化推荐,并列出合规注意事项及替代方案对比。最后解答了常见问题,如笔记ID获取与视频链接时效性等。
|
Ubuntu Shell 芯片
配置udev规则
本文介绍了如何配置udev规则以解决USB设备别名问题,包括为特定USB设备创建别名、修改设备权限、重新加载udev规则以及设置Python包管理工具pip的镜像源以加速下载。
490 0
|
11月前
|
Kubernetes 容灾 Cloud Native
服务网格容灾系列场景(三):使用服务网格应对服务级故障容灾
文章介绍了使用服务网格应对服务级故障容灾的实践:服务网格ASM通过多集群、多地域部署和基于地理位置的故障转移机制,实现服务级故障的自动检测与秒级流量切换,能够确保业务在复杂故障场景下的高可用性。
|
12月前
|
机器学习/深度学习 数据采集 人工智能
TeleAI 星辰语义大模型全尺寸开源,function call能力突出
星辰语义大模型TeleChat2是由中国电信人工智能研究院(TeleAI)研发训练的大语言模型。今年9月,TeleAI 正式发布并开源了首个基于全国产化万卡集群和国产深度学习框架训练的千亿参数大模型 TeleChat2-115B ,近日又进一步开源了 TeleChat2-3B、7B和35B,以适配不同场景的应用需求。
683 9
TeleAI 星辰语义大模型全尺寸开源,function call能力突出
|
人工智能 自动驾驶 搜索推荐
AI技术在现代生活中的应用与影响
本文将探讨AI技术在现代生活中的广泛应用,以及它对人们生活方式的影响。我们将从智能家居、自动驾驶汽车、医疗健康、教育等领域出发,分析AI技术如何改变人们的生活。同时,我们也将讨论AI技术可能带来的问题和挑战,以及如何应对这些问题。
|
Oracle Java 关系型数据库
什么是数据库驱动?有哪几种jdbc驱动
什么是数据库驱动?有哪几种jdbc驱动
|
弹性计算 Java 应用服务中间件
云服务器 ECS产品使用问题之变更服务器配置时一直显示400异常报错,该怎么办
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。

热门文章

最新文章