From db2ae9805c063f27ee3f26d858997bba3fc0d019 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Thu, 18 May 2023 23:00:27 +0900 Subject: [PATCH] [feat] new global settings --- src/App.svelte | 5 +- src/lang/en.ts | 5 +- src/lang/ko.ts | 5 +- src/lib/Setting/Pages/AdvancedSettings.svelte | 69 ++ src/lib/Setting/Pages/BotSettings.svelte | 171 +++++ src/lib/Setting/Pages/DisplaySettings.svelte | 130 ++++ src/lib/Setting/Pages/FilesSettings.svelte | 40 ++ src/lib/Setting/Pages/OtherBotSettings.svelte | 59 ++ src/lib/Setting/Pages/PluginSettings.svelte | 64 ++ src/lib/Setting/Pages/UserSettings.svelte | 21 + src/lib/Setting/Settings.svelte | 113 ++++ src/lib/{Others => Setting}/botpreset.svelte | 0 src/lib/SideBars/LoreBookSetting.svelte | 37 +- src/lib/SideBars/Settings.svelte | 595 ------------------ src/lib/SideBars/Sidebar.svelte | 8 +- 15 files changed, 704 insertions(+), 618 deletions(-) create mode 100644 src/lib/Setting/Pages/AdvancedSettings.svelte create mode 100644 src/lib/Setting/Pages/BotSettings.svelte create mode 100644 src/lib/Setting/Pages/DisplaySettings.svelte create mode 100644 src/lib/Setting/Pages/FilesSettings.svelte create mode 100644 src/lib/Setting/Pages/OtherBotSettings.svelte create mode 100644 src/lib/Setting/Pages/PluginSettings.svelte create mode 100644 src/lib/Setting/Pages/UserSettings.svelte create mode 100644 src/lib/Setting/Settings.svelte rename src/lib/{Others => Setting}/botpreset.svelte (100%) delete mode 100644 src/lib/SideBars/Settings.svelte diff --git a/src/App.svelte b/src/App.svelte index 694fb1e0..5d84b993 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -1,13 +1,14 @@ +

{language.advancedSettings}

+{language.advancedSettingsWarn} +{language.loreBookDepth} + +{language.loreBookToken} + + +{language.additionalPrompt} + + +{language.descriptionPrefix} + + +{language.emotionPrompt} + + +{language.SuperMemory} Prompt + + +{language.requestretrys} + + +Request Method + + +{#if $DataBase.requestmet === 'proxy'} + Request Proxy URL + +{/if} +{#if isTauri && $DataBase.requestmet === 'normal'} + Request Lib + +{/if} + +
+ + {language.sayNothing} +
+
+ + {language.showUnrecommended} +
+
+ + {language.useExperimental} +
+ diff --git a/src/lib/Setting/Pages/BotSettings.svelte b/src/lib/Setting/Pages/BotSettings.svelte new file mode 100644 index 00000000..7b5897d6 --- /dev/null +++ b/src/lib/Setting/Pages/BotSettings.svelte @@ -0,0 +1,171 @@ + + +

{language.chatBot}

+{language.model} + + +{language.submodel} + + +{#if $DataBase.aiModel === 'palm2' || $DataBase.subModel === 'palm2'} + Palm2 {language.apiKey} + +{/if} +{#if $DataBase.aiModel === 'gpt35' || $DataBase.aiModel === 'gpt4' || $DataBase.subModel === 'gpt4' || $DataBase.subModel === 'gpt35'} + OpenAI {language.apiKey} + +
+ + OpenAI {language.streaming} +
+{/if} +{#if $DataBase.aiModel === 'custom'} + {language.plugin} + +{/if} +{#if $DataBase.aiModel === 'textgen_webui' || $DataBase.subModel === 'textgen_webui'} + TextGen {language.providerURL} + + You must use WebUI without agpl license or use unmodified version with agpl license to observe the contents of the agpl license. + You must use textgen webui with --no-stream and without --cai-chat or --chat + {#if !isTauri} + You are using web version. you must use ngrok or other tunnels to use your local webui. + {/if} +{/if} +{language.mainPrompt} + +{tokens.mainPrompt} {language.tokens} +{language.jailbreakPrompt} + +{tokens.jailbreak} {language.tokens} +{language.globalNote} + + +{tokens.globalNote} {language.tokens} +{language.maxContextSize} +{#if $DataBase.aiModel === 'gpt35'} + +{:else if $DataBase.aiModel === 'gpt4' || $DataBase.aiModel === 'textgen_webui'} + +{:else if $DataBase.aiModel === 'custom'} + +{/if} +{language.maxResponseSize} + +{language.temperature} + +{($DataBase.temperature / 100).toFixed(2)} +{language.frequencyPenalty} + +{($DataBase.frequencyPenalty / 100).toFixed(2)} +{language.presensePenalty} + +{($DataBase.PresensePenalty / 100).toFixed(2)} + +{language.forceReplaceUrl} + +{language.submodel} {language.forceReplaceUrl} + + + + +
+ {language.advancedSettings} + {language.formatingOrder} + + Bias + + + + + + + {#if $DataBase.bias.length === 0} + +
{language.noBias}
+ + {/if} + {#each $DataBase.bias as bias, i} + + + + + + {/each} +
Bias{language.value} { + let bia = $DataBase.bias + bia.push(['', 0]) + $DataBase.bias = bia + }}>
+ + + +
+ +
+ + {language.promptPreprocess} +
+
+ + + diff --git a/src/lib/Setting/Pages/DisplaySettings.svelte b/src/lib/Setting/Pages/DisplaySettings.svelte new file mode 100644 index 00000000..ce8cce15 --- /dev/null +++ b/src/lib/Setting/Pages/DisplaySettings.svelte @@ -0,0 +1,130 @@ + + +

{language.display}

+{language.UiLanguage} + + +{language.theme} + + + +{#if $DataBase.theme === "waifu"} + {language.waifuWidth} + + {($DataBase.waifuWidth)}% + + {language.waifuWidth2} + + {($DataBase.waifuWidth2)}% +{/if} + +{language.textColor} + + +{#if $DataBase.textTheme === "custom"} +
+ + Normal Text +
+
+ + Italic Text +
+
+ + Bold Text +
+
+ + Italic Bold Text +
+{/if} + + +{language.translator} + +{language.UISize} + +{($DataBase.zoomsize)}% + +{language.iconSize} + +{($DataBase.iconsize)}% + +
+ + {language.autoTranslation} +
+
+ + {language.fullscreen} +
+ +
+ + {language.showMemoryLimit} +
+ +
+ { + if(check){ + $DataBase.customBackground = '-' + const d = await selectSingleFile(['png', 'webp', 'gif']) + if(!d){ + $DataBase.customBackground = '' + return + } + const img = await saveImage(d.data) + $DataBase.customBackground = img + } + else{ + $DataBase.customBackground = '' + } + }}> + {language.useCustomBackground} +
+ +
+ + {language.playMessage} +
+ +
+ + {language.SwipeRegenerate} +
+ +
+ + {language.roundIcons} +
+ +
+ + {language.instantRemove} +
diff --git a/src/lib/Setting/Pages/FilesSettings.svelte b/src/lib/Setting/Pages/FilesSettings.svelte new file mode 100644 index 00000000..24a929f0 --- /dev/null +++ b/src/lib/Setting/Pages/FilesSettings.svelte @@ -0,0 +1,40 @@ + + +

{language.files}

+ + + \ No newline at end of file diff --git a/src/lib/Setting/Pages/OtherBotSettings.svelte b/src/lib/Setting/Pages/OtherBotSettings.svelte new file mode 100644 index 00000000..a14c2941 --- /dev/null +++ b/src/lib/Setting/Pages/OtherBotSettings.svelte @@ -0,0 +1,59 @@ + +

{language.otherBots}

+ +{language.imageGeneration} + +{language.provider} + + +{#if $DataBase.sdProvider === 'webui'} +You must use WebUI with --api flag + You must use WebUI without agpl license or use unmodified version with agpl license to observe the contents of the agpl license. + {#if !isTauri} + You are using web version. you must use ngrok or other tunnels to use your local webui. + {/if} + WebUI {language.providerURL} + + Steps + + + CFG Scale + + + Width + + Height + + Sampler + + +
+ + Enable Hires +
+ {#if $DataBase.sdConfig.enable_hr === true} + denoising_strength + + hr_scale + + Upscaler + + {/if} +{/if} + + +TTS +ElevenLabs API key + diff --git a/src/lib/Setting/Pages/PluginSettings.svelte b/src/lib/Setting/Pages/PluginSettings.svelte new file mode 100644 index 00000000..641aaa4b --- /dev/null +++ b/src/lib/Setting/Pages/PluginSettings.svelte @@ -0,0 +1,64 @@ + +

{language.plugin}

+{language.pluginWarn} + + +
+ {#if $DataBase.plugins.length === 0} + No Plugins + {:else} + {#each $DataBase.plugins as plugin, i} + {#if i !== 0} +
+ {/if} +
+ {plugin.displayName ?? plugin.name} + +
+ {#if Object.keys(plugin.arguments).length > 0} +
+ {#each Object.keys(plugin.arguments) as arg} + {arg} + {#if Array.isArray(plugin.arguments[arg])} + + {:else if plugin.arguments[arg] === 'string'} + + {:else if plugin.arguments[arg] === 'int'} + + {/if} + {/each} +
+ {/if} + {/each} + {/if} +
+
+ +
\ No newline at end of file diff --git a/src/lib/Setting/Pages/UserSettings.svelte b/src/lib/Setting/Pages/UserSettings.svelte new file mode 100644 index 00000000..5d318328 --- /dev/null +++ b/src/lib/Setting/Pages/UserSettings.svelte @@ -0,0 +1,21 @@ + + +

{language.user}

+{language.userIcon} + +{language.username} + diff --git a/src/lib/Setting/Settings.svelte b/src/lib/Setting/Settings.svelte new file mode 100644 index 00000000..f52beeaf --- /dev/null +++ b/src/lib/Setting/Settings.svelte @@ -0,0 +1,113 @@ + +
+
+ {#if window.innerWidth >= 700 || selected === -1} +
+ + + + + + + + {#if window.innerWidth < 700} + + {/if} +
+ {/if} + {#if window.innerWidth >= 700 || selected !== -1} +
+ {#if selected === 0} + + {:else if selected === 1} + + {:else if selected === 2} + + {:else if selected === 3} + + {:else if selected === 4} + + {:else if selected === 5} + + {:else if selected === 6} + + {/if} + +
+ {/if} +
+
+{#if openPresetList} + +{/if} + \ No newline at end of file diff --git a/src/lib/Others/botpreset.svelte b/src/lib/Setting/botpreset.svelte similarity index 100% rename from src/lib/Others/botpreset.svelte rename to src/lib/Setting/botpreset.svelte diff --git a/src/lib/SideBars/LoreBookSetting.svelte b/src/lib/SideBars/LoreBookSetting.svelte index 8fa21dd3..59813b86 100644 --- a/src/lib/SideBars/LoreBookSetting.svelte +++ b/src/lib/SideBars/LoreBookSetting.svelte @@ -7,25 +7,28 @@ import LoreBookData from "./LoreBookData.svelte"; import Check from "../Others/Check.svelte"; let submenu = 0 + let globalMode = false -
- - - -
+{#if !globalMode} +
+ + + +
+{/if} {#if submenu !== 2} {submenu === 0 ? $DataBase.characters[$selectedCharID].type === 'group' ? language.groupLoreInfo : language.globalLoreInfo : language.localLoreInfo}
diff --git a/src/lib/SideBars/Settings.svelte b/src/lib/SideBars/Settings.svelte deleted file mode 100644 index a1a4dab2..00000000 --- a/src/lib/SideBars/Settings.svelte +++ /dev/null @@ -1,595 +0,0 @@ - - -
- - - - - - -
- -{#if subMenu === -1} -

{language.userSetting}

- {language.userIcon} - - {language.username} - - -{:else if subMenu === 0 && subSubMenu === 0} -

{language.botSettings}

-
- - -
- {language.model} - - - {language.submodel} - - - {#if $DataBase.aiModel === 'palm2' || $DataBase.subModel === 'palm2'} - Palm2 {language.apiKey} - - {/if} - {#if $DataBase.aiModel === 'gpt35' || $DataBase.aiModel === 'gpt4' || $DataBase.subModel === 'gpt4' || $DataBase.subModel === 'gpt35'} - OpenAI {language.apiKey} - -
- - OpenAI {language.streaming} -
- {/if} - {#if $DataBase.aiModel === 'custom'} - {language.plugin} - - {/if} - {#if $DataBase.aiModel === 'textgen_webui' || $DataBase.subModel === 'textgen_webui'} - TextGen {language.providerURL} - - You must use WebUI without agpl license or use unmodified version with agpl license to observe the contents of the agpl license. - You must use textgen webui with --no-stream and without --cai-chat or --chat - {#if !isTauri} - You are using web version. you must use ngrok or other tunnels to use your local webui. - {/if} - {/if} - {language.mainPrompt} - - {tokens.mainPrompt} {language.tokens} - {language.jailbreakPrompt} - - {tokens.jailbreak} {language.tokens} - {language.globalNote} - - {tokens.globalNote} {language.tokens} - {language.maxContextSize} - {#if $DataBase.aiModel === 'gpt35'} - - {:else if $DataBase.aiModel === 'gpt4' || $DataBase.aiModel === 'textgen_webui'} - - {:else if $DataBase.aiModel === 'custom'} - - {/if} - {language.maxResponseSize} - - {language.temperature} - - {($DataBase.temperature / 100).toFixed(2)} - {language.frequencyPenalty} - - {($DataBase.frequencyPenalty / 100).toFixed(2)} - {language.presensePenalty} - - {($DataBase.PresensePenalty / 100).toFixed(2)} - - {language.forceReplaceUrl} - - {language.submodel} {language.forceReplaceUrl} - - - - -
- {language.advancedSettings} - {language.formatingOrder} - - Bias - - - - - - - {#if $DataBase.bias.length === 0} - -
{language.noBias}
- - {/if} - {#each $DataBase.bias as bias, i} - - - - - - {/each} -
Bias{language.value} { - let bia = $DataBase.bias - bia.push(['', 0]) - $DataBase.bias = bia - }}>
- - - -
- -
- - {language.promptPreprocess} -
-
- - - - -{:else if subMenu === 0 && subSubMenu === 1} -

{language.botSettings}

-
- - -
- {language.imageGeneration} - - {language.provider} - - - {#if $DataBase.sdProvider === 'webui'} - You must use WebUI with --api flag - You must use WebUI without agpl license or use unmodified version with agpl license to observe the contents of the agpl license. - {#if !isTauri} - You are using web version. you must use ngrok or other tunnels to use your local webui. - {/if} - WebUI {language.providerURL} - - Steps - - - CFG Scale - - - Width - - Height - - Sampler - - -
- - Enable Hires -
- {#if $DataBase.sdConfig.enable_hr === true} - denoising_strength - - hr_scale - - Upscaler - - {/if} - {/if} - - - TTS - ElevenLabs API key - - - -{:else if subMenu == 3} -

{language.display}

- {language.UiLanguage} - - - {language.theme} - - - - {#if $DataBase.theme === "waifu"} - {language.waifuWidth} - - {($DataBase.waifuWidth)}% - - {language.waifuWidth2} - - {($DataBase.waifuWidth2)}% - {/if} - - {language.textColor} - - - {#if $DataBase.textTheme === "custom"} -
- - Normal Text -
-
- - Italic Text -
-
- - Bold Text -
-
- - Italic Bold Text -
- {/if} - - - {language.translator} - - {language.UISize} - - {($DataBase.zoomsize)}% - - {language.iconSize} - - {($DataBase.iconsize)}% - -
- - {language.autoTranslation} -
-
- - {language.fullscreen} -
- -
- - {language.showMemoryLimit} -
- -
- { - if(check){ - $DataBase.customBackground = '-' - const d = await selectSingleFile(['png', 'webp', 'gif']) - if(!d){ - $DataBase.customBackground = '' - return - } - const img = await saveImage(d.data) - $DataBase.customBackground = img - } - else{ - $DataBase.customBackground = '' - } - }}> - {language.useCustomBackground} -
- -
- - {language.playMessage} -
- -
- - {language.SwipeRegenerate} -
- -
- - {language.roundIcons} -
- -
- - {language.instantRemove} -
- -{:else if subMenu === 2} -

{language.plugin}

- {language.pluginWarn} - - -
- {#if $DataBase.plugins.length === 0} - No Plugins - {:else} - {#each $DataBase.plugins as plugin, i} - {#if i !== 0} -
- {/if} -
- {plugin.displayName ?? plugin.name} - -
- {#if Object.keys(plugin.arguments).length > 0} -
- {#each Object.keys(plugin.arguments) as arg} - {arg} - {#if Array.isArray(plugin.arguments[arg])} - - {:else if plugin.arguments[arg] === 'string'} - - {:else if plugin.arguments[arg] === 'int'} - - {/if} - {/each} -
- {/if} - {/each} - {/if} -
-
- -
-{:else if subMenu === 1} -

{language.advancedSettings}

- {language.advancedSettingsWarn} - {language.loreBookDepth} - - {language.loreBookToken} - - - {language.additionalPrompt} - - - {language.descriptionPrefix} - - - {language.emotionPrompt} - - - {language.SuperMemory} Prompt - - - {language.requestretrys} - - - Request Method - - - {#if $DataBase.requestmet === 'proxy'} - Request Proxy URL - - {/if} - {#if isTauri && $DataBase.requestmet === 'normal'} - Request Lib - - {/if} - -
- - {language.sayNothing} -
-
- - {language.showUnrecommended} -
-
- - {language.useExperimental} -
- - -{:else if subMenu === 4} -

{language.files}

- - - - - -{/if} - - \ No newline at end of file diff --git a/src/lib/SideBars/Sidebar.svelte b/src/lib/SideBars/Sidebar.svelte index d5c85b1f..2479e370 100644 --- a/src/lib/SideBars/Sidebar.svelte +++ b/src/lib/SideBars/Sidebar.svelte @@ -29,10 +29,9 @@ getCharImage, } from "../../ts/characters"; import { importCharacter } from "src/ts/characterCards"; - import SettingsDom from "./Settings.svelte"; import CharConfig from "./CharConfig.svelte"; import { language } from "../../lang"; - import Botpreset from "../Others/botpreset.svelte"; + import Botpreset from "../Setting/botpreset.svelte"; import { onDestroy } from "svelte"; import { isEqual } from "lodash"; import SidebarAvatar from "./SidebarAvatar.svelte"; @@ -226,7 +225,10 @@ {#if sideBarMode === 0} {#if $selectedCharID < 0 || $settingsOpen} - +
+

Welcome to RisuAI!

+ Click a bot to start chating +
{:else} {/if}