diff --git a/app/backend/InputOutputHandler.tsx b/app/backend/InputOutputHandler.tsx index 7986f37..68e552a 100644 --- a/app/backend/InputOutputHandler.tsx +++ b/app/backend/InputOutputHandler.tsx @@ -15,7 +15,7 @@ const InputOutputBackend: React.FC = () => { } // Define state variables for user preferences and messages - const [chatHistory, setChatHistory, setSelectedIndex] = useChatHistory() + const [chatHistory, setChatHistory, setSelectedIndex, updateMessage] = useChatHistory() const [preferredCurrency, setPreferredCurrency] = useState("USD"); const [preferredLanguage, setPreferredLanguage] = useState("english"); const [timeFormat, setTimeFormat] = useState("24-hour"); @@ -186,17 +186,19 @@ const InputOutputBackend: React.FC = () => { if (newContent == "") { newContent = "Generating answer..." } - setMessages((prevMessages) => { - const updatedMessages = prevMessages.slice(); // Create a shallow copy of the current messages - if (updatedMessages.length > 0) { - const lastMessage = updatedMessages[updatedMessages.length - 1]; - updatedMessages[updatedMessages.length - 1] = { - ...lastMessage, // Keep the existing role and other properties - content: newContent, // Update only the content - }; - } - return updatedMessages; // Return the updated array - }); + const messageIndex = chatHistory.chats[chatHistory.selectedIndex].messages.length-1 + updateMessage(messageIndex,newContent) + // setMessages((prevMessages) => { + // const updatedMessages = prevMessages.slice(); // Create a shallow copy of the current messages + // if (updatedMessages.length > 0) { + // const lastMessage = updatedMessages[updatedMessages.length - 1]; + // updatedMessages[updatedMessages.length - 1] = { + // ...lastMessage, // Keep the existing role and other properties + // content: newContent, // Update only the content + // }; + // } + // return updatedMessages; // Return the updated array + // }); }; const addMessage = (role: string, content: string) => { diff --git a/app/hooks/useChatHistory.tsx b/app/hooks/useChatHistory.tsx index e3c550c..b153eef 100644 --- a/app/hooks/useChatHistory.tsx +++ b/app/hooks/useChatHistory.tsx @@ -31,7 +31,7 @@ const setGlobalState = (newState: GlobalChatHistory): void => { listeners.forEach((listener) => listener(globalChatHistory)) } -export const useChatHistory = (): [GlobalChatHistory, (newState:GlobalChatHistory) => void, (index:number)=>void] => { +export const useChatHistory = (): [GlobalChatHistory, (newState:GlobalChatHistory) => void, (index:number)=>void, (messageIndex: number, newContent:string)=> void] => { const [state, setState] = useState(globalChatHistory) useEffect(() => { @@ -52,5 +52,18 @@ export const useChatHistory = (): [GlobalChatHistory, (newState:GlobalChatHistor setGlobalState({...state,selectedIndex:index}) } - return [state, setGlobalState, setSelectedIndex] + const updateMessage = (messageIndex: number, newContent: string) => { + const updatedChats = [...state.chats] + const chatIndex = globalChatHistory.selectedIndex + if (chatIndex >= 0 && chatIndex < updatedChats.length) { + const updatedMessages = [...updatedChats[chatIndex].messages] + if (messageIndex >= 0 && messageIndex < updatedMessages.length) { + updatedMessages[messageIndex] = { ...updatedMessages[messageIndex], content: newContent } + updatedChats[chatIndex] = { ...updatedChats[chatIndex], messages: updatedMessages } + setGlobalState({...state, chats: updatedChats}) + } + } + } + + return [state, setGlobalState, setSelectedIndex, updateMessage] } \ No newline at end of file diff --git a/deployment_scripts/linux/root.sh b/deployment_scripts/linux/root.sh index 6278166..e0f3af0 100644 --- a/deployment_scripts/linux/root.sh +++ b/deployment_scripts/linux/root.sh @@ -1,6 +1,6 @@ #!/bin/bash -apt install npm nodejs python3-full -y +apt install npm nodejs python3-full ffmpeg libgtk-3-0 libnotify4 libgconf-2-4 libnss3 libxss1 libasound2 build-essential cmake -y if ! ollama; then curl -fsSL https://ollama.com/install.sh | sh fi diff --git a/deployment_scripts/linux/run.sh b/deployment_scripts/linux/run.sh index e1e490b..1220bae 100644 --- a/deployment_scripts/linux/run.sh +++ b/deployment_scripts/linux/run.sh @@ -1,8 +1,10 @@ #!/bin/bash cd py -python api.py & +source venv/bin/activate +python3 api.py & pid_py=$! +cd .. npm start & pid_node=$!