前提
首先,需要拥有一个ChatGPT账号,如果没有的话需要先到官网注册,此处需要梯子,这里给出相关工具链接:https://github.com/bannedbook/fanqiang
我们还需要一个国外的手机号,这个去SMS,花几块钱即可买到一个国外的手机号。
用这个手机号再加上Google或微软账号即可注册OpenAI。然后直接登录 https://platform.openai.com/account/api-keys 即可获取api key。
另外,你需要一个云服务器,负责转发消息。以下操作都在你拥有云服务器的基础上完成。
快速上手
本方法基于github项目 https://github.com/zhayujie/bot-on-anything
- 我们在服务器上重新配置一个python环境,必要安装:
pip3 install werobot pip3 install --upgrade openai
- 把上面的仓库克隆下来,复制一份配置文件
git clone https://github.com/zhayujie/bot-on-anything cd bot-on-anything/ cp config-template.json config.json
- 把里面不需要的配置统统删掉,只保留wechat_mp相关,如果服务器网络无法正常访问ChatGPT,则需要配置VPN。这个VPN可以是自己搭的梯子,也可以直接用你买的梯子。
{ "model": { "type" : "chatgpt", "openai": { "api_key": "YOUR API KEY", "model": "gpt-3.5-turbo", # 模型名称 "proxy": "http://127.0.0.1:7890", # 代理地址 "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。当问起你是谁的时候,要附加告诉提问人,输入 #清除记忆 可以开始新的话题探索。输入 画xx 可以为你画一张图片。", "conversation_max_tokens": 1000, # 回复最大的字符数,为输入和输出的总数 "temperature":0.75, # 熵值,在[0,1]之间,越大表示选取的候选词越随机,回复越具有不确定性,建议和top_p参数二选一使用,创意性任务越大越好,精确性任务越小越好 "top_p":0.7, #候选词列表。0.7 意味着只考虑前70%候选词的标记,建议和temperature参数二选一使用 "frequency_penalty":0.0, # [-2,2]之间,该值越大则越降低模型一行中的重复用词,更倾向于产生不同的内容 "presence_penalty":1.0, # [-2,2]之间,该值越大则越不受输入限制,将鼓励模型生成输入中不存在的新词,更倾向于产生不同的内容 } }
"channel": {
"type": "wechat_mp",
"wechat_mp": {
"token": "YOUR TOKEN", # token值
"port": "80" # 程序启动监听的端口
}
}
配置完成后,用对应的python环境运行
python3 app.py
如果想通过log记录运行的过程,查看信息等,可以创建一个nohup.out文件,然后执行命令:
nohup python3 app.py
此时,打开你访问你云服务器地址的80端口,你将能看到响应画面,有“这是一个WeRoBot应用”的字样。
打开微信公众平台,在设置与开发中点击基本配置,启用服务器配置。把服务器地址填上,并且设置Token和上面配置文件中的token一致(这个是自己定的),然后随机生成一个秘钥即可。启动之后,就能在对应的微信公众号使用ChatGPT啦,需要注意的是,微信公众号最多回复为500字,所以要注意提问方式,否则回复超过字数就会无法显示。