mirror of
https://github.com/open-webui/open-webui
synced 2025-04-25 08:48:21 +00:00
enh: knowledge collection search
This commit is contained in:
parent
263cc71dd3
commit
f3ee07a8a2
@ -1,4 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import Fuse from 'fuse.js';
|
||||||
import { toast } from 'svelte-sonner';
|
import { toast } from 'svelte-sonner';
|
||||||
|
|
||||||
import { onMount, getContext, onDestroy } from 'svelte';
|
import { onMount, getContext, onDestroy } from 'svelte';
|
||||||
@ -50,6 +51,21 @@
|
|||||||
let showAddTextContentModal = false;
|
let showAddTextContentModal = false;
|
||||||
let inputFiles = null;
|
let inputFiles = null;
|
||||||
|
|
||||||
|
let filteredItems = [];
|
||||||
|
$: if (knowledge) {
|
||||||
|
fuse = new Fuse(knowledge.files, {
|
||||||
|
keys: ['meta.name', 'meta.description']
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$: if (fuse) {
|
||||||
|
filteredItems = query
|
||||||
|
? fuse.search(query).map((e) => {
|
||||||
|
return e.item;
|
||||||
|
})
|
||||||
|
: (knowledge?.files ?? []);
|
||||||
|
}
|
||||||
|
|
||||||
let selectedFile = null;
|
let selectedFile = null;
|
||||||
let selectedFileId = null;
|
let selectedFileId = null;
|
||||||
|
|
||||||
@ -63,6 +79,7 @@
|
|||||||
selectedFile = null;
|
selectedFile = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let fuse = null;
|
||||||
let debounceTimeout = null;
|
let debounceTimeout = null;
|
||||||
let mediaQuery;
|
let mediaQuery;
|
||||||
let dragged = false;
|
let dragged = false;
|
||||||
@ -408,10 +425,10 @@
|
|||||||
<hr class=" mt-2 mb-1 border-gray-50 dark:border-gray-850" />
|
<hr class=" mt-2 mb-1 border-gray-50 dark:border-gray-850" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{#if (knowledge?.files ?? []).length > 0}
|
{#if filteredItems.length > 0}
|
||||||
<div class=" flex overflow-y-auto h-full w-full scrollbar-hidden text-xs">
|
<div class=" flex overflow-y-auto h-full w-full scrollbar-hidden text-xs">
|
||||||
<Files
|
<Files
|
||||||
files={knowledge.files}
|
files={filteredItems}
|
||||||
{selectedFileId}
|
{selectedFileId}
|
||||||
on:click={(e) => {
|
on:click={(e) => {
|
||||||
selectedFileId = e.detail;
|
selectedFileId = e.detail;
|
||||||
|
Loading…
Reference in New Issue
Block a user