Change DataBase inside svelte to DBState for performance
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
<script lang="ts">
|
||||
import { requestChatData } from "src/ts/process/request";
|
||||
import { doingChat, type OpenAIChat } from "../../ts/process/index";
|
||||
import { DataBase, setDatabase, type character, type Message, type groupChat, type Database } from "../../ts/storage/database";
|
||||
import { DBState, setDatabase, type character, type Message, type groupChat, type Database } from "../../ts/storage/database.svelte";
|
||||
import { selectedCharID } from "../../ts/stores";
|
||||
import { translate } from "src/ts/translator/translator";
|
||||
import { CopyIcon, LanguagesIcon, RefreshCcwIcon } from "lucide-svelte";
|
||||
@@ -18,9 +18,9 @@
|
||||
}
|
||||
|
||||
let { send, messageInput }: Props = $props();
|
||||
let suggestMessages:string[] = $state($DataBase.characters[$selectedCharID]?.chats[$DataBase.characters[$selectedCharID].chatPage]?.suggestMessages)
|
||||
let suggestMessages:string[] = $state(DBState.db.characters[$selectedCharID]?.chats[DBState.db.characters[$selectedCharID].chatPage]?.suggestMessages)
|
||||
let suggestMessagesTranslated:string[] = $state()
|
||||
let toggleTranslate:boolean = $state($DataBase.autoTranslate)
|
||||
let toggleTranslate:boolean = $state(DBState.db.autoTranslate)
|
||||
let progress:boolean = $state();
|
||||
let progressChatPage=-1;
|
||||
let abortController:AbortController;
|
||||
@@ -32,7 +32,7 @@
|
||||
progress=false
|
||||
abortController?.abort()
|
||||
}
|
||||
let currentChar = $DataBase.characters[$selectedCharID];
|
||||
let currentChar = DBState.db.characters[$selectedCharID];
|
||||
suggestMessages = currentChar?.chats[currentChar.chatPage].suggestMessages
|
||||
}
|
||||
}
|
||||
@@ -45,7 +45,7 @@
|
||||
suggestMessages = []
|
||||
}
|
||||
if(!v && $selectedCharID > -1 && (!suggestMessages || suggestMessages.length === 0) && !progress){
|
||||
let currentChar:character|groupChat = $DataBase.characters[$selectedCharID];
|
||||
let currentChar:character|groupChat = DBState.db.characters[$selectedCharID];
|
||||
let messages:Message[] = []
|
||||
|
||||
messages = [...messages, ...currentChar.chats[currentChar.chatPage].message];
|
||||
@@ -55,7 +55,7 @@
|
||||
let promptbody:OpenAIChat[] = [
|
||||
{
|
||||
role:'system',
|
||||
content: replacePlaceholders($DataBase.autoSuggestPrompt, currentChar.name)
|
||||
content: replacePlaceholders(DBState.db.autoSuggestPrompt, currentChar.name)
|
||||
}
|
||||
,{
|
||||
role: 'user',
|
||||
@@ -63,11 +63,11 @@
|
||||
}
|
||||
]
|
||||
|
||||
if($DataBase.subModel === "textgen_webui" || $DataBase.subModel === 'mancer' || $DataBase.subModel.startsWith('local_')){
|
||||
if(DBState.db.subModel === "textgen_webui" || DBState.db.subModel === 'mancer' || DBState.db.subModel.startsWith('local_')){
|
||||
promptbody = [
|
||||
{
|
||||
role: 'system',
|
||||
content: replacePlaceholders($DataBase.autoSuggestPrompt, currentChar.name)
|
||||
content: replacePlaceholders(DBState.db.autoSuggestPrompt, currentChar.name)
|
||||
},
|
||||
...lastMessages.map(({ role, data }) => ({
|
||||
role: role === "user" ? "user" as const : "assistant" as const,
|
||||
@@ -86,7 +86,7 @@
|
||||
}, 'submodel', abortController.signal).then(rq2=>{
|
||||
if(rq2.type !== 'fail' && rq2.type !== 'streaming' && rq2.type !== 'multiline' && progress){
|
||||
var suggestMessagesNew = rq2.result.split('\n').filter(msg => msg.startsWith('-')).map(msg => msg.replace('-','').trim())
|
||||
const db:Database = get(DataBase);
|
||||
const db:Database = DBState.db;
|
||||
db.characters[$selectedCharID].chats[currentChar.chatPage].suggestMessages = suggestMessagesNew
|
||||
setDatabase(db)
|
||||
suggestMessages = suggestMessagesNew
|
||||
@@ -112,7 +112,7 @@
|
||||
$effect.pre(() => {
|
||||
$selectedCharID
|
||||
//FIXME add selectedChatPage for optimize render
|
||||
chatPage = $DataBase.characters[$selectedCharID].chatPage
|
||||
chatPage = DBState.db.characters[$selectedCharID].chatPage
|
||||
updateSuggestions()
|
||||
});
|
||||
$effect.pre(() => {translateSuggest(toggleTranslate, suggestMessages)});
|
||||
@@ -125,7 +125,7 @@
|
||||
<div>{language.creatingSuggestions}</div>
|
||||
</div>
|
||||
{:else if !$doingChat}
|
||||
{#if $DataBase.translator !== ''}
|
||||
{#if DBState.db.translator !== ''}
|
||||
<div class="flex mr-2 mb-2">
|
||||
<button class={"bg-textcolor2 hover:bg-darkbutton font-bold py-2 px-4 rounded " + (toggleTranslate ? 'text-green-500' : 'text-textcolor')}
|
||||
onclick={() => {
|
||||
@@ -160,7 +160,7 @@
|
||||
messageInput(suggest)
|
||||
send()
|
||||
}}>
|
||||
{#await ParseMarkdown(($DataBase.translator !== '' && toggleTranslate && suggestMessagesTranslated && suggestMessagesTranslated.length > 0) ? suggestMessagesTranslated[i]??suggest : suggest) then md}
|
||||
{#await ParseMarkdown((DBState.db.translator !== '' && toggleTranslate && suggestMessagesTranslated && suggestMessagesTranslated.length > 0) ? suggestMessagesTranslated[i]??suggest : suggest) then md}
|
||||
{@html md}
|
||||
{/await}
|
||||
</button>
|
||||
|
||||
Reference in New Issue
Block a user