From ae52ad1675bf590da5147c450edaea1252adda44 Mon Sep 17 00:00:00 2001 From: HanishKVC Date: Sat, 18 May 2024 02:55:27 +0530 Subject: [PATCH] SimpleChat:Allow system prompt to be set, if provided before user --- examples/server/public_simplechat/simplechat.html | 1 + examples/server/public_simplechat/simplechat.js | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/examples/server/public_simplechat/simplechat.html b/examples/server/public_simplechat/simplechat.html index f20b79c70..1a645c7fd 100644 --- a/examples/server/public_simplechat/simplechat.html +++ b/examples/server/public_simplechat/simplechat.html @@ -40,6 +40,7 @@
+

Enter the system prompt above, before entering/submitting any user query

Enter your text to the ai assistant below

diff --git a/examples/server/public_simplechat/simplechat.js b/examples/server/public_simplechat/simplechat.js index bf5db2597..f1770ec92 100644 --- a/examples/server/public_simplechat/simplechat.js +++ b/examples/server/public_simplechat/simplechat.js @@ -90,11 +90,19 @@ class SimpleChat { /** * Handle submit request by user + * @param {HTMLInputElement} inputSystem * @param {HTMLInputElement} inputUser * @param {HTMLDivElement} divChat * @param {string} apiEP */ -async function handle_submit(inputUser, divChat, apiEP) { +async function handle_submit(inputSystem, inputUser, divChat, apiEP) { + + if (gChat.xchat.length == 0) { + let sysPrompt = inputSystem.value; + if (sysPrompt.length > 0) { + gChat.add(Roles.System, sysPrompt); + } + } let content = inputUser?.value; gChat.add(Roles.User, content); @@ -159,6 +167,7 @@ const gbCompletionFreshChatAlways = true; function startme() { + let inputSystem = /** @type{HTMLInputElement} */(document.getElementById("system")); let divChat = /** @type{HTMLDivElement} */(document.getElementById("chat")); let btnSubmit = document.getElementById("submit"); let inputUser = /** @type{HTMLInputElement} */(document.getElementById("user")); @@ -172,7 +181,7 @@ function startme() { if (inputUser.disabled) { return; } - handle_submit(inputUser, divChat, selectApiEP.value); + handle_submit(inputSystem, inputUser, divChat, selectApiEP.value); }); inputUser?.addEventListener("keyup", (ev)=> {