一种多平台聊天机器人框架

Chatt的Python项目详细描述


健谈

一个多平台聊天机器人框架

说明

chatty是一个python 3包,旨在将任何聊天平台映射到同一平台 标准化接口。目标是允许聊天机器人重新映射 从一个平台到另一个平台,甚至同时到多个平台, 只不过是配置上的小改动。

Chatty围绕3个核心摘要进行组织:

  • signals:信号是通信的任何单个不可分割的元素, 如消息或通知,可能包含也可能不包含 某种内容或数据。信号总是有一定的附加 metadata表示信号的来源、是谁 发送到、发送时间等。
  • bots:bot是处理入站信号的端点,并且 生成出站信号。
  • sessions:会话是一个开放通道,信号可以通过它 由机器人发送和/或接收。

用法

fromchatty.bots.decoratorimportas_botfromchatty.configurationimportget_configfromchatty.sessions.slackimportSlackSessionfromchatty.signals.messageimportMessagefromchatty.signals.metadataimportSignalMetaData# FRIENDLY REMINDER: Never store bot tokens or login passwords in your source# code, and be careful that they aren't in a place where they could get picked # up by source control!# Load the bot's handle and login token from the config file.handle,token=get_config('Slack','~/.chatty_config',['handle'],['token'])@as_botdefconverse(session,signal):"""Say 'hi!' back on the same channel whenever someone says 'hello'"""ifisinstance(signal,Message)and'hello'instr(signal.content).lower():meta_data=SignalMetaData(origin=handle,addressees=[signal.meta_data.roomorsignal.meta_data.origin],response_to=signal.meta_data.identifier)returnMessage(meta_data,'hi!')session=SlackSession(token)# Create a new Slack sessionsession.add_bot(converse)# Connect our bot to itsession.join(timeout=5*60)# Hang out for 5 minutessession.close()# Drop offline

当前开发状况

聊天是全新的,目前只测试了基本的信息 通过电子邮件(imap&smtp)、xmpp和slack。请参阅TODO list以获取 其他最终应该得到支持的平台。

贡献

如果需要支持特定的平台或协议, 我很乐意接受请求。如果你想贡献 但需要一个地方开始,请看TODO list。有很多 平台和功能尚未添加。每个支持的平台都有 它自己在chatty/sessions文件夹中的模块及其依赖项 应该添加到setup.py中的extras_require参数。测验 进入test_chatty文件夹,并以前缀test_命名 正在测试的模块的名称。

提交的代码应该遵循pep8 guidelines,并且通常应该, 遵循chatty代码库中其他地方建立的约定。为了 为了清楚起见,请注意,通过提交拉取请求,您 同意,根据标准惯例(以及GitHub terms of service) 使您的代码在管理此项的license下可用 项目。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Spring Websocket处理程序未向所有客户端发布消息   java动态识别base64编码的文件类型   使用有界类型参数的java“两种方法具有相同的擦除”错误   Java中与互斥体相关的多线程问题   华为设备上的java文本对齐问题   java试图运行ant获取错误   java无法从此SPARQL查询中获得任何结果   java有没有人使用过GUTS(GUICE UTILITIES TOOLS SWING)?   在第三方应用程序中打开和关闭的Java程序监视器文件   java Codename One在iOS上保存照片的权限   swing Java程序,使用两个滑块生成两个数字相加   java如何在不安装插件的情况下将lombok jar添加到intellij idea中?   javascript getElementById在IE浏览器中工作,但在iFrame中不工作