From 46bd97c10068db3004b3831d1b5689ce6fde7820 Mon Sep 17 00:00:00 2001 From: "Timothy J. Baek" Date: Sat, 5 Oct 2024 21:25:04 -0700 Subject: [PATCH] refac: styling --- .../MessageInput/Commands/Knowledge.svelte | 4 +- .../chat/MessageInput/Commands/Models.svelte | 42 ++++++++++++++----- .../chat/MessageInput/Commands/Prompts.svelte | 4 +- 3 files changed, 35 insertions(+), 15 deletions(-) diff --git a/src/lib/components/chat/MessageInput/Commands/Knowledge.svelte b/src/lib/components/chat/MessageInput/Commands/Knowledge.svelte index d12faf14e..edce2b7e9 100644 --- a/src/lib/components/chat/MessageInput/Commands/Knowledge.svelte +++ b/src/lib/components/chat/MessageInput/Commands/Knowledge.svelte @@ -117,11 +117,11 @@ {#if filteredItems.length > 0 || prompt.split(' ')?.at(0)?.substring(1).startsWith('http')}
-
#
+
#
+ import Fuse from 'fuse.js'; + import { createEventDispatcher, onMount } from 'svelte'; import { tick, getContext } from 'svelte'; @@ -11,13 +13,31 @@ export let command = ''; let selectedIdx = 0; - let filteredModels = []; + let filteredItems = []; - $: filteredModels = $models - .filter((p) => - p.name.toLowerCase().includes(command.toLowerCase().split(' ')?.at(0)?.substring(1) ?? '') - ) - .sort((a, b) => a.name.localeCompare(b.name)); + let fuse = new Fuse( + $models + .filter((model) => !model?.info?.meta?.hidden) + .map((model) => { + const _item = { + ...model, + modelName: model?.name, + tags: model?.info?.meta?.tags?.map((tag) => tag.name).join(' '), + desc: model?.info?.meta?.description + }; + return _item; + }), + { + keys: ['value', 'tags', 'modelName'], + threshold: 0.3 + } + ); + + $: filteredItems = command.slice(1) + ? fuse.search(command).map((e) => { + return e.item; + }) + : $models.filter((model) => !model?.info?.meta?.hidden); $: if (command) { selectedIdx = 0; @@ -28,7 +48,7 @@ }; export const selectDown = () => { - selectedIdx = Math.min(selectedIdx + 1, filteredModels.length - 1); + selectedIdx = Math.min(selectedIdx + 1, filteredItems.length - 1); }; const confirmSelect = async (model) => { @@ -45,21 +65,21 @@ }); -{#if filteredModels.length > 0} +{#if filteredItems.length > 0}
-
@
+
@
- {#each filteredModels as model, modelIdx} + {#each filteredItems as model, modelIdx}