From c099e92132e7c1ec2ab24801085af8b4e0581b94 Mon Sep 17 00:00:00 2001 From: Szymon Obst Date: Tue, 12 Dec 2023 18:42:33 +0100 Subject: [PATCH] integracja na labach --- app/package-lock.json | 8 ++++---- app/package.json | 2 +- app/src/components/Hero.jsx | 19 ++++++------------ .../modele/__pycache__/modele.cpython-310.pyc | Bin 0 -> 737 bytes app/src/flask-server/modele/modele.py | 13 ++++++++++++ app/src/flask-server/server.py | 14 +++++++++++-- 6 files changed, 36 insertions(+), 20 deletions(-) create mode 100644 app/src/flask-server/modele/__pycache__/modele.cpython-310.pyc create mode 100644 app/src/flask-server/modele/modele.py diff --git a/app/package-lock.json b/app/package-lock.json index 0c43740..572c494 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -33,7 +33,7 @@ "post": "^0.0.1", "postcss": "^8.4.32", "tailwindcss": "^3.3.5", - "vite": "^5.0.0" + "vite": "^5.0.8" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -5290,9 +5290,9 @@ } }, "node_modules/vite": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.5.tgz", - "integrity": "sha512-OekeWqR9Ls56f3zd4CaxzbbS11gqYkEiBtnWFFgYR2WV8oPJRRKq0mpskYy/XaoCL3L7VINDhqqOMNDiYdGvGg==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.8.tgz", + "integrity": "sha512-jYMALd8aeqR3yS9xlHd0OzQJndS9fH5ylVgWdB+pxTwxLKdO1pgC5Dlb398BUxpfaBxa4M9oT7j1g503Gaj5IQ==", "dev": true, "dependencies": { "esbuild": "^0.19.3", diff --git a/app/package.json b/app/package.json index e0db960..2c21eec 100644 --- a/app/package.json +++ b/app/package.json @@ -36,6 +36,6 @@ "post": "^0.0.1", "postcss": "^8.4.32", "tailwindcss": "^3.3.5", - "vite": "^5.0.0" + "vite": "^5.0.8" } } diff --git a/app/src/components/Hero.jsx b/app/src/components/Hero.jsx index da25526..cf09adb 100644 --- a/app/src/components/Hero.jsx +++ b/app/src/components/Hero.jsx @@ -6,10 +6,8 @@ import { navLinks } from "../constants"; import { logo, menu, close } from "../assets"; -const Hero = () => { - +const Hero = () => { const [data,setData] = useState([{}]) - // Reset Boiska function resetField() { var footballField = document.getElementById('footballField'); @@ -21,30 +19,25 @@ const Hero = () => { } // Wysłanie zapytania do serwera function sentQuestion() { - var ball = document.querySelector('.football'); if (ball) { var x = ball.style.left; var y = ball.style.top; - - var query = "/LRegresion" + x + "&" + y - alert(query) - fetch("/LRegresion").then( + var query = "http://localhost:5000/LRegresion" + x + "&" + y + fetch(query).then( res => res.json ).then( data => { setData(data) - console.log(data)`` + console.log(data) } ) - - } else { alert('Piłka nie jest obecnie na boisku.'); } } + /* Funkcja dodająca listener do boiska*/ - function boiskoListener(){ var x = event.clientX - footballField.getBoundingClientRect().left; var y = event.clientY - footballField.getBoundingClientRect().top; @@ -63,7 +56,7 @@ const Hero = () => { useEffect(()=>{ var footballField = document.getElementById('footballField'); footballField.addEventListener('click', boiskoListener) - },[]); + }); /*zwracany komponent zawierajacy boisko*/ diff --git a/app/src/flask-server/modele/__pycache__/modele.cpython-310.pyc b/app/src/flask-server/modele/__pycache__/modele.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4189fbf49a2b15958f1f1e4617edaeb6cf0f9cb8 GIT binary patch literal 737 zcmZuuO>fjN5VeyyyV>pvIPg)yq2jg&`U6l^A*d=qut`p$$M%t86k-8KUSQ?2>lLZGa?|*;Fui%h8Py8 z#W}{|9*HQAS25wkqZnTJP0!YsB9&*`5>PDBCCEJLRZFDhU=_Q8u2eZ?M zn%A0}1uccD8)MhisieCLH5bi%n)y+uOk*1*%hkqx?e8$?rLy9sRb{QHcLCa|9qN#L)UiA}pq3tL+HxNYRRM76Nh29w<&#cx)>O9aw3<^-v|36w z-O^wr(n$akAPq1GFboh((7|;bEb*jOjEkInEG7T)3+cP?@z3+uPm2R?POR#RV=67Z z7LtQBf)}*w3ZtvySWt8F!~`L9(U0LbX}4SZoj1J!O?A{eVuI-ZEF6|IVWlCy9X-Ym wB7Gmol;r8PUA+i-+EK}<(YK)1H}o5Bz&$AV;U2ud6nsC3Xu=Px# literal 0 HcmV?d00001 diff --git a/app/src/flask-server/modele/modele.py b/app/src/flask-server/modele/modele.py new file mode 100644 index 0000000..df04525 --- /dev/null +++ b/app/src/flask-server/modele/modele.py @@ -0,0 +1,13 @@ +from joblib import load +import pandas as pd + +# Funkcja zwraca prawdopodobieństwo zdobycia gola +def LogisticRegression_predict_proba(position_x, position_y, distance_to_goalM, angle, match_minute, Number_Intervening_Opponents, Number_Intervening_Teammates, isFoot, isHead): + model = load('regresja_logistyczna.joblib') + + X_new = pd.DataFrame(columns=['position_x', 'position_y', 'distance_to_goalM', 'angle','match_minute', 'Number_Intervening_Opponents','Number_Intervening_Teammates', 'isFoot', 'isHead']) + X_new.loc[len(X_new.index)] = [position_x, position_y, distance_to_goalM, angle, match_minute, Number_Intervening_Opponents, Number_Intervening_Teammates, isFoot, isHead] + + return model.predict_proba(X_new)[0][1].round(2) + +#kolejne modele diff --git a/app/src/flask-server/server.py b/app/src/flask-server/server.py index 1c4ee4d..d4ee77f 100644 --- a/app/src/flask-server/server.py +++ b/app/src/flask-server/server.py @@ -1,5 +1,7 @@ from flask import Flask from flask_cors import CORS +from modele.modele import LogisticRegression_predict_proba + app = Flask(__name__) CORS(app) @@ -9,10 +11,18 @@ CORS(app) def members(): return{"members":["Member1","Member2","Member3"]} + +# zapytanie o regresje logistyczną na podstawie pozycji piłki + @app.route("/LRegresion&") def LRegresion(x,y): - num = x+y - return str(num) + + x = int(x[0:2]) + y = int(y[0:2]) + response = LogisticRegression_predict_proba(9.23, -2.24, 9.5, 13.67, 13, 3, 0, 1, 0) + return {"response":[str(response),"proces"]} + +# uruchomienie serwera if __name__ == "__main__": app.run(debug = True) \ No newline at end of file