手把手教你部署ChatGPT 的微信机器人

489 阅读3分钟

一、准备

项目默认使用 OpenAI接口 进行对话,需前往 OpenAI注册页面 创建账号,创建完账号则前往 API管理页面 创建一个 API Key 并保存下来,后面需要在项目中配置这个key。接口需要海外网络访问及绑定信用卡支付。

二、运行

(1) 下载源码

在命令行使用 git 克隆项目并进入目录:

git clone https://github.com/zhayujie/chatgpt-on-wechat
cd chatgpt-on-wechat/

(2) 安装依赖

pip3 install -r requirements.txt                # 必选依赖
pip3 install -r requirements-optional.txt       # 可选依赖,语音、tool插件等功能需要

(3) 配置

复制项目中的模板文件 config-template.json,来生成最终起效果的配置文件config.json,你可以通过执行以下命令完成:

cp config-template.json config.json

然后打开 config.json 文件,添加所需配置,具体配置含义参考 配置说明

(4) 运行

一切准备就绪,可以启动程序了,直接在项目目录下执行:

python3 app.py

扫描输出的二维码即可完成登录。如果你使用的是 pycharm 等IDE,就更方便了,点击运行按钮就可以直接运行。

三、使用

成功运行之后日志中会输出 "Start auto replying",这表示你用于扫码登录的账号已经变身为机器人了,让你的好友给你发消息 或在群聊@你 都会触发自动回复,效果如下图:

四、配置说明

下面以 Python部署 方式为例,介绍各配置项的用法。配置文件的模板在根目录的config-template.json中,可以复制该模板创建最终生效的 config.json 文件:

cp config-template.json config.json

然后在config.json中填入配置即可,以下是对默认配置的说明,可根据需要进行自定义修改(在实际json文件中要去掉注释哦):

{  
"open_ai_api_key": "YOUR API KEY", # 填入上面创建的 OpenAI API KEY  
"model": "gpt-3.5-turbo", # 模型名称。当use_azure_chatgpt为true时,其名称为Azure上model deployment名称  
"proxy": "", # 代理客户端的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/  
"azure_deployment_id": "", # 采用Azure ChatGPT时,模型部署名称  
"character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。", # 人格描述  
# 订阅消息,公众号和企业微信channel中请填写,当被订阅时会自动回复,可使用特殊占位符。目前支持的占位符有{trigger_prefix},在程序中它会自动替换成bot的触发词。  
"subscribe_msg": "感谢您的关注!\n这里是ChatGPT,可以自由对话。\n支持语音对话。\n支持图片输出,画字开头的消息将按要求创作图片。\n支持角色扮演和文字冒险等丰富插件。\n输入{trigger_prefix}#help 查看详细指令。"  
}

演示demo

(chat.anchongai.com/)