本文首发于我的“职场圈”知识星球:
本文是 GPT 系列文章的第 7 篇付费文章。之前的 6 篇付费文章为:
手把手带你搭建 ChatGPT 微信机器人!
把 ChatGPT 微信机器人一键部署到免费服务器!
ChatGPT 微信机器人原理解析(一):如何接入 ChatGPT API
真正的 ChatGPT Teams 机器人,来了!
无需 waitlist!立即尝鲜 GitHub Copilot 新功能
未来,ChatGPT/Copilot 会让程序员失业吗?
你可以选择在微信公众号单独付费阅读本文。
或者,你可以选择加入“职场圈”知识星球查看本文内容,以及能持续解锁更多后续的文章,和知识星球的所有历史内容。
那么,接下来就了解下ChatGPT 微信机器人背后所用到的 Wechaty 吧!
WeChaty 介绍
Wechaty 是一个开源聊天机器人框架 SDK,于 2016 年发布于 GitHub,是一个基于 Apache-2.0 许可证的开源项目,具有高度封装、高可用的特性,支持 Node.js, Python, Go 和 Java 等多语言版本。同时支持Linux, Windows, macOS 和 Docker 多个平台。
Wechaty 的第一个版本只支持微信。随着发展,Wechaty 不再只限于微信,支持的聊天工具包括 WhatsApp、WeChat、WeCom(企业微信)、Gitter 、TikTok、Lark 等,只需要使用相应的 Puppet Provider 即可。
针对微信,WeChaty 支持多种接入方案,包括网页,iPad,iOS,Windows,Android 等。
Wechaty 有 9个基本的事件,基本上涵盖了微信上的大多数事件,分别是:scan、login、logout、message、friendship、room-join、room-leave、room-topic、error。
WeChaty 原理
最早期的 WeChaty 基于微信的网页版接口,通过模拟用户在网页版微信上的操作来实现对微信的操作。具体而言,它通过一个 Headless Chrome 实例来自动化控制网页版微信,并通过 WebSocket 连接将数据传输到Node.js。这种方式可以很方便地模拟人类用户的操作。
但是,随着基于网页版的微信有了较多限制,为了方便开发者继续搭建自己的聊天机器人,WeChaty 提供了中间件 Puppet 来支持多种实现方式。
我们来看一下,WeChaty 最新的架构图。