安卓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’ 说明账号没有绑定银行卡实名,无法登陆。
参考文章
- 搭建属于自己的基于ChatGPT的微信聊天机器人:https://juejin.cn/post/7223339726140096570
- Termux官方wiki:https://wiki.termux.com/wiki/Python
- chatgpt-on-wechat:https://github.com/zhayujie/chatgpt-on-wechat
- Termux官方wiki:https://wiki.termux.com/wiki/Python