ChatGPT近期以强大的对话和信息整合能力风靡全网,可以写代码、改论文、讲故事,几乎无所不能,这让人不禁有个大胆的想法,能否用他的对话模型把我们的微信打造成一个智能机器人,可以在与好友对话中给出意想不到的回应,而且再也不用担心女朋友影响我们打游戏工作了。
基于ChatGPT的微信聊天机器人,通过ChatGPT接口生成对话内容,使用itchat实现微信消息的接收和自动回复。已实现的特性如下:
•文本对话:接收私聊及群组中的微信消息,使用ChatGPT生成回复内容,完成自动回复
•规则定制化:支持私聊中按指定规则触发自动回复,支持对群组设置自动回复白名单
•多账号:支持多微信账号同时运行
•图片生成:支持根据描述生成图片,并自动发送至个人聊天或群聊
•上下文记忆:支持多轮对话记忆,且为每个好友维护独立的上下会话
•语音识别:支持接收和处理语音消息,通过文字或语音回复
没有的同学可以找我购买,我把我的联系方式放到了文章结尾
OpenAI 是提供了接⼊的 API keys 的,只有在申请了这个 API keys 才能完成后续的接⼊动作。
https:openai.com/api/登录⼰注册的帐号,登录成功后,点击右上⻆的头像,如下图:
点击「+Create new secret key」,⽣成一下 Key,再下⾯步骤⾥会使⽤到这个 Key 调⽤ ChatGPT API。
推荐使⽤ conda 创建虚拟环境,可在https:www.anaconda.com/
下载对应系统的应⽤,然后按向导一路「下一步」完成安装。
建议 Python 版本在 3.7.1~3.9.X 之间,可以直接在 anaconda 可视化界⾯下创建环境,如下图:
关注公众号,回复「wechat」关键字,获取Github地址
提前规划好部署路径,按下⾯三个步骤完成项⽬部署:
1.克隆项⽬代码
2.安装所需核⼼依赖
3.修改配置⽂件
配置⽂件的模板在根⽬录的config-template.json中,需复制该模板创建最终⽣效的config.json⽂件:
cp config-template.json config.json
#可根据需要进⾏⾃定义修改:
{
"open_ai_api_key":"YOUR API KEY"#填⼊上⾯创建的OpenAIAPIKEY
"single_chat_prefix":["bot","@bot"],#私聊时⽂本需要包含该前缀才能触发机器⼈回复
"single_chat_reply_prefix":"[bot] ",#私聊时⾃动回复的前缀,⽤于区分真⼈
"group_chat_prefix":["@bot"],#群聊时包含该前缀则会触发机器⼈回复
"group_name_white_list":["ChatGPT测试群","ChatGPT测试群2"],#开启⾃动回复的群名称列表
"image_create_prefix":["画","看","找"],#开启图⽚回复的前缀
"conversation_max_tokens":1000,#⽀持上下⽂记忆的最多字符数
"character_desc":"你是ChatGPT, ⼀个由OpenAI训练的⼤型语⾔模型, 你乐于回答⼈们的各种问题。"#⼈格描述
}
我测试使⽤的本地电脑,使⽤本地运⾏模式,直接在项⽬根⽬录下执⾏:
python app.py
终端输出⼆维码,执⾏效果如下图:
使⽤微信进⾏扫码,当输出 "Start auto replying" 时表⽰⾃动回复程序已经成功运⾏了。扫码登录后,就可以在微信⼿机端通过配置的关键词触发⾃动回复了。
运⾏效果