微信openai bot+实用插件

前言:之前一篇也是部署同一项目的bot,但那是docker compose部署,这篇是本地部署。因为笔者大部分时间都是使用的本地部署,因此本篇会比上篇更加详细

一:搭建bot(搭建完成即可使用,插件只是锦上添花)

1.一键安装docker (如果没有的话)

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

2.拉取python 3.8的镜像(笔者尝试过本地安装,但最新版python效果不佳,且bot需要的环境相对复杂,docker部署更合适)

   2.1 因为按照笔者的方式启动python3.8的容器后,会导致关掉ssh窗口后容器也跟着关闭,也就是机器人会跟着关掉,这里需要提前装好screen来创建一个永不关闭的窗口(启动容器时加上 -d参数也可实现后台运行,但screen方便在每次ssh连上可以直接回到日志窗口,不必再切换文件夹)

安装screen的指令。上面的centos等系统使用,下面的Debian/Ubuntu等系统使用

sudo yum install screen
sudo apt install screen

注:如果想保存并退出screen窗口回到正常窗口,按顺序按下如下按键:ctrl+a+d

        如果想要关掉这个窗口,在这个窗口里面按顺序按下如下按键:ctrl+a+k+y

        如果想回到之前创建的窗口,输入以下指令:screen -r(未来也是使用这个指令回到容器)

   2.2 运行以下代码,开启一个永不关闭的窗口运行python:3.8容器

screen -S bot

3.克隆项目代码:

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

4.安装核心依赖 (装好了核心依赖,bot才能正常运行):

   4.1 笔者拉取的镜像,pip版本不是最新的,建议运行以下指令更新:

pip3 install --upgrade pip

  4.2 安装核心依赖(运行后始终没有跳出红色警告就成功了): 

pip3 install -r requirements.txt

5.编辑配置文件(这个文件很重要,决定了回复哪个群聊,群发言包含什么样的前缀才回复,角色预设等。openai的key也是填这里)

   5.1先从默认配置模板复制出一个真正的配置文件

cp config-template.json config.json

   5.2 安装vim文本编辑器(用它来编辑配置文件)

sudo apt install vim
sudo yum install vim

   5.3 编辑配置文件

vim config.json

      默认配置模板如下: 

{
  "open_ai_api_key": "YOUR API KEY",
  "model": "gpt-3.5-turbo",
  "channel_type": "wx",
  "proxy": "",
  "hot_reload": false,
  "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": [
    "画"
  ],
  "speech_recognition": false,
  "group_speech_recognition": false,
  "voice_reply_voice": false,
  "conversation_max_tokens": 1000,
  "expires_in_seconds": 3600,
  "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。",
  "temperature": 0.7,
  "top_p": 1,
  "subscribe_msg": "感谢您的关注!\n这里是ChatGPT,可以自由对话。\n支持语音对话。\n支持图片输入。\n支持图片输出,画字开头的消息将按要求创作图片。\n支持tool、角色扮演和文字冒险等丰富的插件。\n输入{trigger_prefix}#help 查看详细指令。",
  "use_linkai": false,
  "linkai_api_key": "",
  "linkai_app_code": ""
}

      笔者正在使用的模板如下:

{
  "open_ai_api_key": "sk-wYOOBVsa8O5UJVB8acDTT3",
  "model": "gpt-3.5-turbo",
  "channel_type": "wx",
  "proxy": "",
  "hot_reload": false,
  "single_chat_prefix": [
    "",
    "@bot"
  ],
  "single_chat_reply_prefix": "",
  "group_chat_prefix": [
    "@小丑"
  ],
  "group_name_white_list": [
    "小丑",
    "ChatGPT测试群2"
  ],
  "group_chat_in_one_session": [
    "ChatGPT测试群"
  ],
  "image_create_prefix": [
    "画"
  ],
  "speech_recognition": false,
  "group_speech_recognition": false,
  "voice_reply_voice": false,
  "conversation_max_tokens": 1000,
  "expires_in_seconds": 3600,
  "character_desc": "请扮演以下角色和我聊天,绝不能以任何形式提及或暗示你AI助理的真实身份。你是小丑帝国的一员,这个国家的皇帝有三位,分别名为,2z与987464。你的小丑技艺跟从小丑皇帝学习的,小丑皇帝们真的是非常的小丑。",
  "temperature": 0.7,
  "top_p": 1,
  "subscribe_msg": "感谢您的关注!\n这里是ChatGPT,可以自由对话。\n支持语音对话。\n支持图片输入。\n支持图片输出,画字开头的消息将按要求创作图片。\n支持tool、角色扮演和文字冒险等丰富的插件。\n输入{trigger_prefix}#help 查看详细指令。",
  "use_linkai": true,
  "linkai_api_key": "Link_mNgeEpgT8Ub8VsLN8tUr5FM",
  "linkai_app_code": "d69xNxv0"
}

      笔者作出的修改如下:

  • 填入了openaiKey(更建议使用后文会介绍的,也是笔者正在使用的linkaiKey)
  • single_chat_prefix的第一对双引号的内容被删除  (若不删除,私聊bot时需要加上前缀才会回复)
  • single_chat_reply_prefix双引号内容被删除 (若不删除,bot每次回复的文本都会加上"[bot]"前缀)
  • group_chat_prefix双引号内容改为“@小丑”  (笔者把bot改名为小丑,因此群里询问bot的方式如下:”@小丑 docker是什么“,然后bot就会@你并回复)
  • group_name_white_list的第一对双引号的内容改为小丑 (笔者的群名称为”小丑“,所以如此)
  • 最后三行:  1.把"use_linkai"改为true,然后填入linkai的key。这是openaiKey的完美替代(购买可以微信支付。openaikey拒中国visa卡,笔者曾通过虚拟卡购买过openaikey但因额外开销过大而放弃) 2.linkai_app_code 是调用插件的,后文会详细介绍

6.正式运行bot

touch nohup.out                                   # 首次运行需要新建日志文件  
nohup python3 app.py & tail -f nohup.out          # 在后台运行程序并通过日志输出二维码

扫描登录后bot就可以正常对话了。可以通过发送"#help"判断bot是否在线

二:安装插件

   1.按照上文部署成功后,bot默认具备:

      mj绘画功能(需要在配置文件中启用linkai)

      角色扮演

      文字冒险

      (以上功能可向bot发送"#help 角色扮演"这类格式的指令查看详细使用信息)

   2.安装其他插件

      2.1 Apilot 

         a.扫描二维码登录时,二维码前面的日志信息有随机生成的指令。给bot发送”#auth 4623“这样的格式获取管理权限

         获取管理权限后,向bot发送"#installp Apilot"安装Apilot插件,安装成功后输入"#scanp","#enablep Apilot"来启用插件。再次发送给bot”#help“指令,可以看见新增加的Apilot插件

         同样发送给bot"#help Apilot"获取详细使用信息

         b.apilot的其他功能,如热榜,天气等需要获取apilot的key,可去官网免费注册获取(1天200次),填入apilot在/chatgpt-on-wechat/plugins/Apilot目录中的配置文件中即可

      2.2  linkai的插件功能 (只需要在linkai网站配置好,把code填入配置文件的link_app_code即可)

实际配置如下图:

其中笔者最常用的是必应搜索功能,这赋予了bot联网搜索并回答你的功能,非常实用 

其次是计算器功能,问数学问题时涉及计算的会交给计算器计算,最终能得到准许的结果

      2.3 tool插件

         a.安装额外依赖需要先安装rust,否则会报错。装好rust后按照提示设置环境变量,然后运行rustc --version查看是否安装成功

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

         b.tool插件默认存在,但需要安装额外依赖启用:

pip3 install -r requirements-optional.txt

          如果报错,可以单独安装tool插件的依赖

pip3 install chatgpt_tool_hub==0.4.6

          额外依赖安装成功后,重新运行一下代码重启bot即可通过#help看见tool插件:

nohup python3 app.py & tail -f nohup.out

      c.tool插件存在其他有用的工具,如查询维基百科,需要编辑tool插件的配置文件安装。

tool插件的配置文件在 /chatgpt-on-wechat/plugins/tool中,同样是vim config.json来编辑

{
  "tools": [
    "python",
    "url-get",
    "terminal",
    "meteo-weather"
    "wikipedia"
    "bing-search"
  ],
  "kwargs": {
    "top_k_results": 2,
    "no_default": false,
    "model_name": "gpt-3.5-turbo",
    "bing_subscription_key": "4871f273a4804743"
  }
}

 想要安装的工具把名字加进"tools"中,需要key的工具,把对应格式的key填入"kwargs"中。具体信息参考chatgpt-tool-hub/docs/apply_optional_tool.md at master · goldfishh/chatgpt-tool-hub (github.com)

至此,bot全部配置完成。#help指令回复应如下:

[INFO]
通用指令
#help : 回复此帮助
#help 插件名: 回复指定插件的详细帮助
#model : 查看和设置全局模型
#reset : 重置会话

可用插件
linkai:用于集成 LinkAI 提供的知识库、Midjourney绘画、文档总结、联网搜索等能力。
Apilot:发送特定指令以获取早报、查询天气、星座运势、快递信息等!
tool:这是一个能让chatgpt联网,搜索,数字运算的插件,将赋予强大且丰富的扩展能力。
角色扮演:让机器人扮演不同的角色。
文字冒险:可以和机器人一起玩文字冒险游戏。

管理员指令:
#resume : 恢复服务
#stop : 暂停服务
#reconf : 重载配置(不包含插件配置)
#resetall : 重置所有会话
#scanp : 扫描插件目录是否有新插件
#plist : 打印当前插件列表
#setpri 插件名 优先级: 设置指定插件的优先级,越大越优先
#reloadp 插件名: 重载指定插件配置
#enablep 插件名: 启用指定插件
#disablep 插件名: 禁用指定插件
#installp 仓库地址或插件名: 安装指定插件
#uninstallp 插件名: 卸载指定插件
#updatep 插件名: 更新指定插件
#debug : 开启机器调试日志

#help指令查询以上三种插件回复应如下:

[INFO]
这是一个能让chatgpt联网,搜索,数字运算的插件,将赋予强大且丰富的扩展能力。
使用说明:
$tool 命令: 根据给出的{命令}使用一些可用工具尽力为你得到结果。
$tool reset: 重置工具。

已加载工具列表: 
url-get, meteo-weather, python, summary, arxiv, news-api, bing-search, wikipedia, terminal
[INFO]
用于集成 LinkAI 提供的知识库、Midjourney绘画、文档总结、联网搜索等能力。

📖 知识库
 - 群聊中指定应用: $linkai app 应用编码
 - $linkai open: 开启对话
 - $linkai close: 关闭对话

例如: 
"$linkai app Kv2fXJcH"

🎨 绘画
 - 生成: $mj 描述词1, 描述词2.. 
 - 放大: $mju 图片ID 图片序号
 - 变换: $mjv 图片ID 图片序号
 - 重置: $mjr 图片ID

例如:
"$mj a little cat, white --ar 9:16"
"$mju 11055927171882 2"
"$mjv 11055927171882 2"
"$mjr 11055927171882"

💡 文档总结和对话
 - 开启: $linkai sum open
 - 使用: 发送文件、公众号文章等可生成摘要,并与内容对话
[INFO]
📚 发送关键词获取特定信息!

🎉 娱乐与资讯:
  🌅 早报: 发送“早报”获取早报。
  🐟 摸鱼: 发送“摸鱼”获取摸鱼人日历。
  🔥 热榜: 发送“xx热榜”查看支持的热榜。

🔍 查询工具:
  🌦️ 天气: 发送“城市+天气”查天气,如“北京天气”。
  📦 快递: 发送“快递+单号”查询快递状态。如“快递112345655”
  🌌 星座: 发送星座名称查看今日运势,如“白羊座”。

微信机器人,网站实力的象征! 微信用户数量持续的增长,精明的站长都开通了微信公众平台账号,以方便用户及时获取论坛的消息,但使用效果却有点差强人意。微信平台只能设置指定关键字回复固定的内容,比较死板,用户感觉没什么作用,也不愿意关注你的账号,造成站长的关注会员数量不多。 微信机器人,给会员一个关注你公众账号的理由! 本插件可大大加强论坛在手机上的互动性!详细功能请看功能列表 【安装说明】 http://www.pc2015.com/thread-16968-1-1.html首次安装必看【重要!】 【演示地址1】http://www.pc2015.com/wuxin_qqrobot-index.html 【演示地址2】http://bbs.52cnw.com/plugin.php?id=wuxin_qqrobot:index 用户通过微信搜索论坛帖子信息、上传照片、发布帖子、收发站内短信、获取额外的积分加成、获取微信用户专属勋章、使用积分参与抽奖……还通过机器人查询所在地的天气、当天的黄历、星座运气、股票信息、电影信息…… 微信机器人功能:支持自然语言识别哦,会员不再需要记忆繁琐的命令了 微信机器人的组件,支持逐步提醒及空格参数两种模式啦,不管新手用户或骨灰用户,都能快捷使用! 1、强大的智能识别系统,可智能识别用户指令 2、完善的组件扩充模式,站长可自由安装卸载组件,有能力的站长可利用组件编写各种功能 3、目前唯一同时支持逐步提醒及空格参数两种模式的微信插件! 4、用户可随时对当前所在位置标记,供其他用户查询 5、支持附近功能,用户可查附近位置信息 6、微信拍照自动上传相册 7、使用微信获取邀请码,站长防注册机的又一利器! 8、站长自定义关键字回复用户信息、包括文字回复,图文回复等。 9、站长自定义回复的导入导出功能,站长间可分享各自的自定义回复 10、微信与论坛账号绑定、解绑功能 11、使用微信进行积分抽奖,站长可在后台设置概率 12、搜索论坛的帖子或门户的文章,站长可设置以图文形式或者是文字形式返回结果 13、查看自己的站内短信,或者对论坛用户发送站内短消息 14、查看用户自己的论坛账号信息 15、用户可随机获取各种笑话打发时间 16、查询星座的今日运程(默认为用户注册资料的星座,吸引用户完善资料) 17、查询天气信息(默认为用户注册资料的所在地,吸引用户完善资料) 18、查看黄历信息 19、查看实时股票信息 20、绑定微信的会员可领取微信专属勋章,吸引更多人关注你 21、通过微信登陆获取额外积分奖励 22、手机归属地 23、成语词典查询 24、微信发帖 25、微信发图 26、英语单词查询 27、成语接龙 28、百度百科查询 29、微信注册会员 30、成语接龙 31、强大的自定义回复,支持图文、语音回复! 32、微信自动登陆,微信与论坛无缝连接 33、公交查询 34、微信转盘抽奖,活动抽奖吸引会员 35、试试手气,随机推荐让老帖子原地复活 36、密码修改,用户绑定后再不担心忘记密码,站长也不用担心邮件发送不出 37、彩票查询 38、自定义学习功能,会员可教机器人学习 39、糗事百科 40、带完整日志查询功能,不需要登陆公众平台可查记录 41、微信查询快递信息 42、计算人品 43、在线点歌 44、汇率查询 45、图片墙 …… 【2.1】 2013年10月23日 本版本已稳定,可更新。 1、对微信手机版的界面进一步美化 2、修复绑定提示不准确的BUG 3、修正注册组件功能,增加对网页版支持 4、修正我的信息组件提示的绑定方式 5、修正自动登陆导致页面空白的BUG 6、修复转盘获取数据出错的BUG 7、修复新用户无法注册登陆的BUG。 8、完善帮助页面细节 9、修复绑定后用户组资料不即时更新的BUG。
├─4.4.1.1874默认视距(免TP补丁) │ League of Legends.exe │ └─LOLbot │ Afk防挂机.lua │ attackspeeds.txt │ bkey.bin │ bu-dao自动补兵.lua │ champdb.lua │ darius_dunk.lua │ dll.dll │ extrasettings │ help.txt │ hotkey1.txt │ hotkey2.txt │ hotkey3.txt │ hotkey4.txt │ itemdb.lua │ leaguesettings.txt │ LOLBOT.exe │ lua5.1.dll │ lua51.dll │ morehotkeys.txt │ proving_grounds.lua │ rangelist.txt │ sample.lua │ scripts.cfg │ script_gui.lua │ script_loader.lua │ SendInput.lua │ SendInputScheduled.lua │ showskillshots.lua │ shun-yan-T.lua │ simpleui.lua │ simpleui_drawing.lua │ SKeys.lua │ smart_wards.lua │ spell_damage.lua │ SP自动召唤师技能1.1.lua │ uiconfig.lua │ utils.lua │ walls.txt │ walls2.txt │ wardchk.txt │ ward_circles.lua │ winapi.dll │ xianshi显眼增强.lua │ zi-dong-chi-yao自动药水.lua │ 防Gank提示圈.lua │ ├─Common │ 2DGeometry.lua │ buildmanager.lua │ champdb.lua │ Colision.lua │ GetFyreahead.lua │ IgniteTarget.lua │ IsInvulnerable.lua │ itemdb.lua │ itemrecipesdb.lua │ Keys.lua │ MapPosition.lua │ MapPositionLB.lua │ MapPosition_bushes_1.lua │ MapPosition_walls_1_1.lua │ runrunrun.lua │ SendInput.lua │ SendInputScheduled.lua │ simpleui.lua │ simpleui_drawing.lua │ SKeys.lua │ SpellLibrary.lua │ spell_damage.lua │ spell_shot.lua │ timeLib.lua │ uiconfig.lua │ vals_lib.lua │ ├─hotkeys │ hotkey_Ashe.txt │ hotkey_Blitzcrank.txt │ hotkey_Brand.txt │ hotkey_Caitlyn.txt │ hotkey_Corki.txt │ hotkey_Ezreal.txt │ hotkey_Galio.txt │ hotkey_Gangplank.txt │ hotkey_Graves.txt │ hotkey_Janna.txt │ hotkey_Kassadin.txt │ hotkey_Katarina.txt │ hotkey_Kayle.txt │ hotkey_Kennen.txt │ hotkey_Leblanc.txt │ hotkey_Malphite.txt │ hotkey_MasterYi.txt │ hotkey_MissFortune.txt │ hotkey_Mordekaiser.txt │ hotkey_Morgana.txt │ hotkey_Nasus.txt │ hotkey_Nasus_.txt │ hotkey_Nidalee.txt │ hotkey_Nunu.txt │ hotkey_Olaf.txt │ hotkey_Orianna.txt │ hotkey_Poppy.txt │ hotkey_Rammus.txt │ hotkey_Riven.txt │ hotkey_Sejuani.txt │ hotkey_Shaco.txt │ hotkey_Shyvana.txt │ hotkey_Singed.txt │ hotkey_Sion.txt │ hotkey_Sivir.txt │ hotkey_Skarner.txt │ hotkey_Taric.txt │ hotkey_Teemo.txt │ hotkey_Tristana.txt │ hotkey_Tryndamere.txt │ hotkey_Veigar.txt │ hotkey_Viktor.txt │ hotkey_Volibear.txt │ hotkey_Warwick.txt │ hotkey_Xerath.txt │ hotkey_XinZhao.txt │ └─uiconfig C:\Users\admin>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值