前言
近来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
整体效果差强人意,也还算凑合吧。
关键代码
这里只给出关键代码,需要完整代码在这里自取: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)
后话
本次分享到此结束,
有任何疑问请自行解决!🐱🏍🐱🏍