🗓️ 2024-04-26 🏷️ #技术与生活#

这些天整理重构了之前复活的微信机器人的代码,一开始参考别人写的项目,采用CommonJS 模块规范,我在入门 JS 的时候,直接学的 ES6 ,所以对该规范不是很熟系,重构后相信后续开发会愉快不少。

我把源码发布在github上,与其他成熟的项目对比,它很小,主要功能聚焦在对话上,能接入 chatgpt 对话,还能在微信内以对话形式修改设置(比如模型,接口,角色之类),所有的配置信息除微信(因为要通过微信服务)和本地外,不会保留在其他第三方平台上。

我原本要解决的问题是,在手机上使用生成式 AI ,特别是 chatgpt ,没有电脑方便,要么科学上网后通过官方 app ,要么打开浏览器上官网使用,这两种看起来都不是很优雅(很懒)地使用方式。如果只是对话的话,集成到即时通信软件(比如微信),我觉得是一个很好的解决方案,诸如此类像同义千问,就被集成到钉钉里,还有 IDE 里的一堆 AI 插件。不必再多下载一个 app ,多开一个网页,直接在已有软件上对话,多流畅啊。

下面是机器人的一些示例图片。

现在国内外涌现出许多大模型,但我平时主要使用chatgpt多一点,所以只接入了这一个。

image-20240423162407678
直接对话
image-20240425145728075
修改系统角色

其他的对话设置方式也是一样的,通过发送 “配置项 值”这样的格式修改。

image-20240423163136612 image-20240423163520087
设置好友申请自动通过口令

如果将机器人分享给其他人,最好做敏感词过滤,防止对话过程中出现不当言论。

image-20240423164142194
添加或移除多个敏感词时,用中文逗号隔开。

为提高机器人功能的扩展性,增加了一个回调指令,通过触发关键字执行一个网络请求,然后将结果返回,如此机器人便能通过网络链接到各种网络在线服务。比如,我比较关注NBA信息,设置了一个获取NBA球队近期赛程的回调。

image-20240423210232390

如果你也想部署一个类似的机器人,访问这个仓库地址,相关的源码,开发部署文档等已经上传至github。