diff --git a/src/lang/en.ts b/src/lang/en.ts
index c50fb12d..fd6bdd36 100644
--- a/src/lang/en.ts
+++ b/src/lang/en.ts
@@ -465,5 +465,12 @@ export const languageEnglish = {
newOAIHandle: "New OpenAI Handling",
oaiRandomUser: "Put OAI Random User",
inlayImage: "Inlay Image Feature",
- nativeAutomark: "Experimental Native Automark"
+ nativeAutomark: "Experimental Native Automark",
+ assistantPrefill: "Assistant Prefill",
+ postEndInnerFormat: "Post End",
+ sendChatAsSystem: "Send Chat as System",
+ sendName: "Send Name",
+ utilOverride: "Utility Override",
+ template: "Template",
+
}
\ No newline at end of file
diff --git a/src/lang/ko.ts b/src/lang/ko.ts
index 58464a96..4e60357e 100644
--- a/src/lang/ko.ts
+++ b/src/lang/ko.ts
@@ -417,4 +417,5 @@ export const languageKorean = {
nativeAutomark: "실험적 네이티브 오토마크 사용",
additionalAssets:"추가 에셋",
genTimes: "생성 횟수",
+ template: "템플릿",
}
\ No newline at end of file
diff --git a/src/lib/Setting/Pages/PromptSettings.svelte b/src/lib/Setting/Pages/PromptSettings.svelte
index af50a2b1..76e44dfc 100644
--- a/src/lib/Setting/Pages/PromptSettings.svelte
+++ b/src/lib/Setting/Pages/PromptSettings.svelte
@@ -5,6 +5,8 @@
import { tokenizePreset, type Proompt } from "src/ts/process/proompt";
import { templateCheck } from "src/ts/process/templates/templateCheck";
import { DataBase } from "src/ts/storage/database";
+ import Check from "src/lib/UI/GUI/CheckInput.svelte";
+ import TextInput from "src/lib/UI/GUI/TextInput.svelte";
let sorted = 0
let opened = 0
@@ -13,6 +15,7 @@
let tokens = 0
let extokens = 0
executeTokenize($DataBase.promptTemplate)
+ let subMenu = 0
async function executeTokenize(prest: Proompt[]){
tokens = await tokenizePreset(prest, true)
@@ -29,6 +32,18 @@
{language.promptTemplate}
+
+
+
+
{#if warns.length > 0}
Warning
@@ -38,49 +53,62 @@
{/each}
{/if}
-
- {#if $DataBase.promptTemplate.length === 0}
-
No Format
- {/if}
- {#key sorted}
- {#each $DataBase.promptTemplate as proompt, i}
-
{
- let templates = $DataBase.promptTemplate
- templates.splice(i, 1)
- $DataBase.promptTemplate = templates
- }} moveDown={() => {
- if(i === $DataBase.promptTemplate.length - 1){
- return
- }
- let templates = $DataBase.promptTemplate
- let temp = templates[i]
- templates[i] = templates[i + 1]
- templates[i + 1] = temp
- $DataBase.promptTemplate = templates
- }} moveUp={() => {
- if(i === 0){
- return
- }
- let templates = $DataBase.promptTemplate
- let temp = templates[i]
- templates[i] = templates[i - 1]
- templates[i - 1] = temp
- $DataBase.promptTemplate = templates
- }} />
- {/each}
- {/key}
-
-
+{#if subMenu === 0}
+
+ {#if $DataBase.promptTemplate.length === 0}
+
No Format
+ {/if}
+ {#key sorted}
+ {#each $DataBase.promptTemplate as proompt, i}
+
{
+ let templates = $DataBase.promptTemplate
+ templates.splice(i, 1)
+ $DataBase.promptTemplate = templates
+ }} moveDown={() => {
+ if(i === $DataBase.promptTemplate.length - 1){
+ return
+ }
+ let templates = $DataBase.promptTemplate
+ let temp = templates[i]
+ templates[i] = templates[i + 1]
+ templates[i + 1] = temp
+ $DataBase.promptTemplate = templates
+ }} moveUp={() => {
+ if(i === 0){
+ return
+ }
+ let templates = $DataBase.promptTemplate
+ let temp = templates[i]
+ templates[i] = templates[i - 1]
+ templates[i - 1] = temp
+ $DataBase.promptTemplate = templates
+ }} />
+ {/each}
+ {/key}
+
-{tokens} {language.fixedTokens}
-{extokens} {language.exactTokens}
\ No newline at end of file
+
+
+ {tokens} {language.fixedTokens}
+ {extokens} {language.exactTokens}
+{:else}
+
+
+ {language.postEndInnerFormat}
+
+
+
+
+
+{/if}
\ No newline at end of file
diff --git a/src/ts/process/index.ts b/src/ts/process/index.ts
index 23500d32..84f3ee63 100644
--- a/src/ts/process/index.ts
+++ b/src/ts/process/index.ts
@@ -179,12 +179,13 @@ export async function sendChat(chatProcessIndex = -1,arg:{chatAdditonalTokens?:n
}
let promptTemplate = cloneDeep(db.promptTemplate)
+ const usingPromptTemplate = !!promptTemplate
if(promptTemplate){
promptTemplate.push({
type: 'postEverything'
})
}
- if(currentChar.utilityBot){
+ if(currentChar.utilityBot && (!(usingPromptTemplate && db.proomptSettings.utilOverride))){
promptTemplate = [
{
"type": "plain",
@@ -392,6 +393,12 @@ export async function sendChat(chatProcessIndex = -1,arg:{chatAdditonalTokens?:n
}
case 'postEverything':{
await tokenizeChatArray(unformated.postEverything)
+ if(usingPromptTemplate && db.proomptSettings.postEndInnerFormat){
+ await tokenizeChatArray([{
+ role: 'system',
+ content: db.proomptSettings.postEndInnerFormat
+ }])
+ }
break
}
case 'plain':
@@ -445,7 +452,11 @@ export async function sendChat(chatProcessIndex = -1,arg:{chatAdditonalTokens?:n
if(start >= end){
break
}
- const chats = unformated.chats.slice(start, end)
+ let chats = unformated.chats.slice(start, end)
+
+ if(usingPromptTemplate && db.proomptSettings.sendChatAsSystem){
+ chats = systemizeChat(chats)
+ }
await tokenizeChatArray(chats)
break
}
@@ -729,6 +740,12 @@ export async function sendChat(chatProcessIndex = -1,arg:{chatAdditonalTokens?:n
}
case 'postEverything':{
pushPrompts(unformated.postEverything)
+ if(usingPromptTemplate && db.proomptSettings.postEndInnerFormat){
+ pushPrompts([{
+ role: 'system',
+ content: db.proomptSettings.postEndInnerFormat
+ }])
+ }
break
}
case 'plain':
@@ -783,7 +800,10 @@ export async function sendChat(chatProcessIndex = -1,arg:{chatAdditonalTokens?:n
break
}
- const chats = unformated.chats.slice(start, end)
+ let chats = unformated.chats.slice(start, end)
+ if(usingPromptTemplate && db.proomptSettings.sendChatAsSystem){
+ chats = systemizeChat(chats)
+ }
pushPrompts(chats)
break
}
@@ -1244,4 +1264,14 @@ export async function sendChat(chatProcessIndex = -1,arg:{chatAdditonalTokens?:n
}
return true
+}
+
+function systemizeChat(chat:OpenAIChat[]){
+ for(let i=0;i