微信对接chatGPT,实现自动回复消息、在线答疑等功能

时间:2022-12-16 10:57:00

前言

近来chatGPT挺火的,也试玩了一下,确实挺有意思。这里记录一下在在微信中也可以使用chatGPT,顺带可以自动回复微信消息、实时答疑等。。。

上一篇文章回顾:https://frica.blog.csdn.net/article/details/128316712

本文章在uiautomation的基础上,加上上一篇文章的内容,从而实现在微信上也可以使用chatGPT的操作。
因为只是随便玩玩儿,只保证代码可以运行,玩玩还是可以的,其它的就不好说了~~

知识点????????

知识点 链接 作用
uiautomation专栏 uiautomation:https://frica.blog.csdn.net/category_12007547.html 监听和发送WeChat消息
完整项目Github链接 https://github.com/Frica01/Wechat_mass_msg 项目地址
chatGPT 在Python里使用ChatGPT Python调用chatGPT

实现

在发送的文本中,需要带有 @chatGPT 这几个关键字才能促发响应。
基于前面uiautomation的文章,和上一篇 在Python里使用ChatGPT,从而实现本文章的所有操作。

来看看效果:

  • 一口气问了三个问题,chatGPT都给了我回答。
    微信对接chatGPT,实现自动回复消息、在线答疑等功能

来看看视频的效果:

微信内调用chatGPT

整体效果差强人意,也还算凑合吧。


关键代码

这里只给出关键代码,需要完整代码在这里自取:https://github.com/Frica01/Wechat_mass_msg

注释也写的非常清晰了,相信聪明的你可以看懂。

# -*- coding: utf-8 -*-

def main(sleep_time: int):
    # 建立一个字典和列表
    records_map = dict()
    records_list = list()
    while True:
        # 获取聊天记录
        records = get_records()
        for item in records:
            # 如果不存在消息不是文本就跳过
            if item.get('type') != 'Content':
                continue
            # 需要@chatGPT 关键词来促发后面的操作
            if '@chatGPT' not in item.get('msg'):
                continue
            # 获取发送信息的人和内容
            name = item.get('name')
            content = item.get('msg').split('@chatGPT')[1]
            # 如果 同一个人+用一段文本 已经发送过,则跳过
            if name + '××÷÷' + content in records_list:
                continue
            records_list.append(name + '××÷÷' + content)
            # 如果该内容已经提问过,则从 records_map 取出来回答
            if records_map.get(content):
                reply(msg=records_map.get(content))
            # 如果该内容已经提问过,则从添加到 records_map
            else:
                response = get_response(msg=content)
                reply(msg=response)
                records_map[content] = response

        time.sleep(sleep_time)


if __name__ == '__main__':
    main(sleep_time=3)

后话

本次分享到此结束,
有任何疑问请自行解决!????‍????????‍????