forked from React-Group/interstellar_ai
		
	Merge pull request 'main' (#47) from React-Group/interstellar_ai:main into main
Reviewed-on: https://interstellardevelopment.org/code/code/sageTheDm/interstellar_ai/pulls/47
This commit is contained in:
		
						commit
						9ee165c5c5
					
				
					 4 changed files with 33 additions and 16 deletions
				
			
		| 
						 | 
				
			
			@ -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<string>("USD");
 | 
			
		||||
  const [preferredLanguage, setPreferredLanguage] = useState<string>("english");
 | 
			
		||||
  const [timeFormat, setTimeFormat] = useState<string>("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) => {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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>(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]
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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=$!
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue