Module_2 / src /streamlit_app.py
Harry2406's picture
Update src/streamlit_app.py
42dcdc4 verified
raw
history blame
2.43 kB
import streamlit as st
from transformers import pipeline
st.set_page_config(page_title="Fitness Profile", page_icon="🏋️", layout="centered")
def load_model():
return pipeline(
"text-generation",
model="google/flan-t5-base"
)
generator = load_model()
st.title("🏋️ Personalized Fitness Profile")
st.markdown("---")
# =========================
# 1️⃣ Personal Information
# =========================
st.header("1. Personal Information")
name = st.text_input("Name *")
height_cm = st.number_input("Height (in centimeters) *", min_value=0.0, format="%.2f")
weight_kg = st.number_input("Weight (in kilograms) *", min_value=0.0, format="%.2f")
# =========================
# 2️⃣ Fitness Details
# =========================
st.header("2. Fitness Details")
fitness_goal = st.selectbox(
"Fitness Goal",
["Build Muscle", "Weight Loss", "Strength Gain", "Abs Building", "Flexible"]
)
equipment = st.multiselect(
"Available Equipment (Multiple selection allowed)",
["Dumbbells", "Resistance Band", "Yoga Mat", "No Equipment"]
)
fitness_level = st.radio(
"Fitness Level",
["Beginner", "Intermediate", "Advanced"],
horizontal=True
)
st.markdown("---")
# =========================
if st.button("Submit Profile"):
if not name:
st.error("Please enter your name.")
elif not equipment:
st.error("Please select at least one equipment option.")
elif bmi is None:
st.error("Please enter valid height and weight.")
else:
st.success("✅ Profile Submitted Successfully!")
bmi_status = bmi_category(bmi)
equipment_list = ", ".join(equipment)
prompt = f"""
Generate a 5-day structured workout plan.
User Details:
Name: {name}
Gender: {gender}
BMI: {bmi:.2f} ({bmi_status})
Goal: {goal}
Fitness Level: {fitness_level}
Available Equipment: {equipment_list}
Requirements:
- Include warmup
- Include exercises with sets and reps
- Include rest time
- Adjust intensity based on BMI and fitness level
- Keep it structured day-wise
"""
with st.spinner("Generating your AI workout plan..."):
result = generator(prompt, max_new_tokens=400)[0]["generated_text"]
st.subheader("🏋️ Your Personalized Workout Plan")
st.write(result)