1. GitHub开源项目
Github上已经有很多大佬提供的把ChatGPT接入微信的开源项目,因而咱们用不着自己造轮子,只需求挑选一个合适的开源项目依据自己的需求布置一下就能够。
这些开源项目主要是用TypeScript、Go言语开发的,但由于我自己对python言语比较了解,因而挑选了一个用python开发的项目,这样也方便学习源码嘛。
Github地址:github.com/zhayujie/ch…
2. 前期预备
(1) 获取openAI API key
首要你得有个OpenAI账号,注册办法网上有很多,这儿不再赘述。有了账号之后前往API管理界面创立一个API key(留意创立完今后一定要仿制key把它保存下来,一旦离开这个界面今后就再也无法查看key的值了)。
留意,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环境。
- 拉取一个python3.8的Docker镜像,并根据刚刚拉取的镜像创立一个容器,命名为chatbot,然后进入该容器。
sudo docker pull python:3.8
sudo docker run -it --name chatbot python:3.8 bash
今后能够运用以下指令进入容器
sudo docker exec -it chatbot bash
- 克隆项目代码
git clone https://github.com/zhayujie/chatgpt-on-wechat
cd chatgpt-on-wechat/
- 装置中心依靠
能够运用itchat创立机器人,并具有文字沟通功能所需的最小依靠集合
pip3 install -r requirements.txt
执行该指令后会主动装置所需的各种依靠,静待装置完成即可。
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 即可清空该用户的上下文记忆。
登录后,手机登录微信小号,能够看到显示电脑已登录。
5. 作用展现
直接向充任机器人的微信号发送音讯
在群里@机器人对话
6. 总结
至此,根据ChatGPT的微信谈天机器人布置完成。从此能够直接在微信中与ChatGPT对话。但是,现在的谈天机器人还具有一定局限性:
- 只启用了项目中的基础模块,没有包括语音识别等扩展模块。
- 由于接口调用费用原因,运用的是OpenAI的GPT-3.5-trubo模型,没有运用GPT-4。
- 仍是接口调用费用问题,我的ChatGPT账号注册于3月25日之前,有$18的免费额度。但接口的调用毕竟是收费的,免费额度总有用完的那一天,到时候假如还想继续运用机器人就得氪金了。
- 接入微信的问题,运用中发现与机器人对话时微信会提示对方身份反常,存在封号风险。