如何训练创建一个聊天自动回复的微信机器人(一)

article/2025/8/23 14:11:32

如何创建一个聊天自动回复的微信机器人(一)

这里,本来打算用一个微信号来做机器人的,但是机器人有几个缺点
1、如果任意一个人想使用机器人的话,那么必须添加机器人为好友才能使用测试
2、基于微信识别异常微信号的自动检测,机器人很有可能被封号o(╥﹏╥)o
3、现在想使用微信号做机器人的话,后端对接微信的方法大概有两种,一是使用网页版微信的API进行接入,不过现在网页版的微信已经封的差不多了,这种方法已经过时了,二是使用微信注入dll的方式来对接,不过这种方式也同样会受到微信的异常号自动检测,也会容易封号

所以这边使用微信公众号的后台开发自动回复来对接

开发配置:
1、python
2、一台服务器

1、首先注入一个微信公众号

进入微信公众号的开放平台,进入基本配置页面申请好开发者id和密码,并且开启你的服务器配置,配置好你的服务器后台、令牌和消息加密秘钥,后面会介绍如何配置你的服务器后台

注意,你的后端调试成功后才会成功开启服务器配置

在这里插入图片描述
在这里插入图片描述

2、服务器后台配置

我这边使用的阿里云的centos服务器,后端使用python,使用的是flask框架

服务器后台开启的端口一定要是80或者443,因为服务器配置只支持这两个端口,具体的开发模式也可以参考这个文档:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Getting_Started_Guide.html

后台配置开发的逻辑如下:

1. 通过请求验证token
2. 验证通过配置完成
3. 接收用户发送的消息
4. 使用训练好的对话机器人返回消息
5. 微信订阅号自动回复消息

centos服务器安装python的具体指南参考我的其他文章,这里放出我的一部分代码

# -*- coding:utf-8 -*-
from flask import Flask
from flask import request
import hashlib
import time
import xml.etree.ElementTree as ETapp = Flask(__name__)@app.route("/")
def index():return "Hello World!"@app.route("/wechat", methods=["GET","POST"])
def weixin():if request.method == "GET":     # 判断请求方式是GET请求my_signature = request.args.get('signature')     # 获取携带的signature参数my_timestamp = request.args.get('timestamp')     # 获取携带的timestamp参数my_nonce = request.args.get('nonce')        # 获取携带的nonce参数my_echostr = request.args.get('echostr')         # 获取携带的echostr参数token = 'xxxxxxxxxxxx'     # 一定要跟刚刚填写的token一致li = [token, my_timestamp, my_nonce]li.sort()sha1 = hashlib.sha1()sha1.update("".join(li).encode('utf-8'))hashcode = sha1.hexdigest()# 加密后的字符串可与signature对比,标识该请求来源于微信if my_signature == hashcode:return my_echostrelse:return ''else:# 解析xmlxml = ET.fromstring(request.data)toUser = xml.find('ToUserName').textfromUser = xml.find('FromUserName').textmsgType = xml.find("MsgType").textcreateTime = xml.find("CreateTime")# 判断类型并回复print(msgType)if msgType == "text":content = xml.find('Content').textprint(content)return reply_text(fromUser, toUser, reply(fromUser, content))elif msgType == 'event':content = '关注'return reply_text(fromUser, toUser, reply(fromUser, content))else:return reply_text(fromUser, toUser, "我只懂文字")def reply_text(to_user, from_user, content):"""以文本类型的方式回复请求"""return """<xml><ToUserName><![CDATA[{}]]></ToUserName><FromUserName><![CDATA[{}]]></FromUserName><CreateTime>{}</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[{}]]></Content></xml>""".format(to_user, from_user, int(time.time() * 1000), content)def reply(msg):'''使用对话机器人'''res = requests.get('http://api.qingyunke.com/api.php?key=free&appid=0&msg=' + msg)content = res.json()['content']content = content.replace('{br}', '\n')return contentif __name__ == "__main__":app.run(host='0.0.0.0',port=80,debug=True)

这边的对话机器人暂时使用青云客的免费聊天机器人,将在下一篇文章中讲到,后台配置完成后,可以先到微信公众平台的后台调试工具先去调试一下,具体网址在这:

如果想要实现一个简单的聊天回复机器人,可以在青云客上使用免费的聊天机器人,后续我将会用神经网络训练一个能自己成长的聊天机器人

https://mp.weixin.qq.com/debug/

测试通过返回成功的测试结果即为成功
在这里插入图片描述
在这里插入图片描述
如果测试失败,多半是后端出问题了,多调试调试后端即可,开启成功后,向微信机器人发送消息即可收到自动回复的消息在这里插入图片描述


http://chatgpt.dhexx.cn/article/e5VyQGD7.shtml

相关文章

Python几十行代码轻松实现微信自动回复机器人

Python几十行代码轻松实现微信自动回复机器人 最近因为太无聊了就考虑能不能做一些好玩的东西出来&#xff0c;正好在CSDN的推荐上看到大佬做的微信自动回复机器人&#xff0c;觉得很有趣&#xff0c;因此想着自己也能动手做一个。在此就写下我的具体思路和实现过程吧。 首先&…

多核CPU算法

多核CPU环境下的进程调度算法有哪些&#xff0c;与单核CPU环境下的进程调度有何不同&#xff1f; 多核CPU调度算法 全局队列调度 操作系统维护一个全局的任务等待队列。当系统中有一个CPU核心空闲时&#xff0c;操作系统就从全局任务等待队列中选取就绪任务开始在此核心上执…

多CPU和多核CPU对应多进程和多线程调度

目录 cpu架构和工作原理多核cpu和多cpu 架构cpu的缓存进程和线程进程和线程在多核cpu&#xff0c;多cpu中的运行关系 cpu架构和工作原理 计算机有5大基本组成部分&#xff0c;运算器&#xff0c;控制器&#xff0c;存储器&#xff0c;输入和输出。运算器和控制器封装到一起&a…

单核CPU vs. 多核CPU

单核CPU vs. 多核CPU 单核CPU 起源&#xff1a; CPU的起源是1971年英特尔公司推出&#xff0c;由此正式宣告计算机的诞生&#xff0c;可以说是世界级的改变&#xff0c;并且严格准守冯诺依曼体系结构&#xff0c;在英特尔推出CPU之前的计算机所使用的处理器工作是非常麻烦的…

多核计算机是指有多个cpu,多核和多个CPU有什么区别?

多核和多个CPU有什么区别&#xff1f; 多核和多个CPU有什么区别&#xff1f;首先让我们了解以下两项: 什么是多核CPU&#xff1f;简单的理解是&#xff0c;我们将多个内核加载到一个程序包中&#xff0c;让用户了解这是一个处理器. 这样做的好处是&#xff0c;最初在单台计算机…

多核CPU、多CPU与多进程、多线程关系

文章目录 1 cpu架构和工作原理2 多核cpu和多cpu架构3 进程和线程4 多核、多CPU与多线程、多进程的对应关系5 总结 1 cpu架构和工作原理 计算机有5大基本组成部分&#xff0c;运算器&#xff0c;控制器&#xff0c;存储器&#xff0c;输入和输出。运算器和控制器封装到一起&…

多核与多处理器的区别

一、定义 多核&#xff1a;单块CPU上面能处理数据的芯片组的数量&#xff0c;比如&#xff0c;双核就是包括2个相对独立的CPU核心单元组&#xff0c;四核就包含4个相对独立的CPU核心单元组。 多处理器&#xff1a;主板上实际插入的cpu数量&#xff0c;一般有两个或者多个处理…

多核CPU和单核的区别~

昨天有同学问我多核cpu和单核的区别大不大&#xff0c;今天简单写一篇回复下吧。大家有其他问题也可以文末给我留言&#xff0c;我会尽量抽时间写文回复。 首先回顾下基本概念&#xff0c;cpu&#xff0c;就是中央处理器&#xff0c;包括运算器和控制器。cpu的主要功能就是“一…

多核处理器结构

文章目录 一、多核处理器的发展演化二、多核处理器的访存结构2.1 通用多核处理器的片上Cache结构2.2 存储一致性模型2.3 Cache一致性协议 三、多核处理器的互连结构3.1 片上总线3.2 交叉开关3.3 片上网络 四、多核处理器的同步机制4.1 原子操作4.2 锁的软件实现方法4.3 屏障软件…

关于 CPU 的多核和超线程技术

1. 关于 CPU 的多核和超线程技术 CPU 的物理个数由主板上的插槽数量决定&#xff0c;每个 CPU 可以有多核心&#xff0c;每核心可能会有多线程。 多核 CPU 的每核(每核都是一个小芯片)&#xff0c;在 OS 看来都是一个独立的 CPU。 对于超线程 CPU 来说&#xff0c;每核 CPU …

手机的开机流程分析(pmic角度)

【前言】 电源是手机soc必不可缺的部分之一&#xff0c;那么开机的过程是怎么样的呢&#xff0c;接下来我会从硬件角度分析。 【开机源】

RK3588 PMIC/Power电路 PCB 设计指南

以下为RK3588 电源各供电电路 PCB 设计指南。 1、VDD_LOGIC&#xff0c;VDD_GPU&#xff0c;VDD_NPU&#xff0c;VDD_CPU电源的 DC-DC 远端反馈设计。 100ohm反馈电阻需要靠近输出电容放置&#xff0c;电阻一端连接到 DC-DC 输出电容&#xff0c;另一端连接到PMIC 的VOUT 反馈脚…

linux电源管理配置,Exynos 4412 电源管理芯片PMIC 的配置及使用方法

开发板&#xff1a;迅为4412精英版。 uboot&#xff1a;uboot-2014-10。 PMIC&#xff1a;SAMSUNG S5M8767A 在移植新版u-boot的时候&#xff0c;上网搜电源管理芯片的使用方法资料&#xff0c;发现几乎没有&#xff0c;就算是datasheet也很难下载得到&#xff0c;不知是何原因…

RK3399平台开发系列讲解(电源管理篇)11.10、PMIC(生产者)驱动数据结构体

平台内核版本安卓版本RK3399Linux4.4Android7.1🚀返回专栏总目录 文章目录 一、结构描述二、约束结构三、初始化数据结构四、配置结构五、设备操作结构沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Linux调节器框架设计用于连接和控制电压和电流调节器。它分为以下…

camera 添加外挂pmic进行供电的涉及

凡是多问几个为什么&#xff1f; 当今camera设计为什么越来越喜欢用外接的pmic&#xff1f; 很多大厂的camera都用到了wl2864&#xff0c;wl2868这样的外接pmic芯片&#xff0c;为什么套片上自带的pmic在已经比较充足的情况下依然加大成本还要这样做呢&#xff1f; 在一个典…

SOC电源管理系统PMIC

SOC电源管理系统 版权声明&#xff1a; 本文作者&#xff1a; 烓围玮未 首发于知乎专栏&#xff1a;芯片设计进阶之路 转发无需授权&#xff0c;请保留这段声明。 随着SOC越来越复杂&#xff0c;包含的IP越来越多&#xff0c;单个SOC上实现了CPU, 射频模块&#xff0c;相机…

mtk-pmic

简单介绍了mtk6353这颗pmic各部分的功能 一.功能框图 6353主要由如下几部分组成 1.电平转换:LDO和buck 2.LED驱动current sink 3.RTC 4.电压检测AUXADC 5.控制信号:上下电时序,系统复位,异常处理 6.充电控制 7.audio codec 8.电量计fuel gauge 二.各部分介绍 1.电平转换 这…

高通Pmic闪光灯代码架构

msm-kernel 注册一个名为"leds-qti-flash"的驱动&#xff0c;驱动代码在"leds-qti-flash.c"文件中。 对下&#xff1a;实现对pmic芯片更新寄存器&#xff0c;也就是实际控制闪光灯的操作。 对上&#xff1a;提供led_classdev结构体&#xff0c;即flash/sw…

Qcom 平台 pmic adc读取代码实现

Qcom 平台读取pmic上 adc电压值的方法 如下图&#xff0c;可以通过平台提供的节点&#xff08;参考高通文档将mpp配置为adc功能&#xff09; cat对应的节点获取结果&#xff1b; 也可以通过自行实现的驱动中调用相关接口并转化结果&#xff1b; Kernel demo 参考代码&#x…

浅谈Linux PMIC驱动(一)

转眼间&#xff0c;从事PMIC驱动开发已将近4年&#xff0c;前后参与两款PMIC芯片研发&#xff0c;一款自研&#xff0c;一款Q公司PMIC&#xff0c;对PMIC有了一定的理解&#xff0c;将其总结归纳&#xff0c;算是这几年工作的收获吧&#xff1f; 读者对象&#xff1a;对PMIC感…