forked from React-Group/interstellar_ai
		
	main #47
					 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