Now Loading...

加载过慢请开启魔法

安卓使用Termux搭建微信ChatGPT机器人

安卓Termux机器人系列第四期!

我真没想到Termux这么好玩

这次来搭建一个微信上的ChatGPT机器人

准备工作:

  • 一个安卓手机(废话),无需root
  • 魔法上网工具(本文不做介绍)
  • 下载安装 Termux
  • 一个微信小号(大号也不是不可以),必须已实名,否则无法登陆
  • openAI API key(网上很多教程,本文不再介绍)

我们将使用的bot项目为chatgpt-on-wechat:
https://github.com/zhayujie/chatgpt-on-wechat

环境准备

启动 Termux ,如果你没有安装过Python和vim,需要先安装它们:

pkg install python vim -y

过程中如果出现了选项就无脑填 y 回车。

为Termux安装pillow准备依赖:

pkg install libjpeg-turbo -y

pkg install libpng -y

export LDFLAGS="-L/system/lib64"

克隆项目代码:

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

cd chatgpt-on-wechat/
  • 接下来推荐在虚拟环境中进行,以避免与其他项目产生依赖冲突。
  • 你可以参考《安卓使用Termux搭建telegram涩图机器人》 安装poetry。
  • 如果你不会使用虚拟环境,可以去群里问我,或者直接继续操作。

安装核心依赖,能够使用itchat创建机器人,并具有文字交流功能所需的最小依赖集合:

pip install -r requirements.txt

等待安装完成

部署项目

创建配置文件:

cp config-template.json config.json

修改配置文件:

vim config.json

进入vim页面后,键入 i 进入编辑模式,按需求更改配置:

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

以下内容必须修改:

  • open_ai_api_key:替换为你的key,注意用双引号包裹。

按需修改好你的配置后,键盘按ESC退出编辑模式,键入 :wq 保存并退出vim页面。

启动程序

必须开启魔法、必须开启魔法、必须开启魔法

python app.py

终端输出二维码后,使用微信进行扫码,当输出 “Start auto replying” 时表示自动回复程序已经成功运行了(注意:用于登录的微信需要在支付处已完成实名认证)。
扫码登录后你的账号就成为机器人了,可以在微信手机端通过配置的关键词触发自动回复 (任意好友发送消息给你,或是自己发消息给好友)

ps. 新微信号扫码提示KeyError: ‘wxsid’ 说明账号没有绑定银行卡实名,无法登陆。

参考文章