Module_2 / app.py
Springboardmen's picture
Update app.py
7ba7c55 verified
import streamlit as st
from model_api import query_model
from prompt_builder import build_prompt
st.set_page_config(page_title="FitPlan AI", layout="centered")
st.title("πŸ‹οΈ FitPlan AI – Personalized Workout Generator")
# ---------------- INPUT ---------------- #
name = st.text_input("Enter Your Name")
gender = st.radio("Gender", ["Male", "Female"])
height = st.number_input("Height (cm)", min_value=100.0, max_value=250.0)
weight = st.number_input("Weight (kg)", min_value=30.0, max_value=200.0)
goal = st.selectbox(
"Fitness Goal",
["Build Muscle", "Lose Weight", "Improve Endurance", "General Fitness"]
)
fitness_level = st.radio(
"Fitness Level",
["Beginner", "Intermediate", "Advanced"]
)
equipment = st.multiselect(
"Available Equipment",
[
"No Equipment", "Dumbbells", "Barbell",
"Pull-up Bar", "Resistance Bands",
"Treadmill", "Kettlebells", "Full Gym"
]
)
# ---------------- GENERATE ---------------- #
if st.button("Generate Workout Plan"):
if height > 0 and weight > 0:
prompt, bmi, bmi_status = build_prompt(
name, gender, height, weight,
goal, fitness_level, equipment
)
with st.spinner("Generating your personalized plan..."):
response = query_model(prompt)
st.subheader("πŸ“‹ Your Personalized Workout Plan")
st.write(response)
st.info(f"Calculated BMI: {bmi:.2f} ({bmi_status})")
else:
st.warning("Please enter valid height and weight.")