Fit_Plan_Module_2 / prompt_builder.py
Amrutha04's picture
Update prompt_builder.py
ce01eb0 verified
def calculate_bmi(weight, height):
height_m = height / 100
return weight / (height_m ** 2)
def bmi_category(bmi):
if bmi < 18.5:
return "Underweight", "#3498db"
elif bmi < 25:
return "Normal Weight", "#2ecc71"
elif bmi < 30:
return "Overweight", "#f1c40f"
else:
return "Obese", "#e74c3c"
def build_prompt(name, gender, age, height, weight, goal, fitness_level, equipment):
bmi = calculate_bmi(weight, height)
bmi_status, status_color = bmi_category(bmi)
equipment_list = ", ".join(equipment) if equipment else "No Equipment"
prompt = f"""You are a professional trainer. Create a 5-day plan for {name}.
User Profile: Age {age}, Gender {gender}, BMI {bmi:.2f}, Goal {goal}, Level {fitness_level}, Equipment {equipment_list}.
STRICT FORMATTING RULES:
1. Label days as Day 1:, Day 2:, etc.
2. For EVERY exercise, use this EXACT format:
- Exercise Name | Sets | Reps | Rest
3. Example: - Dumbbell Bench Press | 3 | 10-12 | 60s
4. Day 3 must be "Rest Day".
5. Do not include any intro or outro text. Output only the days and exercises."""
return prompt, bmi, bmi_status, status_color