郭晋兵 guojb@cloudbin.cn

前言

最近网上有很多微信聊天机器人咋骗的新闻,和AI在人机对话中的不靠谱分析。就很有兴趣做个聊天机器人试试看。先从最简单的机器人开始把。

安装步骤

1. 图灵机器人api的申请

首先前往图灵机器人官网http://www.tuling123.com/注册一个账号
注册完成后登陆进入一个如下界面:

然后点击创建机器人,可以选择如下选项(也可以根据自己的需求选择选项):

这样就创建成功啦,然后进入以下页面,我们所需要关注的是那个apikey:

这里我就没有对api进行打码了,如果有不想申请的 只是测试的可以拿着我这个api去进行测试,但是友情提醒,每天的回复量是有限的,请不要滥用。

2. Python环境安装:

需要python3的版本,Linux用户的python2版本可能太低了,编译会有问题。
https://www.python.org/downloads/

需要注意一点的就是记得将python安装路径加入环境变量

3. 安装itchat库

如果是通过管理员权限运行,直接输入以下代码:

pip install itchat

pip install requests

默认自动从网上下载安装包,自行安装。

4. 聊天代码实现

打开任何编辑器,黏贴以下代码,保存为xxx.py文件。

细节的参数修改,请参见注释。

#-*- coding:utf-8 -*-
import requests
import itchat
 
KEY = ’80e0f82fea294cd9bee730cbec88eddb’  #可以到图灵机器人官网申请一个,免费的
 
def get_response(msg):
    # 构造了要发送给服务器的数据
    apiUrl = ‘http://www.tuling123.com/openapi/api’
    data = {
        ‘key’    : KEY,
        ‘info’   : msg,
        ‘userid’ : ‘wechat-robot’,
    }
    try:
        r = requests.post(apiUrl, data=data).json() # 字典的get方法在字典没有’text’值的时候会返回None而不会抛出异常
        return r.get(‘text’)                        # 为了防止服务器没有正常响应导致程序异常退出,这里用try-except捕获了异常   
    except:                                        # 如果服务器没能正常交互(返回非json或无法连接),那么就会进入下面的return       
        return                                    # 将会返回一个None
 
#注册获取别人发来的信息方法
@itchat.msg_register([‘Text’,’Map’, ‘Card’, ‘Note’, ‘Sharing’, ‘Picture’])
def tuling_reply(msg):
        print(msg.User[‘NickName’] +”:”+ msg[‘Text’])    #这里输出给你发微信的人的名字和他发送的内容       
        reply = get_response(msg[‘Text’])         #调取图灵机器人获取回复
        print(reply+”\n”)       #打印机器人回复的消息
        return reply
 
@itchat.msg_register([itchat.content.TEXT], isGroupChat=True)    #群消息的处理
def print_content(msg):
    if msg.User[“NickName”]==’你希望自动回复群的名字’or msg.User[“NickName”]==’另外一个你希望自动回复群的名字’:    #这里可以在后面加更多的or msg.User[“NickName”]==’你希望自动回复群的名字’
        print(msg.User[‘NickName’] +”:”+ msg[‘Text’])     #打印哪个群给你发了什么消息
        print(get_response(msg[‘Text’])+”\n”)           #打印机器人回复的消息
        return get_response(msg[‘Text’])
    else:                                         #其他群聊直接忽略
        pass
 
itchat.auto_login(hotReload=True)
itchat.run()

5. 编译代码运行

Windows用户,如果关联了python执行环境,可以双击xxx.py文件,或者在CMD环境运行python xxx.py,然后有一个二维码弹出,用机器人微信账号扫码登陆。

Linux 用户,运行python xxx.py, 如果想后台运行,执行

#nohup python3 WXCS.py >weixin.log 2>&1 &

如果linux没有xWindow, 那么二维码如何弹出来呢,然后查看weixin.log日志发现,还有个模块没下载,这个模块xdg-open是用来打开文件的,所以我们先下载yum install xdg-utils,下载完成后麻烦一点,重新运行程序,然后将二维码图片通过scp命令下载下来,然后手机扫码,就可以了。

举例:

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据