Spaces:
Running
Running
<script lang="ts"> | |
import { page } from "$app/stores"; | |
import type { BackendModel } from "$lib/server/models"; | |
import { useSettingsStore } from "$lib/stores/settings"; | |
import CarbonArrowUpRight from "~icons/carbon/arrow-up-right"; | |
const settings = useSettingsStore(); | |
$: if ($settings.customPrompts[$page.params.model] === undefined) { | |
$settings.customPrompts = { | |
...$settings.customPrompts, | |
[$page.params.model]: | |
$page.data.models.find((el: BackendModel) => el.id === $page.params.model)?.preprompt || "", | |
}; | |
} | |
$: hasCustomPreprompt = | |
$settings.customPrompts[$page.params.model] !== | |
$page.data.models.find((el: BackendModel) => el.id === $page.params.model)?.preprompt; | |
$: isActive = $settings.activeModel === $page.params.model; | |
$: model = $page.data.models.find((el: BackendModel) => el.id === $page.params.model); | |
</script> | |
<div class="flex flex-col items-start"> | |
<h2 class="mb-2.5 text-xl font-semibold"> | |
{$page.params.model} | |
</h2> | |
<div class="flex items-center gap-4"> | |
<a | |
href={model.modelUrl || "https://huggingface.co/" + model.name} | |
target="_blank" | |
rel="noreferrer" | |
class="flex items-center truncate underline underline-offset-2" | |
> | |
<CarbonArrowUpRight class="mr-1.5 shrink-0 text-xs " /> | |
Model page | |
</a> | |
{#if model.datasetName || model.datasetUrl} | |
<a | |
href={model.datasetUrl || "https://huggingface.co/datasets/" + model.datasetName} | |
target="_blank" | |
rel="noreferrer" | |
class="flex items-center truncate underline underline-offset-2" | |
> | |
<CarbonArrowUpRight class="mr-1.5 shrink-0 text-xs " /> | |
Dataset page | |
</a> | |
{/if} | |
{#if model.websiteUrl} | |
<a | |
href={model.websiteUrl} | |
target="_blank" | |
class="flex items-center truncate underline underline-offset-2" | |
rel="noreferrer" | |
> | |
<CarbonArrowUpRight class="mr-1.5 shrink-0 text-xs " /> | |
Model website | |
</a> | |
{/if} | |
</div> | |
<button | |
class="{isActive | |
? 'bg-gray-100' | |
: 'bg-black text-white'} my-8 flex items-center rounded-full px-3 py-1" | |
disabled={isActive} | |
name="Activate model" | |
on:click|stopPropagation={() => { | |
$settings.activeModel = $page.params.model; | |
}} | |
> | |
{isActive ? "Active model" : "Activate"} | |
</button> | |
<div class="flex w-full flex-col gap-2"> | |
<div class="flex w-full flex-row content-between"> | |
<h3 class="mb-1.5 text-lg font-semibold text-gray-800">System Prompt</h3> | |
{#if hasCustomPreprompt} | |
<button | |
class="ml-auto underline decoration-gray-300 hover:decoration-gray-700" | |
on:click|stopPropagation={() => | |
($settings.customPrompts[$page.params.model] = model.preprompt)} | |
> | |
Reset | |
</button> | |
{/if} | |
</div> | |
<textarea | |
rows="10" | |
class="w-full resize-none rounded-md border-2 bg-gray-100 p-2" | |
bind:value={$settings.customPrompts[$page.params.model]} | |
/> | |
</div> | |
</div> | |