feat: Add custom toggles

This commit is contained in:
kwaroran
2024-05-27 11:18:15 +09:00
parent eb992a5c6b
commit 1d5a829f88
7 changed files with 62 additions and 6 deletions

View File

@@ -783,6 +783,9 @@ const matcher = (p1:string,matcherArg:matcherArg) => {
}
return null
}
case 'getglobalvar':{
return getGlobalChatVar(v)
}
case 'button':{
return `<button class="button-default" risu-trigger="${arra[2]}">${arra[1]}</button>`
}
@@ -1461,6 +1464,11 @@ export function getChatVar(key:string){
return (chat.scriptstate['$' + key])?.toString() ?? 'null'
}
export function getGlobalChatVar(key:string){
const db = get(DataBase)
return db.globalChatVariables[key] ?? 'null'
}
export function setChatVar(key:string, value:string){
const db = get(DataBase)
const selectedChar = get(selectedCharID)

View File

@@ -1,4 +1,6 @@
import { get } from "svelte/store";
import { tokenizeAccurate } from "../tokenizer";
import type { Database } from "../storage/database";
export type PromptItem = PromptItemPlain|PromptItemTyped|PromptItemChat|PromptItemAuthorNote;
export type PromptType = PromptItem['type'];
@@ -61,4 +63,21 @@ export async function tokenizePreset(prompts:PromptItem[], consti:boolean = fals
}
}
return total
}
export function getCustomToggles(template:string){
if(!template){
return []
}
const keyValue:[string, string][] = []
for(const line of template.split('\n')){
const [key, value] = line.split('=')
if(key && value){
keyValue.push([key, value])
}
}
return keyValue
}

View File

@@ -400,6 +400,8 @@ export function setDatabase(data:Database){
data.sideBarSize ??= 0
data.textAreaTextSize ??= 0
data.combineTranslation ??= false
data.customPromptTemplateToggle ??= ''
data.globalChatVariables ??= {}
changeLanguage(data.language)
DataBase.set(data)
@@ -657,7 +659,8 @@ export interface Database{
combineTranslation:boolean
dynamicAssets:boolean
dynamicAssetsEditDisplay:boolean
customPromptTemplateToggle:string
globalChatVariables:{[key:string]:string}
}
export interface customscript{
@@ -878,6 +881,7 @@ export interface botPreset{
top_a?:number
openrouterProvider?:string
useInstructPrompt?:boolean
customPromptTemplateToggle?:string
}
@@ -1144,7 +1148,8 @@ export function saveCurrentPreset(){
min_p: db.min_p,
top_a: db.top_a,
openrouterProvider: db.openrouterProvider,
useInstructPrompt: db.useInstructPrompt
useInstructPrompt: db.useInstructPrompt,
customPromptTemplateToggle: db.customPromptTemplateToggle ?? ""
}
db.botPresets = pres
setDatabase(db)
@@ -1227,6 +1232,7 @@ export function setPreset(db:Database, newPres: botPreset){
db.top_a = newPres.top_a
db.openrouterProvider = newPres.openrouterProvider
db.useInstructPrompt = newPres.useInstructPrompt ?? false
db.customPromptTemplateToggle = newPres.customPromptTemplateToggle ?? ''
return db
}