change gui

This commit is contained in:
kwaroran
2024-07-16 00:39:03 +09:00
parent ebb06773e8
commit 88f8880509
2 changed files with 108 additions and 148 deletions

View File

@@ -31,15 +31,8 @@
mainPrompt: 0, mainPrompt: 0,
jailbreak: 0, jailbreak: 0,
globalNote: 0, globalNote: 0,
autoSuggest: 0
} }
let lasttokens = {
mainPrompt: '',
jailbreak: '',
globalNote: '',
autoSuggest: ''
}
export let openPresetList =false export let openPresetList =false
export let goPromptTemplate = () => {} export let goPromptTemplate = () => {}
@@ -47,7 +40,6 @@
tokens.mainPrompt = await tokenizeAccurate($DataBase.mainPrompt, true) tokens.mainPrompt = await tokenizeAccurate($DataBase.mainPrompt, true)
tokens.jailbreak = await tokenizeAccurate($DataBase.jailbreak, true) tokens.jailbreak = await tokenizeAccurate($DataBase.jailbreak, true)
tokens.globalNote = await tokenizeAccurate($DataBase.globalNote, true) tokens.globalNote = await tokenizeAccurate($DataBase.globalNote, true)
tokens.autoSuggest = await tokenizeAccurate($DataBase.autoSuggestPrompt, true)
} }
let advancedBotSettings = false let advancedBotSettings = false
@@ -132,15 +124,6 @@
<span class="text-textcolor">Google Project ID</span> <span class="text-textcolor">Google Project ID</span>
<TextInput marginBottom={true} size={"sm"} placeholder="..." hideText bind:value={$DataBase.google.projectId}/> <TextInput marginBottom={true} size={"sm"} placeholder="..." hideText bind:value={$DataBase.google.projectId}/>
{/if} {/if}
<Check check={$DataBase.google.projectId !== 'aigoogle'} className="mb-2" name={'Use Vertex AI'} onChange={(v) => {
if(!v){
$DataBase.google.projectId = 'aigoogle'
}
else{
$DataBase.google.projectId = ''
}
}}/>
{/if} {/if}
{#if $DataBase.aiModel.startsWith('novellist') || $DataBase.subModel.startsWith('novellist')} {#if $DataBase.aiModel.startsWith('novellist') || $DataBase.subModel.startsWith('novellist')}
<span class="text-textcolor">NovelList {language.apiKey}</span> <span class="text-textcolor">NovelList {language.apiKey}</span>
@@ -153,14 +136,15 @@
{#if $DataBase.aiModel.startsWith('claude-') || $DataBase.subModel.startsWith('claude-')} {#if $DataBase.aiModel.startsWith('claude-') || $DataBase.subModel.startsWith('claude-')}
<span class="text-textcolor">Claude {language.apiKey}</span> <span class="text-textcolor">Claude {language.apiKey}</span>
<TextInput hideText marginBottom={true} size={"sm"} placeholder="..." bind:value={$DataBase.claudeAPIKey}/> <TextInput hideText marginBottom={true} size={"sm"} placeholder="..." bind:value={$DataBase.claudeAPIKey}/>
{#if $DataBase.useExperimental}
<Check name="AWS Claude" bind:check={$DataBase.claudeAws}> <Help key="experimental" /></Check>
{/if}
{/if} {/if}
{#if $DataBase.aiModel.startsWith('mistral') || $DataBase.subModel.startsWith('mistral')} {#if $DataBase.aiModel.startsWith('mistral') || $DataBase.subModel.startsWith('mistral')}
<span class="text-textcolor">Mistral {language.apiKey}</span> <span class="text-textcolor">Mistral {language.apiKey}</span>
<TextInput hideText marginBottom={true} size={"sm"} placeholder="..." bind:value={$DataBase.mistralKey}/> <TextInput hideText marginBottom={true} size={"sm"} placeholder="..." bind:value={$DataBase.mistralKey}/>
{/if} {/if}
{#if $DataBase.aiModel.startsWith('novelai') || $DataBase.subModel.startsWith('novelai')}
<span class="text-textcolor">NovelAI Bearer Token</span>
<TextInput bind:value={$DataBase.novelai.token}/>
{/if}
{#if $DataBase.aiModel === 'reverse_proxy' || $DataBase.subModel === 'reverse_proxy'} {#if $DataBase.aiModel === 'reverse_proxy' || $DataBase.subModel === 'reverse_proxy'}
<span class="text-textcolor mt-2">URL <Help key="forceUrl"/></span> <span class="text-textcolor mt-2">URL <Help key="forceUrl"/></span>
<TextInput marginBottom={false} size={"sm"} bind:value={$DataBase.forceReplaceUrl} placeholder="https//..." /> <TextInput marginBottom={false} size={"sm"} bind:value={$DataBase.forceReplaceUrl} placeholder="https//..." />
@@ -199,9 +183,6 @@
{:else} {:else}
<div class="mb-4"></div> <div class="mb-4"></div>
{/if} {/if}
<div class="flex items-center mt-2 mb-4">
<Check bind:check={$DataBase.reverseProxyOobaMode} name={`${language.reverseProxyOobaMode}`}/>
</div>
{/if} {/if}
{#if $DataBase.aiModel.startsWith('risullm')} {#if $DataBase.aiModel.startsWith('risullm')}
<span class="text-textcolor mt-4">Risu {language.apiKey}</span> <span class="text-textcolor mt-4">Risu {language.apiKey}</span>
@@ -264,11 +245,34 @@
<TextInput hideText marginBottom={false} size={"sm"} bind:value={$DataBase.openAIKey} placeholder="sk-XXXXXXXXXXXXXXXXXXXX"/> <TextInput hideText marginBottom={false} size={"sm"} bind:value={$DataBase.openAIKey} placeholder="sk-XXXXXXXXXXXXXXXXXXXX"/>
{/if} {/if}
{#if $DataBase.aiModel.startsWith('gpt') || $DataBase.aiModel === 'reverse_proxy' || $DataBase.aiModel === 'openrouter' || $DataBase.aiModel.startsWith('claude-3')}
<div class="flex items-center mt-2 mb-4"> <div class="py-2 flex flex-col gap-2 mb-4">
{#if $DataBase.aiModel.startsWith('gpt') || $DataBase.aiModel === 'reverse_proxy' || $DataBase.aiModel === 'openrouter' || $DataBase.aiModel.startsWith('claude-3')}
<Check bind:check={$DataBase.useStreaming} name={`Response ${language.streaming}`}/> <Check bind:check={$DataBase.useStreaming} name={`Response ${language.streaming}`}/>
</div> {/if}
{/if}
{#if $DataBase.aiModel.startsWith('palm2') || $DataBase.subModel.startsWith('palm2') || $DataBase.aiModel.startsWith('gemini') || $DataBase.subModel.startsWith('gemini')}
<Check check={$DataBase.google.projectId !== 'aigoogle'} name={'Use Vertex AI'} onChange={(v) => {
if(!v){
$DataBase.google.projectId = 'aigoogle'
}
else{
$DataBase.google.projectId = ''
}
}}/>
{/if}
{#if $DataBase.aiModel.startsWith('claude-') || $DataBase.subModel.startsWith('claude-')}
<Check name="AWS Claude" bind:check={$DataBase.claudeAws}></Check>
{/if}
{#if $DataBase.aiModel === 'reverse_proxy' || $DataBase.subModel === 'reverse_proxy'}
<Check bind:check={$DataBase.reverseProxyOobaMode} name={`${language.reverseProxyOobaMode}`}/>
{/if}
{#if $DataBase.aiModel === "novelai" || $DataBase.subModel === "novelai" || $DataBase.aiModel === 'novelai_kayra' || $DataBase.subModel === 'novelai_kayra'}
<Check bind:check={$DataBase.NAIadventure} name={language.textAdventureNAI}/>
<Check bind:check={$DataBase.NAIappendName} name={language.appendNameNAI}/>
{/if}
</div>
{#if $DataBase.aiModel === 'custom' || $DataBase.subModel === 'custom'} {#if $DataBase.aiModel === 'custom' || $DataBase.subModel === 'custom'}
<span class="text-textcolor mt-2">{language.plugin}</span> <span class="text-textcolor mt-2">{language.plugin}</span>
@@ -279,19 +283,6 @@
{/each} {/each}
</SelectInput> </SelectInput>
{/if} {/if}
{#if $DataBase.aiModel === "novelai" || $DataBase.subModel === "novelai" || $DataBase.aiModel === 'novelai_kayra' || $DataBase.subModel === 'novelai_kayra'}
<span class="text-textcolor">NovelAI Bearer Token</span>
<TextInput bind:value={$DataBase.novelai.token}/>
<div class="flex items-center mt-2">
<Check bind:check={$DataBase.NAIadventure} name={language.textAdventureNAI}/>
</div>
<div class="flex items-center mt-2 mb-4">
<Check bind:check={$DataBase.NAIappendName} name={language.appendNameNAI}/>
</div>
{/if}
{#if $DataBase.aiModel === "kobold" || $DataBase.subModel === "kobold"} {#if $DataBase.aiModel === "kobold" || $DataBase.subModel === "kobold"}
<span class="text-textcolor">Kobold URL</span> <span class="text-textcolor">Kobold URL</span>
@@ -349,52 +340,39 @@
<span class="text-textcolor">{language.temperature} <Help key="tempature"/></span> <span class="text-textcolor">{language.temperature} <Help key="tempature"/></span>
{#if $DataBase.aiModel.startsWith("novelai")} {#if $DataBase.aiModel.startsWith("novelai")}
<SliderInput min={0} max={250} bind:value={$DataBase.temperature}/> <SliderInput min={0} max={250} marginBottom bind:value={$DataBase.temperature} multiple={0.01} fixed={2}/>
{:else} {:else}
<SliderInput min={0} max={200} bind:value={$DataBase.temperature}/> <SliderInput min={0} max={200} marginBottom bind:value={$DataBase.temperature} multiple={0.01} fixed={2}/>
{/if} {/if}
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.temperature / 100).toFixed(2)}</span>
{#if $DataBase.aiModel.startsWith('openrouter') || $DataBase.aiModel.startsWith('claude-3') || $DataBase.aiModel.startsWith('cohere-')} {#if $DataBase.aiModel.startsWith('openrouter') || $DataBase.aiModel.startsWith('claude-3') || $DataBase.aiModel.startsWith('cohere-')}
<span class="text-textcolor">Top K</span> <span class="text-textcolor">Top K</span>
<SliderInput min={0} max={100} step={1} bind:value={$DataBase.top_k}/> <SliderInput min={0} max={100} marginBottom step={1} bind:value={$DataBase.top_k}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.top_k).toFixed(0)}</span>
{/if} {/if}
{#if $DataBase.aiModel.startsWith('openrouter')} {#if $DataBase.aiModel.startsWith('openrouter')}
<span class="text-textcolor">Repetition penalty</span> <span class="text-textcolor">Repetition penalty</span>
<SliderInput min={0} max={2} step={0.01} bind:value={$DataBase.repetition_penalty}/> <SliderInput min={0} max={2} marginBottom step={0.01} fixed={2} bind:value={$DataBase.repetition_penalty}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.repetition_penalty).toFixed(2)}</span>
<span class="text-textcolor">Min P</span> <span class="text-textcolor">Min P</span>
<SliderInput min={0} max={1} step={0.01} bind:value={$DataBase.min_p}/> <SliderInput min={0} max={1} marginBottom step={0.01} fixed={2} bind:value={$DataBase.min_p}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.min_p).toFixed(2)}</span>
<span class="text-textcolor">Top A</span> <span class="text-textcolor">Top A</span>
<SliderInput min={0} max={1} step={0.01} bind:value={$DataBase.top_a}/> <SliderInput min={0} max={1} marginBottom step={0.01} fixed={2} bind:value={$DataBase.top_a}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.top_a).toFixed(2)}</span>
{/if} {/if}
{#if $DataBase.aiModel === 'textgen_webui' || $DataBase.aiModel === 'mancer' || $DataBase.aiModel.startsWith('local_') || $DataBase.aiModel.startsWith('hf:::')} {#if $DataBase.aiModel === 'textgen_webui' || $DataBase.aiModel === 'mancer' || $DataBase.aiModel.startsWith('local_') || $DataBase.aiModel.startsWith('hf:::')}
<span class="text-textcolor">Repetition Penalty</span> <span class="text-textcolor">Repetition Penalty</span>
<SliderInput min={1} max={1.5} step={0.01} bind:value={$DataBase.ooba.repetition_penalty}/> <SliderInput min={1} max={1.5} step={0.01} fixed={2} marginBottom bind:value={$DataBase.ooba.repetition_penalty}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.ooba.repetition_penalty).toFixed(2)}</span>
<span class="text-textcolor">Length Penalty</span> <span class="text-textcolor">Length Penalty</span>
<SliderInput min={-5} max={5} step={0.05} bind:value={$DataBase.ooba.length_penalty}/> <SliderInput min={-5} max={5} step={0.05} marginBottom fixed={2} bind:value={$DataBase.ooba.length_penalty}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.ooba.length_penalty).toFixed(2)}</span>
<span class="text-textcolor">Top K</span> <span class="text-textcolor">Top K</span>
<SliderInput min={0} max={100} step={1} bind:value={$DataBase.ooba.top_k} /> <SliderInput min={0} max={100} step={1} marginBottom bind:value={$DataBase.ooba.top_k} />
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.ooba.top_k).toFixed(0)}</span>
<span class="text-textcolor">Top P</span> <span class="text-textcolor">Top P</span>
<SliderInput min={0} max={1} step={0.01} bind:value={$DataBase.ooba.top_p}/> <SliderInput min={0} max={1} step={0.01} marginBottom fixed={2} bind:value={$DataBase.ooba.top_p}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.ooba.top_p).toFixed(2)}</span>
<span class="text-textcolor">Typical P</span> <span class="text-textcolor">Typical P</span>
<SliderInput min={0} max={1} step={0.01} bind:value={$DataBase.ooba.typical_p}/> <SliderInput min={0} max={1} step={0.01} marginBottom fixed={2} bind:value={$DataBase.ooba.typical_p}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.ooba.typical_p).toFixed(2)}</span>
<span class="text-textcolor">Top A</span> <span class="text-textcolor">Top A</span>
<SliderInput min={0} max={1} step={0.01} bind:value={$DataBase.ooba.top_a}/> <SliderInput min={0} max={1} step={0.01} marginBottom fixed={2} bind:value={$DataBase.ooba.top_a}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.ooba.top_a).toFixed(2)}</span>
<span class="text-textcolor">No Repeat n-gram Size</span> <span class="text-textcolor">No Repeat n-gram Size</span>
<SliderInput min={0} max={20} step={1} bind:value={$DataBase.ooba.no_repeat_ngram_size}/> <SliderInput min={0} max={20} step={1} marginBottom bind:value={$DataBase.ooba.no_repeat_ngram_size}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.ooba.no_repeat_ngram_size).toFixed(0)}</span>
<div class="flex items-center mt-4"> <div class="flex items-center mt-4">
<Check bind:check={$DataBase.ooba.do_sample} name={'Do Sample'}/> <Check bind:check={$DataBase.ooba.do_sample} name={'Do Sample'}/>
</div> </div>
@@ -445,16 +423,6 @@
<div class="flex flex-col p-3 rounded-md border-selected border mt-4"> <div class="flex flex-col p-3 rounded-md border-selected border mt-4">
<ChatFormatSettings /> <ChatFormatSettings />
</div> </div>
<span class="text-textcolor mt-2">{language.autoSuggest} <Help key="autoSuggest"/></span>
<TextAreaInput fullwidth autocomplete="off" bind:value={$DataBase.autoSuggestPrompt} />
<span class="text-textcolor2 mb-6 text-sm">{tokens.autoSuggest} {language.tokens}</span>
<span class="text-textcolor">{language.autoSuggest} Prefix</span>
<TextInput marginBottom={true} bind:value={$DataBase.autoSuggestPrefix} />
<Check bind:check={$DataBase.autoSuggestClean} name={`${language.autoSuggest} suffix removal`}/>
<Check bind:check={$DataBase.ooba.formating.useName} name={language.useNamePrefix}/> <Check bind:check={$DataBase.ooba.formating.useName} name={language.useNamePrefix}/>
{:else if $DataBase.aiModel.startsWith('novelai')} {:else if $DataBase.aiModel.startsWith('novelai')}
@@ -465,91 +433,60 @@
<TextInput bind:value={$DataBase.NAIsettings.seperator} placeholder={"\\n"}/> <TextInput bind:value={$DataBase.NAIsettings.seperator} placeholder={"\\n"}/>
</div> </div>
<span class="text-textcolor">Top P</span> <span class="text-textcolor">Top P</span>
<SliderInput min={0} max={1} step={0.01} bind:value={$DataBase.NAIsettings.topP}/> <SliderInput min={0} max={1} step={0.01} marginBottom fixed={2} bind:value={$DataBase.NAIsettings.topP}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.NAIsettings.topP).toFixed(2)}</span>
<span class="text-textcolor">Top K</span> <span class="text-textcolor">Top K</span>
<SliderInput min={0} max={100} step={1} bind:value={$DataBase.NAIsettings.topK}/> <SliderInput min={0} max={100} step={1} marginBottom bind:value={$DataBase.NAIsettings.topK}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.NAIsettings.topK).toFixed(0)}</span>
<span class="text-textcolor">Top A</span> <span class="text-textcolor">Top A</span>
<SliderInput min={0} max={1} step={0.01} bind:value={$DataBase.NAIsettings.topA}/> <SliderInput min={0} max={1} step={0.01} marginBottom fixed={2} bind:value={$DataBase.NAIsettings.topA}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.NAIsettings.topA).toFixed(2)}</span>
<span class="text-textcolor">Tailfree Sampling</span> <span class="text-textcolor">Tailfree Sampling</span>
<SliderInput min={0} max={1} step={0.001} bind:value={$DataBase.NAIsettings.tailFreeSampling}/> <SliderInput min={0} max={1} step={0.001} marginBottom fixed={3} bind:value={$DataBase.NAIsettings.tailFreeSampling}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.NAIsettings.tailFreeSampling).toFixed(3)}</span>
<span class="text-textcolor">Typical P</span> <span class="text-textcolor">Typical P</span>
<SliderInput min={0} max={1} step={0.01} bind:value={$DataBase.NAIsettings.typicalp}/> <SliderInput min={0} max={1} step={0.01} marginBottom fixed={2} bind:value={$DataBase.NAIsettings.typicalp}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.NAIsettings.typicalp).toFixed(2)}</span>
<span class="text-textcolor">Repetition Penalty</span> <span class="text-textcolor">Repetition Penalty</span>
<SliderInput min={0} max={3} step={0.01} bind:value={$DataBase.NAIsettings.repetitionPenalty}/> <SliderInput min={0} max={3} step={0.01} marginBottom fixed={2} bind:value={$DataBase.NAIsettings.repetitionPenalty}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.NAIsettings.repetitionPenalty).toFixed(2)}</span>
<span class="text-textcolor">Repetition Penalty Range</span> <span class="text-textcolor">Repetition Penalty Range</span>
<SliderInput min={0} max={8192} step={1} bind:value={$DataBase.NAIsettings.repetitionPenaltyRange}/> <SliderInput min={0} max={8192} step={1} marginBottom fixed={0} bind:value={$DataBase.NAIsettings.repetitionPenaltyRange}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.NAIsettings.repetitionPenaltyRange).toFixed(0)}</span>
<span class="text-textcolor">Repetition Penalty Slope</span> <span class="text-textcolor">Repetition Penalty Slope</span>
<SliderInput min={0} max={10} step={0.01} bind:value={$DataBase.NAIsettings.repetitionPenaltySlope}/> <SliderInput min={0} max={10} step={0.01} marginBottom fixed={2} bind:value={$DataBase.NAIsettings.repetitionPenaltySlope}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.NAIsettings.repetitionPenaltySlope).toFixed(2)}</span>
<span class="text-textcolor">Frequency Penalty</span> <span class="text-textcolor">Frequency Penalty</span>
<SliderInput min={-2} max={2} step={0.01} bind:value={$DataBase.NAIsettings.frequencyPenalty}/> <SliderInput min={-2} max={2} step={0.01} marginBottom fixed={2} bind:value={$DataBase.NAIsettings.frequencyPenalty}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.NAIsettings.frequencyPenalty).toFixed(2)}</span>
<span class="text-textcolor">Presence Penalty</span> <span class="text-textcolor">Presence Penalty</span>
<SliderInput min={-2} max={2} step={0.01} bind:value={$DataBase.NAIsettings.presencePenalty}/> <SliderInput min={-2} max={2} step={0.01} marginBottom fixed={2} bind:value={$DataBase.NAIsettings.presencePenalty}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.NAIsettings.presencePenalty).toFixed(2)}</span>
<span class="text-textcolor">Mirostat LR</span> <span class="text-textcolor">Mirostat LR</span>
<SliderInput min={0} max={1} step={0.01} bind:value={$DataBase.NAIsettings.mirostat_lr}/> <SliderInput min={0} max={1} step={0.01} marginBottom fixed={2} bind:value={$DataBase.NAIsettings.mirostat_lr}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.NAIsettings.mirostat_lr).toFixed(2)}</span>
<span class="text-textcolor">Mirostat Tau</span> <span class="text-textcolor">Mirostat Tau</span>
<SliderInput min={0} max={6} step={0.01} bind:value={$DataBase.NAIsettings.mirostat_tau}/> <SliderInput min={0} max={6} step={0.01} marginBottom fixed={2} bind:value={$DataBase.NAIsettings.mirostat_tau}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.NAIsettings.mirostat_tau).toFixed(2)}</span>
<span class="text-textcolor">Cfg Scale</span> <span class="text-textcolor">Cfg Scale</span>
<SliderInput min={1} max={3} step={0.01} bind:value={$DataBase.NAIsettings.cfg_scale}/> <SliderInput min={1} max={3} step={0.01} marginBottom fixed={2} bind:value={$DataBase.NAIsettings.cfg_scale}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.NAIsettings.cfg_scale).toFixed(2)}</span>
{:else if $DataBase.aiModel.startsWith('novellist')} {:else if $DataBase.aiModel.startsWith('novellist')}
<span class="text-textcolor">Top P</span> <span class="text-textcolor">Top P</span>
<SliderInput min={0} max={2} step={0.01} bind:value={$DataBase.ainconfig.top_p}/> <SliderInput min={0} max={2} step={0.01} marginBottom fixed={2} bind:value={$DataBase.ainconfig.top_p}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.ainconfig.top_p).toFixed(2)}</span>
<span class="text-textcolor">Reputation Penalty</span> <span class="text-textcolor">Reputation Penalty</span>
<SliderInput min={0} max={2} step={0.01} bind:value={$DataBase.ainconfig.rep_pen}/> <SliderInput min={0} max={2} step={0.01} marginBottom fixed={2} bind:value={$DataBase.ainconfig.rep_pen}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.ainconfig.rep_pen).toFixed(2)}</span>
<span class="text-textcolor">Reputation Penalty Range</span> <span class="text-textcolor">Reputation Penalty Range</span>
<SliderInput min={0} max={2048} step={1} bind:value={$DataBase.ainconfig.rep_pen_range}/> <SliderInput min={0} max={2048} step={1} marginBottom fixed={2} bind:value={$DataBase.ainconfig.rep_pen_range}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.ainconfig.rep_pen_range).toFixed(2)}</span>
<span class="text-textcolor">Reputation Penalty Slope</span> <span class="text-textcolor">Reputation Penalty Slope</span>
<SliderInput min={0} max={10} step={0.1} bind:value={$DataBase.ainconfig.rep_pen_slope}/> <SliderInput min={0} max={10} step={0.1} marginBottom fixed={2} bind:value={$DataBase.ainconfig.rep_pen_slope}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.ainconfig.rep_pen_slope).toFixed(2)}</span>
<span class="text-textcolor">Top K</span> <span class="text-textcolor">Top K</span>
<SliderInput min={1} max={500} step={1} bind:value={$DataBase.ainconfig.top_k}/> <SliderInput min={1} max={500} step={1} marginBottom fixed={2} bind:value={$DataBase.ainconfig.top_k}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.ainconfig.top_k).toFixed(2)}</span>
<span class="text-textcolor">Top A</span> <span class="text-textcolor">Top A</span>
<SliderInput min={0} max={1} step={0.01} bind:value={$DataBase.ainconfig.top_a}/> <SliderInput min={0} max={1} step={0.01} marginBottom fixed={2} bind:value={$DataBase.ainconfig.top_a}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.ainconfig.top_a).toFixed(2)}</span>
<span class="text-textcolor">Typical P</span> <span class="text-textcolor">Typical P</span>
<SliderInput min={0} max={1} step={0.01} bind:value={$DataBase.ainconfig.typical_p}/> <SliderInput min={0} max={1} step={0.01} marginBottom fixed={2} bind:value={$DataBase.ainconfig.typical_p}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.ainconfig.typical_p).toFixed(2)}</span>
{:else if $DataBase.aiModel.startsWith('claude')} {:else if $DataBase.aiModel.startsWith('claude')}
<span class="text-textcolor">Top P <Help key="topP"/></span> <span class="text-textcolor">Top P <Help key="topP"/></span>
<SliderInput min={0} max={1} step={0.01} bind:value={$DataBase.top_p}/> <SliderInput min={0} max={1} step={0.01} marginBottom fixed={2} bind:value={$DataBase.top_p}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.top_p).toFixed(2)}</span>
<span class="text-textcolor mt-2">{language.autoSuggest} <Help key="autoSuggest"/></span>
<TextAreaInput autocomplete="off" bind:value={$DataBase.autoSuggestPrompt} />
<span class="text-textcolor2 mb-6 text-sm">{tokens.autoSuggest} {language.tokens}</span>
{:else} {:else}
<span class="text-textcolor">Top P <Help key="topP"/></span> <span class="text-textcolor">Top P <Help key="topP"/></span>
<SliderInput min={0} max={1} step={0.01} bind:value={$DataBase.top_p}/> <SliderInput min={0} max={1} step={0.01} marginBottom fixed={2} bind:value={$DataBase.top_p}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.top_p).toFixed(2)}</span>
<span class="text-textcolor">{language.frequencyPenalty} <Help key="frequencyPenalty"/></span> <span class="text-textcolor">{language.frequencyPenalty} <Help key="frequencyPenalty"/></span>
<SliderInput min={0} max={200} bind:value={$DataBase.frequencyPenalty} /> <SliderInput min={0} max={200} marginBottom fixed={2} multiple={0.01} bind:value={$DataBase.frequencyPenalty} />
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.frequencyPenalty / 100).toFixed(2)}</span>
<span class="text-textcolor">{language.presensePenalty} <Help key="presensePenalty"/></span> <span class="text-textcolor">{language.presensePenalty} <Help key="presensePenalty"/></span>
<SliderInput min={0} max={200} bind:value={$DataBase.PresensePenalty} /> <SliderInput min={0} max={200} marginBottom fixed={2} multiple={0.01} bind:value={$DataBase.PresensePenalty} />
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.PresensePenalty / 100).toFixed(2)}</span>
<span class="text-textcolor mt-2">{language.autoSuggest} <Help key="autoSuggest"/></span>
<TextAreaInput autocomplete="off" bind:value={$DataBase.autoSuggestPrompt} />
<span class="text-textcolor2 mb-6 text-sm">{tokens.autoSuggest} {language.tokens}</span>
{/if} {/if}
{/if} {/if}

View File

@@ -1,4 +1,4 @@
<input <!-- <input
class="text-textcolor bg-transparent input-text" class="text-textcolor bg-transparent input-text"
class:mb-4={marginBottom} class:mb-4={marginBottom}
type="range" type="range"
@@ -7,25 +7,43 @@
step={step} step={step}
bind:value bind:value
on:change on:change
> > -->
<!-- <div class="p-6 max-w-sm mx-auto bg-gray-800 rounded-xl shadow-md flex items-center space-x-4 w-full" class:mb-4={marginBottom}> <div class="w-full" class:mb-4={marginBottom}>
<div
class="relative w-full h-8 border-darkborderc border rounded-full cursor-pointer"
on:mousedown={(event) => {
mouseDown = true;
changeValue(event);
}}
on:mousemove={(event) => {
if (mouseDown) {
changeValue(event);
}
}}
on:mouseup={() => {
mouseDown = false;
}}
on:mouseleave={() => {
mouseDown = false;
}}
bind:this={slider}
>
<div <div
class="relative w-full h-2 bg-darkbutton rounded-full cursor-pointer" class="absolute top-0 left-0 h-8 rounded-full bg-borderc transition-width duration-200"
on:click={changeValue} style="width: {(value - min) / (max - min) * 100}%;"
> >
<div
class="absolute top-0 left-0 h-2 rounded-full bg-indigo-500 transition-width duration-200"
style="width: {(value - min) / (max - min) * 100}%;"
>
</div>
<div
class="absolute top-1/2 transform -translate-y-1/2 -translate-x-1/2 w-4 h-4 bg-white rounded-full shadow"
style="left: {(value - min) / (max - min) * 100}%;"
>
</div>
</div> </div>
</div> --> <span
class="absolute top-0 left-4 h-8 w-8 rounded-full items-center justify-center flex text-textcolor text-sm"
>
{(value * multiple).toFixed(fixed)}
</span>
</div>
</div>
<script lang="ts"> <script lang="ts">
@@ -34,10 +52,15 @@
export let value:number export let value:number
export let marginBottom = false export let marginBottom = false
export let step = 1 export let step = 1
export let fixed = 0
export let multiple = 1
let slider: HTMLDivElement
let mouseDown = false
function changeValue(event) { function changeValue(event) {
const rect = event.target.getBoundingClientRect(); const rect = slider.getBoundingClientRect();
const x = event.clientX - rect.left; const x = event.clientX - rect.left;
console.log(x, rect.width);
let newValue = ((x / rect.width) * (max - min)) + min; let newValue = ((x / rect.width) * (max - min)) + min;
newValue = Math.round(newValue / step) * step; newValue = Math.round(newValue / step) * step;
value = Math.min(Math.max(newValue, min), max); value = Math.min(Math.max(newValue, min), max);