From ed1a2ab5e86dc785fcd9e0790c9219d36334b6f4 Mon Sep 17 00:00:00 2001 From: "Timothy J. Baek" Date: Sat, 5 Oct 2024 16:50:06 -0700 Subject: [PATCH] refac: explain button behaviour --- src/lib/components/chat/Chat.svelte | 58 +++++++++++++++++-- .../chat/Messages/ResponseMessage.svelte | 9 +-- 2 files changed, 59 insertions(+), 8 deletions(-) diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index 6db935113..8987fc3a0 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -1979,9 +1979,35 @@ {mergeResponses} {chatActionHandler} bottomPadding={files.length > 0} - on:submit={(e) => { + on:submit={async (e) => { if (e.detail) { - submitPrompt(e.detail); + // New user message + let userPrompt = e.detail.prompt; + let userMessageId = uuidv4(); + + let userMessage = { + id: userMessageId, + parentId: e.detail.parentId, + childrenIds: [], + role: 'user', + content: userPrompt, + models: selectedModels + }; + + let messageParentId = e.detail.parentId; + + if (messageParentId !== null) { + history.messages[messageParentId].childrenIds = [ + ...history.messages[messageParentId].childrenIds, + userMessageId + ]; + } + + history.messages[userMessageId] = userMessage; + history.currentId = userMessageId; + + await tick(); + await sendPrompt(userPrompt, userMessageId); } }} /> @@ -2045,9 +2071,33 @@ {createMessagePair} on:submit={async (e) => { if (e.detail) { - prompt = ''; + // New user message + let userPrompt = e.detail.prompt; + let userMessageId = uuidv4(); + + let userMessage = { + id: userMessageId, + parentId: e.detail.parentId, + childrenIds: [], + role: 'user', + content: userPrompt, + models: selectedModels + }; + + let messageParentId = e.detail.parentId; + + if (messageParentId !== null) { + history.messages[messageParentId].childrenIds = [ + ...history.messages[messageParentId].childrenIds, + userMessageId + ]; + } + + history.messages[userMessageId] = userMessage; + history.currentId = userMessageId; + await tick(); - submitPrompt(e.detail); + await sendPrompt(userPrompt, userMessageId); } }} /> diff --git a/src/lib/components/chat/Messages/ResponseMessage.svelte b/src/lib/components/chat/Messages/ResponseMessage.svelte index 2230a0bb7..49f6b3dda 100644 --- a/src/lib/components/chat/Messages/ResponseMessage.svelte +++ b/src/lib/components/chat/Messages/ResponseMessage.svelte @@ -491,13 +491,14 @@ dispatch('update'); }} on:explain={(e) => { - dispatch( - 'submit', - `Can you explain this section to me in more detail?\n\n` + + dispatch('submit', { + parentId: message.id, + prompt: + `Can you explain this section to me in more detail?\n\n` + '```\n' + e.detail + '\n```' - ); + }); }} /> {/if}