File size: 1,434 Bytes
067c803
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a8dab6a
 
 
 
 
 
067c803
 
a8dab6a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f43a0c7
 
067c803
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
def calculate_bmi(weight, height):
    height_m = height / 100
    return weight / (height_m ** 2)

def bmi_category(bmi):
    if bmi < 18.5:
        return "Underweight"
    elif bmi < 25:
        return "Normal Weight"
    elif bmi < 30:
        return "Overweight"
    else:
        return "Obese"


def build_prompt(name, gender, height, weight, goal, fitness_level, equipment):

    bmi = calculate_bmi(weight, height)
    bmi_status = bmi_category(bmi)

    equipment_list = ", ".join(equipment) if equipment else "No Equipment"

    prompt = f"""
You are a certified professional fitness trainer.

IMPORTANT:
- Do NOT write introduction.
- Do NOT write explanation.
- Do NOT give nutrition advice.
- Output ONLY the workout plan.
- Keep it concise.

User Profile:
Name: {name}
Gender: {gender}
Height: {height} cm
Weight: {weight} kg
BMI: {bmi:.2f} ({bmi_status})
Goal: {goal}
Fitness Level: {fitness_level}
Available Equipment: {equipment_list}

STRICT FORMAT:

Day 1:
Warm-up:
Main Workout (sets x reps):
Rest:
Cooldown:

Day 2:
Warm-up:
Main Workout (sets x reps):
Rest:
Cooldown:

Day 3:
Warm-up:
Main Workout (sets x reps):
Rest:
Cooldown:

Day 4:
Warm-up:
Main Workout (sets x reps):
Rest:
Cooldown:

Day 5:
Warm-up:
Main Workout (sets x reps):
Rest:
Cooldown:

Each day must contain at least 4 exercises.
Limit each day to maximum 5 exercises.
Keep total response under 900 words.
"""

    return prompt, bmi, bmi_status