[feat] added horde support, added spec2 requirements that didn't implemented
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
import { customProviderStore, getCurrentPluginMax } from "src/ts/process/plugins";
|
||||
import { isTauri } from "src/ts/globalApi";
|
||||
import { tokenize } from "src/ts/tokenizer";
|
||||
import ModelList from "src/lib/UI/ModelList.svelte";
|
||||
import DropList from "src/lib/SideBars/DropList.svelte";
|
||||
import { PlusIcon, TrashIcon } from "lucide-svelte";
|
||||
let tokens = {
|
||||
@@ -36,40 +37,10 @@
|
||||
|
||||
<h2 class="mb-2 text-2xl font-bold mt-2">{language.chatBot}</h2>
|
||||
<span class="text-neutral-200 mt-4">{language.model} <Help key="model"/></span>
|
||||
<select class="bg-transparent input-text mt-2 mb-2 text-gray-200 appearance-none text-sm" bind:value={$DataBase.aiModel}>
|
||||
<optgroup class="bg-darkbg appearance-none" label="OpenAI">
|
||||
<option value="gpt35" class="bg-darkbg appearance-none">OpenAI GPT-3.5</option>
|
||||
<option value="gpt4" class="bg-darkbg appearance-none">OpenAI GPT-4</option>
|
||||
</optgroup>
|
||||
<optgroup class="bg-darkbg appearance-none" label="Other Providers">
|
||||
<option value="palm2" class="bg-darkbg appearance-none">Google Palm2</option>
|
||||
{#if $DataBase.aiModel === 'novelai' || isTauri}
|
||||
<option value="novelai" class="bg-darkbg appearance-none">NovelAI Clio</option>
|
||||
{/if}
|
||||
<option value="textgen_webui" class="bg-darkbg appearance-none">Text Generation WebUI</option>
|
||||
{#if $DataBase.plugins.length > 0}
|
||||
<option value="custom" class="bg-darkbg appearance-none">Plugin</option>
|
||||
{/if}
|
||||
</optgroup>
|
||||
</select>
|
||||
|
||||
<ModelList bind:value={$DataBase.aiModel}/>
|
||||
<span class="text-neutral-200 mt-2">{language.submodel} <Help key="submodel"/></span>
|
||||
<select class="bg-transparent input-text mt-2 mb-2 text-gray-200 appearance-none text-sm" bind:value={$DataBase.subModel}>
|
||||
<optgroup class="bg-darkbg appearance-none" label="OpenAI">
|
||||
<option value="gpt35" class="bg-darkbg appearance-none">OpenAI GPT-3.5</option>
|
||||
<option value="gpt4" class="bg-darkbg appearance-none">OpenAI GPT-4</option>
|
||||
</optgroup>
|
||||
<optgroup class="bg-darkbg appearance-none" label="Other Providers">
|
||||
<option value="palm2" class="bg-darkbg appearance-none">Google Palm2</option>
|
||||
{#if $DataBase.aiModel === 'novelai' || isTauri}
|
||||
<option value="novelai" class="bg-darkbg appearance-none">NovelAI Clio</option>
|
||||
{/if}
|
||||
<option value="textgen_webui" class="bg-darkbg appearance-none">Text Generation WebUI</option>
|
||||
{#if $DataBase.plugins.length > 0}
|
||||
<option value="custom" class="bg-darkbg appearance-none">Plugin</option>
|
||||
{/if}
|
||||
</optgroup>
|
||||
</select>
|
||||
<ModelList bind:value={$DataBase.subModel}/>
|
||||
|
||||
|
||||
{#if $DataBase.aiModel === 'palm2' || $DataBase.subModel === 'palm2'}
|
||||
<span class="text-neutral-200">Palm2 {language.apiKey}</span>
|
||||
@@ -96,6 +67,12 @@
|
||||
<span class="text-neutral-200">NovelAI Bearer Token</span>
|
||||
<input class="text-neutral-200 p-2 bg-transparent input-text focus:bg-selected text-sm mb-2" bind:value={$DataBase.novelai.token}>
|
||||
|
||||
{/if}
|
||||
|
||||
{#if $DataBase.aiModel.startsWith("horde") || $DataBase.subModel.startsWith("horde") }
|
||||
<span class="text-neutral-200">Horde {language.apiKey}</span>
|
||||
<input class="text-neutral-200 p-2 bg-transparent input-text focus:bg-selected text-sm mb-2" bind:value={$DataBase.hordeConfig.apiKey}>
|
||||
|
||||
{/if}
|
||||
{#if $DataBase.aiModel === 'textgen_webui' || $DataBase.subModel === 'textgen_webui'}
|
||||
<span class="text-neutral-200">TextGen {language.providerURL} <Help key="oogaboogaURL"/></span>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
import RegexData from "./RegexData.svelte";
|
||||
import { exportChar } from "src/ts/characterCards";
|
||||
import { getElevenTTSVoices, getWebSpeechTTSVoices } from "src/ts/process/tts";
|
||||
import { checkCharOrder } from "src/ts/globalApi";
|
||||
import { checkCharOrder } from "src/ts/globalApi";
|
||||
|
||||
let subMenu = 0
|
||||
let subberMenu = 0
|
||||
@@ -181,10 +181,10 @@
|
||||
<span class="text-neutral-200">{language.firstMessage} <Help key="charFirstMessage"/></span>
|
||||
<textarea class="bg-transparent input-text mt-2 mb-2 text-gray-200 text-xs resize-none h-20 focus:bg-selected" autocomplete="off" bind:value={currentChar.data.firstMessage}></textarea>
|
||||
<span class="text-gray-400 mb-6 text-sm">{tokens.firstMsg} {language.tokens}</span>
|
||||
<span class="text-neutral-200">{language.authorNote} <Help key="charNote"/></span>
|
||||
<textarea class="bg-transparent input-text mt-2 mb-2 text-gray-200 resize-none h-20 focus:bg-selected text-xs" autocomplete="off" bind:value={currentChar.data.postHistoryInstructions}></textarea>
|
||||
<span class="text-gray-400 mb-6 text-sm">{tokens.charaNote} {language.tokens}</span>
|
||||
|
||||
<span class="text-neutral-200">{language.authorNote} <Help key="chatNote"/></span>
|
||||
<textarea class="bg-transparent input-text mt-2 mb-2 text-gray-200 resize-none h-20 focus:bg-selected text-xs" autocomplete="off" bind:value={currentChar.data.chats[currentChar.data.chatPage].note}></textarea>
|
||||
<span class="text-gray-400 mb-6 text-sm">{tokens.localNote} {language.tokens}</span>
|
||||
|
||||
{:else}
|
||||
<input class="text-neutral-200 mt-2 mb-4 p-2 bg-transparent input-text text-xl focus:bg-selected" placeholder="Group Name" bind:value={currentChar.data.name}>
|
||||
<span class="text-neutral-200">{language.character}</span>
|
||||
@@ -213,11 +213,6 @@
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<span class="text-neutral-200">{language.chatNotes} <Help key="charNote"/></span>
|
||||
<textarea class="bg-transparent input-text mt-2 mb-2 text-gray-200 resize-none h-20 focus:bg-selected text-xs" autocomplete="off" bind:value={currentChar.data.chats[currentChar.data.chatPage].note}></textarea>
|
||||
<span class="text-gray-400 mb-6 text-sm">{tokens.localNote} {language.tokens}</span>
|
||||
|
||||
|
||||
{/if}
|
||||
|
||||
<div class="flex mt-6 items-center">
|
||||
@@ -520,10 +515,7 @@
|
||||
<span class="text-neutral-200">{language.systemPrompt} <Help key="systemPrompt"/></span>
|
||||
<textarea class="bg-transparent input-text mt-2 mb-2 text-gray-200 text-xs resize-none h-20 focus:bg-selected" autocomplete="off" bind:value={currentChar.data.systemPrompt}></textarea>
|
||||
|
||||
<span class="text-neutral-200">{language.chatNotes} <Help key="chatNote"/></span>
|
||||
<textarea class="bg-transparent input-text mt-2 mb-2 text-gray-200 resize-none h-20 focus:bg-selected text-xs" autocomplete="off" bind:value={currentChar.data.chats[currentChar.data.chatPage].note}></textarea>
|
||||
<span class="text-gray-400 mb-6 text-sm">{tokens.localNote} {language.tokens}</span>
|
||||
|
||||
|
||||
{#if currentChar.data.chats[currentChar.data.chatPage].supaMemoryData && currentChar.data.chats[currentChar.data.chatPage].supaMemoryData.length > 4}
|
||||
<span class="text-neutral-200">{language.SuperMemory}</span>
|
||||
<textarea class="bg-transparent input-text mt-2 mb-2 text-gray-200 text-xs resize-none h-20 focus:bg-selected" autocomplete="off" bind:value={currentChar.data.chats[currentChar.data.chatPage].supaMemoryData}></textarea>
|
||||
|
||||
35
src/lib/UI/ModelList.svelte
Normal file
35
src/lib/UI/ModelList.svelte
Normal file
@@ -0,0 +1,35 @@
|
||||
<script lang="ts">
|
||||
import { DataBase } from "src/ts/database";
|
||||
import { isTauri } from "src/ts/globalApi";
|
||||
import { getHordeModels } from "src/ts/horde/getModels";
|
||||
|
||||
export let value = ""
|
||||
</script>
|
||||
|
||||
{#await getHordeModels()}
|
||||
<select class="bg-transparent input-text mt-2 mb-2 text-gray-200 appearance-none text-sm" value="">
|
||||
<option value="" class="bg-darkbg appearance-none">Loading...</option>
|
||||
</select>
|
||||
{:then models}
|
||||
<select class="bg-transparent input-text mt-2 mb-2 text-gray-200 appearance-none text-sm" bind:value>
|
||||
<optgroup class="bg-darkbg appearance-none" label="OpenAI">
|
||||
<option value="gpt35" class="bg-darkbg appearance-none">OpenAI GPT-3.5</option>
|
||||
<option value="gpt4" class="bg-darkbg appearance-none">OpenAI GPT-4</option>
|
||||
</optgroup>
|
||||
<optgroup class="bg-darkbg appearance-none" label="Other Providers">
|
||||
<option value="palm2" class="bg-darkbg appearance-none">Google Palm2</option>
|
||||
{#if value === 'novelai' || isTauri}
|
||||
<option value="novelai" class="bg-darkbg appearance-none">NovelAI Clio</option>
|
||||
{/if}
|
||||
<option value="textgen_webui" class="bg-darkbg appearance-none">Text Generation WebUI</option>
|
||||
{#if $DataBase.plugins.length > 0}
|
||||
<option value="custom" class="bg-darkbg appearance-none">Plugin</option>
|
||||
{/if}
|
||||
</optgroup>
|
||||
<optgroup class="bg-darkbg appearance-none" label="Horde">
|
||||
{#each models as model}
|
||||
<option value={"horde:::" + model} class="bg-darkbg appearance-none">{model}</option>
|
||||
{/each}
|
||||
</optgroup>
|
||||
</select>
|
||||
{/await}
|
||||
Reference in New Issue
Block a user