Afzaalmalwa's picture
Upload app.py
1308d52 verified
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()