python实现微信机器人: AI智能回复

前期准备:

在网站http://www.tuling123.com/注册账号,我们能获得一个token,一个免费的token每天的调用上限大概是1000次,如果仅仅是自己测试使用的话,应该是够用了。

实现:

def reply_self(msg):
    url_api = http://www.tuling123.com/openapi/api
    data = {
        key: TULING_TOKEN,
        info: msg.text,  # 收到消息的文字内容
    }
    s = requests.post(url_api, data=json.dumps(data))
    info = json.loads(s.text)
    if info[code] == 100000:
        print info[text]  # 查看回复消息的内容,可省略
        msg.reply(info[text])  # 回复消息

这个TULING_TOKEN就是注册获得的token。这样我们就获得了一个能够自动回复的机器人。 但是这边仍旧会存在一个问题, 就是机器人无法根据上下文给出回复,为什么呢, 因为这个接口无法将多个不同的请求关联起来。如何将不同的请求关联起来呢, 就是在每次发送文字内容的时候同时附上一个用户的id,机器人就能理解这些内容是来自同一个发送方。

我们需要将发送的内容改成

data = {
        key: TULING_TOKEN,
        info: msg.text,  # 收到消息的文字内容
        userid: msg.sender.puid,  # 使用群聊中发送者的 puid 作为 userid 传送给图灵接口, 如果是私聊可以使用 msg.sender.puid
    }

不过这个还需要在登录之后打开puid的这个功能

bot.enable_puid() # puid 需要手动开启

另外备注一下, 在测试的时候,为了防止对所有的用户都自动回复,可以指定自动回复的接受人:

my_friend = bot.friends().search(uxxxx)[0]

然后在注册自动回复的时候,指定只有该用户能收到

@bot.register(my_friend, TEXT)


经验分享 程序员 微信小程序 职场和发展