天猫精灵平台创建语言技能高光体验

215 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第2天,点击查看活动详情

目前平台支持以下几种应用类型的接入:

  • 语音技能

灵活定义语音交互方式,开发业务逻辑代码、创建屏显页面来响应任意的用户语音请求。

  • 小程序

支持将支付宝小程序快速迁移到天猫精灵设备,同时也可利用内容模板小程序快速完成内容变现。

  • 安卓Android APP应用

支持快速接入安卓生态应用,与天猫精灵带屏端设备无缝打通,同时支持语音交互能力。

  • H5网页小游戏

无需开发,支持现成H5网页小游戏的快速接入,同时支持语音唤起。

以下我完成的是语音技能的使用

在自定义技能中,您(开发者)可以灵活地指定用户与技能的交互方式,通过自行开发业务逻辑代码、创建屏显页面来响应任意的用户请求(即意图),为其提供最合适的服务。

自定义技能适用各种类型的使用场景,例如:

  • 信息查询类场景:例如,查百科、了解热点资讯、推荐美食餐厅;
  • 沉浸式互动类场景:例如,玩游戏、上网课、儿童辅导教育;
  • 生活服务类场景:例如订外卖、酒店、网约车;
  • 其它任意场景

以下是一些参与步骤:

  • 首先第一步进行登录并在应用技能接入中选择技能应用平台

image.png

  • 第二步选择语言技能中的创建新技能

image.png

  • 第三步填写技能基本信息,以下是官方公布的基本信息填写规则(技能名称:展示在技能市场的技能名称,在发布时将进行唯一性检测。)

image.png

  • 第四步填写基本信息后选择阿里云云开发进行创建

image.png

  • 第五步配置语音交互模型,选择意图并且创建意图

image.png

  • 第六步配置后端服务,开通相关的阿里云资源以后进行创建

image.png

image.png

image.png

  • 第七步创建技能应用

image.png

  • 第八步选择前往开发跳转至阿里云开发平台进行开发

image.png

image.png

  • 第九步在阿里云开发平台找到/src/main/java/com/alibaba/ailabs/GenieEntry.java
package com.alibaba.ailabs;

import com.alibaba.ailabs.common.AbstractEntry;
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.Map;
import java.util.stream.Collectors;


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.getStandardValue()));
        taskResult.setReply("你的意图是:" + taskQuery.getIntentName() + ",参数是:" + paramMap);
        taskResult.setExecuteCode(ExecuteCode.SUCCESS);
        taskResult.setResultType(ResultType.RESULT);
        res.setReturnCode("0");
        res.setReturnValue(taskResult);
        return res;
    }
}
  • 第十步进行部署

image.png

image.png