mirror of
https://github.com/ikechan8370/chatgpt-plugin.git
synced 2025-12-16 21:37:11 +00:00
fix: 加了一系列管理功能
This commit is contained in:
parent
8ea7ab07ec
commit
3f08cf4894
8 changed files with 97 additions and 5 deletions
17
apps/draw.js
17
apps/draw.js
|
|
@ -3,6 +3,7 @@ import { segment } from 'oicq'
|
|||
import { createImage, editImage, imageVariation } from '../utils/dalle.js'
|
||||
import { makeForwardMsg } from '../utils/common.js'
|
||||
import _ from 'lodash'
|
||||
import { Config } from '../utils/config.js'
|
||||
|
||||
export class dalle extends plugin {
|
||||
constructor (e) {
|
||||
|
|
@ -33,6 +34,10 @@ export class dalle extends plugin {
|
|||
}
|
||||
|
||||
async draw (e) {
|
||||
if (!Config.enableDraw) {
|
||||
this.reply('画图功能未开启')
|
||||
return false
|
||||
}
|
||||
let ttl = await redis.ttl(`CHATGPT:DRAW:${e.sender.user_id}`)
|
||||
if (ttl > 0 && !e.isMaster) {
|
||||
this.reply(`冷却中,请${ttl}秒后再试`)
|
||||
|
|
@ -76,6 +81,10 @@ export class dalle extends plugin {
|
|||
}
|
||||
|
||||
async variation (e) {
|
||||
if (!Config.enableDraw) {
|
||||
this.reply('画图功能未开启')
|
||||
return false
|
||||
}
|
||||
let ttl = await redis.ttl(`CHATGPT:VARIATION:${e.sender.user_id}`)
|
||||
if (ttl > 0 && !e.isMaster) {
|
||||
this.reply(`冷却中,请${ttl}秒后再试`)
|
||||
|
|
@ -123,6 +132,10 @@ export class dalle extends plugin {
|
|||
}
|
||||
|
||||
async avatarVariation (e) {
|
||||
if (!Config.enableDraw) {
|
||||
this.reply('画图功能未开启')
|
||||
return false
|
||||
}
|
||||
let ats = e.message.filter(m => m.type === 'at').filter(at => at.qq !== e.self_id)
|
||||
if (ats.length > 0) {
|
||||
for (let i = 0; i < ats.length; i++) {
|
||||
|
|
@ -145,6 +158,10 @@ export class dalle extends plugin {
|
|||
}
|
||||
|
||||
async edit (e) {
|
||||
if (!Config.enableDraw) {
|
||||
this.reply('画图功能未开启')
|
||||
return false
|
||||
}
|
||||
let ttl = await redis.ttl(`CHATGPT:EDIT:${e.sender.user_id}`)
|
||||
if (ttl > 0 && !e.isMaster) {
|
||||
this.reply(`冷却中,请${ttl}秒后再试`)
|
||||
|
|
|
|||
10
apps/help.js
10
apps/help.js
|
|
@ -61,6 +61,11 @@ let helpData = [
|
|||
title: '#chatgpt改图',
|
||||
desc: '调用OpenAI Dalle API进行改图,需要有API key并消耗余额。可同时发送图片或回复图片'
|
||||
},
|
||||
{
|
||||
icon: 'switch',
|
||||
title: '#chatgpt开启/关闭画图',
|
||||
desc: '开启或关闭画图功能'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -150,6 +155,11 @@ let helpData = [
|
|||
icon: 'eat',
|
||||
title: '#chatgpt设置(API|Sydney)设定',
|
||||
desc: '设置AI的风格设定'
|
||||
},
|
||||
{
|
||||
icon: 'eat',
|
||||
title: '#chatgpt查看(API|Sydney)设定',
|
||||
desc: '查看AI的风格设定,文本形式返回,设定太长可能发不出来'
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
|||
|
|
@ -94,6 +94,21 @@ export class ChatgptManagement extends plugin {
|
|||
reg: '^#chatgpt设置(Bing|必应|Sydney|悉尼|sydney|bing)设定',
|
||||
fnc: 'setBingPromptPrefix',
|
||||
permission: 'master'
|
||||
},
|
||||
{
|
||||
reg: '^#chatgpt(开启|关闭)画图$',
|
||||
fnc: 'switchDraw',
|
||||
permission: 'master'
|
||||
},
|
||||
{
|
||||
reg: '^#chatgpt查看(API|api)设定$',
|
||||
fnc: 'queryAPIPromptPrefix',
|
||||
permission: 'master'
|
||||
},
|
||||
{
|
||||
reg: '^#chatgpt查看(Bing|必应|Sydney|悉尼|sydney|bing)设定$',
|
||||
fnc: 'queryBingPromptPrefix',
|
||||
permission: 'master'
|
||||
}
|
||||
]
|
||||
})
|
||||
|
|
@ -298,7 +313,7 @@ export class ChatgptManagement extends plugin {
|
|||
// eslint-disable-next-line no-irregular-whitespace
|
||||
API模式会调用OpenAI官方提供的gpt-3.5-turbo API,只需要提供API Key。一般情况下,该种方式响应速度更快,不会像chatGPT官网一样总出现不可用的现象,但注意gpt-3.5-turbo的API调用是收费的,新用户有18美元试用金可用于支付,价格为$0.0020/ 1K tokens.(问题和回答加起来算token)
|
||||
|
||||
API3模式会调用第三方提供的官网反代API,他会帮你绕过CF防护,需要提供ChatGPT的Token。效果与官网和浏览器一致,但稳定性不一定。设置token和API2方法一样。#chatgpt设置token
|
||||
API3模式会调用官网反代API,他会帮你绕过CF防护,需要提供ChatGPT的Token。效果与官网和浏览器一致。设置token指令:#chatgpt设置token。
|
||||
|
||||
浏览器模式通过在本地启动Chrome等浏览器模拟用户访问ChatGPT网站,使得获得和官方以及API2模式一模一样的回复质量,同时保证安全性。缺点是本方法对环境要求较高,需要提供桌面环境和一个可用的代理(能够访问ChatGPT的IP地址),且响应速度不如API,而且高峰期容易无法使用。
|
||||
|
||||
|
|
@ -491,4 +506,30 @@ export class ChatgptManagement extends plugin {
|
|||
await this.reply('Bing Sydney模式的设定设置成功', true)
|
||||
this.finish('saveBingPromptPrefix')
|
||||
}
|
||||
|
||||
async switchDraw (e) {
|
||||
if (e.msg.indexOf('开启') > -1) {
|
||||
if (Config.enableDraw) {
|
||||
await this.reply('当前已经开启chatgpt画图功能', true)
|
||||
} else {
|
||||
Config.enableDraw = true
|
||||
await this.reply('chatgpt画图功能开启成功', true)
|
||||
}
|
||||
} else {
|
||||
if (!Config.enableDraw) {
|
||||
await this.reply('当前未开启chatgpt画图功能', true)
|
||||
} else {
|
||||
Config.enableDraw = false
|
||||
await this.reply('chatgpt画图功能关闭成功', true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async queryAPIPromptPrefix (e) {
|
||||
await this.reply(Config.promptPrefixOverride, true)
|
||||
}
|
||||
|
||||
async queryBingPromptPrefix (e) {
|
||||
await this.reply(Config.sydney, true)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue