Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -52,8 +52,8 @@ def calculate_daily_calories(bmr, activity_level):
|
|
52 |
|
53 |
|
54 |
# Fungsi untuk menghasilkan respons dari prompt dengan GPT4
|
55 |
-
def generate_response(nama, usia, tujuan_utama, motivasi_utama, gender, berat, tinggi, kondisi_kesehatan, pola_makan, alergi, tidak_disukai, tipe_makanan, frekuensi_olahraga, jenis_latihan, batas_waktu, waktu_latihan_mingguan, tingkat_stres, kualitas_tidur):
|
56 |
-
|
57 |
# Digunakan apabila pengguna tidak menginputkan apa2
|
58 |
if not nama or not usia or not tujuan_utama or not motivasi_utama or not gender or not berat or not tinggi or not pola_makan or not frekuensi_olahraga or not jenis_latihan or not batas_waktu or not waktu_latihan_mingguan or not tingkat_stres or not kualitas_tidur:
|
59 |
return "-", "-", "Mohon isi semua kolom dulu yaa"
|
@@ -65,7 +65,7 @@ def generate_response(nama, usia, tujuan_utama, motivasi_utama, gender, berat, t
|
|
65 |
|
66 |
# Hitung BMR
|
67 |
bmr = calculate_bmr(gender, berat, tinggi, usia)
|
68 |
-
|
69 |
# Hitung kebutuhan kalori harian
|
70 |
kalori_harian = calculate_daily_calories(bmr, frekuensi_olahraga)
|
71 |
hasil_bmr = f"BMR: {int(bmr)} kkal, Kebutuhan Kalori: {int(kalori_harian)} kkal"
|
@@ -75,11 +75,19 @@ def generate_response(nama, usia, tujuan_utama, motivasi_utama, gender, berat, t
|
|
75 |
prompt = (
|
76 |
"""
|
77 |
Anda adalah seorang pelatih profesional dan ahli gizi ternama.
|
78 |
-
Tugas Anda adalah memberikan rekomendasi diet dan program latihan yang sangat spesifik berdasarkan kondisi dan kebutuhan unik setiap klien.
|
79 |
-
Berikan saran Anda dengan semangat yang tinggi, ceria, penuh energi, hangat, bahasa gaul, dan profesional.
|
80 |
-
|
|
|
81 |
Sesuaikan menu makanan dengan Indeks Massa Tubuh (IMT), Basal Metabolic Rate (BMR), dan total kebutuhan kalori harian klien.
|
82 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
Jangan lupa menambahkan kata-kata motivasi yang kuat untuk menginspirasi klien dalam mencapai tujuannya dengan penuh semangat.
|
84 |
"""
|
85 |
|
@@ -115,7 +123,7 @@ def generate_response(nama, usia, tujuan_utama, motivasi_utama, gender, berat, t
|
|
115 |
return hasil_imt, hasil_bmr, rekomendasi
|
116 |
|
117 |
|
118 |
-
|
119 |
# Membuat interface Gradio untuk ditampilkan
|
120 |
with gr.Blocks(theme=gr.themes.Ocean()) as interface:
|
121 |
# Title
|
@@ -147,12 +155,16 @@ with gr.Blocks(theme=gr.themes.Ocean()) as interface:
|
|
147 |
|
148 |
# Daftar input yang diisi
|
149 |
inputs = [nama, usia, tujuan_utama, motivasi_utama, gender, berat, tinggi, kondisi_kesehatan, pola_makan, alergi, tidak_disukai, tipe_makanan, frekuensi_olahraga, jenis_latihan, batas_waktu, waktu_latihan_mingguan, tingkat_stres, kualitas_tidur]
|
150 |
-
|
151 |
# Hasil IMT, BMR, dan rekomendasi
|
152 |
with gr.Row():
|
153 |
output_imt = gr.Label(label="Indeks Massa Tubuh (IMT)")
|
154 |
output_bmr = gr.Label(label="Basal Metabolic Rate (BMR)")
|
155 |
-
|
|
|
|
|
|
|
|
|
156 |
|
157 |
|
158 |
# Tombol submit dan reset
|
|
|
52 |
|
53 |
|
54 |
# Fungsi untuk menghasilkan respons dari prompt dengan GPT4
|
55 |
+
def generate_response(nama, usia, tujuan_utama, motivasi_utama, gender, berat, tinggi, kondisi_kesehatan, pola_makan, alergi, tidak_disukai, tipe_makanan, frekuensi_olahraga, jenis_latihan, batas_waktu, waktu_latihan_mingguan, tingkat_stres, kualitas_tidur):
|
56 |
+
|
57 |
# Digunakan apabila pengguna tidak menginputkan apa2
|
58 |
if not nama or not usia or not tujuan_utama or not motivasi_utama or not gender or not berat or not tinggi or not pola_makan or not frekuensi_olahraga or not jenis_latihan or not batas_waktu or not waktu_latihan_mingguan or not tingkat_stres or not kualitas_tidur:
|
59 |
return "-", "-", "Mohon isi semua kolom dulu yaa"
|
|
|
65 |
|
66 |
# Hitung BMR
|
67 |
bmr = calculate_bmr(gender, berat, tinggi, usia)
|
68 |
+
|
69 |
# Hitung kebutuhan kalori harian
|
70 |
kalori_harian = calculate_daily_calories(bmr, frekuensi_olahraga)
|
71 |
hasil_bmr = f"BMR: {int(bmr)} kkal, Kebutuhan Kalori: {int(kalori_harian)} kkal"
|
|
|
75 |
prompt = (
|
76 |
"""
|
77 |
Anda adalah seorang pelatih profesional dan ahli gizi ternama.
|
78 |
+
Tugas Anda adalah memberikan rekomendasi diet dan program latihan yang sangat spesifik berdasarkan kondisi dan kebutuhan unik setiap klien.
|
79 |
+
Berikan saran Anda dengan semangat yang tinggi, ceria, penuh energi, hangat, bahasa gaul, dan profesional.
|
80 |
+
|
81 |
+
Rekomendasikan jendela makan yang ideal bagi klien, sertakan 3 menu sarapan dan makan malam sederhana beserta kandungan kalorinya.
|
82 |
Sesuaikan menu makanan dengan Indeks Massa Tubuh (IMT), Basal Metabolic Rate (BMR), dan total kebutuhan kalori harian klien.
|
83 |
+
Cari dan sertakan tautan video YouTube resep yang mudah diikuti dan relevan untuk setiap menu yang Anda rekomendasikan.
|
84 |
+
Format tautan video seperti ini: https://www.youtube.com/results?search_query={isi+dengan+judul+video+yang+akan+dicari}&sp=CAM%253D
|
85 |
+
|
86 |
+
Jelaskan program latihan harian dan jadwal yang komprehensif.
|
87 |
+
Cari dan sertakan tautan video YouTube atau panduan latihan yang sesuai dan relevan untuk membantu klien melakukan latihan dengan benar.
|
88 |
+
Format tautan video seperti ini: https://www.youtube.com/results?search_query={isi+dengan+judul+video+yang+akan+dicari}&sp=CAM%253D
|
89 |
+
|
90 |
+
Berikan tips atau pantangan yang relevan untuk membantu klien mencapai hasil yang mereka impikan.
|
91 |
Jangan lupa menambahkan kata-kata motivasi yang kuat untuk menginspirasi klien dalam mencapai tujuannya dengan penuh semangat.
|
92 |
"""
|
93 |
|
|
|
123 |
return hasil_imt, hasil_bmr, rekomendasi
|
124 |
|
125 |
|
126 |
+
|
127 |
# Membuat interface Gradio untuk ditampilkan
|
128 |
with gr.Blocks(theme=gr.themes.Ocean()) as interface:
|
129 |
# Title
|
|
|
155 |
|
156 |
# Daftar input yang diisi
|
157 |
inputs = [nama, usia, tujuan_utama, motivasi_utama, gender, berat, tinggi, kondisi_kesehatan, pola_makan, alergi, tidak_disukai, tipe_makanan, frekuensi_olahraga, jenis_latihan, batas_waktu, waktu_latihan_mingguan, tingkat_stres, kualitas_tidur]
|
158 |
+
|
159 |
# Hasil IMT, BMR, dan rekomendasi
|
160 |
with gr.Row():
|
161 |
output_imt = gr.Label(label="Indeks Massa Tubuh (IMT)")
|
162 |
output_bmr = gr.Label(label="Basal Metabolic Rate (BMR)")
|
163 |
+
|
164 |
+
with gr.Row():
|
165 |
+
with gr.Column():
|
166 |
+
gr.Markdown("### Rekomendasi")
|
167 |
+
output_rekomendasi = gr.Markdown(container = True, show_copy_button = True, min_height = 100, max_height = 450)
|
168 |
|
169 |
|
170 |
# Tombol submit dan reset
|