enh: model url search param

This commit is contained in:
Timothy J. Baek 2024-10-19 01:30:49 -07:00
parent 81f62d5bff
commit ce917eba81
3 changed files with 33 additions and 2 deletions

View File

@ -85,6 +85,8 @@
let processing = '';
let messagesContainerElement: HTMLDivElement;
let navbarElement;
let showEventConfirmation = false;
let eventConfirmationTitle = '';
let eventConfirmationMessage = '';
@ -437,7 +439,29 @@
if ($page.url.searchParams.get('models')) {
selectedModels = $page.url.searchParams.get('models')?.split(',');
} else if ($page.url.searchParams.get('model')) {
selectedModels = $page.url.searchParams.get('model')?.split(',');
const urlModels = $page.url.searchParams.get('model')?.split(',');
if (urlModels.length === 1) {
const m = $models.find((m) => m.id === urlModels[0]);
if (!m) {
const modelSelectorButton = document.getElementById('model-selector-0-button');
if (modelSelectorButton) {
modelSelectorButton.click();
await tick();
const modelSelectorInput = document.getElementById('model-search-input');
if (modelSelectorInput) {
modelSelectorInput.focus();
modelSelectorInput.value = urlModels[0];
modelSelectorInput.dispatchEvent(new Event('input'));
}
}
} else {
selectedModels = urlModels;
}
} else {
selectedModels = urlModels;
}
} else if ($settings?.models) {
selectedModels = $settings?.models;
} else if ($config?.default_models) {
@ -2051,6 +2075,7 @@
{/if}
<Navbar
bind:this={navbarElement}
chat={{
id: $chatId,
chat: {

View File

@ -40,6 +40,7 @@
<div class="overflow-hidden w-full">
<div class="mr-1 max-w-full">
<Selector
id={`${selectedModelIdx}`}
placeholder={$i18n.t('Select a model')}
items={$models.map((model) => ({
value: model.id,

View File

@ -25,6 +25,7 @@
const i18n = getContext('i18n');
const dispatch = createEventDispatcher();
export let id = '';
export let value = '';
export let placeholder = 'Select a model';
export let searchEnabled = true;
@ -229,7 +230,11 @@
}}
closeFocus={false}
>
<DropdownMenu.Trigger class="relative w-full font-primary" aria-label={placeholder}>
<DropdownMenu.Trigger
class="relative w-full font-primary"
aria-label={placeholder}
id="model-selector-{id}-button"
>
<div
class="flex w-full text-left px-0.5 outline-none bg-transparent truncate text-lg font-medium placeholder-gray-400 focus:outline-none"
>