Merge branch 'main' into main
This commit is contained in:
commit
3d42572120
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 => {
|
||||
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 });
|
||||
return success; // Ensure success is returned to the caller
|
||||
})
|
||||
.catch(error => {
|
||||
console.log(status);
|
||||
return success;
|
||||
} catch (error) {
|
||||
postMessage({ status: 500, success: false });
|
||||
return false; // Return false in case of an error
|
||||
});
|
||||
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…
Reference in a new issue