npm 包 create-skill 使用教程

介绍

create-skill 是一个基于 Node.js 和 TypeScript 打造的快速创建技能项目的命令行工具。它提供了简单易用的命令,可以帮助开发者快速创建一个 Alexa 或 Google Assistant 技能初始项目,省去了枯燥无味的配置工作,让开发者可以更专注于业务逻辑的实现。

本文将为大家介绍如何使用 create-skill 包创建自己的技能项目,并提供详细的指导和示例代码。

安装和使用

使用 create-skill 之前,你需要确保你的系统已经安装了 Node.js 和 npm。如果你还没有安装它们,你可以访问官方网站进行下载安装。

接下来你可以使用以下命令安装 create-skill:

--- ------- -- ------------

安装完成后,你可以使用以下命令创建一个技能项目:

------------ --------

其中,my-skill 是你要创建的技能项目名称。运行以上命令后,create-skill 将询问你要创建什么类型的技能(Alexa 或 Google Assistant)以及使用什么语言(TypeScript 或 JavaScript)进行开发。

根据你的选择,create-skill 将自动下载所需的模板文件以及相关依赖,并在当前目录下创建一个名为 my-skill 的文件夹,其中包含了一个初始的技能项目结构。

接下来你可以使用以下命令在本地启动技能项目:

-- --------
--- --- ---

启动成功后,你可以访问 http://localhost:3000 来查看技能项目的运行情况。

技能配置

在项目创建完成后,你需要配置一些必要的技能信息,以便让技能在 Alexa 或 Google Assistant 上能够被识别和响应用户的命令。以下是一些常见的技能配置:

Alexa 配置

Alexa 技能的配置主要包括在 Amazon Developer Console 中注册技能、关联 Lambda 函数、添加 Intents 和 Slots 等。具体操作可以参考 Alexa 开发文档

在完成 Alexa 技能的配置后,你需要在 config/alexa.json 文件中填写以下信息:

-
  ---------- ----------------------
  ------ -
    --------- ------------
    --------- -
      ------ ------------------------------------------------
    -
  -
-

其中,skillId 是在 Amazon Developer Console 中创建技能时生成的一个唯一标识符;aws.region 是你所在的 AWS 区域;aws.lambda.arn 是你在 AWS Lambda 中创建的函数 ARN。

Google Assistant 配置

Google Assistant 技能的配置主要包括在 Actions Console 中注册技能、关联 Dialogflow Agent、添加 Intents 和 Entities 等。具体操作可以参考 Google Assistant 开发文档

在完成 Google Assistant 技能的配置后,你需要在 config/google.json 文件中填写以下信息:

-
  ---------- ------
  -------------- -
    --------------- ----------------------------------
    -------------- ----------- ------- -------------------------- ------- ---------
  -
-

其中,agentId 是在 Dialogflow 中创建的 Agent ID;credentials 是在创建 Google Cloud 服务账号时生成的 JSON 字符串。

技能开发

在技能项目创建和配置完成后,你可以开始编写技能的业务逻辑了。create-skill 提供了一些示例代码,让你可以更快速地上手开发。

Alexa 开发示例

在 Alexa 技能中,我们需要编写 Intents 和相应的 Handlers 来响应用户的命令。

以下是一个简单的 Intents 和 Handlers 示例:

------ - -------------- - ---- ---------------

----- ------------------ -------------- - -
  ----------------------- -
    ------ ----------------------------------------- --- ---------------
      -- ------------------------------------------------ --- --------------------
  --
  -------------------- -
    ----- ---------- - -----------------------
    ------ ----------------------------
      ------------------
      ---------------------
      ---------------
  -
--

----- ------------------------ -------------- - -
  ----------------------- -
    ------ ----------------------------------------- --- ---------------
      -- ------------------------------------------------ --- -------------------
  --
  ----- -------------------- -
    ----- ---------- - ---------------
    ------ ----------------------------
      ------------------
      ---------------
  -
--

------ ----- ------------- - -
  ------ ----------------------
    -------------------------------------- ------------------------
    ----------
--

在以上代码中,我们创建了两个 Intent Handlers:HelpIntentHandler 和 HelloWorldIntentHandler。HelpIntentHandler 是用来响应用户的帮助请求,HelloWorldIntentHandler 是用来响应用户的 HelloWorldIntent 命令。

在上述代码中,我们使用了 ask-sdk-core 模块提供的 RequestHandler 和 SkillBuilders 接口来编写技能逻辑。其中,SkillBuilders.custom() 是一个用来创建 SkillBuilder 实例的工厂方法,addRequestHandlers() 方法用来添加 Intent Handler。

启动技能后,我们可以在 Alexa 开发者控制台的测试页面中测试技能的运行情况。

Google Assistant 开发示例

在 Google Assistant 技能中,我们需要借助 Dialogflow Agent 来识别用户的命令,并编写相应的 Intent,以便 DialogueFlow 可以将用户的命令转化为机器可以理解的数据格式。

以下是一个简单的 Intent 和相应的 Handler 示例:

------ - ---------- - ---- --------------------

----- --- - ----------------------

--------------------------- ----- ------ -- -
  -------------------------
---

------ ----- ------------- - -
  ----------- ----
--

以上代码中,我们创建了一个 input.welcome Intent,并编写了相应的 Handler 来响应用户的命令。在 Handler 中,我们使用 actions-on-google 模块提供的 dialogflow() 接口创建了一个 DialogflowApp 实例,并在其上添加了一个 intent() 方法。

启动技能后,我们可以在 Actions Console 的测试面板中测试技能的运行情况。

部署技能

完成技能代码编写和测试后,我们需要将技能部署到线上环境以供用户使用。本节将为大家介绍如何将技能部署到云端。

部署 Alexa 技能

在部署 Alexa 技能之前,你需要确保你已经在 AWS Lambda 上创建了一个用来部署技能逻辑的 Lambda 函数,并将其与技能的 Skill ID 关联。

完成上述准备工作后,你可以将技能上传到 AWS Lambda:

--- --- -----
--- --- ------------

以上命令将生成一个 dist 目录并将其上传到 AWS Lambda 上,你也可以在当前目录下的 .ask/config 文件中修改相关的部署配置。

部署 Google Assistant 技能

在部署 Google Assistant 技能之前,你需要确保你已经完成了 Dialogflow Agent 的配置,并将其与你的 Google Cloud 服务账号关联。

完成上述准备工作后,你可以将技能上传到 Google Cloud Functions:

--- --- -----
--- --- -------------

以上命令将生成一个 dist 目录并将其上传到 Google Cloud Functions 上,你也可以在当前目录下的 serverless.yml 文件中修改相关的部署配置。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60055edd81e8991b448dc930


猜你喜欢

  • npm 包 angular-masked-input 使用教程

    简介 在前端开发中,我们经常需要对用户输入的文本内容进行格式化和校验。而 angular-masked-input 就是一个帮助我们实现这个目标的 npm 包。本文将详细介绍如何使用 angular-...

    2 年前
  • npm 包 kt-contexify 使用教程

    在前端开发中,上下文菜单是一个经常用到的组件,它能够提供一些额外的功能,以便更好地操作应用程序。kt-contexify 是一个非常强大的 npm 包,可以帮助我们快速构建出上下文菜单。

    2 年前
  • npm 包 array-extend 使用教程

    什么是 npm 包? npm 是一个 JavaScript 的包管理工具。通过它,我们可以方便地安装、管理和分享各种 JavaScript 包。npm 包是指一系列以模块化方式封装的 JavaScri...

    2 年前
  • npm 包 geokbd-angular 使用教程

    前言 随着互联网的发展,前端技术也变得越来越重要。在前端开发工作中,如何提高工作效率是每个开发者都很关心的问题。npm 是一个非常实用的工具,能帮助我们快速找到各种插件和工具,以提升前端开发效率。

    2 年前
  • npm 包 minimalistic-charts 使用教程

    npm 包 minimalistic-charts 使用教程 简介 minimalistic-charts 是一个基于 canvas 的轻量级前端图表库,可以用于快速绘制简单的折线图、柱状图等常见的图...

    2 年前
  • npm 包 vue-http-server 使用教程

    什么是 vue-http-server vue-http-server 是一个基于 Node.js 和 Express 的轻量级 HTTP 服务器,专门为 Vue.js 单页面应用程序定制。

    2 年前
  • npm 包 node-image-filter 使用教程

    你是否曾经想过在前端开发中对图片进行处理,例如调整亮度、对比度、饱和度、模糊等操作,让图片更加生动、精美?这时候,一个方便易用的 npm 包 node-image-filter 就能派上用场了。

    2 年前
  • npm 包 dateformat-converter 使用教程

    日期是我们在前端开发中常常用到的一个数据类型。jQuery 和 React 等流行框架也提供了自己的日期格式化库。但是有时候我们需要一个小而有效的库来快速转换日期格式。

    2 年前
  • npm 包 gantt-ui-component 使用教程

    Gantt UI 组件是用于前端开发的一种常见工具,它能够帮助我们展示任务和进度的时间轴,以及预测未来任务和时间表。其中,Gantt UI Component 就是一种全新的 npm 包,它旨在提供一...

    2 年前
  • npm 包 es-ua-parser 使用教程

    前言 在前端开发中,为不同类型设备和浏览器提供优质用户体验是一个重要的问题。而在实现自适应布局、多浏览器兼容性等问题时,往往需要根据设备和浏览器的类型做出不同的处理。

    2 年前
  • npm 包 way-js 使用教程

    在前端开发中,我们时常需要对元素的样式、位置等进行操作,这就需要用到 JavaScript 编写 DOM 操作的代码。然而,如果我们从头开始编写,会有许多繁琐和重复的工作。

    2 年前
  • npm 包 win-key 使用教程

    介绍 win-key 是一种 npm 包,它提供了获取 Windows 操作系统键的方法。在前端开发中,我们经常需要监听用户按下的键,以实现一些交互的操作,win-key 就是一种能够帮助我们实现这个...

    2 年前
  • npm 包 guitar2audio 使用教程

    Guitar2audio 是一款能够将吉他谱转换为音频文件的 npm 包,使用简单方便,能够帮助前端开发者快速实现吉他谱音频播放的功能。本文将为大家详细介绍 Guitar2audio 的安装、使用以及...

    2 年前
  • npm 包 knova-recontributor 使用教程

    概述 knova-recontributor 是一个基于 Node.js 平台的轻量级库,用于解析 Knova 的 HTML 标签,以便在前端环境中进行二次加工和呈现。

    2 年前
  • npm 包 koop-provider-nba 使用教程

    什么是 koop-provider-nba koop-provider-nba 是一个 npm 包,它是一个基于 koop 框架的 NBA 数据提供者。你可以使用它将 NBA 数据转换成 GeoJSO...

    2 年前
  • npm 包 redux-clazz 使用教程

    简介 redux-clazz 是一个用于简化 Redux 的状态管理工具。它提供了一种将状态和操作封装到一个名为 “class” 的对象中的方式,使得编写和使用 Redux 对象变得更加容易和直观。

    2 年前
  • npm 包 react-native-scatter-chart 使用教程

    在现代前端开发中,数据可视化是一个非常重要的环节。而散点图作为数据可视化的一种常见形式,在很多场景下都有着广泛的应用。在 React Native 中,我们可以使用 react-native-scat...

    2 年前
  • npm 包 is-cowboy 使用教程

    介绍 is-cowboy 是一个 npm 包,可以用于判断一个字符串是不是 cowboy 说的话。该包由 JavaScript 实现,使用起来非常简单。 本文将详细介绍 is-cowboy 的使用方法...

    2 年前
  • npm 包 iReactPlayer 使用教程

    iReactPlayer 是一个基于 React.js 的视频播放组件,适用于前端 Web 应用程序。本篇文章将详细介绍如何使用 iReactPlayer npm 包。

    2 年前
  • npm 包 aytacworld-angular-bookmark 使用教程

    随着前端技术的快速发展,越来越多的开发人员开始运用 npm 包,这极大地方便了开发人员的工作。在这片文章中,我们将介绍 aytacworld-angular-bookmark ,它是一个方便 Angu...

    2 年前

相关推荐

    暂无文章