零成本搭建个人微信接入ChatGPT实现智能回复能力

【风险提前说】日常正常使用风险性比较低,但是如果绑定到ChatGPT的个人微信被高频率调用或者prompt违规等问题可能会被微信安全策略拦截,可能导致微信登录不了网页版,存在一定风险

一、 准备工作

1、 OpenAI账号(开通了ChatGPT的)的API Keys - 用于ChatGPT调用

2、 GitHub账号 - 登录GitHub,用于fork项目

3、 微信号(需要实名认证的,建议使用个人微信小号)

4、 使用github注册并授权权限给到免费的容器托管平台Railway

查看并生成openai的API Key:https://platform.openai.com/account/api-keys

查看Openai免费账号token的使用情况和剩余额度:https://platform.openai.com/account/usage

二、零成本搭建思路

1、 fork项目代码到私库(https://github.com/zhayujie/chatgpt-on-wechat

2、 使用github注册并授权github权限给到免费的容器托管平台Railway(https://railway.app/

3、 免费容器托管平台Railway部署Github Repository中的chatgpt-on-wechat项目,会自动识别到Dockfile文件,并构建镜像镜像部署容器

4、 给容器添加环境变量,railway容器重新部署生效,并成功启动项目

5、 微信(使用微信小号)扫描容器启动成功后,控制台打印的二维码进行微信网页版登录,登录成功后即可将微信和ChatGPT机器人绑定

6、 使用微信拉群或者私聊触发ChatGPT转发并自动回复

三、 搭建流程

1、 fork项目代码到私库(https://github.com/zhayujie/chatgpt-on-wechat

2、 使用github注册并授权github权限给到免费的容器托管平台Railway(https://railway.app/

3、 Railway部署GitHub刚fork的chatgpt-on-wechat项目

4、 项目部署成功的容器

5、设置环境变量 - 配置OpenAI的API Keys、微信自动转发策略、白名单等
github的chatgpt-on-wechat项目config-template.json文件就是环境变量参数模板

环境变量需要注意三个维度的参数,满足后才能有效的进行ChatGPT转发

1、 将OpenAI的API Key替换

2、 配置微信机器人的微信名(问问题带了微信名在前面)

3、 配置微信群聊转发ChatGPT的白名单(可以自定义哪些群名字可以接入ChatGPT)

RailWay容器配置环境变量支持两种格式:JSON格式 和 property格式

1)JSON格式的参数,注意Railway的JSON只接收字符串,所以需要专业
{
"open_ai_api_key": "sk-vXXXXXXX",
"model": "gpt-3.5-turbo",
"proxy": "",
"single_chat_prefix": "[\"小号的微信名\", \"@小号的微信名\"]",
"single_chat_reply_prefix": "[自动回复]",
"group_chat_prefix": "[\"@小号的微信名\"]",
"group_name_white_list": "[\"ChatGPT测试群\",\"GPT测试\"]",
"group_chat_in_one_session": "[\"ChatGPT测试群\",\"GPT测试\"]",
"image_create_prefix": "[\"画\"]",
"speech_recognition": "false",
"group_speech_recognition": "false",
"voice_reply_voice": "false",
"conversation_max_tokens": "1000",
"expires_in_seconds": "3600",
"character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。"
}
2)properties格式的参数:
open_ai_api_key=sk-vXXXXXXX
model=gpt-3.5-turbo
proxy=
single_chat_prefix=["小号的微信名", "@小号的微信名"]
single_chat_reply_prefix=[自动回复]
group_chat_prefix=["@小号的微信名"]
group_name_white_list=["ChatGPT测试群","GPT测试"]
group_chat_in_one_session=["ChatGPT测试群","GPT测试"]
image_create_prefix=["画"]
speech_recognition=false
group_speech_recognition=false
voice_reply_voice=false
conversation_max_tokens=1000
expires_in_seconds=3600
character_desc=你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。

6、设置完环境变量后会触发重新部署

7、在Deployment中可以看到重新部署的记录,点进去View Logs

8、在Deploy Logs中可以看到控制台打印日志(微信扫码登录成功状态,接收消息日志),使用个人微信号小号扫码登录即可

9、验证是否绑定成功
通过微信号私聊方式,按住头像会带出微信机器人的微信名(配置环境变量时候也需要配置相应的微信机器人的微信名),然后提问即可

四、 使用场景、FAQ

1、扫描登录成功后,如何使用

1)、拉群聊天

群里面@微信号,并进行提问问题即可

注意:群名字应该属于环境变量配置群聊白名单中(配置可以随时变更)

group_name_white_list=["ChatGPT测试群","GPT测试"]

group_chat_in_one_session=["ChatGPT测试群","GPT测试"]

2)、私聊

需要按住头像,使得发送的文字最前面带有机器人的微信名(满足私聊的转发策略)

2、微信发送消息后后没有反应

  • 先检查railway容器的控制台日志Deploy Log中是否有接收到消息并打印日志,如果有这说明服务已经接收到消息
  • 检查群聊的时候,群名字是否配置在容器的环境变量中的白名单,私聊是否是否带有转发策略的前缀
  • 若返回[error],则说明openai的API Key配置错误,重新更新下环境变量

3、个人微信需要一直在线吗?

是的,因为原理使用的是微信网页版,通过itchat进行转发,若手机退出微信,则网页版也会同时退出,导致微信和ChatGPT断开连接;
若需要重新扫码建立连接,需要restart容器

4、搭建过程需要注意哪些点?

1)、环境变量的设置,需要仔细看下搭建流程的第5点

2)、railway容器启动成功后扫码登录,查看控制台日志是否登录成功

五、总结沉淀(这里只给出值得学习的Tip,自行发散学习哈~ )

1、接触ChatGPT、如何使ChatGPT更接近生活、如何进行prompt裂变提问

2、认识itchat转发微信原理和落地场景、微信机器人交互原理

3、认识railway.app这个免费容器托管平台(每个月提供5美元的免费额度,支持自定义域名),适合docker学习,手把手搭建自己的服务、日常轻量级服务搭建、免费的PaaS容器等

学习 + 实践 + 思考 + 沉淀

互相学习,共勉

本文由博客一文多发平台 OpenWrite 发布!
作者:Mix_Z原文地址:https://segmentfault.com/a/1190000043692770

%s 个评论

要回复文章请先登录注册