js02vel commited on
Commit
601159b
Β·
verified Β·
1 Parent(s): d33b8ce

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +52 -10
app.py CHANGED
@@ -2,6 +2,9 @@ import streamlit as st
2
  from model_api import query_model
3
  from prompt_builder import build_prompt
4
 
 
 
 
5
  st.set_page_config(page_title="FitPlan AI", layout="centered")
6
 
7
  st.title("πŸ‹οΈ FitPlan AI – Personalized Workout Generator")
@@ -10,10 +13,26 @@ st.title("πŸ‹οΈ FitPlan AI – Personalized Workout Generator")
10
 
11
  name = st.text_input("Enter Your Name")
12
 
 
 
 
 
 
 
 
13
  gender = st.radio("Gender", ["Male", "Female"])
14
 
15
- height = st.number_input("Height (cm)", min_value=100.0, max_value=250.0)
16
- weight = st.number_input("Weight (kg)", min_value=30.0, max_value=200.0)
 
 
 
 
 
 
 
 
 
17
 
18
  goal = st.selectbox(
19
  "Fitness Goal",
@@ -38,21 +57,44 @@ equipment = st.multiselect(
38
 
39
  if st.button("Generate Workout Plan"):
40
 
41
- if height > 0 and weight > 0:
 
 
 
 
 
42
 
 
 
 
 
 
43
  prompt, bmi, bmi_status = build_prompt(
44
- name, gender, height, weight,
45
- goal, fitness_level, equipment
 
 
 
 
 
 
46
  )
47
 
48
  with st.spinner("Generating your personalized plan..."):
49
  response = query_model(prompt)
50
 
 
51
  st.subheader("πŸ“‹ Your Personalized Workout Plan")
52
  st.write(response)
53
 
54
- st.info(f"Calculated BMI: {bmi:.2f} ({bmi_status})")
55
-
56
- else:
57
- st.warning("Please enter valid height and weight.")
58
-
 
 
 
 
 
 
 
2
  from model_api import query_model
3
  from prompt_builder import build_prompt
4
 
5
+ # --------------------------------------------------
6
+ # Page Config
7
+ # --------------------------------------------------
8
  st.set_page_config(page_title="FitPlan AI", layout="centered")
9
 
10
  st.title("πŸ‹οΈ FitPlan AI – Personalized Workout Generator")
 
13
 
14
  name = st.text_input("Enter Your Name")
15
 
16
+ age = st.number_input(
17
+ "Age (years)",
18
+ min_value=10,
19
+ max_value=100,
20
+ step=1
21
+ )
22
+
23
  gender = st.radio("Gender", ["Male", "Female"])
24
 
25
+ height = st.number_input(
26
+ "Height (cm)",
27
+ min_value=100.0,
28
+ max_value=250.0
29
+ )
30
+
31
+ weight = st.number_input(
32
+ "Weight (kg)",
33
+ min_value=30.0,
34
+ max_value=200.0
35
+ )
36
 
37
  goal = st.selectbox(
38
  "Fitness Goal",
 
57
 
58
  if st.button("Generate Workout Plan"):
59
 
60
+ # -------- Validation --------
61
+ if not name.strip():
62
+ st.warning("Please enter your name.")
63
+
64
+ elif age <= 0:
65
+ st.warning("Please enter a valid age.")
66
 
67
+ elif height <= 0 or weight <= 0:
68
+ st.warning("Please enter valid height and weight.")
69
+
70
+ else:
71
+ # build_prompt now includes age
72
  prompt, bmi, bmi_status = build_prompt(
73
+ name,
74
+ age,
75
+ gender,
76
+ height,
77
+ weight,
78
+ goal,
79
+ fitness_level,
80
+ equipment
81
  )
82
 
83
  with st.spinner("Generating your personalized plan..."):
84
  response = query_model(prompt)
85
 
86
+ # -------- Output --------
87
  st.subheader("πŸ“‹ Your Personalized Workout Plan")
88
  st.write(response)
89
 
90
+ st.info(
91
+ f"""
92
+ **Profile Summary**
93
+ - Name: {name}
94
+ - Age: {age}
95
+ - Gender: {gender}
96
+ - BMI: {bmi:.2f} ({bmi_status})
97
+ - Goal: {goal}
98
+ - Level: {fitness_level}
99
+ """
100
+ )