diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte
index b162d0522..5e5fadf50 100644
--- a/src/lib/components/chat/Chat.svelte
+++ b/src/lib/components/chat/Chat.svelte
@@ -195,10 +195,12 @@
$: if (selectedModels) {
setToolIds();
+ setFilterIds();
}
$: if (atSelectedModel || selectedModels) {
setToolIds();
+ setFilterIds();
}
const setToolIds = async () => {
@@ -218,6 +220,17 @@
}
};
+ const setFilterIds = async () => {
+ if (selectedModels.length !== 1 && !atSelectedModel) {
+ selectedFilterIds = [];
+ }
+
+ const model = atSelectedModel ?? $models.find((m) => m.id === selectedModels[0]);
+ if (model) {
+ selectedFilterIds = model?.info?.meta?.filterIds ?? [];
+ }
+ };
+
const showMessage = async (message) => {
const _chatId = JSON.parse(JSON.stringify($chatId));
let _messageId = JSON.parse(JSON.stringify(message.id));
diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte
index 5d9bc4916..b46b21cbe 100644
--- a/src/lib/components/chat/MessageInput.svelte
+++ b/src/lib/components/chat/MessageInput.svelte
@@ -49,9 +49,9 @@
import Headphone from '../icons/Headphone.svelte';
import GlobeAlt from '../icons/GlobeAlt.svelte';
import Photo from '../icons/Photo.svelte';
- import LightBlub from '../icons/LightBlub.svelte';
import Wrench from '../icons/Wrench.svelte';
import CommandLine from '../icons/CommandLine.svelte';
+ import Sparkles from '../icons/Sparkles.svelte';
import { KokoroWorker } from '$lib/workers/KokoroWorker';
@@ -120,10 +120,10 @@
(model) => $models.find((m) => m.id === model)?.info?.meta?.capabilities?.vision ?? true
);
- let reasoningCapableModels = [];
- $: reasoningCapableModels = $models
- .filter((model) => model.info?.meta?.capabilities?.reasoning ?? false)
- .map((model) => model.id);
+ let toggleFilters = [];
+ $: toggleFilters = (atSelectedModel?.id || selectedModels)
+ .map((id) => ($models.find((model) => model.id === id) || {})?.filters ?? [])
+ .reduce((acc, filters) => acc.filter((f1) => filters.some((f2) => f2.id === f1.id)));
const scrollToBottom = () => {
const element = document.getElementById('messages-container');
@@ -363,7 +363,6 @@
-
{#if loaded}
@@ -1151,6 +1150,47 @@
{/if}
{#if $_user}
+ {#each toggleFilters as filter, filterIdx (filter.id)}
+
+
+
+ {/each}
+
{#if $config?.features?.enable_web_search && ($_user.role === 'admin' || $_user?.permissions?.features?.web_search)}