From 24cbc469ccc181e5c40c6bd0e4c2a9da2252c1f9 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 11 Feb 2025 21:52:31 -0800 Subject: [PATCH] enh: allow image only message --- src/lib/components/chat/Chat.svelte | 16 +- .../chat/Messages/UserMessage.svelte | 460 +++++++++--------- 2 files changed, 242 insertions(+), 234 deletions(-) diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index 45da5aaba..da966d90d 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -1226,7 +1226,7 @@ selectedModels = _selectedModels; } - if (userPrompt === '') { + if (userPrompt === '' && files.length === 0) { toast.error($i18n.t('Please enter a prompt')); return; } @@ -1478,7 +1478,7 @@ params?.stream_response ?? true; - const messages = [ + let messages = [ params?.system || $settings.system || (responseMessage?.userContext ?? null) ? { role: 'system', @@ -1499,8 +1499,9 @@ ...message, content: removeDetails(message.content, ['reasoning', 'code_interpreter']) })) - ] - .filter((message) => message?.content?.trim()) + ].filter((message) => message); + + messages = messages .map((message, idx, arr) => ({ role: message.role, ...((message.files?.filter((file) => file.type === 'image').length > 0 ?? false) && @@ -1524,7 +1525,8 @@ : { content: message?.merged?.content ?? message.content }) - })); + })) + .filter((message) => message?.role === 'user' || message?.content?.trim()); const res = await generateOpenAIChatCompletion( localStorage.token, @@ -2007,7 +2009,7 @@ } }} on:submit={async (e) => { - if (e.detail) { + if (e.detail || files.length > 0) { await tick(); submitPrompt( ($settings?.richTextInput ?? true) @@ -2050,7 +2052,7 @@ } }} on:submit={async (e) => { - if (e.detail) { + if (e.detail || files.length > 0) { await tick(); submitPrompt( ($settings?.richTextInput ?? true) diff --git a/src/lib/components/chat/Messages/UserMessage.svelte b/src/lib/components/chat/Messages/UserMessage.svelte index 7a2134cc2..8b7f42c79 100644 --- a/src/lib/components/chat/Messages/UserMessage.svelte +++ b/src/lib/components/chat/Messages/UserMessage.svelte @@ -145,149 +145,177 @@ {/if} - {#if edit === true} -
-
-