1. GitHub开源项目

Github上已经有很多大佬提供的把ChatGPT接入微信的开源项目,因而咱们用不着自己造轮子,只需求挑选一个合适的开源项目依据自己的需求布置一下就能够。

搭建属于自己的基于ChatGPT的微信聊天机器人(方法)

这些开源项目主要是用TypeScript、Go言语开发的,但由于我自己对python言语比较了解,因而挑选了一个用python开发的项目,这样也方便学习源码嘛。

搭建属于自己的基于ChatGPT的微信聊天机器人(方法)

Github地址:github.com/zhayujie/ch…

2. 前期预备

(1) 获取openAI API key

首要你得有个OpenAI账号,注册办法网上有很多,这儿不再赘述。有了账号之后前往API管理界面创立一个API key(留意创立完今后一定要仿制key把它保存下来,一旦离开这个界面今后就再也无法查看key的值了)。

搭建属于自己的基于ChatGPT的微信聊天机器人(方法)

留意,OpenAI API调用是收费的。2023年3月25日前注册的账户有$18的免费额度,新注册的用户没有免费额度。别的,假如你的OpenAI账户没有绑定银行卡,那你的API调用会受到限制,具体来讲是1分钟内只能调用3次。这个限制挺烦的,建议仍是绑一张卡。国内的银行卡用不了,能够去申请一张虚拟银行卡绑定上去。

至此,前期预备就完成了,接下来预备布置。

3. 预备布置环境

该项目支撑Linux、MacOS、Windows体系(可在Linux服务器上长时间运转),一起需求装置python环境。

建议Python版别在 3.7.1~3.9.X 之间,推荐3.8版别,3.10及以上版别在 MacOS 可用,其他体系上不确定能否正常运转。

这部分的具体教程能够在项目自述文件中找到。以下是我在腾讯云的云服务器上布置项目的过程:

(1) 装备代理

这一步没能过审,删去了。能够参考一下项目自述文件中的办法。

(2) 装备python环境

我是用Docker装备的python3.8环境。

  1. 拉取一个python3.8的Docker镜像,并根据刚刚拉取的镜像创立一个容器,命名为chatbot,然后进入该容器。
sudo docker pull python:3.8
sudo docker run -it --name chatbot python:3.8 bash

搭建属于自己的基于ChatGPT的微信聊天机器人(方法)

今后能够运用以下指令进入容器

sudo docker exec -it chatbot bash

  1. 克隆项目代码
git clone https://github.com/zhayujie/chatgpt-on-wechat
cd chatgpt-on-wechat/

搭建属于自己的基于ChatGPT的微信聊天机器人(方法)


  1. 装置中心依靠

能够运用itchat创立机器人,并具有文字沟通功能所需的最小依靠集合

pip3 install -r requirements.txt

执行该指令后会主动装置所需的各种依靠,静待装置完成即可。


搭建属于自己的基于ChatGPT的微信聊天机器人(方法)


4. 布置

(1) 修正装备文件

装备文件的模板在根目录的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
  "model": "gpt-3.5-turbo",                                   # 模型称号。当use_azure_chatgpt为true时,其称号为Azure上model deployment称号
  "proxy": "127.0.0.1:7890",                                  # 代理客户端的ip和端口
  "single_chat_prefix": ["bot", "@bot"],                      # 私聊时文本需求包括该前缀才能触发机器人回复
  "single_chat_reply_prefix": "[bot] ",                       # 私聊时主动回复的前缀,用于区别真人
  "group_chat_prefix": ["@bot"],                              # 群聊时包括该前缀则会触发机器人回复
  "group_name_white_list": ["ChatGPT测验群", "ChatGPT测验群2"], # 敞开主动回复的群称号列表
  "group_chat_in_one_session": ["ChatGPT测验群"],              # 支撑会话上下文同享的群称号  
  "image_create_prefix": ["画", "看", "找"],                   # 敞开图片回复的前缀
  "conversation_max_tokens": 1000,                            # 支撑上下文记忆的最多字符数
  "speech_recognition": false,                                # 是否敞开语音识别
  "group_speech_recognition": false,                          # 是否敞开群组语音识别
  "use_azure_chatgpt": false,                                 # 是否运用Azure ChatGPT service替代openai ChatGPT service. 当设置为true时需求设置 open_ai_api_base,如 https://xxx.openai.azure.com/
  "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型言语模型, 你旨在回答并处理人们的任何问题,而且能够运用多种言语与人沟通。",  # 人格描述,
}

以下内容有必要修正:

  • open_ai_api_key:替换为你的key,留意用双引号包裹。
  • proxy:修正为”x.x.x.x:7890″,这是之前发动的代理客户端监听的ip和端口。由于我是在服务器上用docker装备的python环境,所以x.x.x.x有必要是服务器的公网ip,而不能是127.0.0.1。

别的,group_name_white_list字段用于设置启用谈天机器人的群里,只有把群聊称号写到这个数组里才支撑在这个群聊中与机器人对话。

具体的装备阐明参见项目自述文件

(2) 运转程序

装备完成后,运用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。此外,scripts 目录下有一键运转、封闭程序的脚本供运用。

多账号支撑: 将项目仿制多份,别离发动程序,用不同账号扫码登录即可实现一起运转。 特别指令: 用户向机器人发送 #reset 即可清空该用户的上下文记忆。

登录后,手机登录微信小号,能够看到显示电脑已登录。

搭建属于自己的基于ChatGPT的微信聊天机器人(方法)


5. 作用展现

直接向充任机器人的微信号发送音讯

搭建属于自己的基于ChatGPT的微信聊天机器人(方法)


在群里@机器人对话

搭建属于自己的基于ChatGPT的微信聊天机器人(方法)


6. 总结

至此,根据ChatGPT的微信谈天机器人布置完成。从此能够直接在微信中与ChatGPT对话。但是,现在的谈天机器人还具有一定局限性:

  1. 只启用了项目中的基础模块,没有包括语音识别等扩展模块。
  2. 由于接口调用费用原因,运用的是OpenAI的GPT-3.5-trubo模型,没有运用GPT-4。
  3. 仍是接口调用费用问题,我的ChatGPT账号注册于3月25日之前,有$18的免费额度。但接口的调用毕竟是收费的,免费额度总有用完的那一天,到时候假如还想继续运用机器人就得氪金了。
  4. 接入微信的问题,运用中发现与机器人对话时微信会提示对方身份反常,存在封号风险。