Hubot 实战 | 学习笔记

简介: 快速学习 Hubot 实战

开发者学堂课程【阿里云 ChatOps 实战:Hubot 实战】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/536/detail/7281


Hubot 实战

内容介绍:

一、倍洽

二、HuBot

三、实战:如何配置机器人

四、引入流程

五、Hubot-Conversation


一、倍洽

倍洽是团队的一种沟通工具,提供了在线沟通方式且更加独立。

选择倍洽的关键原因在于倍洽是由国内服务商提供的。

可以根据实际需要选择版本。

倍洽提供了非常多的客户端,如 ios、Windows、linux、Android 等等都有相对于的客户端,即使没有客户端也可以直接使用网页版。

在集成方面,倍洽提供了非常多的工具,如新浪微博的监控、为知笔记的绑定、Mailgun 的邮箱等等,满足了绝大多数情况下的沟通需求。不管是公网的服务还是自建内网的服务,都是可以运行的。

想要更好地使用 ChatOps 一定要集成许多工具,这也是选择倍洽的原因之一,而选择倍洽而不是 Hubot 的原因是应该更加关注业务,如 GitHub、Coding 这样的业务如果能够直接对接,则节省了对接成本,能够专注于核心逻辑。


二、HuBot

官方主页为 hubot.github.com

如果想要配置 HuBot,电脑中一定要有 npm 以及 hubot 的生成器,也就是要配置 node.js 的环境,如果没有则需要配置相应的环境,点击 node.js and npm 进入官方文档进行建立环境以及安装包管理器 npm。

script 部分是重要的,在这部分中主要介绍了如何使用 HuBot 接收消息并执行对应的响应。而 Hubot 支持coffee script 和 js script,一般情况下推荐 coffee script。

而主要使用的是 Hearing 和 responding,表示接收用户消息并返回用户消息,如在 Send&reply 中,使用robot.hear 去接收消息,接收消息后使用 Send 发送消息,就完成了与机器人的信息交互。

此外还会用到 HTTP 请求的,如建立一些后台后就可以使用 HTTP 请求去发送消息,对数据进行解码,从而在后台进行数据处理,展示在聊天窗口中。


三、实战:如何配置机器人

初始化机器人首先要做的是创建一个 acebot 目录,要注意在创建目录时不能使用 HuBot 目录,会导致模块之间的冲突。

如果没有安装 npm 和 Hubot 生成器,则可以复制 npm install -g yo generator-hubot,跟上《》 fetchMetadata:sill resolveWithNewModule ansi-regex@0.2.1 chec 两条命令进行安装。安装过后执行 yo Hubot 去生成新的Hubot,会提醒要进行初始化的命令等等。

首先是 Owner,Owner 可以直接进行回车,因为会直接读取 Git 和 npm 的一些设置,然后机器人的名称(Bot name)在这里可以设置为 acbot,机器人的名称设置与使用沟通的机器人名称要一致,同时 Description 要根据实际需要进行设置,而 adapter 填写时要注意填写的是 bearychat ,表示使用倍洽的适配器,则会自动安装一些依赖,可以直接运行。

由于适配器是 bearychat 直接提供的,所以可以直接登录平台去查看,首先在 GitHub 找到适配器,再找到bearychat,然后找到名字为 hubot-bearychat 的适配器,点击中文文档进行生成,这时 bearychat 可以直接运行,再进行删除修改进行进一步优化。首先进行编辑,因为是生成器生成的,所以里面有一些内容是不需要的,如 redis-brain、heruku-keepalive 等进行删除。

也可以将项目进行初始化,会自动忽略一些文件,这时可以直接启动 hubot,输入 bin/hubot。


四、引入流程

首先在 BearyChat 的后台点击机器人管理,就可以添加机器人,点击自定义进行添加 Hubot,可以进行设置名称,然后保存配置,此时会生成 Hubot Token。然后复制前面的内容进行粘贴,然后将 Token 也复制粘贴进行回车,输出模式。

然后再执行 bin/hubot -a bearychat 来启动机器人,这时 Hubot 机器人就会进行连接,这时开启对话 ace 会显示为在线模式,也可以将其取消掉变为离线,再将其变为在线,此时输入 help 则会有相应的反馈,输入 echo“123”,则会得到“123”,会打印相应的内容。

大部分的命令都是基于 scripts 的文件来执行反馈的,取消其中的一行注释再进行重启,复制文字,输入命令则会回应对应的内容,此时可以根据自己的实际需要去改成需要的样式。此时可以输入 send、reply、emote 命令再进行重启执行,则会显示三条相应内容,send 和 emote 在展示效果上是一致的,而 reply 则会引用所发送的消息。还可以请求聊天室的信息等。

在开发中,目前的模式还是存在一定问题的。问题是使用者必须发送特定的信息且必须私聊,然后选择或者新建一个讨论组为 acetest,会发现发送的内容是得不到回复的,此时在机器人中添加 chatbot,将机器人添加进来就可以进行使用,并且可以在特定的群组中工作,这次就可以实现私聊,完成后续工作内容。


五、Hubot-Conversation

目前的模式都是依赖于说明一条命令,机器人去执行一条命令。但在真实的场景下,可能会出现会与机器人沟通的情况,这时需要使用 Hubot-Conversation,则会实现与机器人沟通的效果。

首先进行安装 Hubot-Conversation,创建一个新的 js 文件,然后机器人会进行读取,直接复制使用的代码进行粘贴,再重新运行,则运行完成,此时回到机器人之中,就可以实现与机器人进行沟通。而代码中首先使用 respond 来接收消息,放入到内部处理中,则会创建一个 dialog,dialog 是基于 switchBoard 的新的交谈,在交谈中创建一组对话,然后就可以为 dialog 添加选项。

这时 @ace 输入 clean the house,则会进行选择 kitchen 或 bathroom,选择后会再次询问是否执行。除此之外还有许多插件。

相关文章
|
机器学习/深度学习 开发者 异构计算
机器学习入门-Colab环境
Google Colab(Colaboratory)是一个免费的云端环境,旨在帮助开发者和研究人员轻松进行机器学习和数据科学工作。它提供了许多优势,使得编写、执行和共享代码变得更加简单和高效。Colab在云端提供了预配置的环境,可以直接开始编写代码,并且提供了免费的GPU和TPU资源,这对于训练深度学习模型等计算密集型任务非常有帮助,可以加速模型训练过程。
474 0
|
11月前
|
人工智能 自然语言处理 并行计算
探索大模型部署:基于 VLLM 和 ModelScope 与 Qwen2.5 在双 32G VGPU 上的实践之旅
本文介绍了使用 `VLLM` 和 `ModelScope` 部署 `Qwen2.5` 大模型的实践过程,包括环境搭建、模型下载和在双 32G VGPU 上的成功部署,展现了高性能计算与大模型结合的强大力量。
2694 3
|
Kubernetes Cloud Native jenkins
云原生时代:从Jenkins到Argo Workflows,构建高效CI Pipeline
基于Argo Workflows可以构建大规模、高效率、低成本的CI流水线
|
搜索推荐 应用服务中间件 nginx
Nginx系列教程(05) - 虚拟主机配置
Nginx系列教程(05) - 虚拟主机配置
931 0
|
运维 Prometheus 监控
自动化运维工具链的构建与实践
【9月更文挑战第4天】在现代IT运维管理中,自动化工具链的搭建是提升效率、保障稳定性的关键。本文将通过一个实际案例,展示如何从零开始构建一套高效的自动化运维体系,涵盖从监控、部署到故障处理的完整流程,并分享实践中的经验教训和成效分析。
287 4
|
前端开发 JavaScript API
现代前端框架有哪些?
【8月更文挑战第26天】现代前端框架有哪些?
422 4
|
应用服务中间件 API nginx
|
时序数据库
时序数据库工具grafana里的$timeFilter查询1个小时内的数据如何写查询条件
【6月更文挑战第24天】时序数据库工具grafana里的$timeFilter查询1个小时内的数据如何写查询条件
1768 0
|
SQL 缓存 Java
Hibernate - SessionFactory和Session详解
Hibernate - SessionFactory和Session详解
267 0