Prometheus-first / helper
git clone https://github.com/Prometheus-first/helper.git
一个微信机器人框架,目前稳定可用
—
stars, 24h
+200
stars, 7 days · #298
+200
stars, 30 days · #1,284
200
★ total · +200% this week
569
forks · 1 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguagePython
License—
Created2026-10-15 (5d ago)
Last pushtoday
Watchers1
OwnerUser
Links
README excerpt
# 微信机器人框架 📚 在线文档 · 安装与启动 · 插件开发 项目已在linux.do公开声明https://linux.do/ 交流群 # 已完成 - 账号识别与绑定 - 文本收发与消息类型区分 - 群聊真实艾特 - 图片收发 - 文件附件收发 - 本地表情导出、动态表情发送 - 语音条发送 - Fish Audio 语音回复、中文公开音色浏览与按群切换 - 进群欢迎、退群提醒和群成员昵称查询 面向 Windows x64、微信 4.1.15.13 的 Python 插件框架。统一入口为 `main.py`,原生桥接负责文本、图片、文件附件收发和表情、语音发送,功能以插件加载。 # 本项目仅供学习,请勿用于违法行为 ## 功能 - 文件传输助手、好友和群聊文本收发,以及真正的群艾特。 - 原生语音条发送:插件和控制台可发送 SILK 语音,安装可选编码依赖后支持 PCM WAV。 - Fish Audio 语音回复:艾特机器人后,将模型回复合成为语音;通过 `/查看音色`、`/音色 名称` 按群选择音色。 - 图片消息自动下载保存,插件可取得本地图片路径;支持发送本地图片。 - 普通文件附件收发:支持控制台和插件发送,接收后按账号隔离保存,单个文件最多 20 MiB。 - 好友申请实时接收与自动通过:默认关闭,可按验证文字关键词匹配,通过控制台启停。 - 控制台邀请好友进群与创建群聊:接口和本地检查已完成,尚未进行真实群管理操作验证。 - 可插拔的新人进群欢迎和成员退群提醒;支持查询完整群成员名单及群昵称。 - 导出当前账号的本地缓存表情,转换 WXGF 动画,并通过原生表情通道发送 GIF。 - 成语接龙:独立玩家、合并抢答和退出模式。 - 看图猜成语:默认从飞飞 API 获取题图和答案,失败时回退 26 道本地题;支持群友抢答、提示、换题和揭晓,无需新增 API 密钥。启用与指令见插件说明。 - `/绑定 昵称`:只设置当前群的称呼;不同群各自保存。未绑定时优先使用本群缓存昵称,再使用微信名。 - `/总结 昵称`、`/总结群聊`:通过配置的大模型总结当前群当天的文字记录。 - `/切换人格 嘴臭|卑微|夸夸|取消`:为当前群的对话、总结和接龙点评设置表达风格。 - 真正艾特机器人后对话,携带该成员在当前群当天此前最多十条有效发言。 - 每天北京时间 0 点清理旧日文本;`/清空` 手动清理当前群文本。 - 按文本长度随机等待后发送。 - 插件启停、重载与开发模板。 ## 运行环境 Windows 10/11 x64、64 位 Python(已验证 Python 3.13)、`requirements.txt` 中的依赖,以及 Microsoft Visual C++ x64 运行库。 ## 首次配置 在项目目录运行: [code] 1. `bot_config.json`:首次使用将 `wechat_account` 保持为 `null`,不需要提前知道自己的 wxid。运行 `python main.py` 后,程序会等待电脑微信登录;只有一个已登录账号时自动绑定,多个账号时显示昵称和 ID,输入序号选择机器人账号。绑定会保存到本地配置,重新登录后 PID 改变不影响选择;后续多开只会等待绑定的账号。 2. `members_config.json`:在 `groups` 中添加自己要启用的群 ID,成员列表可以为空: [code] 3. `llm_config.json`:填写自己的 `api_key`、`base_url` 和 `model`。模板保留 DeepSeek 接口格式,密钥为空。 4. 模板默认关闭需要模型的 `idiom_chain`、`chat_summary`、`mention_chat` 插件。填写模型配置后,把它们的 `enabled` 改为 `true`。 5. 需要艾特后的语音回复时,安装 `requirements-voice.txt`,填写自己的 `tts_config.json`,再启用 `voice_reply` 和 `mention_chat`。语音配置模板的密钥、默认音色均为空,使用 `/查看音色` 和 `/音色 名称` 选择自己的音色,详见语音回复。 旧版配置里的 `wxid_example_robot` 和空字符串也会进入首次绑定流程;需要换机器人账号时,将本地 `wechat_account` 改回 `null` 并重启。首次选择只读取登录账号的 ID 和微信名,绑定完成后才启动机器人。群 ID 以 `@chatroom` 结尾,收到群文本时可以直接从控制台日志复制。`test` 消息会由 `id_responder` 插件回复当前会话 ID,`chats` 控制台命令可以列出本次连接收到消息的会话。所有示例 ID 和测试用名称均为虚构数据。 ## 启动与验证 [code] `--check` 只检查配置、插件清单与语法,不识别或绑定账号,不注入微信,也不调用模型。直接运行 `python main.py` 时会自动补齐缺失的默认本地配置,已经填写的内容不会被覆盖;之后在微信中完成登录即可继续。 默认 `INFO` 日志级别下,启动后会在控制台实时显示当前连接的微信账号、收到私聊的发送者 ID 和正文,以及收到群消息的群 ID;这些日志也会保存到 `logs/bot.log`: [code] 消息显示在会话白名单过滤之前,因此新群尚未加入白名单时,也可以让群里的人发一条文本,从控制台复制群 ID。自动消息日志不打印群正文或群成员 ID;总结功能使用的群聊天缓存按原有配置保存。私聊中的换行会显示为 `\n`,一条消息占一行。`logs/` 已被 Git 忽略。 也可以运行 `start_bot.ps1`:脚本优先使用项目的 `.venv`,其次使用 PATH 中的 Python;可通过 `-Python` 或环境变量 `WXBOT_PYTHON` 指定解释器,不依赖某台电脑的安装路径。 控制台命令: [code] 增加群、修改账号或成员配置后重启。停止时使用 `quit`,等待正常卸载原生桥接;微信可以保持打开。 普通文件附件支持通过 `send-file`、`ctx.send_file()`、`ctx.reply_file()` 发送,接收事件类型为 `49`(`appmsg/type=6`),下载成功时 `message.file_path` 为本地路径。单个文件限定非空且不超过 20 MiB,默认按账号保存到 `.runtime/files/`;下载范围遵循 `chat_allowlist`,不会自动打开文件,也不会把附件 XML 交给大模型。详见文件收发文档。 2026-10-19 已验证:文件传输助手收到 TXT 后可在手机打开且内容正确;好友附件下载后与源文件 SHA-256 一致。好友、群聊发送及群附件接收尚未分别实机验证。 `quit`、Ctrl+C、Ctrl+Break 和关闭控制台窗口都会请求清理。退出时先停止接收、卸载桥接 DLL,再等待插件退出;运行中会有一个隐藏的清理守护进程,主程序被