Gestion suppression et regénération de message

This commit is contained in:
Sylvain Philip 2024-09-10 14:37:34 +02:00
parent 036dfabae7
commit ec5049283a
2 changed files with 33 additions and 4 deletions

View File

@ -391,6 +391,25 @@
sendMessage(content); sendMessage(content);
} }
function handleRegenerateMessage(event) {
const index = event.detail;
messages[index].content = '';
messages = messages.slice(0, index + 1);
complete(messages, proxyBaseUrl, assistant, (message) => {
if (message.content)
messages[index].content = message.content;
}
);
}
function handleDeleteMessage(event) {
const index = event.detail;
messages = messages.slice(0, index);
}
</script> </script>
<header> <header>
@ -433,7 +452,9 @@
<div class="chat-container" bind:this="{chatContainer}" > <div class="chat-container" bind:this="{chatContainer}" >
{#each messages as message, index (index)} {#each messages as message, index (index)}
<ChatMessage message="{message}" <ChatMessage message="{message}"
message_index={index} on:editMessage="{handleEditMessage}" message_index={index} on:editMessage={handleEditMessage}
on:regenerate={handleRegenerateMessage}
on:delete={handleDeleteMessage}
container="{chatContainer.parentElement}" markdown={md} /> container="{chatContainer.parentElement}" markdown={md} />
{/each} {/each}
</div> </div>

View File

@ -60,7 +60,6 @@
} }
} }
function handleKeyDown(event) { function handleKeyDown(event) {
if (event.key === 'Enter' && event.shiftKey) { if (event.key === 'Enter' && event.shiftKey) {
// Allow the default behavior of adding a new line // Allow the default behavior of adding a new line
@ -86,6 +85,7 @@
break; break;
} }
} }
function handleCopy(event) { function handleCopy(event) {
const btn = event.currentTarget; const btn = event.currentTarget;
@ -104,6 +104,14 @@
}) })
.catch(err => console.log(`Failed to copy clipboard: ${err.message}`)); .catch(err => console.log(`Failed to copy clipboard: ${err.message}`));
} }
function handleRegenerate() {
dispatch('regenerate', message_index);
}
function handleDelete() {
dispatch('delete', message_index);
}
</script> </script>
<style> <style>
@ -139,10 +147,10 @@
<button class="btn btn-primary btn-sm" title="Copier" on:click={handleCopy}> <button class="btn btn-primary btn-sm" title="Copier" on:click={handleCopy}>
<span class="icon-content_copy"></span> <span class="icon-content_copy"></span>
</button> </button>
<button class="btn btn-primary btn-sm" title="Régénérer"> <button class="btn btn-primary btn-sm" on:click={handleRegenerate} title="Régénérer">
<span class="icon-loop"></span> <span class="icon-loop"></span>
</button> </button>
<button class="btn btn-primary btn-sm" title="Supprimer le message"> <button class="btn btn-primary btn-sm" on:click={handleDelete} title="Supprimer le message">
<span class="icon-delete"></span> <span class="icon-delete"></span>
</button> </button>
{/if} {/if}