fixed some database backend stuff
This commit is contained in:
		
							parent
							
								
									26b69a1cb6
								
							
						
					
					
						commit
						223f953648
					
				
					 8 changed files with 58 additions and 41 deletions
				
			
		
							
								
								
									
										2
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							|  | @ -43,3 +43,5 @@ __pycache__/ | |||
| key.pem | ||||
| cert.pem | ||||
| api_key.txt | ||||
| 
 | ||||
| database.json | ||||
|  |  | |||
|  | @ -9,7 +9,6 @@ import { resolve } from "path"; | |||
| import { FFmpeg } from "@ffmpeg/ffmpeg"; | ||||
| import { fetchFile, toBlobURL } from "@ffmpeg/util" | ||||
| 
 | ||||
| 
 | ||||
| const InputOutputBackend: React.FC = () => { | ||||
|   // # variables
 | ||||
|   type Message = { | ||||
|  | @ -174,7 +173,15 @@ const InputOutputBackend: React.FC = () => { | |||
|         if (postWorkerRef.current) { | ||||
|           addMessage("user", inputValue) | ||||
|           console.log("input:", inputValue); | ||||
|           postWorkerRef.current.postMessage({ messages: [...messages, { role: "user", content: inputValue }], ai_model: "llama3.2", access_token: accessToken }) | ||||
|           const type = localStorage.getItem('type') | ||||
|           var api_key: string = "" | ||||
|           if (type != null && type != 'local') { | ||||
|             const try_key = localStorage.getItem(type) | ||||
|             if (try_key) { | ||||
|               api_key = try_key | ||||
|             } | ||||
|           } | ||||
|           postWorkerRef.current.postMessage({ messages: [...messages, { role: "user", content: inputValue }], ai_model: localStorage.getItem('model'), model_type: type, access_token: accessToken, api_key: api_key }) | ||||
|           startGetWorker() | ||||
|         } | ||||
|       } | ||||
|  |  | |||
|  | @ -18,27 +18,28 @@ if all went well, you will get the status 200 in response.data.status | |||
| to check if the request was accepted or declined, check response.data.response, it will be either true or false depending on if it worked, or not. | ||||
| */ | ||||
| 
 | ||||
| export const sendToDatabase = (data: any): Promise<boolean> => { | ||||
|   return axios.post("http://localhost:5000/interstellar_ai/db", data) | ||||
|     .then(response => { | ||||
|       const status = response.data.status; | ||||
|       const success = response.data.response; | ||||
|       postMessage({ status, success }); | ||||
|       return success;  // Ensure success is returned to the caller
 | ||||
|     }) | ||||
|     .catch(error => { | ||||
|       postMessage({ status: 500, success: false }); | ||||
|       return false;  // Return false in case of an error
 | ||||
|     }); | ||||
| export const sendToDatabase = async (data: any): Promise<boolean> => { | ||||
|   try { | ||||
|     const response = await axios.post("http://localhost:5000/interstellar_ai/db", data); | ||||
|     const status = response.data.status; | ||||
|     const success = response.data.response; | ||||
|     postMessage({ status, success }); | ||||
|     console.log(status); | ||||
|     return success; | ||||
|   } catch (error) { | ||||
|     postMessage({ status: 500, success: false }); | ||||
|     console.log("NO"); | ||||
|     return false; | ||||
|   } | ||||
| }; | ||||
| 
 | ||||
| // Functions for each action
 | ||||
| export const createAccount = async (username: string, email: string, password: string) => { | ||||
|   const data = { | ||||
|     action: "create_account", | ||||
|     username, | ||||
|     email, | ||||
|     password, | ||||
|     username: username, | ||||
|     email: email, | ||||
|     password: password, | ||||
|   }; | ||||
|   return await sendToDatabase(data); | ||||
| }; | ||||
|  |  | |||
|  | @ -1,14 +1,15 @@ | |||
| import axios from "axios"; | ||||
| 
 | ||||
| onmessage = (e) => { | ||||
|     const { messages, ai_model = "llama3.2", access_token } = e.data | ||||
|      | ||||
|     const { messages, ai_model, model_type, access_token, api_key } = e.data | ||||
| 
 | ||||
| 
 | ||||
|     const Message = { | ||||
|         messages: messages, | ||||
|         ai_model: "llama3.2", | ||||
|         model_type: "local", | ||||
|         access_token: access_token | ||||
|         ai_model: ai_model, | ||||
|         model_type: model_type, | ||||
|         access_token: access_token, | ||||
|         api_key: api_key | ||||
|     } | ||||
| 
 | ||||
|     console.log(Message); | ||||
|  |  | |||
|  | @ -6,7 +6,6 @@ export const sendToVoiceRecognition = (audio_data: Blob): Promise<string> => { | |||
|     const formdata = new FormData() | ||||
|     formdata.append("audio", audio_data) | ||||
| 
 | ||||
|     const dataSend = { option: "offline", type: "basic", audio: audio_data } | ||||
|     return axios.post("http://localhost:5000/interstellar_ai/api/voice_recognition", formdata) | ||||
|         .then((response) => { | ||||
|             console.log(response.data) | ||||
|  |  | |||
|  | @ -240,6 +240,9 @@ const Models: React.FC = () => { | |||
|     console.log(model) | ||||
|     console.log(category) | ||||
|     console.log(modelList[category][model as keyof typeof modelList[typeof category]]); | ||||
|     console.log(modelList[category]['model_type' as keyof typeof modelList[typeof category]]) | ||||
|     localStorage.setItem("model", modelList[category][model as keyof typeof modelList[typeof category]]) | ||||
|     localStorage.setItem("type", modelList[category]['model_type' as keyof typeof modelList[typeof category]]) | ||||
|   } | ||||
| 
 | ||||
|   return ( | ||||
|  |  | |||
							
								
								
									
										16
									
								
								py/api.py
									
										
									
									
									
								
							
							
						
						
									
										16
									
								
								py/api.py
									
										
									
									
									
								
							|  | @ -89,20 +89,20 @@ class API: | |||
| 
 | ||||
|         @self.app.route('/interstellar_ai/db', methods=['POST']) | ||||
|         def db_manipulate(): | ||||
|             action = request.args.get('action') | ||||
|             data = request.args.get('data') | ||||
|             sent_data = request.get_json() | ||||
|             action = sent_data.get('action') | ||||
|             if action == "create_account": | ||||
|                 return jsonify({'status': 200, 'response': self.db.add_user(data)}) | ||||
|                 return jsonify({'status': 200, 'response': self.db.add_user(sent_data)}) | ||||
|             elif action == "change_password": | ||||
|                 return jsonify({'status': 200, 'response': self.db.update_password(data)}) | ||||
|                 return jsonify({'status': 200, 'response': self.db.update_password(sent_data)}) | ||||
|             elif action == "get_data": | ||||
|                 return jsonify({'status': 200, 'response': self.db.get_data(data)}) | ||||
|                 return jsonify({'status': 200, 'response': self.db.get_data(sent_data)}) | ||||
|             elif action == "change_data": | ||||
|                 return jsonify({'status': 200, 'response': self.db.change_data(data)}) | ||||
|                 return jsonify({'status': 200, 'response': self.db.change_data(sent_data)}) | ||||
|             elif action == "check_credentials": | ||||
|                 return jsonify({'status': 200, 'response': self.db.check_credentials(data)}) | ||||
|                 return jsonify({'status': 200, 'response': self.db.check_credentials(sent_data)}) | ||||
|             elif action == "delete_account": | ||||
|                 return jsonify({'status': 200, 'response': self.db.delete_user(data)}) | ||||
|                 return jsonify({'status': 200, 'response': self.db.delete_user(sent_data)}) | ||||
| 
 | ||||
|             return jsonify({'status': 401, 'response': "Invalid action"}) | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										24
									
								
								py/db.py
									
										
									
									
									
								
							
							
						
						
									
										24
									
								
								py/db.py
									
										
									
									
									
								
							|  | @ -10,10 +10,10 @@ class DB: | |||
| 
 | ||||
|     def ensure_username(self, data): | ||||
|         if hasattr(data, 'username'): | ||||
|             return data.get['username'] | ||||
|             return data.get('username') | ||||
|         elif hasattr(data, 'email'): | ||||
|             for index, entry in self.database: | ||||
|                 if entry.get['email'] == data.get['email']: | ||||
|                 if entry.get('email') == data.get('email'): | ||||
|                     return index | ||||
| 
 | ||||
|     @staticmethod | ||||
|  | @ -23,19 +23,22 @@ class DB: | |||
|         return hashed_password | ||||
| 
 | ||||
|     def add_user(self, data): | ||||
|         username = data.get['username'] | ||||
|         password = data.get['password'] | ||||
|         email = data.get['email'] | ||||
|         username = data.get('username') | ||||
|         password = data.get('password') | ||||
|         email = data.get('email') | ||||
|         hashed_password = self.hash_password(password) | ||||
|         user_data = {"hashed_password": hashed_password, "email": email, "data": None} | ||||
|         if username not in self.database: | ||||
|             self.database[username] = user_data | ||||
|             print("yes") | ||||
|             self.save_database() | ||||
|             return True | ||||
|         print("fail") | ||||
|         return False | ||||
| 
 | ||||
|     def delete_user(self, data): | ||||
|         username = self.ensure_username(data) | ||||
|         data = data.get['data'] | ||||
|         data = data.get('data') | ||||
|         if not self.check_credentials(data): | ||||
|             return False | ||||
| 
 | ||||
|  | @ -45,7 +48,7 @@ class DB: | |||
| 
 | ||||
|     def change_data(self, data): | ||||
|         username = self.ensure_username(data) | ||||
|         data = data.get['data'] | ||||
|         data = data.get('data') | ||||
|         if not self.check_credentials(data): | ||||
|             return False | ||||
| 
 | ||||
|  | @ -55,7 +58,7 @@ class DB: | |||
| 
 | ||||
|     def update_password(self, data): | ||||
|         username = self.ensure_username(data) | ||||
|         new_password = data.get['new_password'] | ||||
|         new_password = data.get('new_password') | ||||
|         if not self.check_credentials(data): | ||||
|             return False | ||||
| 
 | ||||
|  | @ -66,7 +69,7 @@ class DB: | |||
| 
 | ||||
|     def check_credentials(self, data): | ||||
|         username = self.ensure_username(data) | ||||
|         password = data.get['password'] | ||||
|         password = data.get('password') | ||||
|         if username not in self.database: | ||||
|             return False | ||||
| 
 | ||||
|  | @ -79,7 +82,7 @@ class DB: | |||
|         if not self.check_credentials(data): | ||||
|             return None | ||||
| 
 | ||||
|         send_back = self.database[username].get['data'] | ||||
|         send_back = self.database(username).get('data') | ||||
|         return send_back | ||||
| 
 | ||||
|     def save_database(self): | ||||
|  | @ -90,6 +93,7 @@ class DB: | |||
| 
 | ||||
|         else: | ||||
|             with open("database.json", 'w') as file: | ||||
|                 print("saving") | ||||
|                 json.dump(self.database, file) | ||||
| 
 | ||||
|     def load_database(self): | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Patrick_Pluto
						Patrick_Pluto