feat: model_ids per folder
This commit is contained in:
1 parent
557367cf48
commit
e2ca7b8632
5 files changed
+79
-37
No files matched your search
@@ -91,6 +91,7 @@
|
||||
import Sidebar from '../icons/Sidebar.svelte';
|
||||
import { getFunctions } from '$lib/apis/functions';
|
||||
import Image from '../common/Image.svelte';
|
||||
import { updateFolderById } from '$lib/apis/folders';
|
||||
|
||||
export let chatIdProp = '';
|
||||
|
||||
@@ -499,7 +500,24 @@
|
||||
}
|
||||
};
|
||||
|
||||
const savedModelIds = async () => {
|
||||
if ($selectedFolder && $selectedFolder?.data?.model_ids !== selectedModels) {
|
||||
const res = await updateFolderById(localStorage.token, $selectedFolder.id, {
|
||||
data: {
|
||||
model_ids: selectedModels
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$: if (selectedModels !== null) {
|
||||
savedModelIds();
|
||||
}
|
||||
|
||||
let pageSubscribe = null;
|
||||
let showControlsSubscribe = null;
|
||||
let selectedFolderSubscribe = null;
|
||||
|
||||
onMount(async () => {
|
||||
loading = true;
|
||||
console.log('mounted');
|
||||
@@ -548,7 +566,7 @@
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
showControls.subscribe(async (value) => {
|
||||
showControlsSubscribe = showControls.subscribe(async (value) => {
|
||||
if (controlPane && !$mobile) {
|
||||
try {
|
||||
if (value) {
|
||||
@@ -569,17 +587,32 @@
|
||||
}
|
||||
});
|
||||
|
||||
selectedFolderSubscribe = selectedFolder.subscribe(async (folder) => {
|
||||
if (
|
||||
folder?.data?.model_ids &&
|
||||
JSON.stringify(selectedModels) !== JSON.stringify(folder.data.model_ids)
|
||||
) {
|
||||
selectedModels = folder.data.model_ids;
|
||||
|
||||
console.log('Set selectedModels from folder data:', selectedModels);
|
||||
}
|
||||
});
|
||||
|
||||
const chatInput = document.getElementById('chat-input');
|
||||
chatInput?.focus();
|
||||
|
||||
chats.subscribe(() => {});
|
||||
});
|
||||
|
||||
onDestroy(() => {
|
||||
pageSubscribe();
|
||||
chatIdUnsubscriber?.();
|
||||
window.removeEventListener('message', onMessageHandler);
|
||||
$socket?.off('chat-events', chatEventHandler);
|
||||
try {
|
||||
pageSubscribe();
|
||||
showControlsSubscribe();
|
||||
selectedFolderSubscribe();
|
||||
chatIdUnsubscriber?.();
|
||||
window.removeEventListener('message', onMessageHandler);
|
||||
$socket?.off('chat-events', chatEventHandler);
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
});
|
||||
|
||||
// File upload functions
|
||||
@@ -780,6 +813,7 @@
|
||||
//////////////////////////
|
||||
|
||||
const initNewChat = async () => {
|
||||
console.log('initNewChat');
|
||||
if ($user?.role !== 'admin' && $user?.permissions?.chat?.temporary_enforced) {
|
||||
await temporaryChatEnabled.set(true);
|
||||
}
|
||||
@@ -830,17 +864,22 @@
|
||||
$models.map((m) => m.id).includes(modelId)
|
||||
);
|
||||
} else {
|
||||
if (sessionStorage.selectedModels) {
|
||||
selectedModels = JSON.parse(sessionStorage.selectedModels);
|
||||
sessionStorage.removeItem('selectedModels');
|
||||
if ($selectedFolder?.data?.model_ids) {
|
||||
selectedModels = $selectedFolder?.data?.model_ids;
|
||||
} else {
|
||||
if ($settings?.models) {
|
||||
selectedModels = $settings?.models;
|
||||
} else if ($config?.default_models) {
|
||||
console.log($config?.default_models.split(',') ?? '');
|
||||
selectedModels = $config?.default_models.split(',');
|
||||
if (sessionStorage.selectedModels) {
|
||||
selectedModels = JSON.parse(sessionStorage.selectedModels);
|
||||
sessionStorage.removeItem('selectedModels');
|
||||
} else {
|
||||
if ($settings?.models) {
|
||||
selectedModels = $settings?.models;
|
||||
} else if ($config?.default_models) {
|
||||
console.log($config?.default_models.split(',') ?? '');
|
||||
selectedModels = $config?.default_models.split(',');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
selectedModels = selectedModels.filter((modelId) => availableModels.includes(modelId));
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user