Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from transformers import pipeline | |
| # 1. Load pre-trained model sentiment AI dari Hugging Face | |
| # Model ini sudah dilatih untuk memahami bahasa Indonesia | |
| sentiment_model = pipeline("sentiment-analysis", model="w11wo/indonesian-roberta-base-sentiment-classifier") | |
| # 2. Fungsi Utama Mesin Data-Driven DSS | |
| def dss_evaluasi(opini, lokasi): | |
| # AI menganalisis sentimen dari teks opini | |
| hasil = sentiment_model(opini)[0] | |
| label = hasil['label'] | |
| skor = hasil['score'] | |
| # Logika Pengambilan Keputusan (DSS) berdasarkan Sentimen dan Demografi | |
| rekomendasi = "" | |
| if label in ["negative", "NEGATIVE", "Negative"]: | |
| sentimen_teks = "Negatif 📉 (Keresahan Ekonomi)" | |
| if lokasi == "Masyarakat Desa": | |
| rekomendasi = "Prioritas Kebijakan: Segera alokasikan Bantuan Langsung Tunai (BLT) & subsidi pupuk/bibit untuk menjaga daya beli petani." | |
| elif lokasi == "Masyarakat Kabupaten": | |
| rekomendasi = "Prioritas Kebijakan: Lakukan pemantauan ketat harga bahan pokok di pasar tradisional & berikan stimulus untuk UMKM lokal." | |
| else: # Kota | |
| rekomendasi = "Prioritas Kebijakan: Gelar operasi pasar murah untuk menekan inflasi pangan & kaji ulang tarif transportasi publik." | |
| elif label in ["positive", "POSITIVE", "Positive"]: | |
| sentimen_teks = "Positif 📈 (Optimisme)" | |
| rekomendasi = "Kondisi Stabil: Lanjutkan program edukasi literasi keuangan dan dorong kampanye cinta produk dalam negeri (UMKM)." | |
| else: | |
| sentimen_teks = "Netral ➖" | |
| rekomendasi = "Pantau Berkala: Lakukan sosialisasi kebijakan moneter secara transparan agar masyarakat terhindar dari panic buying." | |
| # Format output untuk Dashboard | |
| output_text = f"🗣️ Opini Masyarakat: \"{opini}\"\n📍 Pemetaan Demografi: {lokasi}\n\n" | |
| output_text += f"📊 Hasil Evaluasi Model AI:\n- Sentimen Dominan: {sentimen_teks}\n- Akurasi/Keyakinan AI: {skor:.2f}\n\n" | |
| output_text += f"💡 Rekomendasi DSS untuk Pemangku Kepentingan:\n{rekomendasi}" | |
| return output_text | |
| # 3. Membuat Antarmuka (UI) Dashboard Mockup dengan Gradio | |
| with gr.Blocks(theme=gr.themes.Soft(primary_hue="blue", neutral_hue="slate")) as dashboard: | |
| gr.Markdown("# 📉 Intelligence Data-Driven DSS") | |
| gr.Markdown("### Evaluasi Sentimen Pelemahan Rupiah terhadap USD (Regional)") | |
| gr.Markdown("Sistem ini menggunakan model *Artificial Intelligence* (Indonesian RoBERTa) untuk mengekstrak opini masyarakat dan merumuskan intervensi kebijakan publik yang tepat sasaran.") | |
| with gr.Row(): | |
| with gr.Column(scale=1): | |
| gr.Markdown("### 📥 Input Data Analitik") | |
| opini_input = gr.Textbox(lines=4, label="Masukkan Opini / Keluhan Warga", placeholder="Contoh: Harga sembako makin mahal sejak dolar tembus 16 ribu, kami di kampung makin susah...") | |
| lokasi_input = gr.Dropdown(choices=["Masyarakat Desa", "Masyarakat Kabupaten", "Masyarakat Kota"], label="Pilih Tingkat Demografi Wilayah", value="Masyarakat Desa") | |
| submit_btn = gr.Button("Eksekusi Analisis DSS", variant="primary") | |
| with gr.Column(scale=1): | |
| gr.Markdown("### 📤 Output Rekomendasi Keputusan") | |
| output_hasil = gr.Textbox(lines=10, label="Dashboard Hasil Intelijensi") | |
| submit_btn.click(fn=dss_evaluasi, inputs=[opini_input, lokasi_input], outputs=output_hasil) | |
| # Menjalankan aplikasi | |
| dashboard.launch() |