FitPlanAI2 / app.py
kanakkk789's picture
Update app.py
e3aa1b6 verified
import streamlit as st
from model_api import query_model
from prompt_builder import build_prompt
# -----------------------------------
# PAGE CONFIG
# -----------------------------------
st.set_page_config(
page_title="FitPlan AI",
page_icon="💪",
layout="wide"
)
# -----------------------------------
# SIDEBAR
# -----------------------------------
st.sidebar.title("💪 FitPlan AI")
page = st.sidebar.radio(
"Navigation",
["Fitness Form", "BMI Result", "AI Workout Plan"]
)
# -----------------------------------
# PAGE 1 FORM
# -----------------------------------
if page == "Fitness Form":
st.title("Fitness Profile")
name = st.text_input("Name")
age = st.number_input("Age", min_value=1, max_value=100)
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(
"Goal",
["Build Muscle", "Weight Loss", "Strength Gain", "Abs Building", "Flexible"]
)
fitness_level = st.selectbox(
"Fitness Level",
["Beginner", "Intermediate", "Advanced"]
)
equipment = st.multiselect(
"Equipment",
["Dumbbells", "Yoga Mat", "Resistance Band", "None"]
)
if st.button("Submit"):
if name == "" or height == 0 or weight == 0:
st.error("Fill all fields")
else:
prompt, bmi, bmi_status = build_prompt(
name,
gender,
age,
height,
weight,
goal,
fitness_level,
equipment
)
st.session_state.prompt = prompt
st.session_state.bmi = bmi
st.session_state.bmi_status = bmi_status
st.session_state.name = name
st.session_state.age = age
st.success("Submitted")
# -----------------------------------
# PAGE 2 BMI RESULT
# -----------------------------------
elif page == "BMI Result":
if "bmi" not in st.session_state:
st.warning("Fill form first")
else:
st.write("Name:", st.session_state.name)
st.write("Age:", st.session_state.age)
st.write("BMI:", round(st.session_state.bmi, 2))
st.write("Category:", st.session_state.bmi_status)
# -----------------------------------
# PAGE 3 AI WORKOUT PLAN
# -----------------------------------
elif page == "AI Workout Plan":
st.title("AI Generated Workout Plan")
if "prompt" not in st.session_state:
st.warning("Fill form first")
else:
if st.button("Generate Plan"):
with st.spinner("Generating..."):
result = query_model(
st.session_state.prompt
)
st.write(result)