简介
Hubot 是 Github 开发的一款可扩展的聊天机器人,目前已被广泛地应用于自动化工作流、运维、开发工具等各个领域。 工业机器人的核心是通过其内部定义的脚本解释器 HAL 与其他机器人进行通信和协作。
hubot-lex 利用 Amazon Lex 提供的服务,使 Hubot 可以理解自然语言交互。 该包将大大提高开发者在日常工作中的效率,同时还贯穿了许多技术细节,堪称前端技术的一大精华之作。
本文将详细介绍使用 hubot-lex 包的教程,包括安装、配置、指南和示例代码等,帮助使用者更好地了解其使用方法和学习指导意义。
安装
在使用 hubot-lex 进行开发之前,需要进行安装,具体步骤如下所示:
npm install hubot-lex
安装完成后,需要在 Hubot 的入口文件中引入 hubot-lex 和 aws-sdk,代码如下:
-- -------------------- ---- ------- -------------- - --------------- - ----- --- - ------------------- ----- ----- - --------------------- -------------------- - ------------ ---------- - ------------ -------------------------- ---------------- ------------------------------ ------- ----------- -------- ------------- --------- ------------- --- --
配置
在配置 hubot-lex 包之前,需要先配置一个 Amazon Lex Bot。在 AWS 管理控制台 中创建一个新的 Bot,并记录其名称和别名,以备后用。
接下来,配置文件需要填写以下信息:
accessKeyId
AWS 账户 Access Key ID。secretAccessKey
AWS 账户 Secret Access Key。region
创建 Bot 时所在的区域,例如us-west-2
。botName
Bot 的名称。botAlias
Bot 的别名。
除了以上内容,还需添加以下环境变量:
ACCESS_KEY_ID
SECRET_ACCESS_KEY
以 NodeJS 为例,在运行 NodeJS 应用程序之前,需要设置以上环境变量,例如:
ACCESS_KEY_ID=AKXXXXXXXXXXXXXXXXXXx SECRET_ACCESS_KEY=NXXXXXXXXXXXXXXXXXXXXXXXk node app.js
指南
hubot-lex 包的使用过程中有几个注意点,以下为使用指南:
- 消息格式
hubot-lex 支持的消息格式包括:
- 文本消息
- 语音消息
- 音频消息
其中,文本消息是常见的格式,例如:
robot.hear(/(.*)/i, (res) => { const text = res.match[1]; res.lex(text, (err, intent, slots) => { if (!err) { // TODO 执行自定业务逻辑 } }); });
- Slot 数据类型
Slot 是 Amazon Lex 中听到的数据类型,例如日期、时间、分数等等。JavaScript 中,需要对 Slot 的数据类型进行正确的解析和处理,例如:
const slots = {starttime: {"interleaved": "2022-01-01T00:01:23"}}; const {starttime} = slots; const startTime = new Date(starttime.interleaved);
- 消息回复
hubot-lex 支持回复多种类型的消息,包括文本、音频、视频等等。在使用时需要注意消息回答的格式。以下是对一个特定意图的简单示例:
-- -------------------- ---- ------- ------------------- ----- -- - ----- ---- - ------------- ------------- ----- ------- ------ -- - -- ------ - -- ----------------------------- - ------------ ---------------------------- - ---- -- ---------------------------- - ------------ ---- -- - - --- ----------------------------- - ---- - ------------ ------ - ------ ---------- ---- --- ---- ---------- - - --- ---
示例代码
以下为一个简单的示例,让机器人听到用户说“Hello”之后返回问候语。
module.exports = function(robot) { robot.hear(/hello/i, function(res) { res.lex('Hi there!', function(err, intent, slots) { console.log(err, intent, slots); }); }); };
总结
hubot-lex 是 Amazon Lex 与 Hubot 集成的包,其使用方法比较简单,但有些运用技巧需深入理解。希望本篇文章能够帮助大家了解使用 hubot-lex 的方法以及深入理解相关技术。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056cd381e8991b448e665a