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


相关文章
|
1天前
|
机器学习/深度学习 人工智能 文字识别
Kimi 上线视觉思考模型,K1 系列强化学习模型正式开放,无需借助外部 OCR 处理图像与文本进行思考并回答
k1视觉思考模型是kimi推出的k1系列强化学习AI模型,具备端到端图像理解和思维链技术,能够在数学、物理、化学等领域表现优异。本文详细介绍了k1视觉思考模型的功能、技术原理、使用方法及其在多个应用场景中的表现。
103 68
Kimi 上线视觉思考模型,K1 系列强化学习模型正式开放,无需借助外部 OCR 处理图像与文本进行思考并回答
|
2月前
|
人工智能 弹性计算 自然语言处理
|
4月前
|
人工智能 API 数据安全/隐私保护
通义听悟AI能力问题之API接口服务的潜在应用类别如何解决
通义听悟AI能力问题之API接口服务的潜在应用类别如何解决
85 0
|
7月前
|
安全 机器人 API
AppFlow实现大模型对话自由
AppFlow是阿里云团队推出的应用与数据集成平台,它无需编程即可配置对话流程,支持接入包括通义千问、文心一言等在内的多个主流大模型。用户可以通过AppFlow与钉钉、飞书、企业微信等IM软件中的大模型进行对话。配置过程包括创建连接流,选择触发事件(如钉钉机器人接收到文本消息),配置执行动作(如使用通义千问模型提问),以及设置回调地址等步骤。此外,还提供了在钉钉创建机器人的指南,通过Outgoing功能或钉钉开放平台实现与大模型的交互。如有问题,用户可以加入官方支持钉钉群进行咨询和交流。
|
7月前
|
存储 人工智能 搜索推荐
智能管理日常花销 — AI Coze打造个人财务小助手的全新体验(初版)(二)
智能管理日常花销 — AI Coze打造个人财务小助手的全新体验(初版)
169 0
|
7月前
|
人工智能 监控 搜索推荐
智能管理日常花销 — AI Coze打造个人财务小助手的全新体验(初版)(一)
智能管理日常花销 — AI Coze打造个人财务小助手的全新体验(初版)
290 0
|
人工智能 自然语言处理 API
如何调教一个定制化的ChatGPT私人助理,接入自家知识库
ChatGPT 虽然很能“聊”,但它并了解你的产品啊。就好比你把郭德纲喊来做你的客服,他也并不会比一个经过培训的客服人员做得更好。
|
算法 自然语言处理 机器学习/深度学习
中文竞技场大模型测评后续之双模型匿名对话
在中文竞技场大模型测评的延续中,我们将在双模型匿名对话技术场景中,通过趣味游戏方式对写作创作、代码相关、知识常识等领域进行全面测评
641 0
中文竞技场大模型测评后续之双模型匿名对话
|
自然语言处理 人工智能
中文竞技场大模型测评后续之模型自动对话
中文竞技场大模型测评延续中,模型自动对话场景测评
581 0
中文竞技场大模型测评后续之模型自动对话
|
人工智能 搜索推荐 开发者
通义听悟发布,大模型的接入如何让产品更聪明?
你想要这样智能的AI助手吗?会议讨论打开实时记录,同步实现语音转文字、实时翻译以及要点总结,帮你记录每一个创意迸发的瞬间;学习工作上传一份音视频,区分发言人、完成文字转换、关键词定位,还能生成摘要,帮助你快速get内容的核心重点;当然,还具备 学习能力,通过文档词汇自学习,让它了解你的喜好,越学越聪明!
252 1