enh: allow image only message

This commit is contained in:
Timothy Jaeryang Baek 2025-02-11 21:52:31 -08:00
parent a5bba20915
commit 24cbc469cc
2 changed files with 242 additions and 234 deletions

View File

@ -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)

View File

@ -145,6 +145,7 @@
</div>
{/if}
{#if message.content !== ''}
{#if edit === true}
<div class=" w-full bg-gray-50 dark:bg-gray-800 rounded-3xl px-5 py-3 mb-2">
<div class="max-h-96 overflow-auto">
@ -254,7 +255,9 @@
</svg>
</button>
<div class="text-sm tracking-widest font-semibold self-center dark:text-gray-100">
<div
class="text-sm tracking-widest font-semibold self-center dark:text-gray-100"
>
{siblings.indexOf(message.id) + 1}/{siblings.length}
</div>
@ -383,7 +386,9 @@
</svg>
</button>
<div class="text-sm tracking-widest font-semibold self-center dark:text-gray-100">
<div
class="text-sm tracking-widest font-semibold self-center dark:text-gray-100"
>
{siblings.indexOf(message.id) + 1}/{siblings.length}
</div>
@ -414,6 +419,7 @@
</div>
</div>
{/if}
{/if}
</div>
</div>
</div>