s
This commit is contained in:
@@ -1,12 +1,11 @@
|
|||||||
from flask import Flask, render_template, request
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
# Îi spunem clar că templates este în același folder cu main.py
|
from flask import Flask, render_template, request
|
||||||
template_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), 'templates'))
|
# import openai # Dezactivează comentariul când ai cheia API
|
||||||
app = Flask(__name__, template_folder=template_dir)
|
|
||||||
|
app = Flask(__name__, template_folder='templates')
|
||||||
|
|
||||||
# Funcția care calculează caloriile (Formula Mifflin-St Jeor)
|
|
||||||
def calculeaza_target(data):
|
def calculeaza_target(data):
|
||||||
|
try:
|
||||||
w = float(data.get('weight'))
|
w = float(data.get('weight'))
|
||||||
h = float(data.get('height'))
|
h = float(data.get('height'))
|
||||||
a = int(data.get('age'))
|
a = int(data.get('age'))
|
||||||
@@ -14,22 +13,19 @@ def calculeaza_target(data):
|
|||||||
act = float(data.get('activity'))
|
act = float(data.get('activity'))
|
||||||
scop = data.get('goal')
|
scop = data.get('goal')
|
||||||
|
|
||||||
# Calcul BMR (Basal Metabolic Rate)
|
|
||||||
if gen == 'masculin':
|
if gen == 'masculin':
|
||||||
bmr = (10 * w) + (6.25 * h) - (5 * a) + 5
|
bmr = (10 * w) + (6.25 * h) - (5 * a) + 5
|
||||||
else:
|
else:
|
||||||
bmr = (10 * w) + (6.25 * h) - (5 * a) - 161
|
bmr = (10 * w) + (6.25 * h) - (5 * a) - 161
|
||||||
|
|
||||||
# TDEE (Total Daily Energy Expenditure)
|
|
||||||
tdee = bmr * act
|
tdee = bmr * act
|
||||||
|
|
||||||
# Ajustare în funcție de scop (slăbire/îngrășare)
|
|
||||||
if scop == 'slabire':
|
if scop == 'slabire':
|
||||||
return round(tdee - 500)
|
return round(tdee - 500)
|
||||||
elif scop == 'ingrasare':
|
elif scop == 'ingrasare':
|
||||||
return round(tdee + 500)
|
return round(tdee + 500)
|
||||||
else:
|
|
||||||
return round(tdee)
|
return round(tdee)
|
||||||
|
except:
|
||||||
|
return 2000
|
||||||
|
|
||||||
@app.route('/')
|
@app.route('/')
|
||||||
def index():
|
def index():
|
||||||
@@ -37,13 +33,20 @@ def index():
|
|||||||
|
|
||||||
@app.route('/calculate', methods=['POST'])
|
@app.route('/calculate', methods=['POST'])
|
||||||
def calculate():
|
def calculate():
|
||||||
try:
|
|
||||||
data = request.form
|
data = request.form
|
||||||
kcal_final = calculeaza_target(data)
|
kcal_final = calculeaza_target(data)
|
||||||
# Trimitem rezultatul înapoi în pagina index.html
|
|
||||||
return render_template('index.html', rezultat=kcal_final, date_introduse=data)
|
# Simulare AI dacă nu avem API Key configurat încă
|
||||||
except Exception as e:
|
preferinte = data.get('preferences', 'fără preferințe')
|
||||||
return f"A apărut o eroare: {e}", 400
|
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__':
|
if __name__ == '__main__':
|
||||||
app.run(host='0.0.0.0', port=5000)
|
app.run(host='0.0.0.0', port=5000)
|
||||||
@@ -54,9 +54,26 @@
|
|||||||
<h4>Ținta ta: {{ rezultat }} kcal / zi</h4>
|
<h4>Ținta ta: {{ rezultat }} kcal / zi</h4>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<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>
|
<h5>🤖 Cere meniu de la AI</h5>
|
||||||
<button class="btn btn-outline-primary btn-sm">Generează Meniu Săptămânal</button>
|
<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 %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
flask
|
flask
|
||||||
|
openai==0.28.0
|
||||||
Reference in New Issue
Block a user