[fix] triggers

This commit is contained in:
kwaroran
2023-08-03 19:35:30 +09:00
parent 40346e4f24
commit 3af31f8383
2 changed files with 16 additions and 18 deletions

View File

@@ -630,9 +630,11 @@ export async function sendChat(chatProcessIndex = -1,arg:{chatAdditonalTokens?:n
break
}
}
currentChat = db.characters[selectedChar].chats[selectedChat]
const triggerResult = await runTrigger(currentChar, 'output', {chat:currentChat})
if(triggerResult){
console.log(triggerResult)
if(triggerResult && triggerResult.chat){
db.characters[selectedChar].chats[selectedChat] = triggerResult.chat
setDatabase(db)
}
@@ -653,13 +655,17 @@ export async function sendChat(chatProcessIndex = -1,arg:{chatAdditonalTokens?:n
saying: currentChar.chaId
})
db.characters[selectedChar].reloadKeys += 1
const triggerResult = await runTrigger(currentChar, 'output', {chat:currentChat})
if(triggerResult){
db.characters[selectedChar].chats[selectedChat] = triggerResult.chat
}
await sayTTS(currentChar, result)
setDatabase(db)
}
currentChat = db.characters[selectedChar].chats[selectedChat]
const triggerResult = await runTrigger(currentChar, 'output', {chat:currentChat})
if(triggerResult && triggerResult.chat){
db.characters[selectedChar].chats[selectedChat] = triggerResult.chat
setDatabase(db)
}
}
if(req.special){

View File

@@ -60,8 +60,8 @@ export type additonalSysPrompt = {
}
export async function runTrigger(char:character,mode:triggerMode, arg:{
chat?: Chat
} = {}){
chat: Chat
}){
char = cloneDeep(char)
let additonalSysPrompt:additonalSysPrompt = {
start:'',
@@ -69,8 +69,8 @@ export async function runTrigger(char:character,mode:triggerMode, arg:{
promptend: ''
}
const triggers = char.triggerscript
const chat = arg.chat ?? char.chats[char.chatPage]
if(!triggers){
const chat = cloneDeep(arg.chat ?? char.chats[char.chatPage])
if((!triggers) || (triggers.length === 0)){
return null
}
let varValues = getVarChat(-1, char)
@@ -182,14 +182,6 @@ export async function runTrigger(char:character,mode:triggerMode, arg:{
}
}
}
if(varValuesChanged){
chat.message[chat.message.length-1].data = chat.message.at(-1).data.replaceAll(/{{(setvar|getvar)::.+?}}/gis,'') + Object.keys(varValues).map((v)=>`{{setvar::${v}::${varValues[v]}}}`).join('')
}
if(arg.chat !== undefined && arg.chat !== null){
char.chats[char.chatPage] = chat
}
let caculatedTokens = 0
if(additonalSysPrompt.start){
caculatedTokens += await tokenize(additonalSysPrompt.start)