Module_2 / app.py
srbhavya01's picture
Update app.py
07ef3a1 verified
raw
history blame
1.57 kB
import streamlit as st
from prompt.bmi import calculate_bmi, bmi_category
from prompt.prompt_builder import build_prompt
from prompt.generator import load_model, generate_plan
st.set_page_config(page_title="FitPlan AI", page_icon="๐Ÿ’ช")
st.title("๐Ÿ’ช FitPlan AI - Personalized Workout Generator")
# Load model
tokenizer, model = load_model()
# -------------------------
# User Inputs
# -------------------------
name = st.text_input("Name")
gender = st.selectbox("Gender", ["Male", "Female"])
height = st.number_input("Height (cm)", min_value=0.0)
weight = st.number_input("Weight (kg)", min_value=0.0)
goal = st.selectbox(
"Fitness Goal",
["Build Muscle", "Weight Loss", "Strength Gain", "Abs Building", "Flexible"]
)
equipment = st.multiselect(
"Available Equipment",
["Dumbbells", "Resistance Band", "Yoga Mat", "No Equipment"]
)
fitness_level = st.radio(
"Fitness Level",
["Beginner", "Intermediate", "Advanced"]
)
# -------------------------
# Generate Plan
# -------------------------
if st.button("Generate Workout Plan"):
if not name or height <= 0 or weight <= 0:
st.error("Please fill all fields properly")
else:
prompt, bmi, status = build_prompt(
name, gender, height, weight, goal, fitness_level, equipment
)
st.write("### ๐Ÿ“Š BMI:", round(bmi, 2), "-", status)
with st.spinner("Generating your personalized plan..."):
plan = generate_plan(prompt, tokenizer, model)
st.success("Your Personalized Workout Plan")
st.write(plan)