【小百科实战 】以小百科技能为例,走一个完整实践流程|学习笔记

简介: 快速学习【小百科实战 】以小百科技能为例,走一个完整实践流程

开发者学堂课程【AI语音技能云开发实践-1024程序员节创造营公益课【小百科实战 】以小百科技能为例,走一个完整实践流程】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/897/detail/14312


【小百科实战 】以小百科技能为例,走一个完整实践流程

 

目录

一、 小百科技能创建以及使用流程

二、 问答

 

一、小百科技能创建以及使用流程

首先创建新技能,选择自定义技能,填写技能名称,调用词,选择阿里云云开发。

创建一个后端服务,关联阿里云账号,

创建技能运用选择JAVA语言,选择刚刚自己填的名称。点击保存,前往开发

image.png

后进行部署点击预发环境进行部署

进行测试测试版后打开真机测试

package com, alibaba.ailabs;

import. java. util.Arrays;

import .java . util.LinkedList;

import. java. util.List;

import .java. util.Hap;

import .java. util.Random;

import. java.util. concurrent. ConcurrentHashMap;

import con. alibaba. ailabs. connon.AbstractEntry;import con. alibaba.da. coin. ide . spi.neta. ExecuteCode; inport con. alibaba. da. coin. ide. spi. neta.ResultType;import con. alibaba.da.coin. ide . spi. standard.ResutHodel; inport con.alibaba.da. coin. ide. spi. standard.TaskQuery: inport con.alibaba.da.coin. ide . spi. standard.Taskiesult; inport con.alibaba. fastjson.JSON;

import con.aliyun.fc. runtine.Context;r

public class GenieEntry extends AbstractEntry

private static final Map-String, LinkedListeInteger USER_MAP . neM ConcurrentHasMapo(); private static final List-String a KNOMLEDGE;

private static Random random . neu Random();

@Override

public ResultModel<TaskResult> execute(TaskQuery taskQuery,Context context){

context.getLogger().info(“taskQuery:”+ JSON.toJSONString(taskQuery));

String userId = taskQuery.getRequesData().get(“userOpenId”);

userId = userId == null ? “testUser” :userId;

LinkedList<Integer> list = USER_MAP.get(userId);

//欢迎意图 或 用户缓存数据为空

if

(welcone".equatsltaskouery. getIntentNanel)) || list null)

list = new LinkedList<>();

int randomIndex = random.nextInt{KNOWLEDGE.size()};

list.addLast( randomIndex) ;

USER MAP. put{userId,list}:return intentchangeReply(KNOWLEDGE. get(randomIndex)): 

下一个意图,随机选择一个内容回复,并将 index 追加到用户数据的 LinkedList 集合最后

if (“next”.equals(taskQuery.getIntentName())){

int randomIndex = random.nextInt{KNOWLEDGE.size()};

list.addLast{randomIndex};

return intentChangeReply(KNOWLEDGE.get(randomIndex));

}

上一个意图,将用户数据的 LinkedList 集合中最后一个 index 移除,并返回该 index 的内容。

首先要判断集合内是否有元素,没有则不需要移除

if (“prev”.equals(taskQuery.getIntentname())){

if(list.size()>0){

部署完毕后打开测试页面

打开真机测试

点击添加设备

对天猫精灵说:打开技能测试

然后输入验证码,点击绑定设备,绑定成功

对天猫精灵说:打开地理百科知识

然后天猫精灵会对后端的内容反馈到前端

二、问答

问答专区:

问:定制版的天猫精灵是不可以改唤醒词(定制版的天猫精灵和天猫精灵没有区别)

答:天猫精灵的语速和情感不可以控制

问:能不能让小朋友思考五秒中能在回复的前半句后半句之间通过代码控制实现真的slip五秒

答:如果你想要非常精准的话不可以因为从你的设备到服务端这里是存在延迟的。你无法精准的去控制那个延迟的五秒的时间太短了如果真的想实现五秒钟,只有设备倒计时,那个才精准。

问:立体播放是不是很容易断开,断裂成两台天猫精灵

答:需要试用一下才能看出

问:地图是不是自动生成的

答:是的,模板是为了让大家更简单使用创建一个技能,很多事情会自动完成,减轻负担。

问:任务完成以后得到的是一个什么样的天猫精灵

答:不是一个待频的天猫精灵,而是一个无频的天猫精灵。

问:代码是内置进去的吗

答:对。提供的模板里面自带意图以及代码,方便使用

问:定时功能如何实现

答:定时功能需要用后端去实现,需要使用推送,推送能力暂时没有对个人端进行开放。

问:可以设置闹钟吗

答:可以设置闹钟,它是天猫精灵自带的能力,可以自行设置闹钟。

问:可以定时触发别的任务吗

答:可以

问:定制化精灵和公共产品的区别是什么

答:定制化可以是定制化桌面或者定制化内部的功能,他们所产生的需求不一样,公共产品是面向大众的产品,所具备的能力和定制化产品是不同的,具体的需要自行了解。

问:创建意图是直接套用模板吗

答:创建的意图要看是否适用于自己的意图,如果适用可以直接套用,如果不适用,可以进行新建以及相关修改的操作

问:智能家居在天猫精灵的范围内吗

答:不在,智能家居是另外一个平台的内容

问:测试无频的天猫精灵,他的会话周期是怎么样的,说退出是结束吗

答:如果说退出是会结束的,如果不说退出的话,会在一个周期时间内自动退出

问:天猫精灵的语速和情感能控制吗

答:语速和情感不能进行控制

问:天猫精灵的底层是 linux 吗

答:天猫精灵的底层有很多的系统,不只 linux

问:会话的默认周期是多长,会提醒用户即将结束吗

答:会话的默认周期是一个默认的值,不会提醒用户结束会话

相关文章
|
机器学习/深度学习 人工智能 搜索推荐
AIGC工具——文心一格
【1月更文挑战第12天】AIGC工具——文心一格
926 3
AIGC工具——文心一格
|
存储 Java 关系型数据库
全网最全、最新Maven构建工具核心知识,这篇文章包你这辈子也忘不掉Maven!!
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
全网最全、最新Maven构建工具核心知识,这篇文章包你这辈子也忘不掉Maven!!
|
2月前
|
弹性计算 定位技术 数据安全/隐私保护
3分钟部署mc我的世界联机服务器教程——阿里云游戏服务器
我的世界是一款沙盒游戏,玩家可在三维空间中自由创造与探索。阿里云推出一键部署镜像服务,支持快速搭建游戏服务器。提供多种配置选择,包括4核16G和8核32G,费用分别为89元和160元每月,助力玩家轻松畅玩。
|
9月前
|
Shell Python
使用 pyenv 来管理多个 Python 版本(2)
使用 pyenv 来管理多个 Python 版本(2)
281 71
使用 pyenv 来管理多个 Python 版本(2)
自适应模型预测控制器AMPC的simulink建模与仿真
通过Simulink内嵌Matlab实现自适应MPC控制器,结合系统模型与控制对象完成仿真。面对日益复杂的工业过程,AMPC融合MPC与自适应控制优势,依据系统变化自动调节参数,确保优化控制及鲁棒性。MPC通过预测模型优化控制序列;自适应控制则动态调整控制器以应对不确定性。AMPC适用于多变环境下高性能控制需求,如化工、航空及智能交通系统。[使用MATLAB 2022a]
|
SQL 关系型数据库 MySQL
Windows服务器的最佳数据库是什么?
【7月更文挑战第20天】Windows服务器的最佳数据库是什么?
232 5
|
12月前
|
JavaScript 前端开发 API
如何在前端开发中有效管理状态:React vs. Vue
在现代前端开发中,状态管理是一个关键因素,它直接影响到应用的性能和可维护性。React 和 Vue 是当前最流行的前端框架,它们在状态管理方面各有优势和劣势。本文将深入探讨 React 和 Vue 在状态管理中的不同实现,分析它们的优缺点,并提供实际应用中的最佳实践,以帮助开发者选择最适合他们项目的解决方案。
|
人工智能 机器人 Serverless
《10 分钟构建 AI 客服并应用到网站、钉钉或微信中》解决方案体验评测
一文带你详细了解如何基于百炼平台、函数计算或者计算巢AppFlow10 分钟构建 AI 客服并应用到网站、钉钉或微信中,附全篇图文详解,欢迎阅读评价。
808 9
《10 分钟构建 AI 客服并应用到网站、钉钉或微信中》解决方案体验评测
|
关系型数据库 MySQL 数据处理
实时计算 Flink版产品使用问题之任务无法实时同步MySQL到StarRocks中修改的数据,是什么原因
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
11月前
|
JavaScript Java CDN
vue3完整教程从入门到精通(新人必学1,vue3快速上手)
本文提供了Vue 3从入门到精通的完整教程,涵盖了创建Vue应用、通过CDN使用Vue、定义网站以及使用ES模块构建版本的步骤和示例代码。
8258 1
vue3完整教程从入门到精通(新人必学1,vue3快速上手)