diff --git a/app/backend/InputOutputHandler.tsx b/app/backend/InputOutputHandler.tsx index bf8a191..12f5d10 100644 --- a/app/backend/InputOutputHandler.tsx +++ b/app/backend/InputOutputHandler.tsx @@ -3,7 +3,9 @@ import React, { useEffect, useRef, useState } from "react"; import ConversationFrontend from "../components/ConversationFrontend"; import InputFrontend from "../components/InputFrontend"; import axios from "axios"; -import { log } from 'console'; + + +let sendable = true const InputOutputBackend: React.FC = () => { type Message = { @@ -37,8 +39,10 @@ const InputOutputBackend: React.FC = () => { postWorkerRef.current.onmessage = (event) => { const status = event.data.status if (status == 200) { + sendable = true endGetWorker() } else if (status == 500) { + sendable = true if (getWorkerRef.current) { addMessage("assistant", "There was an Error with the AI response") getWorkerRef.current.postMessage("terminate") @@ -86,11 +90,15 @@ const InputOutputBackend: React.FC = () => { if (getWorkerRef.current) { getWorkerRef.current.postMessage({action:"terminate"}) getWorkerRef.current.terminate() + getWorkerRef.current = null console.log(messages); } } const editLastMessage = (newContent: string) => { + if (newContent == "") { + newContent = "Loading..." + } setMessages((prevMessages) => { const updatedMessages = prevMessages.slice(); // Create a shallow copy of the current messages if (updatedMessages.length > 0) { @@ -109,11 +117,16 @@ const InputOutputBackend: React.FC = () => { setMessages(previous => [...previous,{role,content}]) } const handleSendClick = (inputValue: string) => { - if (postWorkerRef.current) { - addMessage("user", inputValue) - console.log("input:",inputValue); - postWorkerRef.current.postMessage({messages:[...messages, { role: "user", content: inputValue }], ai_model:"phi3.5", access_token:accessToken}) - startGetWorker() + if (inputValue != "") { + if (sendable) { + sendable=false + if (postWorkerRef.current) { + addMessage("user", inputValue) + console.log("input:",inputValue); + postWorkerRef.current.postMessage({messages:[...messages, { role: "user", content: inputValue }], ai_model:"phi3.5", access_token:accessToken}) + startGetWorker() + } + } } } diff --git a/app/backend/threads/GetWorker.js b/app/backend/threads/GetWorker.js index 23d8e63..fcdcc2f 100644 --- a/app/backend/threads/GetWorker.js +++ b/app/backend/threads/GetWorker.js @@ -29,6 +29,6 @@ const fetchData = () => { .catch(error => { console.log('Error fetching data:', error); postMessage({error:"failed fetching data"}) - + setTimeout(() => fetchData(),1000) }) } \ No newline at end of file diff --git a/app/backend/threads/PostWorker.js b/app/backend/threads/PostWorker.js index 730c852..d6f6b04 100644 --- a/app/backend/threads/PostWorker.js +++ b/app/backend/threads/PostWorker.js @@ -2,7 +2,7 @@ import axios from "axios"; onmessage = (e) => { const { messages = [{ role: "assistant", content: "Hello! How can I help you?" }], ai_model = "phi3.5", access_token } = e.data - messages.unshift({ role: "system", content: "You are a Helpful assistant" }) + messages.unshift({ role: "system", content: "You are a Helpful assistant. you give short answers" }) const Message = { messages: messages,