Spaces:
Sleeping
Sleeping
| 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) |