【20220331】自动回复微信机器人——基于pyautogui,取消OCR功能,调用中文预训练模型API

自动回复微信消息

  • 1. pyautogui
  • 2. 文本识别
  • 3. 改进版文本识别
  • 4. 自动回复
  • 5. 全部代码
  • 6. 实验结果可视化
  • 7. 未来方向
  • 参考

还有笑话+成语+名词解释+智能问答+天气+翻译+问候的功能;还有发一个表情包或者问号的功能,测试效果良好,别生气别骂人!

主要思路:

1. pyautogui

  1. pyautogui.locateCenterOnScreen来定位
  2. pyautogui.screenshot来截聊天区域的图

2. 文本识别

OCR,参考之前写的一篇CSDN,实现效果:

原窗口:
【20220331】自动回复微信机器人——基于pyautogui,取消OCR功能,调用中文预训练模型API_第1张图片
截固定长宽的像素:
【20220331】自动回复微信机器人——基于pyautogui,取消OCR功能,调用中文预训练模型API_第2张图片
结果:

['@21-肖龙', '老师-HCS-吴志勇', '大家都太强了#章']

发现名字也会被识别出来,这里不能直接取最后一个,因为多行输入的时候:
【20220331】自动回复微信机器人——基于pyautogui,取消OCR功能,调用中文预训练模型API_第3张图片

结果:

['好多不会都血红蛋白许多还打不打胡', '好的']

发现有时候有名字有时候又没有……

解决方法:微信原因。这里只针对单人聊天,如果需要实现群聊效果需要进入群中设置不显示成员名称。

【20220331】自动回复微信机器人——基于pyautogui,取消OCR功能,调用中文预训练模型API_第4张图片

['还是你的记得记得都就差你']

3. 改进版文本识别

以上文本识别太不好用了,同时百度云OCR注册比较麻烦,免费的只有200次的额度,中午睡午觉发现了一个更为简便的方法:

  1. 找到所有的聊天框:pyautogui.locateAllOnScreen
  2. 微信双击就可以选择文本:pyautogui.doubleClick
  3. 粘贴过来:pyautogui.hotkey('ctrl', 'c'))txt = pyperclip.paste()

4. 自动回复

本来想用ERNIE的,发现几个月前百度有个新的预训练模型,也挺麻烦的,先获取access_token,接口在这,控制台在这,好像是基于PLATO-XL,中文预训练模型,论文地址

在这里或者这里修改技能

5. 全部代码

https://github.com/YoungSeng/Autowechat

6. 实验结果可视化

https://www.bilibili.com/video/BV1X5411S7vE

运行效果:

手写一个自动回复微信消息机器人!

图片截图:
【20220331】自动回复微信机器人——基于pyautogui,取消OCR功能,调用中文预训练模型API_第5张图片
【20220331】自动回复微信机器人——基于pyautogui,取消OCR功能,调用中文预训练模型API_第6张图片
【20220331】自动回复微信机器人——基于pyautogui,取消OCR功能,调用中文预训练模型API_第7张图片
【20220331】自动回复微信机器人——基于pyautogui,取消OCR功能,调用中文预训练模型API_第8张图片
【20220331】自动回复微信机器人——基于pyautogui,取消OCR功能,调用中文预训练模型API_第9张图片
【20220331】自动回复微信机器人——基于pyautogui,取消OCR功能,调用中文预训练模型API_第10张图片
【20220331】自动回复微信机器人——基于pyautogui,取消OCR功能,调用中文预训练模型API_第11张图片
【20220331】自动回复微信机器人——基于pyautogui,取消OCR功能,调用中文预训练模型API_第12张图片
【20220331】自动回复微信机器人——基于pyautogui,取消OCR功能,调用中文预训练模型API_第13张图片

【20220331】自动回复微信机器人——基于pyautogui,取消OCR功能,调用中文预训练模型API_第14张图片

【20220331】自动回复微信机器人——基于pyautogui,取消OCR功能,调用中文预训练模型API_第15张图片
……

7. 未来方向

  1. 现在是设置为没有新消息的时候点一个固定的屏蔽群消息的置顶群聊,知道检测到红点为止,这个可以改进,就可以和一个人不只说一句话了;
  2. 我想到了发文件、音频、表情包这样的测试用例,所以昨晚跑了一个多小时效果良好,没有报错;
  3. 没有基于OCR,是基于双击全选当前最后一个文本框,这在群聊中收到@消息的时候会检测不到文本,这个也好解决,把x轴坐标往右一点就可以了;
  4. 接到微信电话的时候!哈哈哈哈哈哈这个是最搞笑的,因为要双击所以会接到电话,但是又不能说话,然后要等别人骂骂咧咧的挂掉电话之后才可以继续运行监测图标的程序;
  5. 有些死循环,比如“别客气,这是应该做的……”(好像是),原本模型原因;
  6. 公式、代码不能识别,这一点看来比GPT差一点。

参考

  1. python微信自动回复聊天 文本识别+pyautogui
  2. 5分钟,教你做个自动化软件拿来办公、刷副本、回微信 | 源码公开,开箱即用

你可能感兴趣的:(小白学习,pytorch,深度学习,人工智能,python,nlp)