Spaces:
Runtime error
Runtime error
refactor(data): organize all datasets and data files into clean data/ directory
Browse files- app.py +5 -4
- dataset_advanced_eco_twin.csv → data/dataset_advanced_eco_twin.csv +0 -0
- dataset_local_2026.csv → data/dataset_local_2026.csv +0 -0
- dataset_vibe_coder_2026.csv → data/dataset_vibe_coder_2026.csv +0 -0
- event_jakarta_2026.txt → data/event_jakarta_2026.txt +0 -0
- data/latest_waste_news.json +72 -0
- latest_waste_news.json +0 -72
app.py
CHANGED
|
@@ -294,11 +294,12 @@ async def load_assets():
|
|
| 294 |
else:
|
| 295 |
logger.warning("⚠️ model_sampah_advanced.pkl not found")
|
| 296 |
|
| 297 |
-
|
|
|
|
| 298 |
df_history["TANGGAL"] = pd.to_datetime(df_history["TANGGAL"]).dt.strftime("%Y-%m-%d")
|
| 299 |
-
logger.info(f"✅ Baseline dataset loaded: {len(df_history)} records")
|
| 300 |
|
| 301 |
-
event_file = "event_jakarta_2026.txt"
|
| 302 |
if os.path.exists(event_file):
|
| 303 |
df_e = pd.read_csv(event_file)
|
| 304 |
df_e.columns = [c.strip().lower() for c in df_e.columns]
|
|
@@ -545,7 +546,7 @@ def generate_dynamic_news_fallback(today_date: datetime) -> List[Dict[str, Any]]
|
|
| 545 |
@app.get("/api/v1/news", response_model=List[NewsItem], tags=["News"])
|
| 546 |
async def get_latest_news():
|
| 547 |
"""Returns the latest dynamic news generated via Conduit AI, falling back to local database on error"""
|
| 548 |
-
news_file = "latest_waste_news.json"
|
| 549 |
|
| 550 |
# 1. Try fetching dynamically from Conduit LLM
|
| 551 |
try:
|
|
|
|
| 294 |
else:
|
| 295 |
logger.warning("⚠️ model_sampah_advanced.pkl not found")
|
| 296 |
|
| 297 |
+
csv_path = "data/dataset_vibe_coder_2026.csv" if os.path.exists("data/dataset_vibe_coder_2026.csv") else "dataset_vibe_coder_2026.csv"
|
| 298 |
+
df_history = pd.read_csv(csv_path)
|
| 299 |
df_history["TANGGAL"] = pd.to_datetime(df_history["TANGGAL"]).dt.strftime("%Y-%m-%d")
|
| 300 |
+
logger.info(f"✅ Baseline dataset loaded from {csv_path}: {len(df_history)} records")
|
| 301 |
|
| 302 |
+
event_file = "data/event_jakarta_2026.txt" if os.path.exists("data/event_jakarta_2026.txt") else "event_jakarta_2026.txt"
|
| 303 |
if os.path.exists(event_file):
|
| 304 |
df_e = pd.read_csv(event_file)
|
| 305 |
df_e.columns = [c.strip().lower() for c in df_e.columns]
|
|
|
|
| 546 |
@app.get("/api/v1/news", response_model=List[NewsItem], tags=["News"])
|
| 547 |
async def get_latest_news():
|
| 548 |
"""Returns the latest dynamic news generated via Conduit AI, falling back to local database on error"""
|
| 549 |
+
news_file = "data/latest_waste_news.json" if os.path.exists("data/latest_waste_news.json") else "latest_waste_news.json"
|
| 550 |
|
| 551 |
# 1. Try fetching dynamically from Conduit LLM
|
| 552 |
try:
|
dataset_advanced_eco_twin.csv → data/dataset_advanced_eco_twin.csv
RENAMED
|
File without changes
|
dataset_local_2026.csv → data/dataset_local_2026.csv
RENAMED
|
File without changes
|
dataset_vibe_coder_2026.csv → data/dataset_vibe_coder_2026.csv
RENAMED
|
File without changes
|
event_jakarta_2026.txt → data/event_jakarta_2026.txt
RENAMED
|
File without changes
|
data/latest_waste_news.json
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"title": "Fasilitas Pengolahan Sampah Terbesar di Rorotan Resmi Dioperasikan",
|
| 4 |
+
"source": "Antara News",
|
| 5 |
+
"url": "https://www.antaranews.com/berita/4575750/wika-rdf-plant-rorotan-akan-jadi-fasilitas-pengolahan-sampah-terbesar",
|
| 6 |
+
"date_fetched": "2026-07-20",
|
| 7 |
+
"summary": "Fasilitas Pengolahan Sampah Terbesar di RDF Plant Rorotan sukses mengolah 51 ton sampah harian menjadi produk Refuse Derived Fuel (RDF) alternatif batubara."
|
| 8 |
+
},
|
| 9 |
+
{
|
| 10 |
+
"title": "Uji Coba Penarikan Retribusi Sampah di Jakarta Mulai Desember",
|
| 11 |
+
"source": "Detik.com",
|
| 12 |
+
"url": "https://news.detik.com/berita/d-7663681/uji-coba-penarikan-retribusi-sampah-di-jakarta-mulai-desember",
|
| 13 |
+
"date_fetched": "2026-07-19",
|
| 14 |
+
"summary": "Dinas Lingkungan Hidup (DLH) DKI Jakarta bakal melakukan uji coba penarikan retribusi sampah di Jakarta pada Desember mendatang untuk menekan volume buangan."
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"title": "KLH Jajaki Kerja Sama Pengadaan Teknologi Pengolahan Sampah Baru",
|
| 18 |
+
"source": "Antara News",
|
| 19 |
+
"url": "https://megapolitan.antaranews.com/berita/359605/klh-jajaki-kerja-sama-pengadaan-teknologi-sampah",
|
| 20 |
+
"date_fetched": "2026-07-19",
|
| 21 |
+
"summary": "Kementerian Lingkungan Hidup menjajaki opsi kerja sama pendanaan pengadaan teknologi pengolah sampah mutakhir di wilayah Jabodetabek."
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"title": "Pionir Pengolahan Sampah RDF Rorotan Jadi Terbesar di Dunia",
|
| 25 |
+
"source": "Antara News",
|
| 26 |
+
"url": "https://www.antaranews.com/berita/4572726/rdf-rorotan-karya-wika-pionir-pengolahan-sampah-rdf-di-indonesia-terbesar-di-dunia",
|
| 27 |
+
"date_fetched": "2026-07-18",
|
| 28 |
+
"summary": "Fasilitas pengolahan sampah RDF Rorotan yang berlokasi di Jakarta Utara menjadi salah satu pionir pemanfaatan sampah ramah lingkungan berskala dunia."
|
| 29 |
+
},
|
| 30 |
+
{
|
| 31 |
+
"title": "DLH DKI Angkut Puluhan Ribu Ton Sampah Selama Liburan di Kebayoran Lama",
|
| 32 |
+
"source": "Detik.com",
|
| 33 |
+
"url": "https://news.detik.com/berita/d-7296382/dinas-lh-dki-angkut-66-ribu-ton-sampai-selama-libur-lebaran-2024",
|
| 34 |
+
"date_fetched": "2026-07-17",
|
| 35 |
+
"summary": "Dinas Lingkungan Hidup DKI Jakarta mencatat timbulan sampah di kawasan Kebayoran Lama dan sekitarnya terkelola dengan baik berkat pengerahan tim oranye 24 jam."
|
| 36 |
+
},
|
| 37 |
+
{
|
| 38 |
+
"title": "DLH DKI Angkut Puluhan Ribu Ton Sampah Selama Liburan di Kebayoran Lama",
|
| 39 |
+
"source": "Detik.com",
|
| 40 |
+
"url": "https://news.detik.com/berita/d-7296382/dinas-lh-dki-angkut-66-ribu-ton-sampai-selama-libur-lebaran-2024",
|
| 41 |
+
"date_fetched": "2026-07-17",
|
| 42 |
+
"summary": "Dinas Lingkungan Hidup DKI Jakarta mencatat timbulan sampah di kawasan Kebayoran Lama dan sekitarnya terkelola dengan baik berkat pengerahan tim oranye 24 jam."
|
| 43 |
+
},
|
| 44 |
+
{
|
| 45 |
+
"title": "Uji Coba Penarikan Retribusi Sampah di Jakarta Mulai Desember",
|
| 46 |
+
"source": "Detik.com",
|
| 47 |
+
"url": "https://news.detik.com/berita/d-7663681/uji-coba-penarikan-retribusi-sampah-di-jakarta-mulai-desember",
|
| 48 |
+
"date_fetched": "2026-07-15",
|
| 49 |
+
"summary": "Dinas Lingkungan Hidup (DLH) DKI Jakarta bakal melakukan uji coba penarikan retribusi sampah di Jakarta pada Desember mendatang untuk menekan volume buangan."
|
| 50 |
+
},
|
| 51 |
+
{
|
| 52 |
+
"title": "Fasilitas Pengolahan Sampah Terbesar di Rorotan Resmi Dioperasikan",
|
| 53 |
+
"source": "Antara News",
|
| 54 |
+
"url": "https://www.antaranews.com/berita/4575750/wika-rdf-plant-rorotan-akan-jadi-fasilitas-pengolahan-sampah-terbesar",
|
| 55 |
+
"date_fetched": "2026-07-14",
|
| 56 |
+
"summary": "Fasilitas Pengolahan Sampah Terbesar di RDF Plant Rorotan sukses mengolah 112 ton sampah harian menjadi produk Refuse Derived Fuel (RDF) alternatif batubara."
|
| 57 |
+
},
|
| 58 |
+
{
|
| 59 |
+
"title": "Pionir Pengolahan Sampah RDF Rorotan Jadi Terbesar di Dunia",
|
| 60 |
+
"source": "Antara News",
|
| 61 |
+
"url": "https://www.antaranews.com/berita/4572726/rdf-rorotan-karya-wika-pionir-pengolahan-sampah-rdf-di-indonesia-terbesar-di-dunia",
|
| 62 |
+
"date_fetched": "2026-07-14",
|
| 63 |
+
"summary": "Fasilitas pengolahan sampah RDF Rorotan yang berlokasi di Jakarta Utara menjadi salah satu pionir pemanfaatan sampah ramah lingkungan berskala dunia."
|
| 64 |
+
},
|
| 65 |
+
{
|
| 66 |
+
"title": "KLH Jajaki Kerja Sama Pengadaan Teknologi Pengolahan Sampah Baru",
|
| 67 |
+
"source": "Antara News",
|
| 68 |
+
"url": "https://megapolitan.antaranews.com/berita/359605/klh-jajaki-kerja-sama-pengadaan-teknologi-sampah",
|
| 69 |
+
"date_fetched": "2026-07-14",
|
| 70 |
+
"summary": "Kementerian Lingkungan Hidup menjajaki opsi kerja sama pendanaan pengadaan teknologi pengolah sampah mutakhir di wilayah Jabodetabek."
|
| 71 |
+
}
|
| 72 |
+
]
|
latest_waste_news.json
DELETED
|
@@ -1,72 +0,0 @@
|
|
| 1 |
-
[
|
| 2 |
-
{
|
| 3 |
-
"title": "DLH DKI Jakarta Wajibkan Pemilahan Sampah Rumah Tangga Mulai 1 Agustus 2026",
|
| 4 |
-
"source": "Kompas.com",
|
| 5 |
-
"url": "https://megapolitan.kompas.com/read/2026/07/12/dlh-dki-wajibkan-pemilahan-sampah-rumah-tangga",
|
| 6 |
-
"date_fetched": "2026-07-12",
|
| 7 |
-
"summary": "Dinas Lingkungan Hidup DKI Jakarta resmi mensosialisasikan Instruksi Gubernur No. 5 Tahun 2026 tentang kewajiban pilah sampah dari rumah guna mengurangi pasokan sampah ke TPST Bantargebang per 1 Agustus 2026."
|
| 8 |
-
},
|
| 9 |
-
{
|
| 10 |
-
"title": "Antisipasi Pembatasan Bantargebang, Bank Sampah RW di Jakarta Timur Diaktifkan Kembali",
|
| 11 |
-
"source": "Antara News",
|
| 12 |
-
"url": "https://www.antaranews.com/berita/2026/07/13/antisipasi-pembatasan-bantargebang-bank-sampah-rw-di-jakarta-timur",
|
| 13 |
-
"date_fetched": "2026-07-13",
|
| 14 |
-
"summary": "Suku Dinas Lingkungan Hidup Jakarta Timur mengaktifkan kembali ratusan Bank Sampah tingkat RW untuk membantu pemilahan sampah anorganik bernilai ekonomis tinggi dari warga."
|
| 15 |
-
},
|
| 16 |
-
{
|
| 17 |
-
"title": "Pemprov DKI Rilis Aturan Pengangkutan Sampah Terjadwal Berdasarkan Kategori",
|
| 18 |
-
"source": "Detik.com",
|
| 19 |
-
"url": "https://news.detik.com/berita/2026/07/11/pemprov-dki-rilis-aturan-pengangkutan-sampah-terjadwal",
|
| 20 |
-
"date_fetched": "2026-07-11",
|
| 21 |
-
"summary": "Dinas Lingkungan Hidup DKI Jakarta menetapkan jadwal pengangkutan terpisah untuk sampah organik, anorganik residu, dan sampah B3 rumah tangga mulai pertengahan Juli 2026."
|
| 22 |
-
},
|
| 23 |
-
{
|
| 24 |
-
"title": "Tekan Sampah Organik Harian, Pemkot Jakarta Pusat Galakkan Gerakan Biopori Jumbo",
|
| 25 |
-
"source": "Jakarta.go.id",
|
| 26 |
-
"url": "https://jakarta.go.id/berita/pemkot-jakpus-galakkan-gerakan-biopori-jumbo",
|
| 27 |
-
"date_fetched": "2026-07-14",
|
| 28 |
-
"summary": "Pemerintah Kota Jakarta Pusat menginstruksikan pembuatan lubang biopori berukuran besar di area perkantoran dan pemukiman padat guna mereduksi volume sampah sisa makanan harian."
|
| 29 |
-
},
|
| 30 |
-
{
|
| 31 |
-
"title": "Jakarta Eco Future Fest (JEFF) 2026 Edukasi Warga Soal Aksi Nyata Kelola Sampah",
|
| 32 |
-
"source": "MetroTV News",
|
| 33 |
-
"url": "https://www.metrotvnews.com/read/2026/07/10/jakarta-eco-future-fest-jeff-2026",
|
| 34 |
-
"date_fetched": "2026-07-10",
|
| 35 |
-
"summary": "Festival ramah lingkungan JEFF 2026 sukses digelar di Senayan, menghadirkan ribuan warga untuk belajar daur ulang plastik dan pemilahan sampah tingkat rumah tangga secara interaktif."
|
| 36 |
-
},
|
| 37 |
-
{
|
| 38 |
-
"title": "TPST Bantargebang Hanya Terima Sampah Residu Mulai Agustus 2026, DLH Mulai Uji Coba Pengangkutan",
|
| 39 |
-
"source": "Kompas.com",
|
| 40 |
-
"url": "https://megapolitan.kompas.com/read/2026/07/09/tpst-bantargebang-hanya-terima-sampah-residu",
|
| 41 |
-
"date_fetched": "2026-07-09",
|
| 42 |
-
"summary": "DLH DKI Jakarta memulai uji coba pengangkutan logistik sampah terpilah di beberapa kecamatan percontohan untuk memastikan kesiapan sistem sebelum larangan sampah non-residu di Bantargebang resmi berlaku."
|
| 43 |
-
},
|
| 44 |
-
{
|
| 45 |
-
"title": "Evaluasi Penanganan Sampah, Lurah dan Camat Diminta Turun Langsung ke TPS 3R",
|
| 46 |
-
"source": "Jakarta.go.id",
|
| 47 |
-
"url": "https://jakarta.go.id/berita/evaluasi-penanganan-sampah-lurah-camat-tps3r",
|
| 48 |
-
"date_fetched": "2026-07-08",
|
| 49 |
-
"summary": "Penjabat Gubernur DKI Jakarta meminta jajaran lurah dan camat untuk melakukan pemantauan harian di Tempat Pengolahan Sampah 3R (Reduce, Reuse, Recycle) wilayah masing-masing demi meminimalkan keterlambatan pengangkutan."
|
| 50 |
-
},
|
| 51 |
-
{
|
| 52 |
-
"title": "Sanksi Retribusi Sampah Mulai Disosialisasikan Bagi Kawasan Komersial yang Tidak Memilah",
|
| 53 |
-
"source": "Detik.com",
|
| 54 |
-
"url": "https://news.detik.com/berita/2026/07/07/sanksi-retribusi-sampah-mulai-disosialisasikan",
|
| 55 |
-
"date_fetched": "2026-07-07",
|
| 56 |
-
"summary": "Dinas Lingkungan Hidup menegaskan kawasan komersial dan apartemen yang tidak memilah sampahnya per Juli 2026 akan dikenakan tarif retribusi kebersihan maksimal atau pembekuan izin pengelolaan."
|
| 57 |
-
},
|
| 58 |
-
{
|
| 59 |
-
"title": "Layanan Jemput Sampah Elektronik (E-Waste) DKI Jakarta Mengalami Kenaikan Permintaan",
|
| 60 |
-
"source": "Antara News",
|
| 61 |
-
"url": "https://www.antaranews.com/berita/2026/07/12/layanan-jemput-sampah-elektronik-e-waste-dki-jakarta",
|
| 62 |
-
"date_fetched": "2026-07-12",
|
| 63 |
-
"summary": "Program penjemputan gratis sampah elektronik dari rumah tangga oleh DLH DKI Jakarta mencatatkan kenaikan permintaan hingga 25% di awal bulan Juli 2026 seiring meningkatnya kesadaran warga."
|
| 64 |
-
},
|
| 65 |
-
{
|
| 66 |
-
"title": "Kampanye Bulky Waste: Penjemputan Sampah Besar di Jakarta Kini Bisa Melalui Aplikasi JAKI",
|
| 67 |
-
"source": "Jakarta.go.id",
|
| 68 |
-
"url": "https://jakarta.go.id/berita/penjemputan-sampah-besar-jakarta-jaki",
|
| 69 |
-
"date_fetched": "2026-07-13",
|
| 70 |
-
"summary": "Warga DKI Jakarta kini dapat menjadwalkan penjemputan sampah berukuran besar seperti kasur bekas dan lemari melalui modul khusus di aplikasi JAKI guna mencegah sampah dibuang sembarangan ke bantaran sungai."
|
| 71 |
-
}
|
| 72 |
-
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|