笔记:python3编写的仿hubot的聊天机器人Chattie

简要翻译 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将负责其余的工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

## 作为多目标优化的多任务学习:寻找帕累托最优解+组合在线学习:实时反馈玩转组合优化-微软研究院+用于组合优化的强化学习:学习策略解决复杂的优化问题

NIPS 2018:作为多目标优化的多任务学习:寻找帕累托最优解多任务学习本质上是一个多目标问题,因为不同任务之间可能产生冲突,需要对其进行取舍。本文明确将多任务学习视为多目标优化问题,以寻求帕累托最优解。而经过实验…

手把手教你求职进入BAT

“ 最近利用部分的时间,帮助了好几位读者朋友进入了自己心仪的公司,以下我会谈到,求职简历方面给到他们的建议。 如果你本身具备很强的实力,不要因为对求职简历细节不重视,反而痛失良机。 求职加薪,除了…

one-hot(独热)、bag of word(词袋)、word-Embedding(词嵌入)浅析

目录 词袋模型 one-hot word-embedding 我们知道,传统的数据挖掘任务面向的是结构化数据。结构化数据很好理解,就是很有结构的数据嘛。 比如下面这张银行客户数据库中的表格: 编号 姓名 年龄 年收入 职业 有无欠贷 01 夕小瑶 16(…

德勤发布《 2020 亚太四大半导体市场的崛起》报告,美国收入占比达到47%,中国大陆仅占 5%

德勤发布《 2020 亚太四大半导体市场的崛起》报告(以下简称《报告》),《报告》指出: 亚太地区半导体市场正在全球加速崛起,中国大陆、日本、韩国和中国台湾,占据全球半导体总收入前六大国家/地区的四席。美…

干货 | 机器学习算法在饿了么供需平衡系统中的应用

干货 | 机器学习算法在饿了么供需平衡系统中的应用 image:url(https://ask.qcloudimg.com/avatar/1292807/6341kxs4h2.png?imageView2/2/w/72)">用户1292807发表于携程技术中心订阅830作者简介陈宁,饿了么人工智能与策略部高级算法专家,负责供…

研讨会 | “人工智能与行业知识图谱技术实战”研讨会

人工智能时代2017年7月,国务院《新一代人工智能发展规划》明确提出“建立新一代人工智能关键共性技术体系”的重点任务和设立“新一代人工智能重大科技项目以及“1N”人工智能项目群”,特别强调“研究跨媒体统一表征、关联理解与知识挖掘、知识图谱构建与…

Sigmoid函数与Softmax函数的区别与联系

目录 缘起逻辑回归 Sigmoid Softmax 缘起逻辑回归 逻辑回归模型是用于二类分类的机器学习模型(不要说逻辑回归可以做多类分类啊喂,那是二类分类器的组合策略问题,而与逻辑回归分类器本身的构造没有半毛钱关系啊)。 我们知道&…

美商务部再禁6项新兴技术,包括光刻软件和5nm生产技术

10月25日消息,美国商务部工业安全局(BIS)又对六项新兴技术实施了管控,宣布将六项新兴技术添加到《出口管理条例》(EAR)的商务部管制清单(CCL)中。这其中包括了极紫外线(E…

数据挖掘算法(logistic回归,随机森林,GBDT和xgboost)-腾讯云社区

机器学习就是样本中有大量的x(特征量)和y(目标变量)然后求这个function。(了解更多可以看: https://zhuanlan.zhihu.com/p/21340974?refermlearn ) 求函数的方法,基于理论上来说&am…

阿里P8高级架构师教你如何通过BAT面试顺利拿到offer

“ 在开始面试之旅之前还是要多说几句,选公司是要看时机的 ,建议先去小公司试试水,找找感觉,其次建议选熟人内推,也是对面试成功率有帮助的,那么就开始今天的面试之旅吧。 一:招聘方式 BAT技术…

论文浅尝 | SenticNet 5: 借助上下文嵌入信息为情感分析发现概念级别的原语

Citation: Cambria E, Poria S, Hazarika D, et al.SenticNet 5: discovering conceptual primitives for sentiment analysis by meansof context embeddings[C]//AAAI. 2018.概述目前大部分的人工智能的研究都集中在基于统计学习的方法,这些方法需要大量的训练数据…

文本匹配(语义相似度)综述

本文转载自公众号“夕小瑶的卖萌屋”,专业带逛互联网算法圈的神操作 -----》我是传送门 关注后,回复以下口令: 回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读) 回复【入群】&…

2020年工业互联网行业研究报告(国盛证券)

内容摘要 我国推动的工业互联网是更加广义的工业互联网,不仅包括设备的联网。其核心是提升我国工业能力和工业水平,是我国制造业转型升级的重要推手和抓手。我们把工业互联网分为六个层级,包括设备层、网络层、平台层、软件层、应用层和安全…

大型网站架构设计

“ 大型网站的架构设计,涉及到的面非常多,并不像大家想象的那样,就是一个网站这么简单,今天抛砖引玉,希望能给想从事互联网行业的同学一点初步的概念。 架构设计,其实就要清楚整个大型网站技术架构的演变…

强化学习之原理与应用

PaddlePaddle原创2019/02/20 17:23强化学习之原理与应用强化学习特别是深度强化学习近年来取得了令人瞩目的成就,除了应用于模拟器和游戏领域,在工业领域也正取得长足的进步。百度是较早布局强化学习的公司之一。这篇文章系统地介绍强化学习算法基础知识…

论文浅尝 | 基于多原型mention向量的文本-实体联合学习

链接:http://anthology.aclweb.org/P/P17/P17-1149.pdf概述在知识库和文本的联合表示中,歧义是个困扰的难题。同一个 mention 可能在不同的语境下表述不同实体,同一个实体又有多种 mention 表示,如下图。本文提出了一个新的表示方…

2020全球工业互联网大会在沈阳召开,聚焦新业态、新模式,“新基建”促进国内国际双循环等热点

2020全球工业互联网大会在沈阳召开,聚焦新一代信息技术与制造业融合应用工业互联网、疫情防控和助力企业复工复产中的新业态、新模式,“新基建”促进国内国际双循环等热点议题展开。 五位“两院”院士就工业互联网领域热点话题发表主旨演讲。 倪光南&a…

NLP预训练模型综述:从word2vec, ELMo到BERT

目录 前言 word2vec 模型 负采样 char-level与上下文 ELMo BERT 深层双向的encoding 学习句子与句对关系表示 简洁到过分的下游任务接口 前言 还记得不久之前的机器阅读理解领域,微软和阿里在SQuAD上分别以R-Net和SLQA超过人类,百度在MS MARCO…

一篇文章了解架构设计的本质

“ 大型网站的架构设计,涉及到的面非常多,并不像大家想象的那样,就是一个网站这么简单,今天抛砖引玉,希望大家正确看待架构设计。 什么是架构设计的本质? 任何系统,自然情况下,都是…

看完这篇Linux基本的操作就会了

只有光头才能变强这个学期开了Linux的课程了,授课的老师也是比较负责任的一位。总的来说也算是比较系统地学习了一下Linux了~~~ 本文章主要是总结Linux的基础操作以及一些简单的概念~如果不熟悉的同学可下个Linux来玩玩(或者去买一个服务器玩玩【学生版的不是很贵】…