damelia commited on
Commit
fc5eafa
·
verified ·
1 Parent(s): 6c88ee1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -10
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
- Rekomendasikan jendela makan yang ideal bagi klien, sertakan 3 menu sarapan dan makan malam sederhana beserta kandungan kalorinya.
 
81
  Sesuaikan menu makanan dengan Indeks Massa Tubuh (IMT), Basal Metabolic Rate (BMR), dan total kebutuhan kalori harian klien.
82
- Jelaskan program latihan harian dan jadwal yang komprehensif, serta tips atau pantangan yang relevan untuk membantu klien mencapai hasil yang mereka impikan.
 
 
 
 
 
 
 
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
- output_rekomendasi = gr.Textbox(label="Rekomendasi", lines=0)
 
 
 
 
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