了解Python世界中使用最广泛的ChatOps库:每个库可以做什么以及如何使用它们。ChatOps基于面向对话的开发。这个想法是您可以编写可执行代码来响应聊天窗口中的某些输入。作为开发人员,您可以使用ChatOps合并来自Slack的拉取请求,自动从收到的Facebook消息中为某人分配支持票,或者通过IRC检查开发状态。在Python世界中,使用最广泛的ChatOps库是Opsdroid和Errbot。在本月的Python专栏中,让我们谈谈使用它们的感觉、适合它们的位置以及如何开始使用。OpsdroidOpsdroid是一个相对年轻(2016年开始)的Python开源聊天机器人库。它有很好的开发文档、很好的教程,并包含可帮助您与流行的聊天服务集成的插件。它内置了什么?图书馆本身并没有提供您入门所需的一切,但这是故意的。轻量级框架鼓励您使用其现有的连接器(Opsdroid所谓的帮助您访问聊天服务的插件)或编写您自己的连接器,但它不附带您不需要的连接器并且自我贬低。您可以轻松地使用现有的Opsdroid连接器来插入:命令行CiscoSparkFacebookGitHubMatrixSlackTelegramTwitterWebsocketOpsdroid调用使??聊天机器人能够显示其“技能”的功能。这些能力实际上是异步Python函数,并使用Opsdroid称为“匹配器”的匹配装饰器。您可以将您的Opsdroid项目设置为使用与您的设置文件所在的代码相同的“技能”。您还可以从外部公共或私人存储库调用这些“技能”。您还可以启用一些现有的Opsdroid“技能”,包括seen-它会告诉您聊天机器人最后一次看到用户的时间,以及weather-它会向用户报告天气。***,Opdroid允许您使用现有的数据库模块来设置数据库。Opdroid目前支持的数据库包括:MongoRedisSQLite您可以在您的Opdroid项目的configuration.yaml文件中设置数据库、技能和连接器。OpsdroidDocker支持的优势:从一开始,Opsdroid就打算在Docker中良好运行。Docker中的说明是其安装文档的一部分。将Opsdroid与DockerCompose一起使用也很简单:将Opsdroid设置为服务,当您运行docker-composeup时,您的Opsdroid服务将启动,您的聊天机器人将准备就绪。版本:“3”服务:opsdroid:容器名称:opsdroid构建:上下文:。dockerfile:Dockerfilerichconnectors:Opsdroid支持从外部访问的九种服务连接器,如Slack和Github。您所要做的就是在您的设置文件中启用这些连接器并传入所需的密码或API密钥。例如,要使Opsdroid能够在名为#updates的Slack频道上发帖,您可以将以下代码添加到设置文件的连接器部分:-name:slackapi-token:"this-is-my-token"default-room:“#updates”在设置Opsdroid连接到Slack之前,您需要添加一个机器人用户。如果您需要连接到Opsdroid不支持的服务,文档中有关于添加您自己的连接器的说明。非常好的文档:特别是对于一个正在积极开发中的新库,Opsdroid的文档非常有帮助。该文档包括一个教程,可指导您创建多种不同的基本技能。Opsdroid关于技能、连接器、数据库和匹配器的文档也很清楚。它的支持技能和连接器存储库为其技能提供了有用的示例代码。自然语言处理:Opsdroid的技能可以使用正则表达式,但它也提供了几个NLPAPI,包括Dialogflow、luis.ai、Recast.AI和wit.ai。Opsdroid的可能缺点Opsdroid没有为其某些连接器启用所有功能。例如,SlackAPI允许您向消息添加彩条、图像和其他“附件”。OpsdroidSlack连接器没有启用“附件”功能,因此如果这些功能对您很重要,您需要编写自定义Slack连接器。如果连接器缺少您需要的功能,Opsdroid欢迎您的贡献。文档中可以使用更多示例,特别是对于预期的使用场景。示例用法fromopsdroid.matchersimportmatch_regeximportrandom@match_regex(r'hi|hello|hey|hallo')asyncdefhello(opsdroid,config,message):text=random.choice(["Hi{}","Hello{}","Hey{}"]).format(message.user)awaitmessage.respond(text)hello/__init__.pyconnectors:-name:websocketskills:-name:hellorepo:"https://github.com/
