ikechan8370 / chatgpt-plugin

云崽系机器人的智能聊天插件
https://www.yunzai.chat/
GNU General Public License v3.0
965 stars 100 forks source link
bot chatgpt qq yunzai yunzai-bot

chatgpt-plugin

26224FE397F1E74104C1C007C1A32DDE

推荐的相关文档和参考资料

本README 手册 文档1(建设中) 插件常见问题(鹤望兰版) Yunzai常见问题(LUCK小运版) 憨憨博客

特点

如果觉得这个插件有趣或者对你有帮助,请点一个star吧!

版本要求

Node.js >= 18 / Node.js >= 14(with node-fetch) 小白尽可能使用18版本以上的nodejs

安装与使用方法

安装

  1. 进入 Yunzai根目录

  2. 请将 chatgpt-plugin 放置在 Yunzai-Bot 的 plugins 目录下

推荐使用 git 进行安装,以方便后续升级。在 Yunzai-Bot 根目录夹打开终端,运行下述指令进行安装

# github源
git clone --depth=1 https://github.com/ikechan8370/chatgpt-plugin.git ./plugins/chatgpt-plugin/

# 网络不好连不上github可以使用gitee源,但更新可能不如github及时
git clone --depth=1 https://gitee.com/ikechan/chatgpt-plugin.git ./plugins/chatgpt-plugin/

# 以上二选一后执行下面步骤进入目录安装依赖
cd plugins/chatgpt-plugin
pnpm i

如果是手工下载的 zip 压缩包,请将解压后的 chatgpt-plugin 文件夹(请删除压缩自带的-master或版本号后缀)放置在 Yunzai-Bot 目录下的 plugins 文件夹内

  1. 修改配置 本插件配置项比较多,强烈建议使用后台工具箱或锅巴面板修改

    或者创建和编辑config/config.json文件。

  2. 后台面板使用 初次使用请先私聊机器人 #设置管理密码 进登录密码设置 私聊 #chatgpt系统管理 后机器人会回复系统管理页面网址,在此网址输入机器人QQ号和刚刚设置的管理密码点击登录即可进入后台管理系统 如果忘记密码,再次私聊输入 #设置管理密码 后可重新设置密码

    用户同样可私聊机器人 #设置用户密码 进行账号注册和密码设置 用户设置密码后,所有聊天信息将记录在用户缓存数据下,同时用户可通过私聊机器人 #chatgpt用户配置 登录后台用户配置面板,查看自己的聊天数据和自定义机器人对自己的回复参数

    如果后台面板访问出现 time out 请检查机器人启动时是否有报错,服务器端口是否开放,可尝试ping一下服务器ip看能否直接ping通。

  3. 重启Yunzai-Bot 如通过后台面板或锅巴面板升级可以热加载,无需重启。


相关配置

配置文件相关

配置文件位置:plugins/chatgpt-plugin/config/config.json

部分关键配置项,其他请参照文件内注释:

名称 含义 解释
proxy 代理地址 请在此处配置你的代理,例如http://127.0.0.1:7890
apiKey openai账号的API Key 获取地址:https://platform.openai.com/account/api-keys

Token相关

与Token相关的设置需在qq与机器人对话设置,设置后方可使用对应的api

名称 含义 解释 设置方式
ChatGPT AccessToken ChatGPT登录后的Token 具体解释见下方 #chatgpt设置token
必应token 必应登录后的Token 必应(Bing)将调用微软必应AI接口进行对话。不填写token对话上限为5句,填写后为20句。无论填写与否插件都会无限续杯。 #chatgpt设置必应token/#chatgpt删除必应token/#chatgpt查看必应token

我没有注册openai账号?如何获取

您可以按照以下方法获取openai账号

进入https://chat.openai.com/ ,选择signup注册。目前openai不对包括俄罗斯、乌克兰、伊朗、中国等国家和地区提供服务,所以自行寻找办法使用其他国家和地区的ip登录。此外,注册可能需要验证所在国家和地区的手机号码,如果没有国外手机号可以试试解码网站,收费的推荐https://sms-activate.org/

我有openai账号了,如何获取API key和Access Token?

  • 获取API key

  • 获取Access Token

    • 登录后访问https://chat.openai.com/api/auth/session
    • 您会获得类似如下一串json字符串{"user":{"id":"AAA","name":"BBB","email":"CCC","image":"DDD","picture":"EEE","groups":[]},"expires":"FFF","accessToken":"XXX"}
    • 其中的XXX即为ChatGPT AccessToken
    • 如果是空的{},说明没有登录,要登录chatgpt而不是openai。

ChatGPT AccessToken 设置了有什么用?我为什么用不了API模式

  • 部分API需要在和机器人的聊天里输入#chatgpt设置token才可以使用

我有新必应的测试资格了,如何获取必应Token?

2023/05/29 无需登录也可以使用了,要求不高可以不填

  1. JS一键获取

登录www.bing.com,刷新一下网页,按F12或直接打开开发者模式,点击Console/控制台,运行如下代码,执行后即在您的剪切板存储了必应Token

copy(document.cookie.split(";").find(cookie=>cookie.trim().startsWith("_U=")).split("=")[1]);
  1. 手动获取

登录www.bing.com,刷新一下网页,按F12或直接打开开发者模式,点击Application/存储,点击左侧Storage下的Cookies,展开找到https://www.bing.com 项,在右侧列表Name项下找到"_U",_U的value即为必应Token

其他问题可以参考使用的api库 https://github.com/transitive-bullshit/chatgpt-api 以及 https://github.com/waylaidwanderer/node-chatgpt-api

使用方法

根据配置文件中的toggleMode决定联通方式。

发挥你的想象力吧,调教拟造出你自己的机器人风格!

文本/图片回复模式

chatgpt文本/图片/语音模式

可以控制机器人回复的方式

对话相关

chatgpt对话列表

结束对话 [@某人]

清空chat队列

移出chat队列首位

chatgpt开启/关闭问题确认

...

设置相关

chatgpt切换浏览器/API/API2/API3/Bing

chatgpt设置[必应]Token

...

获取帮助

chatgpt帮助

chatgpt模式帮助

发送#chatgpt帮助,有更多选项可以配置

如何更新

发送#chatgpt更新指令。如果有冲突,可以使用#chatgpt强制更新。

示例与截图

img.png

)T@~XY~NWXUM S1)D$7%I3H image

TODO

其他

常见问题

  1. 如果在linux系统上发现图片模式下emoj无法正常显示,可以搜索安装支持emoj的字体,如Ubuntu可以使用sudo apt install fonts-noto-color-emoji

  2. 我和机器人聊天但没有任何反应怎么办?

    可能是由于Yunzai-bot异常退出等原因造成Redis 队列中有残留的等待问题。使用#清空队列命令清除队列后再试。

  3. Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'xxx'.

    请参照本文档前面的安装依赖部分重新依赖。随着项目更新可能引入新的依赖。

    一般情况下请按照 安装 小节的内容重新安装依赖即可

    最多的问题:载入插件错误:chat

    问题详情:Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'showdown' imported from /app/Yunzai-Bot/plugins/chatgpt-plugin/apps/chat.js

    原因:没装依赖

    解决方式:请参考文档在本插件目录下用pnpm install安装依赖,安装完就不报错了

  4. 反代能自己搭吗?

    能。参考这里

    必应可以用azure或~cloudflare workers~的serverless服务:

    (202307 Cloudflare亡了!)

  5. vit API能本地搭建吗?

    能。克隆下来安装依赖直接运行即可。

  6. 系统后台无法进入怎么办?

    多数情况下是由于服务器未开放3321端口导致,请根据服务器系统和服务器供应商配置,开放3321端口后再试。

交流群

感谢

本项目使用或参考了以下开源项目

本插件的辅助项目

图片以及Bing模式支持 @HalcyonAlcedo

语音vits模型来自于

以及ChatGPT及OpenAI

ChatGLM

赞助

如果觉得本项目好玩或者对你有帮助,愿意的话可以赞助我一口快乐水:

https://afdian.net/a/ikechan8370

贡献者

感谢以下贡献者

Alt

Star History

Star History Chart

工具支持

JetBrains for Open Source development license