天猫精灵与云开发平台在一起,零门槛打造你的私人暖心小管家

宠你就要给你每个季节的温暖。俗话说“人生如戏,秋如四季”,在这个气温多变的季节里,云开发平台要你一直温暖相伴!语音技能相信大家都不陌生,谁还没有一个AI音箱呢。不过多数时候大家都是拿AI音箱当音乐播放器使了,还没有把这个金矿给利用出来。其实市面上的AI音箱都能够定制开发语言技能,让AI听你的话,比如说现在有听故事的、放音乐的。但是由于之前技能的开发比较麻烦,你需要提前花上近千元买好服务器准备好,想0基础0门槛上线一个技能简直是太难了。

云开发快速部署后端服务,0门槛上线定制技能

云开发平台跟天猫精灵应用平台合作推出天猫精灵语音技能云开发新功能。帮助大家无需购买服务器0门槛创建和上线个性化AI语音技能,动动手指就能够打造你的私人暖心小管家。

  1. 顶部导航栏中选择后端服务,并在左侧导航栏中选择服务部署

天猫精灵与云开发平台在一起,零门槛打造你的私人暖心小管家

  1. 单击编辑部署,选择 阿里云云原生开发 的方式,点击关联阿里云账号;

天猫精灵与云开发平台在一起,零门槛打造你的私人暖心小管家

  1. 选择阿里云账号的登录方式。使用第一步创建和登录的阿里云账号登录即可。

天猫精灵与云开发平台在一起,零门槛打造你的私人暖心小管家

  1. 登录后在团队注册页翻到页面底部,单击同意授权,授权后单击下一步

天猫精灵与云开发平台在一起,零门槛打造你的私人暖心小管家

5. 云服务管理。查看所需云服务的名称和状态,依次开通所需要的云服务直到4个服务都是已开通状态,点击完成并返回按钮。

天猫精灵与云开发平台在一起,零门槛打造你的私人暖心小管家

6. 返回到技能应用平台后,确认4个云服务资源均已开通,然后点击创建技能应用按钮;

天猫精灵与云开发平台在一起,零门槛打造你的私人暖心小管家

7. 选择开发语言和开发模板进行创建,这里以 Java 空白模板为例 创建应用;

天猫精灵与云开发平台在一起,零门槛打造你的私人暖心小管家

8.创建应用后,点击保存按钮保存阿里云服务器配置;

天猫精灵与云开发平台在一起,零门槛打造你的私人暖心小管家

9.点击前往开发,跳转云阿里云云开发平台;

天猫精灵与云开发平台在一起,零门槛打造你的私人暖心小管家

10. 跳转到阿里云开发平台后,会自动进入 CloudIDE,平台会自动生成模板代码,查看代码路径:src/main/GenieEntry.java,您可以直接在示例代码上进行开发;

天猫精灵与云开发平台在一起,零门槛打造你的私人暖心小管家

将下列示例代码复制到GenieEntry.java文件中,替换原有的模板代码;

示例代码:

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;
    }
}

11. 提交完成后要选择部署环境,打开 CloudIDE 左侧的 部署调试插件,进入到部署面板,选择预发环境进行部署;

天猫精灵与云开发平台在一起,零门槛打造你的私人暖心小管家

 

5分钟零基础打造你的私人暖心小管家,领阿里云定制卫衣

有了云开发平台,可以快速上线你的定制技能,不用受限于服务器等资源。让你的AI音箱,可以在秋季提醒你天气的变化,及时加减衣物,在你疲惫的时候可以推荐一部温暖治愈的电影让你放松放松。不会写代码?都有现成的保姆式文档,跟着文档5分钟轻轻松完成。

这还没完哦,天气转凉,秋天的第一杯奶茶喝过了, 秋天的第一件卫衣你们买了吗?打造完的小管家还要送你秋天的第一件卫衣,陪你度过一个微暖的秋季。阿里云云开发平台这里为各位粉丝们准备了1000件宠粉礼,粉丝们仅需5分钟完成2个任务中的任意一个就能够拿到我们为粉丝们准备的宠粉礼,让这份宠粉礼温暖粉丝们的整个秋天!最后有一句话想对你们说:天气多变,宠“AI”你们的心不变!

天猫精灵与云开发平台在一起,零门槛打造你的私人暖心小管家

天猫精灵与云开发平台在一起,零门槛打造你的私人暖心小管家

体验还不过瘾,实战营等你来踢馆!

10月18号开始我们邀请天猫精灵智能应用平台的大神们手把手教大家开发技能,从欢迎语的实现到、单轮对话、多轮对话、有屏音箱技能了解技能开发的方方面面吗,同时还有一个小百科的全实战演练,你可以改成你的画画小百科、厨艺小百科、数学小百科等等,是不是很期待啊?!直接在活动页面报名即可。

天猫精灵与云开发平台在一起,零门槛打造你的私人暖心小管家

获奖方式与活动时间

活动页面:https://workbench.aliyun.com/activities/aligenie

9月22日到9月30日,仅需完成页面上的2个任务中的任意一个即可领取呦!定制卫衣会在每个工作日的10点补充到150件,这周日也是工作日,那就也会照常补货哦。当天没有领到的同学也不要着急,第二天10点重新补货后可以直接领取的!

上一篇:阿里云Redis助力互联网+新媒体


下一篇:开发者论坛一周精粹(第五十七期) 阿里云免费套餐 个人备案备注