From 5adb79e89d28434e6692ed64745707c49271392d Mon Sep 17 00:00:00 2001
From: sageTheDM <info@photofuel.tech>
Date: Mon, 30 Sep 2024 12:45:26 +0200
Subject: [PATCH] System Prompt update

---
 app/backend/InputOutputHandler.tsx | 61 ++++++++++++++++++------------
 1 file changed, 36 insertions(+), 25 deletions(-)

diff --git a/app/backend/InputOutputHandler.tsx b/app/backend/InputOutputHandler.tsx
index 4fa0042..2a33591 100644
--- a/app/backend/InputOutputHandler.tsx
+++ b/app/backend/InputOutputHandler.tsx
@@ -16,36 +16,47 @@ const InputOutputBackend: React.FC = () => {
     content: string
   }
 
-  /* Variables for System-prompt */
-  const [preferredCurrency, setPreferredCurrency] = useState<string | null>("")
-  const [preferredLanguage, setPreferredLanguage] = useState<string | null>("")
-  const [timeFormat, setTimeFormat] = useState<string | null>("")
-  const [preferredMeasurement, setPreferredMeasurement] = useState<string | null>("")
-  const [timeZone, setTimeZone] = useState<string | null>("")
-  const [dateFormat, setDateFormat] = useState<string | null>("")
-
-  useEffect(() => {
-    setPreferredCurrency(localStorage.getItem("preferredCurrency"))
-    setPreferredLanguage(localStorage.getItem("preferredLanguage"))
-    setTimeFormat(localStorage.getItem("timeFormat"))
-    setPreferredMeasurement(localStorage.getItem("preferredMeasurement"))
-    setTimeZone(localStorage.getItem("timeZone"))
-    setDateFormat(localStorage.getItem("dateFormat"))
-  })
+  const [preferredCurrency, setPreferredCurrency] = useState<string | null>(null);
+  const [preferredLanguage, setPreferredLanguage] = useState<string | null>(null);
+  const [timeFormat, setTimeFormat] = useState<string | null>(null);
+  const [preferredMeasurement, setPreferredMeasurement] = useState<string | null>(null);
+  const [timeZone, setTimeZone] = useState<string | null>(null);
+  const [dateFormat, setDateFormat] = useState<string | null>(null);
+  const [messages, setMessages] = useState<Message[]>([]);
+    
+    useEffect(() => {
+      setPreferredCurrency(localStorage.getItem("preferredCurrency"));
+      setPreferredLanguage(localStorage.getItem("preferredLanguage"));
+      setTimeFormat(localStorage.getItem("timeFormat"));
+      setPreferredMeasurement(localStorage.getItem("preferredMeasurement"));
+      setTimeZone(localStorage.getItem("timeZone"));
+      setDateFormat(localStorage.getItem("dateFormat"));
+    }, []);
   
+    useEffect(() => {
+      if (preferredCurrency && preferredLanguage && timeFormat && dateFormat && preferredMeasurement && timeZone) {
+        setMessages([
+          {
+            role: "system",
+            content: `You are in the timezone: ${timeZone}. 
+            You use the time format ${timeFormat}. 
+            You use the date format ${dateFormat} for all references of dates. 
+            You use the ${preferredMeasurement} system. 
+            You use the currency ${preferredCurrency}. 
+            You will only answer in the language (you will receive the country code) ${preferredLanguage}. 
+            But in the case the user specifically states to answer in another language, do that. Speaking in 
+            another language is not stating you should answer in that language. 
+            Additionally, under no circumstances translate your answer into multiple languages.`,
+          },
+          { role: "assistant", content: "Hello! How can I help you?" },
+        ]);
+      }
+    }, [preferredCurrency, preferredLanguage, timeFormat, dateFormat, preferredMeasurement, timeZone]);
+    
   const [copyClicked, setCopyClicked] = useState(false)
   const [accessToken, setAccessToken] = useState("")
   const postWorkerRef = useRef<Worker | null>(null)
   const getWorkerRef = useRef<Worker | null>(null)
-  const [messages, setMessages] = useState<Message[]>([{ role: "system", 
-    content: `You are in the timezone: ${timeZone}. 
-    You use the time format ${timeFormat}. 
-    You use the date format ${dateFormat} for all references of dates. 
-    You use the ${preferredMeasurement} system. You use the currency ${preferredCurrency}. 
-    You will only answer in the language (you will receive the country code) ${preferredLanguage}. 
-    But in the case the user specifically states to answer in an other language do that speaking in a
-    nother language is not stating you should answer in that language. Additionally do not translate your answer into multiple languages`
-  },{ role: "assistant", content: "Hello! How can I help you?" }])
   const [liveMessage, setLiveMessage] = useState("")
   const [inputMessage, setInputMessage] = useState<string>("")
   const [inputDisabled, setInputDisabled] = useState(false)