diff --git a/src/lib/components/chat/ModelSelector/Selector.svelte b/src/lib/components/chat/ModelSelector/Selector.svelte index 99827c02b..777f2f2d0 100644 --- a/src/lib/components/chat/ModelSelector/Selector.svelte +++ b/src/lib/components/chat/ModelSelector/Selector.svelte @@ -84,47 +84,49 @@ } ); - $: filteredItems = searchValue - ? fuse - .search(searchValue) - .map((e) => { - return e.item; - }) - .filter((item) => { - if (selectedTag === '') { - return true; - } - return (item.model?.tags ?? []).map((tag) => tag.name).includes(selectedTag); - }) - .filter((item) => { - if (selectedConnectionType === '') { - return true; - } else if (selectedConnectionType === 'ollama') { - return item.model?.owned_by === 'ollama'; - } else if (selectedConnectionType === 'openai') { - return item.model?.owned_by === 'openai'; - } else if (selectedConnectionType === 'direct') { - return item.model?.direct; - } - }) - : items - .filter((item) => { - if (selectedTag === '') { - return true; - } - return (item.model?.tags ?? []).map((tag) => tag.name).includes(selectedTag); - }) - .filter((item) => { - if (selectedConnectionType === '') { - return true; - } else if (selectedConnectionType === 'ollama') { - return item.model?.owned_by === 'ollama'; - } else if (selectedConnectionType === 'openai') { - return item.model?.owned_by === 'openai'; - } else if (selectedConnectionType === 'direct') { - return item.model?.direct; - } - }); + $: filteredItems = ( + searchValue + ? fuse + .search(searchValue) + .map((e) => { + return e.item; + }) + .filter((item) => { + if (selectedTag === '') { + return true; + } + return (item.model?.tags ?? []).map((tag) => tag.name).includes(selectedTag); + }) + .filter((item) => { + if (selectedConnectionType === '') { + return true; + } else if (selectedConnectionType === 'ollama') { + return item.model?.owned_by === 'ollama'; + } else if (selectedConnectionType === 'openai') { + return item.model?.owned_by === 'openai'; + } else if (selectedConnectionType === 'direct') { + return item.model?.direct; + } + }) + : items + .filter((item) => { + if (selectedTag === '') { + return true; + } + return (item.model?.tags ?? []).map((tag) => tag.name).includes(selectedTag); + }) + .filter((item) => { + if (selectedConnectionType === '') { + return true; + } else if (selectedConnectionType === 'ollama') { + return item.model?.owned_by === 'ollama'; + } else if (selectedConnectionType === 'openai') { + return item.model?.owned_by === 'openai'; + } else if (selectedConnectionType === 'direct') { + return item.model?.direct; + } + }) + ).filter((item) => !(item.model?.info?.meta?.hidden ?? false)); $: if (selectedTag || selectedConnectionType) { resetView(); @@ -282,7 +284,10 @@ ollamaVersion = await getOllamaVersion(localStorage.token).catch((error) => false); if (items) { - tags = items.flatMap((item) => item.model?.tags ?? []).map((tag) => tag.name); + tags = items + .filter((item) => !(item.model?.info?.meta?.hidden ?? false)) + .flatMap((item) => item.model?.tags ?? []) + .map((tag) => tag.name); // Remove duplicates and sort tags = Array.from(new Set(tags)).sort((a, b) => a.localeCompare(b)); @@ -388,18 +393,20 @@ class="flex gap-1 w-fit text-center text-sm font-medium rounded-full bg-transparent px-1.5 pb-0.5" bind:this={tagsContainerElement} > - + {#if (items.find((item) => item.model?.owned_by === 'ollama') && items.find((item) => item.model?.owned_by === 'openai')) || items.find((item) => item.model?.direct) || tags.length > 0} + + {/if} {#if items.find((item) => item.model?.owned_by === 'ollama') && items.find((item) => item.model?.owned_by === 'openai')}