云崽系机器人的智能聊天插件 https://www.yunzai.chat/
Find a file
HalcyonAlcedo ca3788d719
feat: 新增对tool支持的相关接口 (#495)
* 修复后台API反代地址未能正确显示的问题

* 更新渲染页面配置

* 添加个人聊天模式配置

* 将用户数据获取改到common中

* 修复错误的渲染页面参数

* 修复bug

* 添加Live2D

* 修复渲染页面错误

* 修复渲染传入值

* 更新渲染

* 修复图表渲染bug

* 调整live2d模型大小

* 修复live2d无法关闭问题

* 修复错误的传值

* 修复ai命名

* 更新渲染

* 添加用户独立设定

* 更新渲染配置适配个人设置

* 修复合并导致的渲染文件异常删除

* 修复用户数据缺失问题

* 修复旧版本数据缺失问题

* 修复bing参数不存在问题,兼容miao的截图

* 修复受限token重试时不被排除的问题

* 修复个人模式下结束对话的模式错误

* 更新渲染页面,将预览版转为正式版

* 修复传统渲染无法调用截图功能的问题

* 文字模式也进行一次缓存

* 更新README

* Update README.md

* 更新渲染

* 更新渲染页面

* 添加版本信息

* 遗漏参数

* 丢失引用

* 补充路由

* 添加云转码功能

* 判断node-silk是否正常合成

* 云转码提示

* 修复图片渲染出错

* 云转码支持发送Buffer

* 添加云转码模式支持

* 更新描述

* 更新后台渲染页面

* 更新配置

* 更新渲染页面

* 添加云渲染

* 修复错误的接口调用

* 修复遗漏的数据转换

* 修复获取的图片数据异常问题

* 更新后台配置

* 更新渲染页面

* 修复云渲染访问地址错误

* 更新渲染页面

* 修复遗漏的模型文件

* 修复live2d问题

* 更新live2d以及相关配置

* 修复遗漏的数据参数

* 修复新live2d情况下云渲染错误的问题

* 适配云渲染1.1.2等待参数

* 添加云服务api检查

* 更新渲染页面

* 添加live2d加载检测

* 修复错误的属性判断

* 添加云渲染DPR

* 更新sydney支持内容生成

* 修改文件模式语音转码接收模式

* 添加云转码时recordUrl检查

* 更新后台配置项

* 修复错误的文本描述

* 更新后台页面

* 添加全局对话模式设置,更新后台面板

* 添加第三方渲染服务适配

* 修复第三方服务器live2d加载导致的渲染失败问题

* 修复后台地址无法实时保存的问题

* 添加live2d模型透明度设置

* 合并更新

* 更新渲染页面

* 更新渲染页面

* 使dpr对本地渲染也生效

* 更新渲染页面

* 添加网页截图功能

* 添加后台配置项

* 添加配置导出和导入功能

* 运行通过参数传递用户token

* 登录时将token作为参数返回

* 修复错误

* 添加密码修改和用户删除接口

* 修正密码比对

* 修复user错误

* 优化数据保存时的返回值

* 添加系统额外服务检查api

* 添加AccessToken配置

* 修复错误的导入提示

* 添加ws连接

* 添加ws用户信息获取

* 修复错误的循环

* 修正ws参数

* 添加群消息获取权限

* 添加用户多端登录支持

* 修复错误的路径引用

* 修复错误的路径引用

* 修复错误

* 修复页面数据获取失败问题

* 修复异常的中断

* 添加配置视图

* 更新配置面板

* 添加用户版本信息

* 更新配置视图

* 修复错误的视图绑定

* 修改视图文件位置,添加mediaLink相关代码

---------

Co-authored-by: ikechan8370 <geyinchibuaa@gmail.com>
2023-07-01 15:47:07 +08:00
.github Update 问题反馈.md 2023-03-12 18:10:41 +08:00
apps feat: 新增对tool支持的相关接口 (#495) 2023-07-01 15:47:07 +08:00
config feat: 黑白名单支持配置qq号;支持所有语音模式下的随机角色对话;新增查看当前用户的回复设置;完善全局设置的相关功能;支持为Azure语音服务随机选择角色;优化设置全局语音角色和查看角色列表的功能;重构了代码以支持现有语音服务的打招呼功能;修复了Guoba面板上Azure语音角色选择的显示问题。 (#436) 2023-06-05 11:40:10 +08:00
prompts fix: gitkeep empty dir 2023-03-14 20:19:06 +08:00
resources feat: 新增对tool支持的相关接口 (#495) 2023-07-01 15:47:07 +08:00
server feat: 新增对tool支持的相关接口 (#495) 2023-07-01 15:47:07 +08:00
utils 🥵🥵🥵 (#496) 2023-07-01 15:46:15 +08:00
.gitignore Fix:修复Live2D的错误,重构Live2D系统 (#410) 2023-05-11 17:46:15 +08:00
.npmrc fix: add npmrc env for nodejieba 2023-04-20 17:14:04 +08:00
guoba.support.js 🥵🥵🥵 (#496) 2023-07-01 15:46:15 +08:00
index.js feat: 智能模式,添加群管、试图、联网搜索、发图、发音乐和视频等功能 (#488) 2023-06-25 01:09:29 +08:00
LICENSE Create LICENSE (#284) 2023-03-25 19:35:16 +08:00
package-lock.json fix: 修正fastify版本 2023-06-25 01:20:06 +08:00
package.json 🥵🥵🥵 (#496) 2023-07-01 15:46:15 +08:00
README.md Update README.md (#493) 2023-06-26 20:05:05 +08:00
yarn.lock fix: 修正fastify版本 2023-06-25 01:20:06 +08:00

chatgpt-plugin

云崽QQ机器人的ChatGPT插件

26224FE397F1E74104C1C007C1A32DDE

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

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

特点

  • 支持单人连续对话Conversation
  • API模式下使用 gpt-3.5-turbo 或 gpt-4 API仅需OpenAI Api Key开箱即用。注意收费
  • 支持问答图片截图和聊天记录导出
  • 支持AI性格调教角色扮演强烈推荐Bing自定义模式
  • 支持对接vits和Azure等回答直接转语音
  • API3模式下绕过Cloudflare防护直接访问ChatGPT的SSE API与官方体验一致且保留对话记录在官网可查。免费。
  • (已不再维护)提供基于浏览器的解决方案作为备选API3不可用的情况下或担心账户安全的用户可以选择使用浏览器模式。
  • 支持新必应token负载均衡限流降级
  • 2023-03-15 API3支持GPT-4尝鲜需要Plus用户
  • 支持ChatGLM模型。基于自建API
  • 2023-04-15 支持Claude by Slack和PoeWIP。Claude配置参考这里
  • 2023-05-12 支持星火大模型
  • 2023-05-29 支持gpt-4 API.必应无需cookie即可对话Sydney和自定义模式

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

版本要求

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

安装与使用方法

安装

在安装之前请先判断自己需要使用哪种模式本插件支持官方API/第三方API/浏览器/必应四种模式。也可以选择我全都要(通过qq发送命令#chatgpt切换浏览器/API/API3/Bing实时切换)

API模式和浏览器模式如何选择

  • API模式会调用OpenAI官方提供的gpt-3.5-turbo APIChatGPT官网同款模型只需要提供API Key。一般情况下该种方式响应速度更快可配置项多且不会像chatGPT官网一样总出现不可用的现象但注意API调用是收费的新用户有18美元试用金可用于支付价格为$0.0020/1K tokens。(问题和回答加起来算token
  • API3模式会调用第三方提供的官网反代API他会帮你绕过CF防护需要提供ChatGPT的Token。效果与官网和浏览器一致但稳定性不一定。发送#chatgpt设置token来设置token。
  • (Deprecated)浏览器模式通过在本地启动Chrome等浏览器模拟用户访问ChatGPT网站使得获得和官方以及API2模式一模一样的回复质量同时保证安全性。缺点是本方法对环境要求较高需要提供桌面环境和一个可用的代理能够访问ChatGPT的IP地址且响应速度不如API而且高峰期容易无法使用。一般作为API3的下位替代。
  • 必应Bing将调用微软新必应接口进行对话。需要在必应网页能够正常使用新必应且设置有效的Bing登录Cookie方可使用。强烈推荐
  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 文件夹内

浏览器模式仅为备选,如您需要使用浏览器模式,您还需要有桌面环境优先级建议API≈必应>API3>浏览器
2.20更新必应被大削变得蠢了建议还是API/API3优先
4.2更新必应站起来了必应天下第一。建议都用必应别用API/API3了。浏览器模式除非极其特殊的需求否则强烈建议不使用已经不维护了。

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

    复制plugins/chatgpt-plugin/config/config.example.json并将其改名为config.json
    编辑plugins/chatgpt-plugin/config/config.json文件,修改必要配置项
    请勿直接修改config.example.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决定联通方式。

  • at模式@机器人 发送聊内容即可

  • prefix模式【#chat+问题】,本模式可以避免指令冲突。

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

文本/图片回复模式

#chatgpt文本/图片/语音模式

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

对话相关

#chatgpt对话列表

#结束对话 [@某人]

#清空chat队列

#移出chat队列首位

#chatgpt开启/关闭问题确认

...

设置相关

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

#chatgpt设置[必应]Token

...

获取帮助

#chatgpt帮助

#chatgpt模式帮助

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

如何更新

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

示例与截图

  • 程序员版

img.png

  • 傲娇版

)T@XYNWXUM S1)D$7%I3H image

TODO

  • V3重构
  • 插件in插件
  • langchain分支完善
  • 游戏机制

其他

常见问题

  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. 反代能自己搭吗?

    能。参考这里

  5. vit API能本地搭建吗

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

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

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

交流群

  • QQ 559567232 [问题交流]
  • QQ 126132049 [机器人试验场]

感谢

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

本插件的辅助项目

图片以及Bing模式支持 @HalcyonAlcedo

语音vits模型来自于

以及ChatGPT及OpenAI

ChatGLM

赞助

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

https://afdian.net/a/ikechan8370

贡献者

感谢以下贡献者

Alt

Star History

Star History Chart

工具支持

JetBrains for Open Source development license