diff --git a/proiect-nutritie/app/main.py b/proiect-nutritie/app/main.py index 1eb6634..248f886 100644 --- a/proiect-nutritie/app/main.py +++ b/proiect-nutritie/app/main.py @@ -1,35 +1,31 @@ -from flask import Flask, render_template, request - import os -# Îi spunem clar că templates este în același folder cu main.py -template_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), 'templates')) -app = Flask(__name__, template_folder=template_dir) +from flask import Flask, render_template, request +# import openai # Dezactivează comentariul când ai cheia API + +app = Flask(__name__, template_folder='templates') -# Funcția care calculează caloriile (Formula Mifflin-St Jeor) def calculeaza_target(data): - w = float(data.get('weight')) - h = float(data.get('height')) - a = int(data.get('age')) - gen = data.get('gender') - act = float(data.get('activity')) - scop = data.get('goal') + try: + w = float(data.get('weight')) + h = float(data.get('height')) + a = int(data.get('age')) + gen = data.get('gender') + act = float(data.get('activity')) + scop = data.get('goal') - # Calcul BMR (Basal Metabolic Rate) - if gen == 'masculin': - bmr = (10 * w) + (6.25 * h) - (5 * a) + 5 - else: - bmr = (10 * w) + (6.25 * h) - (5 * a) - 161 + if gen == 'masculin': + bmr = (10 * w) + (6.25 * h) - (5 * a) + 5 + else: + bmr = (10 * w) + (6.25 * h) - (5 * a) - 161 - # TDEE (Total Daily Energy Expenditure) - tdee = bmr * act - - # Ajustare în funcție de scop (slăbire/îngrășare) - if scop == 'slabire': - return round(tdee - 500) - elif scop == 'ingrasare': - return round(tdee + 500) - else: + tdee = bmr * act + if scop == 'slabire': + return round(tdee - 500) + elif scop == 'ingrasare': + return round(tdee + 500) return round(tdee) + except: + return 2000 @app.route('/') def index(): @@ -37,13 +33,20 @@ def index(): @app.route('/calculate', methods=['POST']) def calculate(): - try: - data = request.form - kcal_final = calculeaza_target(data) - # Trimitem rezultatul înapoi în pagina index.html - return render_template('index.html', rezultat=kcal_final, date_introduse=data) - except Exception as e: - return f"A apărut o eroare: {e}", 400 + data = request.form + kcal_final = calculeaza_target(data) + + # Simulare AI dacă nu avem API Key configurat încă + preferinte = data.get('preferences', 'fără preferințe') + meniu_exemplu = f""" + 🤖 Meniu Sugerat ({kcal_final} kcal): + - Mic dejun: Omletă cu 3 ouă și avocado. + - Prânz: Piept de pui (200g) cu orez sălbatic. + - Cină: Salată de ton cu măsline. + - Preferințe procesate: {preferinte} + """ + + return render_template('index.html', rezultat=kcal_final, meniu_ai=meniu_exemplu) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000) \ No newline at end of file diff --git a/proiect-nutritie/app/templates/index.html b/proiect-nutritie/app/templates/index.html index 574f614..87c5cd5 100644 --- a/proiect-nutritie/app/templates/index.html +++ b/proiect-nutritie/app/templates/index.html @@ -54,9 +54,26 @@

Ținta ta: {{ rezultat }} kcal / zi


-
🤖 Cere meniu de la AI (Beta)
- - + +
🤖 Cere meniu de la AI
+
+ + + + + + + + + +
+ {% endif %} + + {% if meniu_ai %} +
+
Meniul tău generat:
+

{{ meniu_ai }}

+
{% endif %} diff --git a/proiect-nutritie/requirements.txt b/proiect-nutritie/requirements.txt index 8ab6294..d22674b 100644 --- a/proiect-nutritie/requirements.txt +++ b/proiect-nutritie/requirements.txt @@ -1 +1,2 @@ -flask \ No newline at end of file +flask +openai==0.28.0 \ No newline at end of file