From 59c34956cfe5cf0fd1eb3f06452f38769d545920 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Wed, 17 May 2023 02:18:34 +0900 Subject: [PATCH] [feat] added memory limit line --- src/lang/en.ts | 3 ++- src/lib/ChatScreens/Chat.svelte | 7 ++++--- src/lib/ChatScreens/DefaultChatScreen.svelte | 5 +++++ src/lib/SideBars/Settings.svelte | 5 +++++ src/styles.css | 4 ++++ src/ts/database.ts | 8 ++++++++ src/ts/process/index.ts | 9 ++++++--- src/ts/process/supaMemory.ts | 5 +++-- src/ts/util.ts | 3 ++- 9 files changed, 39 insertions(+), 10 deletions(-) diff --git a/src/lang/en.ts b/src/lang/en.ts index c2498f8d..9ab20337 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -245,5 +245,6 @@ export const languageEnglish = { Speech: "Speech", ToggleSuperMemory: "Toggle SupaMemory", SuperMemory:"SupaMemory", - useExperimental: "Able Experimental Features" + useExperimental: "Able Experimental Features", + showMemoryLimit: "Show Memory Limit" } diff --git a/src/lib/ChatScreens/Chat.svelte b/src/lib/ChatScreens/Chat.svelte index 96ecfd44..badda558 100644 --- a/src/lib/ChatScreens/Chat.svelte +++ b/src/lib/ChatScreens/Chat.svelte @@ -10,6 +10,7 @@ import { replacePlaceholders } from "../../ts/util"; export let message = '' export let name = '' + export let isLastMemory:boolean export let img:string|Promise = '' export let idx = -1 export let rerollIcon = false @@ -61,8 +62,8 @@ $: displaya(message) -
-
+
+
{#await img}
{:then m} @@ -142,7 +143,7 @@ justify-content: flex-start; } .chat{ - max-width: calc(95% - 0.5rem); + max-width: calc(100% - 0.5rem); word-break: normal; overflow-wrap: anywhere; } diff --git a/src/lib/ChatScreens/DefaultChatScreen.svelte b/src/lib/ChatScreens/DefaultChatScreen.svelte index 937cf5b0..410c8908 100644 --- a/src/lib/ChatScreens/DefaultChatScreen.svelte +++ b/src/lib/ChatScreens/DefaultChatScreen.svelte @@ -246,6 +246,7 @@ rerollIcon={i === 0} onReroll={reroll} unReroll={unReroll} + isLastMemory={$DataBase.characters[$selectedCharID].chats[$DataBase.characters[$selectedCharID].chatPage].lastMemory === (chat.chatId ?? 'none') && $DataBase.showMemoryLimit} /> {:else} {/if} {:else} @@ -264,6 +266,7 @@ name={$DataBase.username} message={chat.data} img={getCharImage($DataBase.userIcon, 'css')} + isLastMemory={$DataBase.characters[$selectedCharID].chats[$DataBase.characters[$selectedCharID].chatPage].lastMemory === (chat.chatId ?? 'none') && $DataBase.showMemoryLimit} /> {/if} {/each} @@ -300,6 +303,8 @@ } $DataBase.characters[$selectedCharID] = cha }} + isLastMemory={false} + /> {#if !$DataBase.characters[$selectedCharID].removedQuotes && $DataBase.characters[$selectedCharID].creatorNotes.length >= 2} { diff --git a/src/lib/SideBars/Settings.svelte b/src/lib/SideBars/Settings.svelte index ca7e7c22..e7536ed4 100644 --- a/src/lib/SideBars/Settings.svelte +++ b/src/lib/SideBars/Settings.svelte @@ -363,6 +363,11 @@ {language.fullscreen}
+
+ + {language.showMemoryLimit} +
+
{ if(check){ diff --git a/src/styles.css b/src/styles.css index 712fac23..3398f55e 100644 --- a/src/styles.css +++ b/src/styles.css @@ -107,4 +107,8 @@ html, body{ border: none; outline: 0; border-bottom: 1px solid #6272a4; +} + +.bgc{ + border-top: 1px solid rgba(98, 114, 164, 0.3); } \ No newline at end of file diff --git a/src/ts/database.ts b/src/ts/database.ts index 0eb32603..c99d74f2 100644 --- a/src/ts/database.ts +++ b/src/ts/database.ts @@ -80,6 +80,9 @@ export function setDatabase(data:Database){ if(checkNullish(data.language)){ data.language = 'en' } + if(checkNullish(data.swipe)){ + data.swipe = true + } if(checkNullish(data.translator)){ data.translator = '' } @@ -187,6 +190,9 @@ export function setDatabase(data:Database){ if(checkNullish(data.supaMemoryPrompt)){ data.supaMemoryPrompt = '' } + if(checkNullish(data.showMemoryLimit)){ + data.showMemoryLimit = false + } if(checkNullish(data.sdConfig)){ data.sdConfig = { width:512, @@ -399,6 +405,7 @@ export interface Database{ showUnrecommended:boolean elevenLabKey:string useExperimental:boolean + showMemoryLimit:boolean } @@ -422,6 +429,7 @@ export interface Chat{ localLore: loreBook[] sdData?:string supaMemoryData?:string + lastMemory?:string } export interface Message{ diff --git a/src/ts/process/index.ts b/src/ts/process/index.ts index 4c04303b..5b564118 100644 --- a/src/ts/process/index.ts +++ b/src/ts/process/index.ts @@ -238,18 +238,21 @@ export async function sendChat(chatProcessIndex = -1):Promise { chats = sp.chats currentTokens = sp.currentTokens currentChat.supaMemoryData = sp.memory ?? currentChat.supaMemoryData + currentChat.lastMemory = sp.lastId ?? currentChat.lastMemory } else{ while(currentTokens > maxContextTokens){ if(chats.length <= 1){ alertError(language.errors.toomuchtoken) - + return false } - + currentTokens -= (await tokenize(chats[0].content) + 1) chats.splice(0, 1) - } + } + currentChat.lastMemory = chats[0].memo + console.log(currentChat.lastMemory) } let bias:{[key:number]:number} = {} diff --git a/src/ts/process/supaMemory.ts b/src/ts/process/supaMemory.ts index c35a00ab..b2fa6d77 100644 --- a/src/ts/process/supaMemory.ts +++ b/src/ts/process/supaMemory.ts @@ -5,7 +5,7 @@ import { tokenize } from "../tokenizer"; import { findCharacterbyId } from "../util"; import { requestChatData } from "./request"; -export async function supaMemory(chats:OpenAIChat[],currentTokens:number,maxContextTokens:number,room:Chat,char:character|groupChat): Promise<{ currentTokens: number; chats: OpenAIChat[]; error?:string; memory?:string}>{ +export async function supaMemory(chats:OpenAIChat[],currentTokens:number,maxContextTokens:number,room:Chat,char:character|groupChat): Promise<{ currentTokens: number; chats: OpenAIChat[]; error?:string; memory?:string;lastId?:string}>{ const db = get(DataBase) console.log("Memory: " + currentTokens) @@ -147,7 +147,8 @@ export async function supaMemory(chats:OpenAIChat[],currentTokens:number,maxCont return { currentTokens: currentTokens, chats: chats, - memory: lastId + '\n' + supaMemory + memory: lastId + '\n' + supaMemory, + lastId: lastId } } diff --git a/src/ts/util.ts b/src/ts/util.ts index 2c4e0d68..49531428 100644 --- a/src/ts/util.ts +++ b/src/ts/util.ts @@ -27,7 +27,8 @@ export function messageForm(arg:Message[], loadPages:number){ role: m.role, data: reformatContent(m.data), index: i, - saying: m.saying + saying: m.saying, + chatId: m.chatId ?? 'none' }) } return a.slice(0, loadPages)