Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -98,9 +98,15 @@ def load_assets():
|
|
| 98 |
global pipeline, df_history, events_data
|
| 99 |
logger.info("β³ Menyiapkan AI Engine (Chronos-T5)...")
|
| 100 |
try:
|
| 101 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 102 |
logger.info("β
Model Chronos loaded.")
|
| 103 |
|
|
|
|
| 104 |
dataset_path = 'dataset_vibe_coder_2026.csv'
|
| 105 |
if os.path.exists(dataset_path):
|
| 106 |
df_history = pd.read_csv(dataset_path)
|
|
@@ -109,21 +115,33 @@ def load_assets():
|
|
| 109 |
else:
|
| 110 |
raise FileNotFoundError(f"Dataset {dataset_path} tidak ditemukan!")
|
| 111 |
|
|
|
|
| 112 |
event_path = 'event_jakarta_2026.txt'
|
| 113 |
if os.path.exists(event_path):
|
| 114 |
df_events = pd.read_csv(event_path)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 115 |
for _, row in df_events.iterrows():
|
| 116 |
-
|
| 117 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 118 |
if date_key:
|
| 119 |
events_data[date_key] = {
|
| 120 |
-
|
| 121 |
-
'
|
| 122 |
-
'
|
|
|
|
| 123 |
}
|
| 124 |
-
|
|
|
|
| 125 |
else:
|
| 126 |
-
logger.warning(f"β οΈ Event file tidak ditemukan
|
| 127 |
|
| 128 |
except Exception as e:
|
| 129 |
logger.error(f"β Startup failed: {e}")
|
|
|
|
| 98 |
global pipeline, df_history, events_data
|
| 99 |
logger.info("β³ Menyiapkan AI Engine (Chronos-T5)...")
|
| 100 |
try:
|
| 101 |
+
# 1. Load Model
|
| 102 |
+
pipeline = ChronosPipeline.from_pretrained(
|
| 103 |
+
"amazon/chronos-t5-tiny",
|
| 104 |
+
device_map="cpu",
|
| 105 |
+
torch_dtype=torch.float32
|
| 106 |
+
)
|
| 107 |
logger.info("β
Model Chronos loaded.")
|
| 108 |
|
| 109 |
+
# 2. Load Dataset
|
| 110 |
dataset_path = 'dataset_vibe_coder_2026.csv'
|
| 111 |
if os.path.exists(dataset_path):
|
| 112 |
df_history = pd.read_csv(dataset_path)
|
|
|
|
| 115 |
else:
|
| 116 |
raise FileNotFoundError(f"Dataset {dataset_path} tidak ditemukan!")
|
| 117 |
|
| 118 |
+
# 3. Load Event File β
FIX: Handle lowercase columns
|
| 119 |
event_path = 'event_jakarta_2026.txt'
|
| 120 |
if os.path.exists(event_path):
|
| 121 |
df_events = pd.read_csv(event_path)
|
| 122 |
+
|
| 123 |
+
# β
Normalisasi nama kolom jadi lowercase biar fleksibel
|
| 124 |
+
df_events.columns = [c.strip().lower() for c in df_events.columns]
|
| 125 |
+
|
| 126 |
for _, row in df_events.iterrows():
|
| 127 |
+
# β
Cek kolom 'ada_event' (lowercase) atau fallback ke True jika tidak ada
|
| 128 |
+
is_event = True
|
| 129 |
+
if 'ada_event' in df_events.columns:
|
| 130 |
+
is_event = str(row.get('ada_event', '0')) == '1'
|
| 131 |
+
|
| 132 |
+
if is_event:
|
| 133 |
+
date_key = str(row.get('tanggal', '')).strip()
|
| 134 |
if date_key:
|
| 135 |
events_data[date_key] = {
|
| 136 |
+
# β
Map ke nama kolom lowercase di file CSV lo
|
| 137 |
+
'Nama_Event': str(row.get('nama_event', row.get('event', 'Event'))),
|
| 138 |
+
'Lokasi': str(row.get('lokasi', row.get('lokasi_utama', ''))),
|
| 139 |
+
'Crowd_Scale': float(row.get('skala_keramaian', row.get('crowd_scale', 0)))
|
| 140 |
}
|
| 141 |
+
|
| 142 |
+
logger.info(f"β
{len(events_data)} events loaded. Sample: {list(events_data.keys())[:3]}")
|
| 143 |
else:
|
| 144 |
+
logger.warning(f"β οΈ Event file tidak ditemukan: {event_path}")
|
| 145 |
|
| 146 |
except Exception as e:
|
| 147 |
logger.error(f"β Startup failed: {e}")
|