kepler-chat/src/routes/chat/model-picker.svelte
Thomas G. Lopes 7c216dc18b working chat
2025-06-16 18:50:51 +01:00

30 lines
908 B
Svelte

<script lang="ts">
import { api } from '$lib/backend/convex/_generated/api';
import { useCachedQuery } from '$lib/cache/cached-query.svelte';
import { session } from '$lib/state/session.svelte';
import { settings } from '$lib/state/settings.svelte';
type Props = {
class?: string;
};
let { class: className }: Props = $props();
const enabledModelsQuery = useCachedQuery(api.user_enabled_models.get_enabled, {
user_id: session.current?.user.id ?? '',
});
const enabledArr = $derived(Object.values(enabledModelsQuery.data ?? {}));
$effect(() => {
if (!enabledArr.find((m) => m.model_id === settings.modelId) && enabledArr.length > 0) {
settings.modelId = enabledArr[0]!.model_id;
}
});
</script>
<select bind:value={settings.modelId} class="border {className}">
{#each enabledArr as model (model._id)}
<option value={model.model_id}>{model.model_id}</option>
{/each}
</select>