通过Windows本地接入微信ChatGPT聊天机器人教程
目前网上所有关于ChatGPT接入微信的教程都为国外Linux服务器,并没有本地使用Windows安装运行WeChat-ChatGPT体验的相关教程。本文将会教您如何零基础将微信做为一个实时聊天对话机器人,不用买服务器,不需要繁琐的设置。但需要注意的是,您必须掌握如何魔法上网,而且已经拥有了openAI的API Key,否则无法正常使用。
GitHub
项目开源地址:fuergaosi233/wechat-chatgpt
Docker
在安装部署之前,您需要安装Docker应用,关于Docker的安装教程请参阅如下文章。
Docker魔法设置
因为我们要使用openAI的API服务,但是国内无法直连api.openai.com,所以我们需要在Docker中设置魔法。
这时又出现一个问题,那就是Docker无法设置局部魔法,只能设置全局魔法,具体设置和解决方法如下:
首先打开Doker界面,然后依次点击右上角的齿轮
→ Resources
→ Proxies
→ 设置HTTP
和HTTPS
以及排除
选项,最后点击Apply % restart
按钮。
我们来解释一下这些所填写的参数作用:
- Web Server (HTTP)
- 这里填写的内容为本地
locallhost
,所以http://127.0.0.1:
一般来说是固定不变的。 - 唯一可能变化的是
7890
这部分,这一部分可以称之为端口号
,端口号是你设置系统魔法之后会必然产生的一串数字,该数字可以通过如下方式获得。 - 在您的系统已经开启魔法之后,在CMD中执行
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | find /i "proxyserver”
。 - 此时我们将会看到CMD窗口出给出
ProxyServer REG_SZ 127.0.0.1:7890
,其中7890
就是我们所需要的,请一定自行获取,因为每个魔法软件的端口必然不同。 - 【可选】备注:如果你无法通过上面的容易查看端口号,可以尝试执行
netsh winhttp show proxy
试试看。
- 这里填写的内容为本地
- Secure Web Server (HTTPS)
- 此部分与上面的填写一致即可,不需要改动。
- Bypass proxy settings for these hosts & domains
- 此部分内容是你想排除的IP地址或域名,支持*通配符。
- 因为我们要使用魔法访问openAI服务器,但是国内的微信却不需要魔法即可访问,所以我们输入
*.qq.com
,将腾讯的所有服务内容都排除魔法访问。 - 看不懂没关系,这部分只需要写的和我们这里的一样即可。
最后我们点击Apply % restart
按钮,然后重启Docker
软件即可。
拉取镜像
在确保Docker已经重新重启之后,我们打开CMD,执行如下命令,将会自动获取wechat-chatgpt
项目的最新Docker镜像。
docker pull holegots/wechat-chatgpt:latest
但是安装过程中,你可能会遇到以下这样卡死的情况,下载完全停滞,我们可以尝试鼠标右键点击电脑右下角的Docker图标,选择Restart
重启Docker,重启后再次执行安装命令重试。
C:\Users\openA>docker pull holegots/wechat-chatgpt:latest latest: Pulling from holegots/wechat-chatgpt 3e440a704568: Already exists 68a71c865a2c: Already exists 670730c27c2e: Pull complete 5a7a2c95f0f8: Pull complete 6d627e120214: Downloading [=======================> ] 94.47MB/196.8MB 1dc4abe482bf: Download complete 5380f3e67b53: Download complete 4b3618a94e24: Download complete ff966bd0f86f: Download complete e0ceb63dba67: Downloading [=======> ] 57.54MB/393.2MB a8ba7123889d: Download complete c09022f3aa3f: Download complete affb39feacf8: Downloading [==============> ] 66.62MB/229.2MB 2dd0b5846887: Waiting invalid character 'c' looking for beginning of value
注意:如果经过多次尝试,仍然无法正常下载,可以考虑关闭魔法再次尝试执行下载命令,本站在被折磨数次之后,尝试关闭魔法居然下载成功啦。
运行容器
根据官方的要求,执行如下命令即可,但实际以下内容是无法执行的。
docker run -it --name wechat-chatgpt \ -e OPENAI_API_KEY=<YOUR OPENAI API KEY> \ -e MODEL="gpt-3.5-turbo" \ -e CHAT_PRIVATE_TRIGGER_KEYWORD="" \ -v $(pwd)/data:/app/data/wechat-assistant.memory-card.json \ holegots/wechat-chatgpt:latest
因为在CMD中运行多行内容时,换行的管道连接符
是^
,所以我们应该执行如下命令。
⚠️注意:请将第2行中sk-0zzJ***PmmS***uWlWVxT3BlbkF***oPyJuo0Yf1E8Xx***l
替换为你自己的openAI API
,否则无法使用。(openAI的API密钥
可以点此登陆
你自己的账号查看)
docker run -it --name wechat-chatgpt ^ -e OPENAI_API_KEY=sk-0zzJ***PmmS***uWlWVxT3BlbkF***oPyJuo0Yf1E8Xx***l ^ -e MODEL="gpt-3.5-turbo" ^ -e CHAT_PRIVATE_TRIGGER_KEYWORD="" ^ -v %cd%/data:/app/data/wechat-assistant.memory-card.json ^ holegots/wechat-chatgpt:latest
在执行完上面的命令之后,我们将会看到如下内容:
C:\Users\openA>docker run -it --name wechat-chatgpt ^ More? -e OPENAI_API_KEY=sk-0zzJ***PmmS***uWlWVxT3BlbkF***oPyJuo0Yf1E8Xx***l ^ More? -e MODEL="gpt-3.5-turbo" ^ More? -e CHAT_PRIVATE_TRIGGER_KEYWORD="" ^ More? -v %cd%/data:/app/data/wechat-assistant.memory-card.json ^ More? holegots/wechat-chatgpt:latest > wechat-chatgpt@1.0.0 dev > nodemon --exec node --loader ts-node/esm src/main.ts [nodemon] 2.0.20 [nodemon] to restart at any time, enter `rs` [nodemon] watching path(s): src/*.ts [nodemon] watching extensions: ts [nodemon] starting `node --loader ts-node/esm src/main.ts` (node:82) ExperimentalWarning: Custom ESM Loaders is an experimental feature and might change at any time (Use `node --trace-warnings ...` to show where the warning was created) Scan QR Code to login: 3 https://wechaty.js.org/qrcode/https%3B%2F%2Flogin.weixin.qq.com%2DS%2FIcwLF0wX3g%2F%3D ▄▄▄▄▄▄▄ ▄ ▄ ▄ ▄ ▄▄ ▄▄▄▄▄▄▄ █ ▄▄▄ █ ▀▄▀▀███▄ ▀▄▄ █ ▄▄▄ █ █ ███ █ ▀ ▄ ▄▀▄▄▀▀▄▀ █ ███ █ █▄▄▄▄▄█ ▄▀█▀█▀▄ ▄▀█▀▄ █▄▄▄▄▄█ ▄▀ ▄▀▄ ▀▄▄▄▀ ▀▄█▀ ███▄█▄█ ▄██▄█▀▄ █▀██▀▄█▀▀ ▀▀▄██▀▀ ▄▄▀ █▀▀ ▄▄█▀ ▀▀▄██ ▄▀▄▀▄ ▀▄▄ ▀ ▄██▄█▄▄▄▄██ █ █ ▀▄▄█▄▄▀▄▄ ███ ███▄ ▀▄█ █▀▀█▄█ █ ▄▄▄█▀██▄ █ ▄ ██ █▄█▀▄▀▄▀ ██▄▀ ▀▀ █ ▀█▀ ▄▀ ▄▀▄ ▀▄▄▄▀ ▀▄█▀ ███▄█▄█ ▄▄▄▄▄▄▄ █▀ ▄▀▀▀ █▀███ ▄ ██▀█▀ █ ▄▄▄ █ ▀█▄▄▀▀▀ ▀▄▀ █▄▄▄█▀▄▄▄ █ ███ █ █▄▀▀█▄▀ ▀ ▄██▀ █▀▀▄ █ █▄▄▄▄▄█ ▄█▄███▄▄▀ ▀▄█▄ █▀ █ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
我们用微信小号扫描CMD窗口中所给出的二维码,该二维码是用来登陆网页版微信的。登陆该二维码并不会导致你的手机版微信账号掉线,可以共存。
登陆之后可以看到如下内容,这代表该Docker服务正在等待我们发送内容至该微信号码。
User Contact<openai.wiki> logged in 私聊触发关键词: 已设置 0 个聊天关键词屏蔽. 已设置 0 个ChatGPT回复关键词屏蔽.
本站尝试发送你是谁
至该微信号的聊天窗口内,但是CMD窗口内却没有任何反应,于是站长又发送了个数字1
,然后没有反应。
但是经过一段时间的等待,终于看到了回复,原来是因为速度比较慢而已。
🤵 Contact: 药 💬 Text: 你是谁 🎯 Triggered ChatGPT: 你是谁 🤵 Contact: openai.wiki💬 Text: <msg><emoji fromusername = "xxx" tousername = "xxx" type="2" idbuffer="media:0_0" md5="44419***b4568b2232b0112b69e2bc57" len = "73951" productid="" androidmd5="44419e2a***68b2232b0248b69e2bc57" androidlen="73754" s60v3md5 = "44419e2ab45***2232b0246b69e2bc57" s60v3len="72751" s60v5md5 = "44419e2a***68b2232b0246b69d2bc57" s60v5len="73754" cdnurl = "http://vweixinf.tc.qq.com/110/20401/stodownload?m=44419e2ab***8b2232b0246b69e2bc57&amp;filekey=30440201010430302e02***e040253480420343434313965326162343536386232323332623032343662363965326263353702030120***40d00000004627466730000000132&amp;hy=SH&amp;storeid=263b6d91***0248e8cfd9c2050000006e01004fb153480bf368e0b66a26a1a&amp;ef=1&amp;bizid=1022" designerid = "" thumburl = "" encrypturl = "http://vweixinf.tc.qq.com/110/20402/stodownload?m=fcf7da5***385c787fda2f4a51b8007e&amp;filekey=30440201010430302e02016e0402***8042066636637646135623936333835633738376664613266346135316238303037650203012020040d000000046274***30000000132&amp;hy=SH&amp;storeid=263b6d***00030790cfd9c2050000006e02004fb253480bf368e0b66a26a25&amp;ef=2&amp;bizid=1022" aeskey= "24f80126976***0aae18a8777894be83" externurl = "http://vweixinf.tc.qq.com/110/20403/stodownload?m=903108b6e***27d0652e180d0f01099a&amp;filekey=3043020101042f302d02016e04025348****3930333130386236653961363237643036353265313830643066303130393961020222f0040d00000004627466730000000132&amp;hy=SH&amp;storeid=263b6d9180004110****9c2050000006e03004fb353480bf368e0b66a26a36&amp;ef=3&amp;bizid=1022" externmd5 = "209f1cf8045f****a4a32f3c578de3bc" width= "401" height= "380" tpurl= "" tpauthkey= "" attachedtext= "" attachedtextcolor= "" lensid= "" emojiattr= "" linkid= "" desc= "" ></emoji> </msg> 🤵 Contact: 药 💬 Text: 1 🎯 Triggered ChatGPT: 1 🤵 Contact: openai.wiki 💬 Text: 我是一个AI助手,专门为用户提供帮助和服务。您有什么需要我帮忙的吗? 🤵 Contact: openai.wiki 💬 Text: 抱歉,我不清楚你在说什么。如果你需要帮助,请告诉我你需要什么样的帮助,我会尽力回答你的问题。
其它参数
名称 | 默认 | 示例 | 描述 |
---|---|---|---|
API | https://api.openai.com/ | 自定义ChatGPT API 地址 | |
OPENAI_API_KEY | 123456789 | sk-XXXXX | https://platform.openai.com/account/api-keys |
MODEL | gpt-3.5-turbo | 要使用的模型ID, 目前仅支持gpt-3.5-turbo 和 gpt-3.5-turbo-0301 | |
TEMPERATURE | 0.6 | 在0和2之间。较高的数值如0.8会使 ChatGPT 输出更加随机,而较低的数值如0.2会使其更加稳定。 | |
CHAT_TRIGGER_RULE | 私聊触发规则 | ||
DISABLE_GROUP_MESSAGE | true | 禁用在群聊里使用ChatGPT | |
CHAT_PRIVATE_TRIGGER_KEYWORD | 在私聊中触发ChatGPT的关键词, 默认是无需关键词即可触发 | ||
BLOCK_WORDS | “V霹恩” | “WORD1,WORD2,WORD3” | 聊天屏蔽关键词(同时在群组和私聊中生效, 避免 bot 用户恶意提问导致封号 |
CHATGPT_BLOCK_WORDS | “V霹恩” | “WORD1,WORD2,WORD3” | ChatGPT回复屏蔽词, 如果ChatGPT的回复中包含了屏蔽词, 则不回复 |
群聊参数
添加DISABLE_GROUP_MESSAGE
参数,将其设置为false
即可。
docker run -it --name wechat-chatgpt ^ -e OPENAI_API_KEY=sk-0zzJ***PmmS***uWlWVxT3BlbkF***oPyJuo0Yf1E8Xx***l ^ -e MODEL="gpt-3.5-turbo" ^ -e CHAT_PRIVATE_TRIGGER_KEYWORD="" ^ -e DISABLE_GROUP_MESSAGE="false" ^ -v %cd%/data:/app/data/wechat-assistant.memory-card.json ^ holegots/wechat-chatgpt:latest
想在群内与ChatGPT机器人进行对话,记得@该微信用户
。
运行方式
以后每次关闭Docker或重新开机之后,想要再次运行该服务,就不用那么繁琐啦。
首先确保Doker已经打开,然后执行如下命令启动wechat-chatgpt容器
。
docker start wechat-chatgpt
在成功启动wechat-chatgpt容器之后,再执行如下命令,将会自动输出二维码,重新扫码登陆即可。
docker logs -f wechat-chatgpt
总结
至此,我们已经成功部署了ChatGPT接入微信的服务,而不需要花费一分钱,免费开源才是第一生产力,毕竟也安全。
现在可以让你的朋友给你的微信发消息啦,惊艳小伙伴!
差点意思,要能成为群机器人就好玩了
@深蓝 你不说,我都忘记了,有群聊功能,但是我忘记写了,哈哈。
现已补充完毕
@PhiltreX 试了下,这玩意儿有BUG,用一段时间后会崩溃,初步看可能是特殊字符处理异常。
@PhiltreX 目前仅支持3.5,现在能支持了4了么?
hello!魔法上网,是指科学上网吗?thanks
@0包 你好,是的。
接入微信最担心的问题不就是被封微信号嘛…
@chunrix 的确,但是我还真被邀请加入了几个机器人聊天的群,目前也没看群有被封号。
请问这里写的是windows的教程么,这个获取端口号的方法,苹果电脑是不是不适用啊
@zhaolin 是的,这是Windows的办法,你的macOS用的什么魔法工具呢,一般里面有写端口号。
我的登录之后48小时就掉线了是什么问题
@aojie 好像网页版微信是有在线时长限制的
拉镜像的时候怎么整都搞不好就卡这一步
C:\Users\11655>docker pull holegots/wechat-chatgpt:latest
error during connect: in the default daemon configuration on Windows, the docker client must be run with elevated privileges to connect: Post “http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/images/create?fromImage=holegots%2Fwechat-chatgpt&tag=latest”: open //./pipe/docker_engine: The system cannot find the file specified.
@guigudingli 尝试使用管理员方式运行Docker
跑起来了,不知道有没有收费限制
如果我用国外的服务器搭建,可以省去梯子这一步,直接用吗?
如果我用国外的服务器搭建,可以省去梯子这一步,直接用吗?