这些天整理重构了之前复活的微信机器人的代码,一开始参考别人写的项目,采用CommonJS 模块规范,我在入门 JS 的时候,直接学的 ES6 ,所以对该规范不是很熟系,重构后相信后续开发会愉快不少。
我把源码发布在github上,与其他成熟的项目对比,它很小,主要功能聚焦在对话上,能接入 chatgpt 对话,还能在微信内以对话形式修改设置(比如模型,接口,角色之类),所有的配置信息除微信(因为要通过微信服务)和本地外,不会保留在其他第三方平台上。
我原本要解决的问题是,在手机上使用生成式 AI ,特别是 chatgpt ,没有电脑方便,要么科学上网后通过官方 app ,要么打开浏览器上官网使用,这两种看起来都不是很优雅(很懒)地使用方式。如果只是对话的话,集成到即时通信软件(比如微信),我觉得是一个很好的解决方案,诸如此类像同义千问,就被集成到钉钉里,还有 IDE 里的一堆 AI 插件。不必再多下载一个 app ,多开一个网页,直接在已有软件上对话,多流畅啊。
下面是机器人的一些示例图片。
现在国内外涌现出许多大模型,但我平时主要使用chatgpt多一点,所以只接入了这一个。
其他的对话设置方式也是一样的,通过发送 “配置项 值”这样的格式修改。
如果将机器人分享给其他人,最好做敏感词过滤,防止对话过程中出现不当言论。
为提高机器人功能的扩展性,增加了一个回调指令,通过触发关键字执行一个网络请求,然后将结果返回,如此机器人便能通过网络链接到各种网络在线服务。比如,我比较关注NBA信息,设置了一个获取NBA球队近期赛程的回调。
如果你也想部署一个类似的机器人,访问这个仓库地址,相关的源码,开发部署文档等已经上传至github。