1、响应速度快、准确无遗漏
2、包含关键字的发言都可以自动回复,也可以设置超过多少长度不回复
3、也可以接入AI大模型
视频很长 但是很简单
以下是文档教程
https://zcns66o1v3jj.feishu.cn/docx/L5I4ddJW4ot272xIrOwcUgQOnzf 这个文档有关键词和回复内容的表格 也可以自己创建
第一步、先去文档
先准备好关键词表格和数据库

第二步、新建三个全局变量

第三步、复制以下流程到主流程里边
其中并发调用是调用监控的子流程不需要传入参数
连接数据库参数是全局变量database
查询数据表的sql是
select * from messages where state is null and sender_name <> "Self" limit 1
第四步、复制以下到子流程
第五步、安装wxauto库,复制下载代码到module1
import sqlite3
import time
from wxauto import WeChat
from xbot import print, sleep
def main():
pass
# 配置部分
CHECK_INTERVAL = 1 # 检查消息间隔(秒)
import re
def extract_group_name(chat_window_str):
"""
从聊天窗口字符串中提取群聊名称
示例输入: "<wxauto Chat Window at 0x142b6c98050 for 群聊1>"
返回: "群聊1"
"""
match = re.search(r'for (.+?)>$', str(chat_window_str))
if match:
return match.group(1)
return None
# 初始化数据库
def init_db(db):
conn = sqlite3.connect(db)
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS messages (
id INTEGER PRIMARY KEY AUTOINCREMENT,
group_name TEXT,
sender_name TEXT,
content TEXT,
city TEXT,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
state TEXT
)
''')
conn.commit()
conn.close()
# 写入数据库
def save_message(group_name, sender_name, content,city,db):
conn = sqlite3.connect(db)
cursor = conn.cursor()
cursor.execute('''
INSERT INTO messages (group_name, sender_name, content,city)
VALUES (?, ?, ?, ?)
''', (group_name, sender_name, content,city))
conn.commit()
conn.close()
# 获取所有监听消息
def monitor_groups(db,TARGET_GROUPS,city_set):
wx = WeChat()
processed_msg_ids = set()
print("正在初始化监听...")
# 添加监听群聊
for group in TARGET_GROUPS:
wx.AddListenChat(who=group)
while True:
try:
# 获取所有监听消息
all_msgs = wx.GetListenMessage()
if all_msgs:
print(all_msgs)
for chat_wnd, messages in all_msgs.items():
group_name=extract_group_name(chat_wnd)
print(messages)
for msg in messages:
sender_name=msg[0]
content=msg[1]
# 第一个关键词就匹配(最快)
city = next((keyword for keyword in city_set if keyword in content),None)
if city:
save_message(group_name, sender_name, content,city,db)
time.sleep(CHECK_INTERVAL)
except Exception as e:
print(f"! 发生错误: {str(e)}")
time.sleep(1)
continue
# 更新表
def update_message(db,sql):
conn = sqlite3.connect(db)
cursor = conn.cursor()
cursor.execute(sql)
conn.commit()
conn.close()
def send_massage(msg,who,at):
wx = WeChat()
wx.SendMsg(msg=msg, who=who, at=at)
最后直接运行,填入一下参数

最后提醒一下 如果回复太频繁会让微信自动退出登录