From a122e1cc5d35ead2843a22576b1a7d1ce08a5832 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Sat, 9 Sep 2023 08:23:15 +0900 Subject: [PATCH] [feat] nai improvements, better authornote --- src/lang/en.ts | 1 + src/lib/SideBars/CharConfig.svelte | 9 +++-- src/lib/UI/ProomptItem.svelte | 10 ++++-- src/ts/process/index.ts | 19 ++++++++-- src/ts/process/models/nai.ts | 2 -- src/ts/process/proompt.ts | 10 ++++-- src/ts/process/templates/templates.ts | 51 ++++++--------------------- src/ts/storage/database.ts | 28 +++++++++++++-- src/ts/util.ts | 16 +++++++++ 9 files changed, 92 insertions(+), 54 deletions(-) diff --git a/src/lang/en.ts b/src/lang/en.ts index 6bd0176c..fa48ccc5 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -433,4 +433,5 @@ export const languageEnglish = { textAdventureNAI: "Run as Text Adventure", appendNameNAI: "Append Name on NAI", customStopWords: "Custom Stop Words", + defaultPrompt: "Default Prompt", } \ No newline at end of file diff --git a/src/lib/SideBars/CharConfig.svelte b/src/lib/SideBars/CharConfig.svelte index 086282a9..26b1fbfd 100644 --- a/src/lib/SideBars/CharConfig.svelte +++ b/src/lib/SideBars/CharConfig.svelte @@ -9,7 +9,7 @@ import LoreBook from "./LoreBook/LoreBookSetting.svelte"; import { alertConfirm, alertError, alertNormal, alertSelectChar, alertTOS } from "../../ts/alert"; import BarIcon from "./BarIcon.svelte"; - import { findCharacterbyId, selectMultipleFile } from "../../ts/util"; + import { findCharacterbyId, getAuthorNoteDefaultText, selectMultipleFile } from "../../ts/util"; import { onDestroy } from "svelte"; import {isEqual, cloneDeep} from 'lodash' import Help from "../Others/Help.svelte"; @@ -225,7 +225,12 @@ {/if} {language.authorNote} - + {tokens.localNote} {language.tokens}
diff --git a/src/lib/UI/ProomptItem.svelte b/src/lib/UI/ProomptItem.svelte index 9a80a4cf..6cb9d5fe 100644 --- a/src/lib/UI/ProomptItem.svelte +++ b/src/lib/UI/ProomptItem.svelte @@ -77,10 +77,14 @@ }} /> {/if} {/if} - {#if proompt.type === 'persona' || proompt.type === 'description'} + {#if proompt.type === 'authornote'} + {language.defaultPrompt} + + {/if} + {#if proompt.type === 'persona' || proompt.type === 'description' || proompt.type === 'authornote'} {#if !proompt.innerFormat} { - if(proompt.type === 'persona' || proompt.type === 'description'){ + if(proompt.type === 'persona' || proompt.type === 'description' || proompt.type === 'authornote'){ proompt.innerFormat = "{{slot}}" } }} /> @@ -88,7 +92,7 @@ {language.innerFormat} { - if(proompt.type === 'persona' || proompt.type === 'description'){ + if(proompt.type === 'persona' || proompt.type === 'description' || proompt.type === 'authornote'){ proompt.innerFormat = null } }} /> diff --git a/src/ts/process/index.ts b/src/ts/process/index.ts index be86d980..805442a6 100644 --- a/src/ts/process/index.ts +++ b/src/ts/process/index.ts @@ -304,7 +304,14 @@ export async function sendChat(chatProcessIndex = -1,arg:{chatAdditonalTokens?:n break } case 'authornote':{ - await tokenizeChatArray(unformated.authorNote) + let pmt = cloneDeep(unformated.authorNote) + if(card.innerFormat && pmt.length > 0){ + for(let i=0;i 0){ + for(let i=0;i= 3){ + //NAI preset + const pr = cloneDeep(prebuiltPresets.NAI2) + pr.temperature = pre.parameters.temperature * 100 + pr.maxResponse = pre.parameters.max_length + pr.NAISettings.topK = pre.parameters.top_k + pr.NAISettings.topP = pre.parameters.top_p + pr.NAISettings.topA = pre.parameters.top_a + pr.NAISettings.typicalp = pre.parameters.typical_p + pr.NAISettings.tailFreeSampling = pre.parameters.tail_free_sampling + pr.NAISettings.repetitionPenalty = pre.parameters.repetition_penalty + pr.NAISettings.repetitionPenaltyRange = pre.parameters.repetition_penalty_range + pr.NAISettings.repetitionPenaltySlope = pre.parameters.repetition_penalty_slope + pr.NAISettings.frequencyPenalty = pre.parameters.repetition_penalty_frequency + pr.NAISettings.repostitionPenaltyPresence = pre.parameters.repetition_penalty_presence + pr.PresensePenalty = pre.parameters.repetition_penalty_presence * 100 + pr.NAISettings.cfg_scale = pre.parameters.cfg_scale + pr.NAISettings.mirostat_lr = pre.parameters.mirostat_lr + pr.NAISettings.mirostat_tau = pre.parameters.mirostat_tau + pr.name = pre.name ?? "Imported" + db.botPresets.push(pr) + setDatabase(db) + return + } pre.name ??= "Imported" db.botPresets.push(pre) setDatabase(db) diff --git a/src/ts/util.ts b/src/ts/util.ts index f7902161..3ed8729f 100644 --- a/src/ts/util.ts +++ b/src/ts/util.ts @@ -293,4 +293,20 @@ export async function getEmotion(db:Database,chaEmotion:{[key:string]: [string, } } return datas +} + +export function getAuthorNoteDefaultText(){ + const db = get(DataBase) + const template = db.promptTemplate + if(!template){ + return '' + } + + for(const v of template){ + if(v.type === 'authornote'){ + return v.defaultText ?? '' + } + } + return '' + } \ No newline at end of file