mirror of
https://github.com/open-webui/open-webui
synced 2025-06-11 08:56:21 +00:00
fix: model knowledge
This commit is contained in:
parent
0c618b8145
commit
2e267b420a
@ -3,7 +3,9 @@
|
|||||||
import Selector from './Knowledge/Selector.svelte';
|
import Selector from './Knowledge/Selector.svelte';
|
||||||
import FileItem from '$lib/components/common/FileItem.svelte';
|
import FileItem from '$lib/components/common/FileItem.svelte';
|
||||||
|
|
||||||
export let knowledge = [];
|
export let selectedKnowledge = [];
|
||||||
|
export let collections = [];
|
||||||
|
|
||||||
const i18n = getContext('i18n');
|
const i18n = getContext('i18n');
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -17,14 +19,18 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-col">
|
<div class="flex flex-col">
|
||||||
{#if knowledge?.length > 0}
|
{#if selectedKnowledge?.length > 0}
|
||||||
<div class=" flex items-center gap-2 mt-2">
|
<div class=" flex flex-wrap items-center gap-2 mt-2">
|
||||||
{#each knowledge as file, fileIdx}
|
{#each selectedKnowledge as file, fileIdx}
|
||||||
<FileItem
|
<FileItem
|
||||||
{file}
|
{file}
|
||||||
|
name={file.name}
|
||||||
|
type={file?.legacy
|
||||||
|
? `Legacy${file.type ? ` ${file.type}` : ''}`
|
||||||
|
: (file?.type ?? 'Collection')}
|
||||||
dismissible
|
dismissible
|
||||||
on:dismiss={(e) => {
|
on:dismiss={(e) => {
|
||||||
knowledge = knowledge.filter((_, idx) => idx !== fileIdx);
|
selectedKnowledge = selectedKnowledge.filter((_, idx) => idx !== fileIdx);
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
{/each}
|
{/each}
|
||||||
@ -33,16 +39,14 @@
|
|||||||
|
|
||||||
<div class="flex flex-wrap text-sm font-medium gap-1.5 mt-2">
|
<div class="flex flex-wrap text-sm font-medium gap-1.5 mt-2">
|
||||||
<Selector
|
<Selector
|
||||||
bind:knowledge
|
|
||||||
on:select={(e) => {
|
on:select={(e) => {
|
||||||
const item = e.detail;
|
const item = e.detail;
|
||||||
|
|
||||||
if (!knowledge.find((k) => k.name === item.name)) {
|
if (!selectedKnowledge.find((k) => k.id === item.id)) {
|
||||||
knowledge = [
|
selectedKnowledge = [
|
||||||
...knowledge,
|
...selectedKnowledge,
|
||||||
{
|
{
|
||||||
...item,
|
...item
|
||||||
type: item?.type ?? 'doc'
|
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -50,8 +50,6 @@
|
|||||||
...(item?.legacy || item?.meta?.legacy || item?.meta?.document ? { legacy: true } : {})
|
...(item?.legacy || item?.meta?.legacy || item?.meta?.document ? { legacy: true } : {})
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log(items);
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -2,7 +2,15 @@
|
|||||||
import { v4 as uuidv4 } from 'uuid';
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
import { toast } from 'svelte-sonner';
|
import { toast } from 'svelte-sonner';
|
||||||
import { goto } from '$app/navigation';
|
import { goto } from '$app/navigation';
|
||||||
import { settings, user, config, models, tools, functions } from '$lib/stores';
|
import {
|
||||||
|
settings,
|
||||||
|
user,
|
||||||
|
config,
|
||||||
|
models,
|
||||||
|
tools,
|
||||||
|
functions,
|
||||||
|
knowledge as _knowledge
|
||||||
|
} from '$lib/stores';
|
||||||
|
|
||||||
import TurndownService from 'turndown';
|
import TurndownService from 'turndown';
|
||||||
|
|
||||||
@ -629,7 +637,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="my-2">
|
<div class="my-2">
|
||||||
<Knowledge bind:knowledge />
|
<Knowledge bind:selectedKnowledge={knowledge} collections={$_knowledge} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="my-2">
|
<div class="my-2">
|
||||||
|
@ -5,7 +5,15 @@
|
|||||||
|
|
||||||
import { onMount, getContext } from 'svelte';
|
import { onMount, getContext } from 'svelte';
|
||||||
import { page } from '$app/stores';
|
import { page } from '$app/stores';
|
||||||
import { settings, user, config, models, tools, functions } from '$lib/stores';
|
import {
|
||||||
|
settings,
|
||||||
|
user,
|
||||||
|
config,
|
||||||
|
models,
|
||||||
|
tools,
|
||||||
|
functions,
|
||||||
|
knowledge as _knowledge
|
||||||
|
} from '$lib/stores';
|
||||||
import { splitStream } from '$lib/utils';
|
import { splitStream } from '$lib/utils';
|
||||||
|
|
||||||
import { getModelInfos, updateModelById } from '$lib/apis/models';
|
import { getModelInfos, updateModelById } from '$lib/apis/models';
|
||||||
@ -161,7 +169,25 @@
|
|||||||
: null;
|
: null;
|
||||||
|
|
||||||
if (model?.info?.meta?.knowledge) {
|
if (model?.info?.meta?.knowledge) {
|
||||||
knowledge = [...model?.info?.meta?.knowledge];
|
console.log(model?.info?.meta?.knowledge);
|
||||||
|
knowledge = [...model?.info?.meta?.knowledge].map((item) => {
|
||||||
|
if (item?.collection_name) {
|
||||||
|
return {
|
||||||
|
id: item.collection_name,
|
||||||
|
name: item.name,
|
||||||
|
legacy: true
|
||||||
|
};
|
||||||
|
} else if (item?.collection_names) {
|
||||||
|
return {
|
||||||
|
name: item.name,
|
||||||
|
type: 'collection',
|
||||||
|
collection_names: item.collection_names,
|
||||||
|
legacy: true
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model?.info?.meta?.toolIds) {
|
if (model?.info?.meta?.toolIds) {
|
||||||
@ -558,7 +584,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="my-2">
|
<div class="my-2">
|
||||||
<Knowledge bind:knowledge />
|
<Knowledge bind:selectedKnowledge={knowledge} collections={$_knowledge} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="my-2">
|
<div class="my-2">
|
||||||
|
Loading…
Reference in New Issue
Block a user