Add ST preset import
This commit is contained in:
@@ -1195,11 +1195,12 @@ export async function importPreset(){
|
|||||||
const decoded = await decodeMsgpack(fflate.decompressSync(f.data))
|
const decoded = await decodeMsgpack(fflate.decompressSync(f.data))
|
||||||
console.log(decoded)
|
console.log(decoded)
|
||||||
if(decoded.presetVersion === 0 && decoded.type === 'preset'){
|
if(decoded.presetVersion === 0 && decoded.type === 'preset'){
|
||||||
pre = decodeMsgpack(Buffer.from(await decryptBuffer(decoded.pres, 'risupreset')))
|
pre = {...presetTemplate,...decodeMsgpack(Buffer.from(await decryptBuffer(decoded.pres, 'risupreset')))}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
pre = (JSON.parse(Buffer.from(f.data).toString('utf-8')))
|
pre = {...presetTemplate,...(JSON.parse(Buffer.from(f.data).toString('utf-8')))}
|
||||||
|
console.log(pre)
|
||||||
}
|
}
|
||||||
let db = get(DataBase)
|
let db = get(DataBase)
|
||||||
if(pre.presetVersion && pre.presetVersion >= 3){
|
if(pre.presetVersion && pre.presetVersion >= 3){
|
||||||
@@ -1226,6 +1227,101 @@ export async function importPreset(){
|
|||||||
setDatabase(db)
|
setDatabase(db)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(Array.isArray(pre?.prompt_order?.[0]?.order) && Array.isArray(pre?.prompts)){
|
||||||
|
//ST preset
|
||||||
|
const pr = cloneDeep(presetTemplate)
|
||||||
|
pr.promptTemplate = []
|
||||||
|
|
||||||
|
function findPrompt(identifier:number){
|
||||||
|
return pre.prompts.find((p:any) => p.identifier === identifier)
|
||||||
|
}
|
||||||
|
pr.temperature = (pre.temperature ?? 0.8) * 100
|
||||||
|
pr.frequencyPenalty = (pre.frequency_penalty ?? 0.7) * 100
|
||||||
|
pr.PresensePenalty = (pre.presence_penalty * 0.7) * 100
|
||||||
|
pr.top_p = pre.top_p ?? 1
|
||||||
|
|
||||||
|
for(const prompt of pre?.prompt_order?.[0]?.order){
|
||||||
|
const p = findPrompt(prompt?.identifier ?? '')
|
||||||
|
if(p){
|
||||||
|
switch(p.identifier){
|
||||||
|
case 'main':{
|
||||||
|
pr.promptTemplate.push({
|
||||||
|
type: 'plain',
|
||||||
|
type2: 'main',
|
||||||
|
text: p.content ?? "",
|
||||||
|
role: p.role ?? "system"
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
case 'jailbreak':
|
||||||
|
case 'nsfw':{
|
||||||
|
pr.promptTemplate.push({
|
||||||
|
type: 'jailbreak',
|
||||||
|
type2: 'normal',
|
||||||
|
text: p.content ?? "",
|
||||||
|
role: p.role ?? "system"
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
case 'dialogueExamples':
|
||||||
|
case 'charPersonality':
|
||||||
|
case 'scenario':{
|
||||||
|
break //ignore
|
||||||
|
}
|
||||||
|
case 'chatHistory':{
|
||||||
|
pr.promptTemplate.push({
|
||||||
|
type: 'chat',
|
||||||
|
rangeEnd: 'end',
|
||||||
|
rangeStart: 0
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
case 'worldInfoBefore':{
|
||||||
|
pr.promptTemplate.push({
|
||||||
|
type: 'lorebook'
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
case 'worldInfoAfter':{
|
||||||
|
pr.promptTemplate.push({
|
||||||
|
type: 'postEverything'
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
case 'charDescription':{
|
||||||
|
pr.promptTemplate.push({
|
||||||
|
type: 'description'
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
case 'personaDescription':{
|
||||||
|
pr.promptTemplate.push({
|
||||||
|
type: 'persona'
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
default:{
|
||||||
|
console.log(p)
|
||||||
|
pr.promptTemplate.push({
|
||||||
|
type: 'plain',
|
||||||
|
type2: 'normal',
|
||||||
|
text: p.content ?? "",
|
||||||
|
role: p.role ?? "system"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
console.log("Prompt not found", prompt)
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pr.name = "Imported ST Preset"
|
||||||
|
db.botPresets.push(pr)
|
||||||
|
setDatabase(db)
|
||||||
|
return
|
||||||
|
}
|
||||||
pre.name ??= "Imported"
|
pre.name ??= "Imported"
|
||||||
db.botPresets.push(pre)
|
db.botPresets.push(pre)
|
||||||
setDatabase(db)
|
setDatabase(db)
|
||||||
|
|||||||
Reference in New Issue
Block a user