This commit is contained in:
ikechan8370 2025-03-13 15:54:32 +08:00
parent 116479e34e
commit 54806ee6fb
6 changed files with 265 additions and 15 deletions

View file

@ -1,9 +1,9 @@
import Config from '../config/config.js'
import { Chaite, SendMessageOption } from 'chaite'
import { getPreset, intoUserMessage } from '../utils/message.js'
export class Chat extends plugin {
constructor () {
let toggleMode = Config.basic.toggleMode
let prefix = Config.basic.togglePrefix
super({
name: 'ChatGPT-Plugin对话',
dsc: 'ChatGPT-Plugin对话',
@ -11,24 +11,39 @@ export class Chat extends plugin {
priority: 0,
rule: [
{
reg: toggleMode === 'at' ? '^[^#][sS]*' : `^#?(图片)?${prefix}[^gpt][sS]*`,
fnc: 'chat'
reg: '^[^#][sS]*',
fnc: 'chat',
log: false
}
]
})
}
async chat (e) {
const state = await Chaite.getInstance().getUserStateStorage().getItem(e.sender.user_id + '')
const userSettings = state.settings
const sendMessageOptions = SendMessageOption.create({
model: userSettings.model,
temperature: userSettings.temperature,
max_tokens: userSettings.maxToken,
systemOverride: userSettings.systemOverride,
const sendMessageOptions = SendMessageOption.create(state.settings)
const preset = await getPreset(e, state.settings.preset, Config.basic.toggleMode, Config.basic.togglePrefix)
if (!preset) {
logger.debug('未找到预设,不进入对话')
return false
}
const userMessage = await intoUserMessage(e, {
handleReplyText: false,
handleReplyImage: true,
useRawMessage: false,
handleAtMsg: true,
excludeAtBot: false,
toggleMode: Config.basic.toggleMode,
togglePrefix: Config.basic.togglePrefix
})
Chaite.getInstance().sendMessage(msg, e, )
const response = await Chaite.getInstance().sendMessage(userMessage, e, {
...sendMessageOptions,
chatPreset: preset
})
const responseText = response.contents
.filter(c => c.type === 'text')
.map(c => (/** @type {import('chaite').TextContent} **/ c).text)
.reduce((a, b) => a + b, '')
await this.reply(responseText)
}
}