diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte index 7911b0207..5aceaccef 100644 --- a/src/lib/components/chat/MessageInput.svelte +++ b/src/lib/components/chat/MessageInput.svelte @@ -20,7 +20,6 @@ export let submitPrompt: Function; export let stopResponse: Function; - export let suggestionPrompts = []; export let autoScroll = true; let chatTextAreaElement: HTMLTextAreaElement; let filesInputElement; @@ -453,9 +452,9 @@ /> {/if} - {#if messages.length == 0 && suggestionPrompts.length !== 0} + diff --git a/src/lib/components/chat/MessageInput/Suggestions.svelte b/src/lib/components/chat/MessageInput/Suggestions.svelte index 13a8e1d7a..dd37cc636 100644 --- a/src/lib/components/chat/MessageInput/Suggestions.svelte +++ b/src/lib/components/chat/MessageInput/Suggestions.svelte @@ -10,14 +10,12 @@ : suggestionPrompts.sort(() => Math.random() - 0.5).slice(0, 4); -
-
+
+
{#each prompts as prompt, promptIdx} -
+
{/each} +
+ + diff --git a/src/lib/components/chat/Messages.svelte b/src/lib/components/chat/Messages.svelte index 2da91c50f..534f48968 100644 --- a/src/lib/components/chat/Messages.svelte +++ b/src/lib/components/chat/Messages.svelte @@ -22,6 +22,8 @@ export let continueGeneration: Function; export let regenerateResponse: Function; + export let prompt; + export let suggestionPrompts; export let processing = ''; export let bottomPadding = false; export let autoScroll; @@ -276,7 +278,22 @@ {#if messages.length == 0} - + { + const chatTextAreaElement = document.getElementById('chat-textarea'); + if (chatTextAreaElement) { + prompt = p; + + await tick(); + + chatTextAreaElement.style.height = ''; + chatTextAreaElement.style.height = Math.min(chatTextAreaElement.scrollHeight, 200) + 'px'; + } + }} + /> {:else}
{#key chatId} diff --git a/src/lib/components/chat/Messages/Placeholder.svelte b/src/lib/components/chat/Messages/Placeholder.svelte index d9e04972f..12392c828 100644 --- a/src/lib/components/chat/Messages/Placeholder.svelte +++ b/src/lib/components/chat/Messages/Placeholder.svelte @@ -2,12 +2,16 @@ import { WEBUI_BASE_URL } from '$lib/constants'; import { user } from '$lib/stores'; import { onMount, getContext } from 'svelte'; + import Suggestions from '../MessageInput/Suggestions.svelte'; const i18n = getContext('i18n'); export let models = []; export let modelfiles = []; + export let submitPrompt; + export let suggestionPrompts; + let modelfile = null; let selectedModelIdx = 0; @@ -20,56 +24,68 @@ {#if models.length > 0} -
-
-
- {#each models as model, modelIdx} - - {/each} -
-
-
- {#if modelfile} - - {modelfile.title} - -
- {modelfile.desc} -
- {#if modelfile.user} -
- By {modelfile.user.name ? modelfile.user.name : `@${modelfile.user.username}`} +
+
+
+ {#each models as model, modelIdx} +
- {/if} - {:else} -
{$i18n.t('Hello, {{name}}', { name: $user.name })}
+ {#if model in modelfiles} + modelfile + {:else} + logo + {/if} + + {/each} +
+
+
+
+ {#if modelfile} + + {modelfile.title} + +
+ {modelfile.desc} +
+ {#if modelfile.user} + + {/if} + {:else} +
{$i18n.t('Hello, {{name}}', { name: $user.name })}
-
{$i18n.t('How can I help you today?')}
- {/if} +
+ {$i18n.t('How can I help you today?')} +
+ {/if} +
+
+ +
+ +
{/if} diff --git a/src/routes/(app)/+page.svelte b/src/routes/(app)/+page.svelte index e572f82fd..b5ff1ccfa 100644 --- a/src/routes/(app)/+page.svelte +++ b/src/routes/(app)/+page.svelte @@ -867,7 +867,10 @@ bind:history bind:messages bind:autoScroll + bind:prompt bottomPadding={files.length > 0} + suggestionPrompts={selectedModelfile?.suggestionPrompts ?? + $config.default_prompt_suggestions} {sendPrompt} {continueGeneration} {regenerateResponse} @@ -875,14 +878,6 @@
- +