微信接入方式

使用GitHub上提供的本地部署或者服务器部署

作者GitHub主页:https://github.com/zhayujie/chatgpt-on-wechat

创建OpenAi账号

openai.com
官网注册需要国外手机号注册

环境

持Linux、MacOS、Windows系统(可在Linux服务器上长期运行),同时需要安装Python。
本次搭建在Kali下测试
基于Debian的系统

1.克隆GitHub代码并且进入目录

git clone https://github.com/zhayujie/chatgpt-on-wechat
cd chatgpt-on-wechat/

2.安装所需要核心依赖

pip3 install itchat-uos==1.5.0.dev0
pip3 install --upgrade openai

配置类

配置文件的模板在根目录的config-template.json中,需要复制模板创建最有效的config.json文件
复制文件

cp config-template.json config.json

然后在config.json中填入配置,下面是对默认配置的说明,可根据需要进行自定义修改

config.json文件内容示例

{ 
  "open_ai_api_key": "YOUR API KEY",                # 填入上面创建的 OpenAI API KEY
  "single_chat_prefix": ["@bot"],     # 私聊时文本需要包含该前缀才能触发机器人回复
  "single_chat_reply_prefix": "[bot] ",            # 私聊时自动回复的前缀,用于区分真人
  "group_chat_prefix": ["@bot"],                  # 群聊时包含该前缀则会触发机器人回复
  "group_name_white_list": ["需要响应的群名称"],     # 开启自动回复的群名称列表
  "image_create_prefix": ["画", "看", "找"],                   # 开启图片回复的前缀
  "conversation_max_tokens": 1000,                           # 支持上下文记忆的最多字符数
  "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。"  
  # 人格描述
}

配置说明:

  • 个人聊天
    个人聊天中,需要以“bot”或“@bot”为开头的内容触摸发器人,对应配置项single_chat_prefix(如果不需要以之前触摸发可以填写"single_chat_prefix": [“”])
    机器人回复的内容会以“[bot]”作为前显,以区分真人,对应的配置项为single_chat_reply_prefix(如果不需要前显可以填写"single_chat_reply_prefix": “”)

  • 群聊天
    群聊天中,群名称需要配置在group_name_white_list 中才能开启群聊自动回复。如果想对所有群聊有效,可以直接填写"group_name_white_list": [“ALL_GROUP”]
    默认只需要被人@就会触发机器人自动回复;另外群聊天中只需要检测到以“@bot” 开头的内容,同样会自动回复(方便自己,察觉)group_chat_prefix
    可选配置:group_name_keyword_white_list配置项支持模糊匹配群名称,配置项则支持模匹配群消息内容,使用方法与上面描述的两个配置项相) group_chat_keywordcontributed by elay 。

  • 其他配置
    对于图像生成,在满足个人或群体接触发件外,还需要额外的关键词前来接触发,对应配置image_create_prefix
    Openai对话对话图片的的参数配置(自由度,回复 ,,,,等等) bot/openai/open_ai_bot.py
    conversation_max_tokens:表示能足够记忆的上下文最大单词数(一问一答为一组对话,如果累积的对话单词数超出限制,就会优先移去最早的一组对话)
    character_desc配置中保存着你对机器人说的一段话,他会记住这段话并作他的设定,你可以为他定制任何人格 (关于会谈上文的更多内容参考问题)举例

运行

  1. 本地运行
    如果是开机本地运行,直接在项目根目录下执行
python3 app.py
  1. 服务部署
    使用nohup命令在后台运行程序
touch nohup.out                                   >首次运行需要新建日志文件                     
nohup python3 app.py & tail -f nohup.out         > 在后台运行程序并通过日志输出二维码

登录程序运行服务器服务器后,此时后,此时ctrl+c日志 ps -ef | grep app.py | grep -v grep日志kill日志日志关闭后如果想重新打开只需要输入 tail -f nohup.out。

注意:如果扫码后手机提示登录验证需要等5s,而最终的二维码重新刷新并提示Log in time out, reloading QR code,此时需要参考此issue修改一次即可。
多账号支持:将项目复制多份,分别启动程序,使用不同账号扫描码登录即可实时同步运行
特殊指令:用户向机器发送#清除记忆即可清空该使用用户的上下文字记忆