This commit is contained in:
Ionel Andrei Cataon
2026-02-18 15:14:04 +02:00
parent e7a31edbc3
commit d9285fb410
3 changed files with 58 additions and 37 deletions

View File

@@ -1,12 +1,11 @@
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):
try:
w = float(data.get('weight'))
h = float(data.get('height'))
a = int(data.get('age'))
@@ -14,22 +13,19 @@ def calculeaza_target(data):
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
# 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:
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
# 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)

View File

@@ -54,9 +54,26 @@
<h4>Ținta ta: {{ rezultat }} kcal / zi</h4>
</div>
<hr>
<h5>🤖 Cere meniu de la AI (Beta)</h5>
<textarea class="form-control mb-2" placeholder="Ex: Sunt vegetarian și nu îmi place broccoli..."></textarea>
<button class="btn btn-outline-primary btn-sm">Generează Meniu Săptămânal</button>
<h5>🤖 Cere meniu de la AI</h5>
<form action="/calculate" method="post">
<input type="hidden" name="weight" value="{{ request.form.weight }}">
<input type="hidden" name="height" value="{{ request.form.height }}">
<input type="hidden" name="age" value="{{ request.form.age }}">
<input type="hidden" name="gender" value="{{ request.form.gender }}">
<input type="hidden" name="activity" value="{{ request.form.activity }}">
<input type="hidden" name="goal" value="{{ request.form.goal }}">
<textarea name="preferences" class="form-control mb-2" placeholder="Ex: Sunt vegetarian, nu îmi place peștele..."></textarea>
<button type="submit" class="btn btn-outline-primary btn-sm w-100">Generează Meniu Personalizat</button>
</form>
{% endif %}
{% if meniu_ai %}
<div class="mt-4 p-3 border rounded bg-white">
<h6 class="text-primary font-weight-bold">Meniul tău generat:</h6>
<p style="white-space: pre-line;">{{ meniu_ai }}</p>
</div>
{% endif %}
</div>
</div>

View File

@@ -1 +1,2 @@
flask
openai==0.28.0