chatgpt接入微信

news2024/9/24 5:26:04

背景

  1. chatgpt是一个有趣的、聪明的AI机器人。
  2. 很多人希望可以把这个机器人接入微信群聊里面。

介绍

本项目,使用python制作了一个微信群聊机器人。

  1. 微信群聊机器人
  2. 群聊里面,被艾特后,会基于被艾特的内容,发送对应的文本。
  3. 可以使用chatgpt。
  4. 也可自己定义机器人回复内容(比如自己写对话机器人)
  5. 和微信通信,主要是模拟点击事件,而不是通过网页版微信(现在很多网页版微信都是无法登录的)。

功能展示

B站视频链接:https://www.bilibili.com/video/BV1i8411G7xC

  1. 微信群聊里面,有人艾特机器人(这里的机器人名称叫小埋)。
  2. 文本结构是:@机器人名称 + 问题
  3. 机器人会处理此文本,并且返回答案。

技术逻辑

交互逻辑

  1. 机器人之所以可以检测是否被提及到。移动到被艾特的位置,复制文本,点击发送按钮等。
  2. 都是使用cv里面的图像模板匹配。
  3. 也就是需要预先对微信群聊的对话框做特征点标记。
  4. 而所谓的标记,就是需要我们先做好模板(也就是把一些特征点,截图,保存)

获取文本并处理逻辑

  1. 在定位到被艾特的位置后,会自动点击复制按钮,然后复制这段话。(这个时候是已经将文本放入window系统的剪切板)
  2. 然后使用python的特定的包,提取window系统剪切板的文本。
  3. 经过后端的机器人接口,对文本做处理。
  4. 然后再放入window系统剪切板里面。
  5. 到文本输入框里面,粘贴文本。
  6. 最后点击发送。

程序的完整正向逻辑

视频

1. 检测是否被@

如果被检测到,就继续

2. 找到被@的文本位置

点击上图的红圈位置会定位到,在经过0.5秒后,对应的信息会被加深(有个深色条)。

就像是下图的红圈1和红圈2的区别。而红圈1就是我们刚才被艾特的文本。

3. 鼠标点击复制

鼠标在定位到上图的绿圈之后,

点击右键,找到复制按钮,点击复制

4. 处理文本

复制后的文本,会被从剪切板传递到python里面,然后python调用机器人接口,得到新内容,将新内容再次传递到剪切板

5. 定位聊天对话框

依靠下图的绿框的一排图标,可以定位到文本输入框的位置。

鼠标移到这个地方。

6. 粘贴内容

鼠标右键粘贴内容

7. 点击发送按钮

粘贴好之后,就是点击发送即可。

如何使用

机器人名称

注意我这里叫【小埋】,你的可以改为你自己的,这个不是难点。

截图

使用这部分是最麻烦的,因为每个人的电脑分辨率不同,导致截图都是没办法复用的,因此你只能在你的电脑上,把下面截图都给再截图一遍。

1. image_01_mention.png

这个是被提到的图片,你需要截图,内容上,最好和我截图一样。

2. image_02_usertextv2.png

这个截图很有技巧。因为在点击【被提到后】,需要等待那个消息框周围变深,然后才能截图。

因此建议,使用pyautogui辅助截图。

就是要把这个绿框截图给准确的截下来(当然你的机器人名称不叫小埋)

截图成功最终的样子就是images/image_02_usertextv2.png

注意这里是V2版本的奥,后面有V2!!!

3. image_03_copy.png

这个不难,就是鼠标放在被艾特的文本上的时候,右键,出现【复制】,然后这个时候截图。

4. image_04_input.png

这个也是不难,就是直接截图

5. image_05_send.png

这个就是右下角的【发送】按钮

安装依赖

pip install pyautogui
pip install pyperclip

# https://github.com/acheong08/ChatGPT
pip install revChatGPT --upgrade 

程序

上面基本上就ok了。最后直接运行app.py文件就行了。

  1. 默认是简单回复模板。
  2. 如果想要使用chatgpt模板,前提,你可以正常使用chatgpt。

仓库链接

https://github.com/yuanzhoulvpi2017/WechatGroupRobot

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/79076.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CVE-2019-15107 webmin RCE漏洞复现

今天继续给大家介绍渗透测试相关知识,本文主要内容是CVE-2019-15107 webadmin RCE漏洞复现。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调&#xf…

【测绘程序设计】——椭球面弧长计算

椭球面弧长计算主要指——①根据纬度计算子午线弧长(B→X);②由子午线弧长求大地纬度(X→B)。它们主要用在高斯投影之中。本文分享了测绘程序设计——椭球面弧长计算(C#版与Python版),相关源代码(绝对完整,直接运行)及使用示例如下。 目录 Part.Ⅰ 使用示例Chap.Ⅰ …

redis基础

redis是一个基于内存的Key-Value数据库 1.基于内存存储,读写性能高 2.适合存储热点数据(热点商品、咨询、新闻) 3.NoSQL,不仅仅是SQL,泛指关系数据库 关系型数据库 Mysql Oracle DB2 SQLServer 非关系型数据…

参数化集成测试

我们在开发项目的过程中遇到了复杂的业务需求,测试同学没有办法帮我们覆盖每一个场景;或者是我们自己在做代码功能升级、技改,而不是业务需求的时候,可能没有测试资源帮我们做测试,那这个时候就需要依靠自己的单元测试…

数据结构之树相关概念的知识铺垫

文章目录前言1.树的相关介绍2. 树的表示3.二叉树概念及结构4.二叉树的性质5.二叉树相关概念练习6.总结前言 之前对数组结构中线性结构进行了相关的介绍,本文将开始对非线性结构进行相关的介绍,首先介绍的是树,会围绕树的相关概念进行初步的简…

记住这三个方法,让你的钱越花越多

小狗钱钱 关于作者 本书作者博多•舍费尔,是德国著名的投资 家、企业家、演说家以及畅销书作家。他 人生中曾出现过严重的财务危机,但他凭 着自己的努力,重新获得了财务自甶。这 段经历让他产生了和更多人分享理财知识 的想法,《…

玩以太坊链上项目的必备技能(类型-映射类型-Solidity之旅四)

映射(Mapping) 说到映射(Mapping),有过其它编程语言经验的您,对这是再熟悉不过了。Solidity 中的映射(Mapping) 与Java的Map、Go里的Map以及javascript的JSON等众多编程语言中的Map…

考虑柔性负荷的综合能源系统低碳经济优化调度【考虑碳交易机制】(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

【大数据入门核心技术-ElasticSearch】(一)ElasticSearch介绍

目录 一、什么是Elasticsearch? 二、核心概念 1.倒排索引(Inverted Index) 2.节点 & 集群(Node & Cluster) 3.索引(Index) 4.文档(Document) 5.类型(type…

游戏开发50课 性能优化8

4.2 渲染状态优化 4.2.1 状态缓存 在引擎侧&#xff0c;可以使用状态缓存减少渲染管线的切换。伪代码&#xff1a; class RenderStateCache { public:void InitRenderStates();{for (RenderStateType tRenderStateType.begin; t<RenderStateType.end; i){_renderStateCac…

[附源码]计算机毕业设计基于微信小程序的网络办公系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

微服务框架 SpringCloud微服务架构 微服务保护 31 限流规则 31.3 流控模式【链路】

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 微服务保护 文章目录微服务框架微服务保护31 限流规则31.3 流控模式【链路】31.3.1 流控模式 - 链路31.3.2 举个栗子31.3.3 总结31 限流规则…

Vite + Vue3 + Electron 创建打包桌面程序、实现进程通信

目录 1. Electron 介绍 2. 使用 Vite 构建 Electron 项目 2.1 创建 Vite 应用&#xff0c;安装 Electron 依赖 2.2 在 vite.config.ts 中&#xff0c;配置 Electron 入口文件 2.3 编写 electron / index.ts 2.3.1 app、BrowserWindow 2.3.2 使用 win.loadURL 加载窗口 /…

Autosar MCAL-GTM之TOM

文章目录前言定时器输出模块&#xff08;TOM&#xff09;TOM产生PWM的原理TOM中断中断使能中断模式中断映射CFG中TOM通道配置TOM Channel EnableTomChDisableOnTgcTriggerTOM Channel EnableTOM Channel OutputTomChOutputDisableOnTgcTrigTomChannelOutputControlTomChannelOu…

【项目_05】tabcontrol的搭建及回显、使用keep-alive缓存页面、移动端适配 | 基于Vue3全家桶

&#x1f4ad;&#x1f4ad; ✨&#xff1a;tabcontrol的搭建及回显、使用keep-alive缓存页面   &#x1f49f;&#xff1a;东非不开森的主页   &#x1f49c;: 总不能还没努力就向生活妥协吧&#x1f49c;&#x1f49c;   &#x1f338;: 如有错误或不足之处&#xff0c;希…

【双向ConvLSTM Network:遥感融合】

D2TNet: A ConvLSTM Network With Dual-Direction Transfer for Pan-Sharpening &#xff08;D2TNet: 双向传输的卷积长短期记忆递归神经网络用于泛锐化&#xff09; 本文提出了一种高效的具有双向传输的卷积长短期记忆递归神经网络&#xff08;convolutional long short-ter…

Java Agent 探针技术

Java 中的 Agent 技术可以让我们无侵入性的去进行代理&#xff0c;最常用于程序调试、热部署、性能诊断分析等场景&#xff0c;现如今比较火热的分布式链路追踪项目Skywalking&#xff0c;就是通过探针技术去捕获日志&#xff0c;将数据上报OAP观察分析平台。 Java Agent 技术简…

Socket编程实现TCP、UDP样例

文章目录一.Socket简介二.Socket实现TCPTCP通信简介使用对象及方法简介代码实现服务端代码客户端代码三.Socket实现UDPUDP通信简介UDP程序的使用步骤代码实现服务端代码客户端代码一.Socket简介 socket套接字是通信的基石&#xff0c;是支持TCP/IP协议的路通信的基本操作单元.…

私企招聘:思特威社会招聘

关于我们 思特威&#xff08;上海&#xff09;电子科技股份有限公司 SmartSens Technology &#xff08;股票简称&#xff1a;思特威&#xff0c;股票代码&#xff1a;688213&#xff09;是一家从事CMOS图像传感器芯片产品研发、设计和销售的高新技术企业&#xff0c;总部设立…

pads logic 生成参考编号带分隔符以及不统计不贴元器件的BOM

1.查看BOM报告 &#xff0c;这里可以通过下面的方法 Step1:点击文件 Step2: 勾选材料清单&#xff0c;然后点击设置 Step3:在弹出的如下窗口&#xff0c;选择剪切板视图 &#xff0c;然后选择全选,然后复制&#xff0c;将数据粘贴到excel表格中即可。 2. 参考编号分隔符 …