Teks bukan keyword.
Judul dan isi memakai text analyzer. URL/ID/topik memakai keyword, waktu memakai date, confidence dan skor memakai numerik. Mapping yang salah membuat filter dan agregasi menyesatkan.
Di balik sebuah film data terdapat crawler yang tahan gangguan, penyimpanan terstruktur, indeks pencarian artikel, embedding semantik, AI agent, dan pemeriksaan bukti. Komputasi berat tetap terpisah dari website publik yang menyajikan JSON statis.
Dari URL sampai insight diperlukan beberapa jalur data: akuisisi RSS/crawling dengan GDELT sebagai pendukung, ekstraksi dan normalisasi teks, dedup serta embedding, klasifikasi AI, penyimpanan, analitik, verifikasi, lalu ekspor JSON yang bisa diaudit.
RSS dan sitemap membantu menemukan tautan berita, crawler mengambil isi artikel dari media, dan indeks GDELT mendukung penemuan serta pemeriksaan cakupan. Klasifikasi, analisis, dan verifikasi berlangsung sebelum ekspor.
Pengunjung melihat snapshot yang sudah diproses, bukan hasil crawl real-time. Hasil pengolahan berita disajikan sebagai snapshot di story.json. Pengunjung membaca data yang sudah tersedia tanpa menjalankan crawler, database, atau model AI di browser.
Artikel, label, cerita, insight, checkpoint.
Temukan teks dan topik; bisa dibangun ulang.
HTML mentah terkompresi untuk pemrosesan ulang.
Berita berawal dari HTML yang tidak terstruktur. Setelah diekstrak, dinormalisasi, deduplikasi, dan diberi metadata NLP, artikel direkam dalam database dan diproyeksikan ke indeks pencarian. Search index bukan sumber kebenaran.
Database menyimpan kebenaran; indeks menyediakan retrieval; vektor membantu similarity; object storage menjaga bahan sumber. Pilih komponen untuk membaca data flow-nya.
Artikel, sumber, label, versi model, cerita, run, dan evidence_ids disimpan sebagai relasi yang dapat diaudit. Constraints menjaga integritas.
Transaksi, audit trail, checkpoint dan kemampuan membangun ulang indeks.
articles → labels → stories → insightsJudul dan isi memakai text analyzer. URL/ID/topik memakai keyword, waktu memakai date, confidence dan skor memakai numerik. Mapping yang salah membuat filter dan agregasi menyesatkan.
Tokenization, stopword, sinonim lokal seperti Transjakarta–TJ–busway, dan aturan normalisasi membantu menemukan artikel meskipun redaksi berbeda.
PostgreSQL tetap otoritatif. Artikel dan label disinkronkan per batch ke indeks bulanan di belakang alias sehingga reindex tidak harus mengubah aplikasi yang mengaksesnya.
Skema bukan sekadar tabel penyimpanan: ID dan versi diperlukan untuk menyelidiki klasifikasi salah, menemukan artikel pendukung sebuah insight, dan menjalankan ulang analitik dengan aturan yang sama.
| ENTITAS | FIELD / RELASI PENTING | KENAPA ADA |
|---|---|---|
| sources | domain, media_name, country, feed_urls, last_ok_at | Melacak kualitas dan keterbatasan tiap sumber berita. |
| articles | id, source_id, url_canonical, published_at, body_key, content_hash, story_id | Satu identitas artikel, riwayat crawl dan pengaitan peristiwa. |
| labels / entities | article_id, task, label, score, model_version, role | Topik, sentimen, lokasi, aktor dan dasar confidence. |
| stories / embeddings | story_id, n_sources, vector(768), similarity | Pengelompokan peristiwa dan pencarian kandidat semantik. |
| insights | period, numbers, evidence_ids, verdict, verifier_note | Menelusuri narasi dan statistik ke artikel buktinya. |
| runs / eval_runs | stage, n_in, n_out, cost_usd, metrics, model_version | Audit keberhasilan batch, biaya, kualitas dan perubahan model. |
Sumber, URL, timestamp, raw object key, content hash
↓Isu, sentimen, lokasi, entitas, confidence, model version
↓Cluster peristiwa, jumlah sumber, embedding, bukti
↓Statistik, interval, evidence_ids, verdict verifier
↓Schema validation, JSON berversi, review, snapshot
Scout memantau sumber, crawler dan dedup bekerja deterministik, classifier menilai label, analyst menyusun narasi, verifier memeriksa bukti, publisher mengekspor hasil. Klik peran untuk melihat input, alat, output, dan kebutuhan LLM-nya.
Menilai sumber berita baru, sumber yang mati, dan perubahan daftar media agar penemuan URL tetap andal.
Search berguna untuk mengambil evidence: teks berita, pihak yang disebut, waktu terbit, isu, dan sentimen. Data yang masuk ke indeks sudah melewati validasi, deduplikasi dan pelabelan NLP.
Setiap komponen menyelesaikan masalah yang berbeda: crawling dan ekstraksi, orkestrasi yang bisa diulang, semantic NLP, pencarian dan penyimpanan, lalu publikasi snapshot. Detailnya dibedah di atas.
Dari halaman publik ke isi yang dapat diproses.
Browser hanya untuk situs dengan JavaScript.Tugas, retry, pemeriksaan dan persetujuan.
Keputusan agen bisa ditelusuri lewat trace.Model kecil dulu; model besar untuk pengecualian.
LLM diprioritaskan untuk kasus ambigu, bukan semua artikel.Data transaksional terpisah dari indeks pencarian.
Indeks dapat dibangun ulang dari database.JSON tervalidasi dipublikasikan menjadi halaman statis.
Tidak perlu database produksi di browser pengunjung.Pipeline harus bisa membedakan source error, extraction error, label drift, dan insight tanpa dukungan bukti. Retry tidak menyelesaikan semuanya; beberapa kasus perlu karantina, review manusia atau rollback model.
Hormati robots.txt, jaga jarak antarrequest untuk setiap domain, jangan membobol paywall, dan pantau kegagalan ekstraksi.
Aturan laju: 1 request / 2 detik per domainInsight menyimpan ID artikel bukti. Verifier dapat menolak narasi; angka di dalam teks tetap dicocokkan dengan tabel sumber.
Hanya insight didukung yang dieksporKuota LLM dibatasi harian, cache menghindari pekerjaan berulang, data pribadi diminimalkan, dan HTML mentah dijadwalkan untuk dihapus.
Kebijakan retensi HTML: 180 hariDari sumber yang mati sampai model yang drift, pipeline membutuhkan observability dan quality gates di setiap lapisan—bukan hanya grafik yang berhasil dirender.
Registry media, RSS/sitemap, status feed, robots, jadwal crawling.
Fetch, parse, tanggal, bahasa, geolokasi, skema, karantina.
Canonical URL, MinHash, embedding, event window, source count.
GLiNER2, confidence, LLM escalation, benchmark per isu.
Agregasi, numerator/denominator, insight, evidence_ids, verifier.
Validasi JSON, versioning schema, review, backup dan rollback.