(会封号,会封号,会封号,重要的事情要说三遍)
GitHub: https://github.com/zhayujie/chatgpt-on-wechat.git
创建 OpenAI API Key
(OpenAI API KEY 请去:https://platform.openai.com/account/api-keys )
(进入后登录账号-> 点击右上角->头像-> 选择View API keys ->最左侧User 下 Api Keys )
(创建Key-> 点击页面中间的 Create new secret key)
(成功后弹出框 保存好 关闭后不可再查看Key)
在Linux 服务器中克隆代码 git clone https://github.com/zhayujie/chatgpt-on-wechat.git
% git clone https://github.com/zhayujie/chatgpt-on-wechat.git
Cloning into 'chatgpt-on-wechat'...
remote: Enumerating objects: 471, done.
remote: Counting objects: 100% (470/470), done.
remote: Compressing objects: 100% (195/195), done.
remote: Total 471 (delta 236), reused 398 (delta 202), pack-reused 1
Receiving objects: 100% (471/471), 1.62 MiB | 1.51 MiB/s, done.
Resolving deltas: 100% (236/236), done.
克隆完成后进入 chatgpt-on-wechat 目录
cd chatgpt-on-wechat
建议Python版本在 3.7.1~3.9.X 之间,3.10及以上版本在 MacOS 可用,其他系统上不确定能否正常运行。
安装依赖
#我用的是3.8所以pip也是3.8
pip3.8 install itchat-uos==1.5.0.dev0
pip3.8 install --upgrade openai
注:itchat-uos
使用指定版本1.5.0.dev0,openai
使用最新版本,需高于0.25.0。
配置文件的模板在根目录的config-template.json
中,需复制该模板创建最终生效的 config.json
文件
(编辑config.json文件请参考Vim 文本编辑器)
# config.json文件内容示例
{
"open_ai_api_key": "YOUR API KEY", # 填入上面创建的 OpenAI API KEY
"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训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。" # 人格描述
}
运行
如果是开发机 本地运行,直接在项目根目录下执行:
python3.8 app.py
终端输出二维码后,使用微信进行扫码,当输出 "Start auto replying" 时表示自动回复程序已经成功运行了(注意:用于登录的微信需要在支付处已完成实名认证)
在服务器运行
touch nohup.out # 首次运行需要新建日志文件
nohup python3.8 app.py & tail -f nohup.out # 在后台运行程序并通过日志输出二维码
扫码登录后程序即可运行于服务器后台,此时可通过 ctrl+c
关闭日志,不会影响后台程序的运行。使用 ps -ef | grep app.py | grep -v grep
命令可查看运行于后台的进程,
查看 是否在运行可以使用 jobs 命令
# jobs
[1]+ 运行中 nohup python3.8 app.py &
如果想结束输入 fg 1 调出这个后台程序(1代表后台任务的序号,如果只有一个任务可以直接输入fg)
# fg
nohup python3.8 app.py
调出程序后再按Ctrl + C 来结束程序,
如果不想结束,按Ctrl + Z 让他进入后台
进入后台之后默认会停止 输入 bg 1 让他在后台继续运行
此时关闭Shell 窗口后会提示,
(jobs,fg,bg 命令仅限当前连接,如果启动程序之后断开过ssh 再连接时jobs 会不显示有任何程序在后台,但是项目还是在继续运行)
# fg
nohup python3.8 app.py
^Z
[1]+ 已停止 nohup python3.8 app.py
# bg
[1]+ nohup python3.8 app.py &
总结:
最开始我用Python3.7 运行 出现了各种各样的报错,最后安装了Python3.8 后成功运行
不能不在意 开发者提供的 建议版本 Python3.7.1 ~ Python3.9.X
总觉得是个Python3 就行,夺走了很多弯路
评论区