| 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("---") |
|
|
| |
| |
| |
| 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") |
|
|
| |
| |
| |
| 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) |
|
|