加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Python的ChatOps库:Opsdroid和Errbot

发布时间:2019-03-25 02:41:03 所属栏目:建站 来源:Jeff Triplett, Lacey Williams
导读:进修一下 Python 天下里最普及行使的 ChatOps 库:每个都能做什么,怎样行使。 ChatOps 是基于会话导向而举办的开拓。其思绪是你可以编写可以或许对谈天窗口中的某些输入举办回覆的可执行代码。作为一个开拓者,你可以或许用 ChatOps 从 Slack 归并拉取哀求,自动
副问题[/!--empirenews.page--]

Python的ChatOps库:Opsdroid和Errbot

进修一下 Python 天下里最普及行使的 ChatOps 库:每个都能做什么,怎样行使。

ChatOps 是基于会话导向而举办的开拓。其思绪是你可以编写可以或许对谈天窗口中的某些输入举办回覆的可执行代码。作为一个开拓者,你可以或许用 ChatOps 从 Slack 归并拉取哀求,自动从收到的 Facebook 动静中给或人分派支持工单,可能通过 IRC 搜查开拓状态。

在 Python 天下,最为普及行使的 ChatOps 库是 Opsdroid 和 Errbot。在这个月的 Python 专栏,让我们一路聊聊行使它们是奈何的体验,它们各自合用于什么方面以及怎样着手行使它们。

Opsdroid

Opsdroid 是一个相对年青的(始于 2016)Python 开源谈天呆板人库。它有着精采的开拓文档,不错的教程,而且包括可以或许辅佐你对接风行的谈天处事的插件。

它内置了什么

库自己并没有自带全部你必要上手的对象,,但这是存心的。轻量级的框架勉励你去运用它现有的毗连器(Opsdroid 所谓的帮你接入谈天处事的插件)可能去编写你本身的,可是它并不会因自带你所不必要的毗连器而自贬身价。你可以轻松行使现有的 Opsdroid 毗连器来接入:

  • 呼吁行
  • Cisco Spark
  • Facebook
  • GitHub
  • Matrix
  • Slack
  • Telegram
  • Twitter
  • Websocket

Opsdroid 会挪用使谈天呆板人可以或许揭示它们的“手艺”的函数。这些手艺着实是异步 Python 函数,并行使 Opsdroid 叫做“匹配器”的匹配装饰器。你可以配置你的 Opsdroid 项目,来行使同样从你配置文件地址的代码中的“手艺”。你也可以从表面的民众或私家客栈挪用这些“手艺”。

你同样可以启用一些现存的 Opsdroid “手艺”,包罗 seen —— 它会汇报你谈天呆板人前次是什么时辰看到某个用户的,以及 weather —— 会将气候陈诉给用户。

最后,Opdroid 应承你行使现存的数据库模块配置数据库。此刻 Opdroid 支持的数据库包罗:

  • Mongo
  • Redis
  • SQLite

你可以在你的 Opdroid 项目中的 configuration.yaml 文件配置数据库、手艺和毗连器。

Opsdroid 的上风

Docker 支持:从一开始 Opsdroid 就规划在 Docker 中精采运行。在 Docker 中的指导是它 安装文档 中的一部门。行使 Opsdroid 和 Docker Compose 也很简朴:将 Opsdroid 配置成一种处事,当你运行 docker-compose up 时,你的 Opsdroid 处事将会开启你的谈天呆板人也迁停当。

  1. version: "3"
  2.  
  3. services:
  4. opsdroid:
  5. container_name: opsdroid
  6. build:
  7. context: .
  8. dockerfile: Dockerfile

富厚的毗连器: Opsdroid 支持九种像 Slack 和 Github 等从外部接入的处事毗连器。你所要做的统统就是在你的配置文件中启用那些毗连器,然后把必需的口令可能 API 密匙传已往。好比为了启用 Opsdroid 以在一个叫做 #updates 的 Slack 频道发帖,你必要将以下代码插手你配置文件的 connectors 部门:

  1. - name: slack
  2.     api-token: "this-is-my-token"
  3.     default-room: "#updates"

在配置 Opsdroid 以接入 Slack 之前你必要添加一个呆板人用户。

假如你必要接入一个 Opsdroid 不支持的处事,在文档里有有添加你本身的毗连器的教程。

相等不错的文档: 出格是对付一个在起劲开拓中的新兴库来说,Opsdroid 的文档异常有辅佐。这些文档包罗一篇带你建设几个差异的根基手艺的教程。Opsdroid 在手艺、毗连器、数据库,以及匹配器方面的文档也异常清楚。

它所支持的手艺和毗连器的客栈为它的手艺提供了富有辅佐的树模代码。

天然说话处理赏罚: Opsdroid 的手艺内里能行使正则表达式,但也同样提供了几个包罗 Dialogflow,luis.ai,Recast.AI 以及 wit.ai 的 NLP API。

Opsdroid 也许的不敷

Opsdroid 对它的一部门毗连器还没有启用所有的特征。好比说,Slack API 应承你向你的动静添加颜色柱、图片以及其他的“附件”。Opsdroid Slack 毗连器并没有启用“附件”特征,以是假如那些特征对你来说很重要的话,你必要编写一个自界说的 Slack 毗连器。假如毗连器穷乏一个你必要的特征,Opsdroid 将接待你的孝顺。文档中可以行使更多的例子,出格是对付预推测的行使场景。

示例用法

  1. from opsdroid.matchers import match_regex
  2. import random
  3.  
  4.  
  5. @match_regex(r'hi|hello|hey|hallo')
  6. async def hello(opsdroid, config, message):
  7. text = random.choice(["Hi {}", "Hello {}", "Hey {}"]).format(message.user)
  8. await message.respond(text)

hello/__init__.py

  1. connectors:
  2. - name: websocket
  3.  
  4. skills:
  5. - name: hello
  6. repo: "https://github.com/<user_id>/hello-skill"

configuration.yaml

Errbot

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读