简要翻译 Chattie,原文来自github,有删改。

Chattie是受Hubot启发的Python机器人框架。

安装chattie

安装命令:

pip3 install chattie

创建一个新的bot,运行:

chattie new my_bot_name

使用bot名称my_bot_name创建一个新目录,并生成一些文件来帮助入门。Chattie目前带有3个连接器:

  • Matrix: https://matrix.org/

    • pip3 install chattie[matrix]
  • Telegram: https://telegram.org/
    • pip3 install chattie[telegram]
  • Terminal: A REPL you can use for testing your bot!

支持添加技巧和处理程序 来构建自己的机器人。

核心概念

  • Handlers:处理程序,接收房间中的所有非命令消息
  • Tricks:技巧,Chattie机器人可以做的事情
  • Commands:命令,Tricks的触发词
  • Connectors:连接器,让Chattie机器人与其他服务进行对话

Trick、handler和Command

Trick、handler是带有两个参数和一个**kwargs的函数。kwargs是一个数组,包含当前实例chattie.Bot和传入消息的文本,使用空格作为分割符,允许Connectors发送附加的元数据。
Tricks和handlers的功能并不是严格必需的,主要用于定制可选的机器人后端(backend)。可用的附加元数据的更多信息,请参见相应连接器的文档。下面是Trick的一个例子:

# If we recieve the message: "chattie my_new_trick some stuff"
def my_new_trick(bot, msg, **kwargs):print(msg) # prints ['my_new_trick', 'some', 'stuff']print(bot) # prints info about the currently running bot instancereturn "" # responds to the chat room with whatever string is# returned here

Trick使用完全相同的签名,但是他们可以选择返回None,不送任何内容给聊天室。这对于诸如审核日志记录或捕捉笑话之类的事情很有用

所有Trick都会自动添加到Chattie的help命令中。如果Trick具有docstring,它将包含在为用户优化过的帮助输出中。
因此,Chattie可以配置为必须将新trick分配给命令,方法是command在模块中命名一个全局变量,该变量 是Trick触发词的词典。对于上面的示例,它看起来像这样:

commands = {'my_new_trick': my_new_trick
}

更方便的是,可以将多个命令分配给同一个trick:

commands = {'my_new_trick': my_new_trick,'new_trick': my_new_trick
}

Chattie初始化后会自动将其引入,并将其添加到已知命令中。

handler操作方式大致相同,但是由于handler没有触发词,因此您只需导出要在全局变量中注册的处理程序数组即可:

handlers  = [a_new_handler,some_other_handler
]

Chattie将负责其余的工作。

笔记:python3编写的仿hubot的聊天机器人Chattie相关推荐

  1. python3+服务器+微信公众号的聊天机器人

    写在最前:假期想稍微自学一下python语言,在课程中实现了聊天机器人,但是那时候是从网上找的源码,这次想要自己一句一句试试编码.为了利于交互,希望基于微信平台进行开发,但是用自己的微信账号害怕发出去 ...

  2. 专属个人的聊天机器人的实现——图灵机器人

    先体验一下:图灵机器人智能聊天体验:http://www.tuling123.com/openapi/cloud/proexp.jsp 1.简单介绍 本篇为大家介绍使用图灵机器人api实现聊天机器人的 ...

  3. 机器人编程python代码_自己动手开发智能聊天机器人完全指南(附python完整源码)...

    一.前言 人工智能时代,开发一款自己的智能问答机器人,一方面提升自己的AI能力,另一方面作为转型AI的实战练习.在此把学习过程记录下来,算是自己的笔记. 二.正文 2.1 下载pyaiml 下载pya ...

  4. Android高仿iOS Messages聊天气泡

    Android高仿iOS Messages聊天气泡 一.目标 二.功能分析 三.实现代码 1. ChatItem 2. DateItem 3. TextItem 4. PhotoItem 5. Cha ...

  5. 高仿微信局域网聊天V5版本-无需服务器实现,支持多线程文件收发和跨平台运行

    高仿微信局域网聊天V5版本-无需服务器实现,支持多线程文件收发和跨平台运行 近年来,随着人们对通信技术和网络的需求日益增长,基于局域网的即时通讯软件已经成为了当今社会中不可或缺的一部分.其中,微信是最 ...

  6. 读书笔记:编写高质量代码--web前端开发修炼之道(二:5章)

    读书笔记:编写高质量代码--web前端开发修炼之道 这本书看得断断续续,不连贯,笔记也是有些马虎了,想了解这本书内容的童鞋可以借鉴我的这篇笔记,希望对大家有帮助. 笔记有点长,所以分为一,二两个部分: ...

  7. python学习笔记之编写readConfig读写配置文件

    python学习笔记之编写readConfig读写配置文件_weixin_34055910的博客-CSDN博客

  8. flutter offset_Flutter 仿微信界面聊天室 | 基于 (Flutter+Dart) 聊天实例

    1.项目介绍 Flutter是目前比较流行的跨平台开发技术,凭借其出色的性能获得很多前端技术爱好者的关注,比如阿里闲鱼,美团,腾讯等大公司都在投入相关案例生产使用.flutter_chatroom项目 ...

  9. 高仿QQ即时聊天软件开发系列之三登录窗口用户选择下拉框

    上一篇高仿QQ即时聊天软件开发系列之二登录窗口界面写了一个大概的布局和原理 这一篇详细说下拉框的实现原理 先上最终效果图 一开始其实只是想给下拉框加一个placeholder效果,让下拉框在未选择未输 ...

最新文章

  1. 办公计算机培训方案,计算机办公软件应用培训教学计划规划方案.docx
  2. [转载]tomcat的配置文件server.xml不支持中文注释的解决办法
  3. 字典删除多个键值对方法_Life is short,you need Python——Python序列(元组、字典、集合)...
  4. java jdk安装失败 mac_Mac javaJDK安装遇到的坑和环境变量配置2019-07-09.
  5. python语言及其应用电子版翁正秋_Python语言及其应用pdf
  6. 计算机组成与系统 报告,计算机组成与系统结构实验报告2
  7. diff命令两个服务器文件,linux 比较两个文件夹不同 (diff命令, md5列表)
  8. duilib清空richedit内容
  9. 关于计算机网络的英语演讲稿,上网利弊的英语演讲稿范文
  10. python全栈计划_Python 全栈学习视频教程,包含了从 0-99天的全栈学习计划,估计可以学习 1024 小时。...
  11. OpenPose Demo
  12. 中望cad文字显示问号怎么办_CAD钢筋符号显示为问号怎么办?
  13. RNA 3. SCI 文章中基于TCGA 差异表达基因之 DESeq2
  14. 微信小程序之订阅消息
  15. 云上游戏数据分析实践
  16. CHIL-SQL-UCASE() 函数
  17. 看板方法不是方法论 | David博客系列 | Agilean学院出品
  18. python:defaultdict
  19. ZXing 相册中识别二维码和条形码(直接引用就可以了)
  20. 浅谈![CDATA[ ]]

热门文章

  1. 每日一题(18)—— 指定地址存入数据
  2. STM32f103——ILI9341
  3. 一、node.js搭建最简单的服务器
  4. LeetCode 1808. 好因子的最大数目(整数拆分,乘积最大)
  5. LeetCode 1503. 所有蚂蚁掉下来前的最后一刻(脑筋急转弯)
  6. LeetCode 1023. 驼峰式匹配(暴力匹配)
  7. LeetCode 1266. 访问所有点的最小时间(数学)
  8. 回溯应用-- 0-1背包问题
  9. java 画笔跟swing组件_Java学习教程(基础)--Java版本历史(二)
  10. 谈一谈HTTP中Get与Post的区别与主要应用场景