六行代码打造萌萌哒聊天机器人

浏览: 2470

这次分享主要是构建微信机器人和公众号机器人的接入,以及相关的资料整理,主要内容包括:

  • 快速构建微信机器人

  • wxpy包介绍

  • 图灵机器人介绍

为了说明代码有多简单,先上代码,不含注释一共六行:

备注:代码中的api我做了修改处理,请输入你在图灵机器人中获取的apikey

from wxpy import *

*## 在电脑上登录网页版版微信

bot = Bot()

#apikey,在此处输入图灵机器人的key

tuling = Tuling(api_key='7e41a9c26dde4xxxxxxxxxxxxxxxxxxxxx')

#自动回复

@bot.register()

def reply_all(msg):
   tuling
.do_reply(msg)


把以上代码放到python中运行,即可完成机器人的搭建。

blob.png

实际上,机器人的搭建,主要依赖于python中的wxoy包以及图灵机器人的api,因此你想更深入地研究一些内容,建议你进一步阅读下面的两个相关知识。

1.wxpy包:可能是最优雅的微信个人号 API

wxpy包是一个允许在python中操作微信的工具包,它在ichat的基础上通过大量的借口提升了易用性。以下是wxpy的一些常见场景(摘自官方文档)

  • 控制路由器、智能家居等具有开放接口的玩意儿

  • 运行脚本时自动把日志发送到你的微信

  • 加群主为好友,自动拉进群中

  • 跨号或跨群转发消息

  • 自动陪人聊天

  • 逗人玩

  • ...

简单来说,可用来实现各种微信个人号的自动化操作,接下里介绍一些常用的操作:

安装wxpy


wxpy支持python2.7,3.4-3.6版本

pip install -U wxpy

登录微信


wxpy支持python2.7,3.4-3.6版本

from wxpy import *

## 在电脑上登录网页版版微信

bot = Bot()

启用缓存,能够自动登录

## 在电脑上登录网页版版微信,并启用缓存实现自动登录

bot = Bot(cache_path=True)


查询统计


#获取所有聊天对象

bot.chats()

#获取所有好友

bot.friends()

#获取所有群聊

bot.groups()

结果

[<Friend: 浩彬老撕机器人2>,
<Friend: 于xx>,
<Friend: Cxx>,
<Friend: xxx>,
<Friend: Pxx>,
<Friend: 浩彬老撕>,
<Friend: PAxx>,
<Group: 机器人们>,
<MP: 探数寻理>]

#获取微信id,因微信的隐私策略,该属性有时无法被获取到

#获取第一个好友的微信id

bot.friends()[0].wxid

#结果

2635636115

#获取微信头像,并保存在本地

bot.friends()[0].get_avatar(save_path='d:/jupyter/wxpy/photo.jpg')

blob.png

#统计

friends = bot.friends()

print(friends.stats_text())

结果

浩彬老撕机器人2 共有 5 位微信好友

男性
: 3 (60.0%)女性: 2 (40.0%)TOP 10 省份
广东
: 5 (100.00%)TOP 10 城市
广州
: 5 (100.00%)

发送消息


#在好友中找到名字包括“浩彬”,性别是男的广州好友

my_friend = bot.friends().search('浩彬', sex=MALE, city='广州')[1]

#send:动态发送不同类型消息,默认为本文

#send_image:发送图片

my_friend.send('你在吗')

my_friend.send_image('d:/jupyter/wxpy/lovely.jpg')

blob.png

聊天机器人


专属你的某人的聊天机器人

备注:代码中的api我做了修改处理,请输入你在图灵机器人中获取的apikey

from wxpy import *

bot = Bot(cache_path=True)## 在电脑上登录网页版版微信,并启用缓存

# 搜索好友,并指定。bot.friends().search的搜索结果是一个列表,所以记得指定元素[]

my_friend = bot.friends().search('浩彬老撕')[1]

#apikey,在此处输入图灵机器人的key

tuling = Tuling(api_key='7e41a9c26dde4xxxxxxxxxxxxxxxxxxxxx')

#wxpy中通过预先注册方式实现消息自动处理#预先注册是指预先将特定聊天对象的特定类型消息,注册到对应的处理函数,以实现自动回复等功能。

@bot.register(my_friend) #预先注册

def reply_my_friend(msg):

   tuling.do_reply(msg)

   print(msg)

#wxpy的embed() 可在堵塞线程的同时,进入 Python 命令行,方便调试,一举两得。

embed() #堵塞进程,在jupyter中可以删掉此行

所有人自动回复

备注:代码中的api我做了修改处理,请输入你在图灵机器人中获取的apikey

from wxpy import *

## 在电脑上登录网页版版微信

bot = Bot()

#apikey,在此处输入图灵机器人的key

tuling = Tuling(api_key='7e41a9c26dde4xxxxxxxxxxxxxxxxxxxxx')

#自动回复

@bot.register()

def reply_all(msg):

   tuling.do_reply(msg)

   print(msg)
embed() #堵塞进程,在jupyter中可以删掉此行

备注:请慎重使用全部自动回复,该功能也实现对群聊消息的自动回复,一个不小心很容易会被踢出群~

blob.png

2.API图灵:可能是最优雅的微信个人号 API

blob.png

图灵机器人提供的API比较方便,只需要注册就能获得免费的API,基本能够满足测试所需要的。在机器人管理界面,即能创建新的机器人。

blob.png

选择,设置,可以进一步完成机器人的设定。机器人提供多个知识库,同时也能自定义设定回复内容

blob.png

同时提供多个扩展功能,满足需要

blob.png


近期热门文章精选

1.干货教程|可能是最方便好用的文字云工具

2.超详细|关于梯度下降方法四知四会

3.如何通俗地理解决策树中的信息熵

4.真的只需要关心PM2.5?广州空气质量分析报告(附代码)

5.推荐资源|神经网络与深度学习

注:由于最近老撕比较忙,所以有些信息没有及时查看回复(微信规定48小时没有回复的话,则不能再次回复),所以如果浩彬老撕没有及时回复,大家可以再次留言。

作者简介:浩彬老撕

好玩的数据炼丹师,

曾经的IBM 数据挖掘攻城狮,

还没开始就过气数据科学界的段子手,

致力于数据科学知识分享,不定期送书活动

推荐 1
本文由 浩彬老撕 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册