你想拥有MOSS智能机器人么?教你用Docker将ChatGPT接入微信
最近看了流浪地球2,被未来的量子计算机MOSS惊艳到,特别是它的回答非常准确严谨,能够回答许多高深的问题。现实中其实有一个语言模型ChatGPT也能在某些方面达到很好的效果,回答一些复杂的问题。
ChatGPT问世快两个月了,网上有很多文章都在讲他有多牛,我在测试之后发现,确实非常牛!说他超越了以前的所有AI都不夸张。写诗、写论文、检查程序错误啥的,都不在话下。具体有多牛,可以在网上查查相关资料,ChatGPT确实已经达到了能够帮你在工作、生活中提高效率和解决问题的地步了。
但在2月之前,微信接入ChatGPT一直没有一个稳定且好用的方案。原因一是因为ChatGPT加入了Cloudflare验证,这导致一大波项目都失效了。原因之二是因为2月之前,ChatGPT一直没开放官方API,网上很多标榜ChatGPT的,实际用的是GPT3.0的API(ChatGPT是GPT3.5),效果不如ChatGPT牛。
近期ChatGPT放出了官方的API,使用官方API来接入,不仅稳定,而且还能轻松实现关联上下语境等功能。我在开源项目基础上搭建了一个现成的Docker镜像,可以比较方便的在群晖等NAS设备,也可以直接在OpenWrt等系统的路由器里部署,比原作者的Linux里手动搭建环境+部署方便多了(原作者其实也提供了Dockerfile,但是不好使,我是自己重写搭建的)。可以说ChatGPT接入微信最终的效果已经很完美了。
好了,以下进入正文,教大家怎么进行搭建:
注意,本文只教大家如何把ChatGPT搭建到Docker上和接入微信,关于ChatGPT的注册大家自己百度即可,网上有很多教程。嫌麻烦的淘宝或者闲鱼搜一下,有现成的账号。
1、准备工作
1、准备一个微信小号(最好是没有添加好友、没有关注过公众号的,专门用于搭建ChatGPT,否则搭建好了后,谁给你发个信息它都会自动回复)
2、准备好OenAPI(注册好账号之后在这个页面 https://platform.openai.com/account/api-keys 获取)
3、准备一个有Docker的服务器(随便啥都行,只要有Docker,方法其实都大同小异,我这里会介绍几个主流NAS系统的具体安装步骤)
2、搭建Docker
2.1、Unraid搭建方法
因为我用的是unraid,所以这个系统的安装讲解最详细,其他系统也可以参考。
在Unraid的/mnt/user/appdata/chatgpt/目录,新建一个文本文档,输入以下内容,并重命名为config.ts,并且在文件里面修改成你的OpenAPI。
export default {
// 填入你的session token
OPENAI_API_KEY: '',
// 设置获取消息的重试次数
retryTimes: 3,
// 在群组中设置唤醒微信机器人的关键词
groupKey: '',
// 在私聊中设置唤醒微信机器人的关键词
privateKey: '',
// 重置上下文的关键词,如可设置为reset
resetKey: 'reset',
// 开启会后收到ChatGPT的自动回复
autoReply: true,
// 根据正则匹配是否自动通过好友验证
friendShipRule: /chatgpt|chat/,
// 是否在群聊中按照回复的格式进行回复
groupReplyMode: true,
// 是否在私聊中按照回复的格式进行回复
privateReplyMode: false,
};
复制完之后需要删除多余的回车,最终文件里是下图这样的。
如果用的不是微信小号,最好也设置一个唤醒词,避免打扰到别人。
应用里搜索suyunkai46/chatgpt-wechat,点击“单击此处以从 DockerHub 获取更多结果”,找到我的镜像,搭建。
搭建界面右上角切换为高级视图
输入额外参数为:-dit
添加一个新的路径;设置容器路径:/code/src/config.ts;主机路径/mnt/user/appdata/chatgpt/config.ts
其余参数都保持默认即可
搭建好后容器会自己启动,进入容器的控制台。
依次输入三条指令:
npm install -g pm2
pm2 start npm -- run dev
pm2 logs
补充:
npm install -g pm2只有刚搭建完后需要输入一次,以后再也不用输入了
每次重新启动容器,都需要控制台手动输入一次pm2 start npm -- run dev,才能启动程序
随时可以输入pm2 logs查看日志记录
输入完之后,控制台里应该就出现二维码了。
这时微信扫码即可登陆,然后给登陆的微信号发消息,就可以愉快的调戏ChatGPT了。
2.2、群晖搭建方法
在群晖的Docker文件目录里(一般是/volume1/docker/),每个人设置不同,可能略微不一样,这个大家自己看一下文件路径,新建一个文本文档,输入以下内容,并重命名为config.ts,并且在文件里面修改成你的OpenAPI。
export default {
// 填入你的session token
OPENAI_API_KEY: '',
// 设置获取消息的重试次数
retryTimes: 3,
// 在群组中设置唤醒微信机器人的关键词
groupKey: '',
// 在私聊中设置唤醒微信机器人的关键词
privateKey: '',
// 重置上下文的关键词,如可设置为reset
resetKey: 'reset',
// 开启会后收到ChatGPT的自动回复
autoReply: true,
// 根据正则匹配是否自动通过好友验证
friendShipRule: /chatgpt|chat/,
// 是否在群聊中按照回复的格式进行回复
groupReplyMode: true,
// 是否在私聊中按照回复的格式进行回复
privateReplyMode: false,
};
复制完之后需要删除多余的回车,最终文件里是下图这样的。
如果用的不是微信小号,最好也设置一个唤醒词,避免打扰到别人。
搜索并下载Docker映像suyunkai46/chatgpt-wechat
新增容器,选择下载的镜像部署,需要把下载的config.ts文件挂载到容器内/code/src/config.ts路径上,其余设置均默认即可。
进入容器终端机,依次输入三条指令:
npm install -g pm2
pm2 start npm -- run dev
pm2 logs
补充:
npm install -g pm2只有刚搭建完后需要输入一次,以后再也不用输入了
每次重新启动容器,都需要控制台手动输入一次pm2 start npm -- run dev,才能启动程序
随时可以输入pm2 logs查看日志记录
输入完之后,控制台里应该就出现二维码了,这时微信扫码即可登陆,然后给登陆的微信号发消息,就可以愉快的调戏ChatGPT了。
2.3、其它系统Dokcer搭建注意事项
Dokcer搭建无非就是操作步骤略有区别,基本都大同小异,注意以下两个重点即可。
有些系统启动参数需要加上-dit,否则启动后会马上自己关闭
需要挂载容器内的/code/src/config.ts文件到系统路径,然后修改它,加上openapi参数(如果容器启动后报错,可能就是这个文件没挂在好)
如果运行正确,但是二维码加载失败,可以用输入返回的网址查看二维码
3、绑定微信
很简单,用微信扫码即可,软件会模拟登陆微信网页版,然后通过该微信号回复问题。但需要有一个手机登陆着这个微信,如果手机退出账号,那网页端也会自动退出。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~









Kkkkk__
校验提示文案
hfoi589
校验提示文案
多罗猫宁波
校验提示文案
911cool
校验提示文案
肚子好饿哦T_T
校验提示文案
值友6367803444
校验提示文案
74sniffer
校验提示文案
值友9095279832
请帮忙看看是什么原因。
Group name: chatGPT talker: 天心难测 content: 呼唤chatGPT,请用中文帮我(项目经理)写一篇工作周报。
校验提示文案
摄影师陈大爷
校验提示文案
爆发的白菜
校验提示文案
值友6079278517
校验提示文案
多罗猫宁波
校验提示文案
fanstay
校验提示文案
值友9095279832
0|npm|retry3times,error:Error:ChatGPTerror404:{
0|npm|"error":{
0|npm|"message":"Thatmodeldoesnotexist",
0|npm|"type":"invalid_request_error",
0|npm|"param":null,
0|npm|"code":null
0|npm|}
0|npm|}
校验提示文案
值友8683500621
校验提示文案
夜影小窝
校验提示文案
sdzzm
校验提示文案
家电狗
校验提示文案
值友9095279832
0|npm | talker: 天心难测 content: 呼唤chatGPT
0|npm | response: b21f66bb-b636-45a4-9751-6ccee5c234a5 Hello! How may I help you today?
0|npm | talker: 天心难测 content: 数字人民币发展趋势报告
0|npm | Content is not within the scope of the customizition format
校验提示文案
YuJDay
校验提示文案
值友4952156663
校验提示文案
值友4952156663
校验提示文案
值友4419812642
校验提示文案
木子先生DE
这个什么意思
校验提示文案
fanstay
校验提示文案
乾为天
当前账号无法使用该服务
校验提示文案
mjmsky
校验提示文案
mjmsky
校验提示文案
值友1211140896
校验提示文案
kyo0106
求问,上面这步骤是怎么操作的?感谢
校验提示文案
半边花园
校验提示文案
阿拉丁的神
校验提示文案
值友1208427038
> npm install -g pm2
npm should be run outside of the Node.js REPL, in your normal shell.
校验提示文案
值友1208427038
npm should be run outside of the Node.js REPL, in your normal shell.
校验提示文案
未成年面包机
校验提示文案
阳光爸
校验提示文案
值友7156600275
校验提示文案
YuJDay
校验提示文案
cctv180
2、需要挂载容器内的/code/src/config.ts文件,然后修改它,加上openapi参数。
3、启动容器后控制台运行npm run dev即可扫码
4、可以在控制台输入npm install -g pm2,安装pm2。然后用pm2 start npm -- run dev命令启动程序,这样的话,随时可以输入指令pm2 logs查看日志记录。
校验提示文案
Lyymg
校验提示文案