mirror of
https://github.com/ikechan8370/chatgpt-plugin.git
synced 2025-12-17 22:07:10 +00:00
* 修复引用转发,默认bing模式并发 * 开启stream增加稳定性 * fix: remove queue element only in non-bing mode * 使用chatgpt-api自带的超时逻辑,文字过多时启动切换到图片输出防止被吞 * Update chat.js * 添加Bing专用的图片输出样式 * 添加chatgpt的新图片模式,临时处理切换api导致的对话异常 * 修改bing样式表 * 为图片添加外部页面缓存 * 为图片模式添加MathJax * feat: add switch for qrcode * 防止script攻击 * 修复网页模板错误 * 修复bing页面引用错误 * 缓存服务器异常时处理 * 添加默认配置加载 * 修复配置文件路径错误 * 删除重复的模板文件,修复二维码地址错误 * 修正图片渲染错误 * 修复引用渲染错误 * 二维码网址统一改为使用本地配置 * 添加关闭思考提示的配置项 * 修复在Windows上无法载入配置文件的问题 * 修复关闭qr的情况下渲染错误 * 改为使用base64传递返回数据 * 当异常过多时使用图片输出 * 添加锅巴面板配置支持 * 补充遗漏的默认配置 * 修复qr模式下引用未被传递的问题 * 修复未将引用数据传输给缓存服务器的问题 * 删除无用的bingTimeoutMs配置项 * 添加消息队列超时弹出 * 优化图片模式处理,解决对话队列卡住的问题 * 添加对图片ocr的支持 * 添加图片识别配置项 * 添加黑名单配置项 * 修复一些bug * 修改锅巴配置格式和描述 * 传入数据也使用markdown * 图片识别换行改为marked兼容 * 添加绘图CD配置项 * 独立render模块,添加图片回复引用 * 添加必应风格 * 修复上下文,修改bing样式 * 修复上下文 * 添加Sydney上下文支持 * 调整不同模式下的bing渲染颜色 * 修复样式 * 修复无法结束会话的问题 * fix: 更新版本号 * 修复无法结束对话的问题 * 向缓存服务器传送样式 * 为网址格式的配置添加验证 * 去除重复的Keyv删除,取消锅巴配置格式检查 * 闭合中断的代码块 * 试添加Sydney图片模式的情感显示 * 修复at不兼容 * 处理意外的markdown包裹和结构解析修复 * 修复markdown处理的顺序错误 * 兼容json换行 * 重写completeJSON和使用 * 修复换行格式异常 * 均衡BingToken使用 * 修复删除token的数组处理错误 * 修改token文字描述 * 创建本地缓存服务 * 修复首次使用无法添加bingtoken的问题 * 修复意外的删除格式问题,添加查看token功能 * 修复路由错误,暂时固定ip测试 * 恢复引用功能 * 更新渲染页面 * 更换缓存目录 * 清除调试用消息 * 调整屏幕分辨率 * 使用服务器生成的访问地址 * 改为使用api获取公网ip * 修复引用显示 * 添加依赖需求 * 更新渲染页面和渲染api * 修复渲染页面错误 * 修复建议字符串切割,添加帮助路由 * 添加内容中图片数据获取功能 * 试修复suggestbug * 修复图片导致服务器卡死的问题 * 暂时禁用图片 * 尝试恢复图片 * 添加链接图片识别 * 替换掉request * 修复可能的responseUrls空值 * 优化格式 * 更新渲染页面 * 尝试新的引用索引 * 取消渲染时旧的策略 * 更新帮助页面 * 修复帮助路由 * 修复渲染页面错误 * 修复错误的正则 * 修改系统api服务 * 添加配置项 * 将新渲染方式加入配置并还原原渲染方式,进行并存 * 暂时取消端口设置功能 * 重新开启端口设置 * 修复旧渲染引用 * 更新帮助样式 --------- Co-authored-by: ikechan8370 <geyinchibuaa@gmail.com>
310 lines
9.1 KiB
JavaScript
310 lines
9.1 KiB
JavaScript
import plugin from '../../../lib/plugins/plugin.js'
|
||
import { Config } from '../utils/config.js'
|
||
import { render, renderUrl } from '../utils/common.js'
|
||
let version = Config.version
|
||
let helpData = [
|
||
{
|
||
group: '聊天',
|
||
list: [
|
||
{
|
||
icon: 'chat',
|
||
title: Config.toggleMode === 'at' ? '@我+聊天内容' : '#chat+聊天内容',
|
||
desc: '与机器人聊天'
|
||
},
|
||
{
|
||
icon: 'chat',
|
||
title: '#chat1/#chat3/#chatglm/#bing',
|
||
desc: '分别使用API/API3/ChatGLM/Bing模式与机器人聊天,无论主人设定了何种全局模式'
|
||
},
|
||
{
|
||
icon: 'chat-private',
|
||
title: '私聊与我对话',
|
||
desc: '与机器人聊天'
|
||
},
|
||
{
|
||
icon: 'switch',
|
||
title: '#chatgpt切换对话+对话id',
|
||
desc: '目前仅API3模式下可用,切换到指定的对话中'
|
||
},
|
||
{
|
||
icon: 'switch',
|
||
title: '#chatgpt加入对话+@某人',
|
||
desc: '目前仅API3模式下可用,加入到某人当前进行的对话中'
|
||
},
|
||
{
|
||
icon: 'destroy',
|
||
title: '#chatgpt删除对话+对话id或@用户',
|
||
desc: '删除指定对话,并清空与用户的关联信息。@用户时支持多个用户'
|
||
},
|
||
{
|
||
icon: 'destroy',
|
||
title: '#结束对话',
|
||
desc: '结束自己当前对话,下次开启对话机器人将遗忘掉本次对话内容。'
|
||
},
|
||
{
|
||
icon: 'destroy',
|
||
title: '#结束全部对话',
|
||
desc: '结束正在与本机器人进行对话的全部用户的对话。'
|
||
},
|
||
{
|
||
icon: 'destroy-other',
|
||
title: '#结束对话 @某人',
|
||
desc: '结束该用户当前对话,下次开启对话机器人将遗忘掉本次对话内容。'
|
||
},
|
||
{
|
||
icon: 'confirm',
|
||
title: '#chatgpt(导出)聊天记录',
|
||
desc: '图片形式导出聊天记录,目前仅支持Bing下的Sydney和自定义'
|
||
}
|
||
]
|
||
},
|
||
{
|
||
group: '画图',
|
||
list: [
|
||
{
|
||
icon: 'draw',
|
||
title: '#chatgpt画图+prompt(/张数/图片大小)',
|
||
desc: '调用OpenAI Dalle API进行绘图,需要有API key并消耗余额。图片大小只能是256x256/512x512/1024x1024中的一个.默认为1张、512x512'
|
||
},
|
||
{
|
||
icon: 'draw',
|
||
title: '#chatgpt改图',
|
||
desc: '调用OpenAI Dalle API进行改图,需要有API key并消耗余额。可同时发送图片或回复图片'
|
||
},
|
||
{
|
||
icon: 'switch',
|
||
title: '#chatgpt开启/关闭画图',
|
||
desc: '开启或关闭画图功能'
|
||
}
|
||
]
|
||
},
|
||
{
|
||
group: '管理',
|
||
list: [
|
||
{
|
||
icon: 'picture',
|
||
title: '#chatgpt图片模式',
|
||
desc: '机器人以图片形式回答'
|
||
},
|
||
{
|
||
icon: 'text',
|
||
title: '#chatgpt文本模式',
|
||
desc: '机器人以文本形式回答,默认选项'
|
||
},
|
||
{
|
||
icon: 'sound',
|
||
title: '#chatgpt语音模式',
|
||
desc: '机器人以语音形式回答'
|
||
},
|
||
{
|
||
icon: 'game',
|
||
title: '#chatgpt设置语音角色',
|
||
desc: '设置语音模式下回复的角色音色'
|
||
},
|
||
{
|
||
icon: 'list',
|
||
title: '#chatgpt对话列表',
|
||
desc: '查询当前哪些人正在与机器人聊天.目前API3模式下支持切换对话'
|
||
},
|
||
{
|
||
icon: 'blue',
|
||
title: '#chatgpt(本群)?(群xxx)?闭嘴(x秒/分钟/小时)',
|
||
desc: '让机器人在本群/某群闭嘴。不指定群时认为全局闭嘴。'
|
||
},
|
||
{
|
||
icon: 'eye',
|
||
title: '#chatgpt(本群)?(群xxx)?(张嘴|开口|说话|上班)',
|
||
desc: '让机器人在本群/某群重新可以说话。不指定群时认为全局开口。'
|
||
},
|
||
{
|
||
icon: 'list',
|
||
title: '#chatgpt查看闭嘴',
|
||
desc: '查看当前闭嘴情况。'
|
||
},
|
||
{
|
||
icon: 'queue',
|
||
title: '#清空chat队列',
|
||
desc: '清空当前对话等待队列。仅建议前方卡死时使用。仅API3模式下可用'
|
||
},
|
||
{
|
||
icon: 'queue',
|
||
title: '#移出chat队列首位',
|
||
desc: '移出当前对话等待队列中的首位。若前方对话卡死可使用本命令。仅API3模式下可用'
|
||
},
|
||
{
|
||
icon: 'confirm',
|
||
title: '#chatgpt开启/关闭问题确认',
|
||
desc: '开启或关闭机器人收到消息后的确认回复消息。'
|
||
},
|
||
{
|
||
icon: 'switch',
|
||
title: '#chatgpt切换浏览器/API/API3/Bing/ChatGLM',
|
||
desc: '切换使用的后端为浏览器或OpenAI API/反代官网API/Bing/自建ChatGLM'
|
||
},
|
||
{
|
||
icon: 'confirm',
|
||
title: '#chatgpt必应切换(精准|均衡|创意|悉尼|自设定)',
|
||
desc: '切换Bing风格。'
|
||
},
|
||
{
|
||
icon: 'confirm',
|
||
title: '#chatgpt必应(开启|关闭)建议回复',
|
||
desc: '开关Bing模式下的建议回复。'
|
||
}
|
||
]
|
||
},
|
||
{
|
||
group: '设置',
|
||
list: [
|
||
{
|
||
icon: 'token',
|
||
title: '#chatgpt设置(必应)token',
|
||
desc: '设置ChatGPT或bing的Token'
|
||
},
|
||
{
|
||
icon: 'coin',
|
||
title: '#OpenAI剩余额度',
|
||
desc: '查询OpenAI API剩余试用额度'
|
||
},
|
||
{
|
||
icon: 'key',
|
||
title: '#chatgpt设置APIKey',
|
||
desc: '设置APIKey'
|
||
},
|
||
{
|
||
icon: 'eat',
|
||
title: '#chatgpt设置(API|Sydney)设定',
|
||
desc: '设置AI的默认风格设定'
|
||
},
|
||
{
|
||
icon: 'eat',
|
||
title: '#chatgpt查看(API|Sydney)设定',
|
||
desc: '查看AI当前的风格设定,文本形式返回,设定太长可能发不出来'
|
||
}
|
||
]
|
||
},
|
||
{
|
||
group: '设定',
|
||
list: [
|
||
{
|
||
icon: 'smiley-wink',
|
||
title: '#chatgpt设定列表',
|
||
desc: '查看所有设定列表,以转发消息形式'
|
||
},
|
||
{
|
||
icon: 'eat',
|
||
title: '#chatgpt查看设定【设定名】',
|
||
desc: '查看指定名字的设定内容。其中API默认和Sydney默认为锅巴面板配置的设定'
|
||
},
|
||
{
|
||
icon: 'coin',
|
||
title: '#chatgpt添加设定',
|
||
desc: '添加一个设定,分此输入设定名称和设定内容。如果名字已存在,则会覆盖(相当于修改)'
|
||
},
|
||
{
|
||
icon: 'switch',
|
||
title: '#chatgpt使用设定【设定名】',
|
||
desc: '使用某个设定。'
|
||
},
|
||
{
|
||
icon: 'confirm',
|
||
title: '#chatgpt(上传|分享|共享)设定',
|
||
desc: '上传设定'
|
||
},
|
||
{
|
||
icon: 'confirm',
|
||
title: '#chatgpt(删除|取消|撤销)共享设定+设定名',
|
||
desc: '从远端删除,只能删除自己上传的设定,根据机器人主人qq号判断。'
|
||
},
|
||
{
|
||
icon: 'confirm',
|
||
title: '#chatgpt(在线)浏览设定(+关键词)(页码X)',
|
||
desc: '搜索公开的设定。默认返回前十条,使用页码X可以翻页,使用关键词可以检索。页码从1开始。'
|
||
},
|
||
{
|
||
icon: 'smiley-wink',
|
||
title: '#chatgpt预览设定详情(+设定名)',
|
||
desc: '根据设定名称预览云端设定的详情信息。'
|
||
},
|
||
{
|
||
icon: 'confirm',
|
||
title: '#chatgpt导入设定',
|
||
desc: '导入其他人分享的设定。注意:相同名字的设定,会覆盖本地已有的设定'
|
||
},
|
||
// {
|
||
// icon: 'confirm',
|
||
// title: '#chatgpt开启/关闭洗脑',
|
||
// desc: '开启或关闭洗脑'
|
||
// },
|
||
// {
|
||
// icon: 'confirm',
|
||
// title: '#chatgpt设置洗脑强度+【强度】',
|
||
// desc: '设置洗脑强度'
|
||
// },
|
||
// {
|
||
// icon: 'confirm',
|
||
// title: '#chatgpt设置洗脑名称+【名称】',
|
||
// desc: '设置洗脑名称'
|
||
// },
|
||
{
|
||
icon: 'help',
|
||
title: '#chatgpt设定帮助',
|
||
desc: '设定帮助'
|
||
}
|
||
]
|
||
},
|
||
{
|
||
group: '其他',
|
||
list: [
|
||
{
|
||
icon: 'smiley-wink',
|
||
title: '#chatgpt打招呼(群号)',
|
||
desc: '让AI随机到某个群去打招呼'
|
||
},
|
||
{
|
||
icon: 'help',
|
||
title: '#chatgpt模式帮助',
|
||
desc: '查看多种聊天模式的区别及当前使用的模式'
|
||
},
|
||
{
|
||
icon: 'help',
|
||
title: '#chatgpt帮助',
|
||
desc: '获取本帮助'
|
||
}
|
||
]
|
||
}
|
||
]
|
||
|
||
export class help extends plugin {
|
||
constructor (e) {
|
||
super({
|
||
name: 'ChatGPT-Plugin帮助',
|
||
dsc: 'ChatGPT-Plugin帮助',
|
||
event: 'message',
|
||
priority: 500,
|
||
rule: [
|
||
{
|
||
reg: '^#(chatgpt|ChatGPT)(命令|帮助|菜单|help|说明|功能|指令|使用说明)$',
|
||
fnc: 'help'
|
||
},
|
||
{
|
||
reg: '^#帮助-',
|
||
fnc: 'newHelp'
|
||
}
|
||
]
|
||
})
|
||
}
|
||
|
||
async help (e) {
|
||
if (Config.preview)
|
||
await renderUrl(e, `http://127.0.0.1:${Config.serverPort || 3321}/help/`, {Viewport: {width: 800, height: 600}})
|
||
else
|
||
await render(e, 'chatgpt-plugin', 'help/index', { helpData, version })
|
||
}
|
||
|
||
async newHelp (e) {
|
||
let use = e.msg.replace(/^#帮助-/, '')
|
||
await renderUrl(e, `http://127.0.0.1:${Config.serverPort || 3321}/help/` + use, {Viewport: {width: 800, height: 600}})
|
||
}
|
||
|
||
}
|