fix: model knowledge

This commit is contained in:
Timothy J. Baek 2024-10-04 16:53:25 -07:00
parent 0c618b8145
commit 2e267b420a
4 changed files with 54 additions and 18 deletions

View File

@ -3,7 +3,9 @@
import Selector from './Knowledge/Selector.svelte';
import FileItem from '$lib/components/common/FileItem.svelte';
export let knowledge = [];
export let selectedKnowledge = [];
export let collections = [];
const i18n = getContext('i18n');
</script>
@ -17,14 +19,18 @@
</div>
<div class="flex flex-col">
{#if knowledge?.length > 0}
<div class=" flex items-center gap-2 mt-2">
{#each knowledge as file, fileIdx}
{#if selectedKnowledge?.length > 0}
<div class=" flex flex-wrap items-center gap-2 mt-2">
{#each selectedKnowledge as file, fileIdx}
<FileItem
{file}
name={file.name}
type={file?.legacy
? `Legacy${file.type ? ` ${file.type}` : ''}`
: (file?.type ?? 'Collection')}
dismissible
on:dismiss={(e) => {
knowledge = knowledge.filter((_, idx) => idx !== fileIdx);
selectedKnowledge = selectedKnowledge.filter((_, idx) => idx !== fileIdx);
}}
/>
{/each}
@ -33,16 +39,14 @@
<div class="flex flex-wrap text-sm font-medium gap-1.5 mt-2">
<Selector
bind:knowledge
on:select={(e) => {
const item = e.detail;
if (!knowledge.find((k) => k.name === item.name)) {
knowledge = [
...knowledge,
if (!selectedKnowledge.find((k) => k.id === item.id)) {
selectedKnowledge = [
...selectedKnowledge,
{
...item,
type: item?.type ?? 'doc'
...item
}
];
}

View File

@ -50,8 +50,6 @@
...(item?.legacy || item?.meta?.legacy || item?.meta?.document ? { legacy: true } : {})
};
});
console.log(items);
});
</script>

View File

@ -2,7 +2,15 @@
import { v4 as uuidv4 } from 'uuid';
import { toast } from 'svelte-sonner';
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';
@ -629,7 +637,7 @@
</div>
<div class="my-2">
<Knowledge bind:knowledge />
<Knowledge bind:selectedKnowledge={knowledge} collections={$_knowledge} />
</div>
<div class="my-2">

View File

@ -5,7 +5,15 @@
import { onMount, getContext } from 'svelte';
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 { getModelInfos, updateModelById } from '$lib/apis/models';
@ -161,7 +169,25 @@
: null;
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) {
@ -558,7 +584,7 @@
</div>
<div class="my-2">
<Knowledge bind:knowledge />
<Knowledge bind:selectedKnowledge={knowledge} collections={$_knowledge} />
</div>
<div class="my-2">