diff --git a/src/lib/components/chat/ModelSelector/Selector.svelte b/src/lib/components/chat/ModelSelector/Selector.svelte
index 4ac937121..f13ec1577 100644
--- a/src/lib/components/chat/ModelSelector/Selector.svelte
+++ b/src/lib/components/chat/ModelSelector/Selector.svelte
@@ -61,7 +61,9 @@
$: selectedModel = items.find((item) => item.value === value) ?? '';
let searchValue = '';
+
let selectedTag = '';
+ let selectedConnectionType = '';
let ollamaVersion = null;
@@ -95,12 +97,35 @@
}
return item.model?.info?.meta?.tags?.map((tag) => tag.name).includes(selectedTag);
})
- : items.filter((item) => {
- if (selectedTag === '') {
- return true;
- }
- return item.model?.info?.meta?.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?.info?.meta?.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;
+ }
+ });
const pullModelHandler = async () => {
const sanitizedModelTag = searchValue.trim().replace(/^ollama\s+(run|pull)\s+/, '');
@@ -332,48 +357,59 @@
bind:this={tagsContainerElement}
>
-
+ {#if items.find((item) => item.model?.owned_by === 'ollama')}
+
+ {/if}
-
+ {#if items.find((item) => item.model?.owned_by === 'openai')}
+
+ {/if}
-
+ {#if items.find((item) => item.model?.direct)}
+
+ {/if}
{#each tags as tag}