ncardian commited on
Commit
551bc60
·
verified ·
1 Parent(s): 35369bc

Upload 4 files

Browse files
Files changed (2) hide show
  1. app.py +1 -1
  2. prompt_models.py +45 -55
app.py CHANGED
@@ -186,7 +186,7 @@ with col1a:
186
  st.markdown(clean_response)
187
  st.session_state.chatbot['chat_history'].append({"role": "assistant", "content": clean_response})
188
  except AttributeError as e:
189
- st.error(f"Atribut DataFrame tidak lengkap: {e}")
190
  else:
191
  st.write('You need to upload the data first')
192
 
 
186
  st.markdown(clean_response)
187
  st.session_state.chatbot['chat_history'].append({"role": "assistant", "content": clean_response})
188
  except AttributeError as e:
189
+ st.error(f"Please confirm data before before starting the chat: {e}")
190
  else:
191
  st.write('You need to upload the data first')
192
 
prompt_models.py CHANGED
@@ -208,62 +208,52 @@ def prompt_chatbot(user_query, df, df1, df2):
208
 
209
  def prompt_analyze(output, var_summaries, df, error):
210
  prompt = f"""
211
- Kamu adalah analis data yang menjelaskan hasil eksekusi kode Python kepada pemangku kepentingan non-teknis.
212
 
213
-
214
- Hasil eksekusi yang perlu dianalisis:
215
- 1. Output teks:
216
- {output}
217
-
218
- 2. Variabel yang dihasilkan:
219
- {chr(10).join(var_summaries) if var_summaries else 'Tidak ada variabel baru dibuat'}
220
-
221
- 3. Error (jika ada):
222
- {error if error else 'Tidak ada error'}
223
 
224
- Format analisis yang diharapkan:
225
- A. Visualisasi Grafik:
226
- - Jelaskan jenis visualisasi yang dihasilkan
227
- - Identifikasi pola atau tren utama yang terlihat
228
- - Berikan interpretasi bisnis dari visual tersebut
229
-
230
- B. Output Konsol:
231
- - Terjemahkan nilai numerik/metrik ke dalam konteks bisnis
232
- - Jelaskan signifikansi statistik dari nilai yang ditampilkan
233
- - Highlight angka-angka kunci yang penting untuk pengambilan keputusan
234
-
235
- C. Variabel Baru:
236
- - Untuk kolom baru di DataFrame: jelaskan hubungannya dengan kolom lain
237
- - Untuk variabel statistik: jelaskan implikasi analitisnya
238
- - Klasifikasikan tipe variabel (numerik/kategorikal/deret waktu)
239
-
240
- D. Rekomendasi Lanjutan:
241
- - Sarankan teknik analisis tambahan yang relevan (Contoh: "Untuk memahami hubungan non-linear, bisa digunakan regresi polinomial")
242
- - Rekomendasikan jenis visualisasi pendukung lainnya
243
- - Identifikasi potensi masalah data yang perlu diperhatikan
244
-
245
- Aturan ketat:
246
- 1. JANGAN menyebutkan detail teknis kode atau library
247
- 2. Fokus pada interpretasi bisnis/bisnis
248
- 3. Gunakan analogi sehari-hari untuk konsep statistik kompleks
249
- 4. Prioritaskan insight yang actionable
250
- 5. Batasi analisis maksimal 3 poin utama per kategori
251
- 6. Gunakan format poin-poin dengan penomoran jelas
252
-
253
- Contoh struktur jawaban:
254
- 'Analisis menunjukkan:
255
- 1. Pada visualisasi terlihat... [interpretasi grafik]
256
- 2. Nilai R-squared sebesar 0.85 menunjukkan... [penjelasan metrik]
257
- 3. Kolom baru "prediksi" memiliki... [analisis variabel]
258
- Rekomendasi: [saran spesifik]'
259
-
260
- Data pendukung:
261
- - Dimensi DataFrame: {df.shape} baris x {len(df.columns)} kolom
262
- - Kolom tersedia: {list(df.columns)}
263
- - Statistik deskriptif terakhir: {df.describe().to_string() if not df.empty else 'Tidak tersedia'}
264
-
265
- Important
266
- - Gunakan bahasa inggris untuk hasil text summarizenya
267
  """
268
-
269
  return prompt
 
208
 
209
  def prompt_analyze(output, var_summaries, df, error):
210
  prompt = f"""
211
+ You are a data analyst explaining Python code execution results to non-technical stakeholders.
212
 
213
+ Execution results to analyze:
214
+ 1. Text output: {output}
215
+ 2. Generated variables: {chr(10).join(var_summaries) if var_summaries else 'No new variables created'}
216
+ 3. Errors (if any): {error if error else 'No errors'}
 
 
 
 
 
 
217
 
218
+ Analysis format:
219
+ A. Graphics:
220
+ - Describe visualization type
221
+ - Identify main patterns/trends
222
+ - Provide business interpretation
223
+
224
+ B. Console Output:
225
+ - Translate numerical metrics to business context
226
+ - Explain statistical significance
227
+ - Highlight key decision-making metrics
228
+
229
+ C. New Variables:
230
+ - For new DataFrame columns: explain relationship with other columns
231
+ - For statistical variables: explain analytical implications
232
+ - Classify variable type (numeric/categorical/time series)
233
+
234
+ D. Next Recommendations:
235
+ - Suggest relevant additional analysis techniques
236
+ - Recommend supporting visualizations
237
+ - Identify potential data issues
238
+
239
+ Strict rules:
240
+ 1. NEVER mention technical code details or libraries
241
+ 2. Focus on business interpretation
242
+ 3. Use everyday analogies for complex stats
243
+ 4. Prioritize actionable insights
244
+ 5. Limit to max 3 main points per category
245
+ 6. Use clear numbered bullet points
246
+
247
+ Example structure:
248
+ 'Analysis shows:
249
+ 1. Visualization indicates... [graph interpretation]
250
+ 2. R-squared value of 0.85 suggests... [metric explanation]
251
+ 3. New "prediction" column has... [variable analysis]
252
+ Recommendations: [specific suggestions]'
253
+
254
+ Supporting data:
255
+ - DataFrame dimensions: {df.shape} rows x {len(df.columns)} columns
256
+ - Available columns: {list(df.columns)}
257
+ - Last descriptive stats: {df.describe().to_string() if not df.empty else 'Not available'}
 
 
 
258
  """
 
259
  return prompt