# Chatbot "Wajib Tahu"
**Sistem Edukasi Kesehatan Reproduksi dan Kesiapan Keluarga Pranikah BKKBN Berbasis RAG**

---

"Wajib Tahu" adalah asisten virtual cerdas berbasis web yang dirancang khusus untuk mendukung pelayanan informasi di Balai Penyuluhan KB Kecamatan Kanigoro. 

Sistem ini menggunakan arsitektur mutakhir **Retrieval-Augmented Generation (RAG)** untuk menyajikan edukasi seputar pencegahan stunting, kesehatan reproduksi, dan persiapan pranikah. Dengan pendekatan ini, kecerdasan buatan dikunci secara ketat agar 100% bersumber dari dokumen resmi pedoman BKKBN, memastikan jawaban yang aman, akurat, dan bebas dari halusinasi AI.

## Fitur Sistem

### Fitur Chatbot (RAG)

* **Arsitektur RAG yang Teruji**
  Menggunakan konfigurasi optimal (*Top-K* = 4, *Chunk Size* = 750 karakter) untuk menjaga keutuhan konteks tanpa menimbulkan *noise*.

* **Dua Mode Antarmuka Pengguna**
  Mendukung akses melalui:

  * *Floating Widget* (praktis & cepat)
  * *Full Page Chat* (konsultasi lebih mendalam)

* **Manajemen Pusat Data Dinamis**
  Administrator dapat memperbarui basis pengetahuan AI dengan mengunggah dokumen PDF langsung dari dashboard.

* **Pemantauan & Validasi Cerdas**
  Dilengkapi fitur *Log Percakapan* untuk memantau interaksi pengguna dan mengevaluasi kualitas jawaban secara *real-time*.

---

### Portal Informasi

Selain chatbot, sistem ini juga menyediakan portal informasi yang dapat diakses oleh masyarakat umum, meliputi:

* **Beranda**
  Menampilkan informasi umum serta pengenalan sistem.

* **Produk UPPKA Kecamatan Kanigoro**
  Menampilkan produk usaha peningkatan pendapatan keluarga akseptor (UPPKA).

* **Artikel Edukasi**
  Berisi artikel terkait kesehatan reproduksi, pranikah, dan pencegahan stunting.

* **Kontak**
  Menyediakan informasi kontak Balai Penyuluhan KB Kecamatan Kanigoro.

* **Chatbot AI (RAG)**
  Memberikan jawaban berbasis dokumen resmi BKKBN secara akurat, terkontrol, dan minim halusinasi.

---

## Tujuan Sistem

* Meningkatkan literasi masyarakat terkait kesehatan reproduksi dan pranikah
* Mendukung pelayanan digital di Balai Penyuluhan KB
* Menyediakan akses informasi yang cepat, akurat, dan terpercaya

---

## Teknologi 

Sistem ini dibangun dengan arsitektur terpisah untuk memisahkan logika antarmuka pengguna dan mesin pemrosesan bahasa alami:

**Sistem Web (Frontend & Backend)**
*   **Framework:** Laravel (PHP)
*   **Styling:** Tailwind CSS
*   **Database:** MySQL

**AI Engine (Pemrosesan Bahasa Alami)**
*   **Bahasa Pemrograman:** Python
*   **AI Framework:** LangChain / LlamaIndex *(sesuaikan jika perlu)*
*   **LLM Model:** HuggingFace / OpenAI *(sesuaikan jika perlu)*

## Persyaratan Sistem 

Untuk menjalankan atau mengembangkan sistem ini lebih lanjut, pastikan lingkungan kerja Anda memiliki:
1.  **PHP** (Minimal versi 8.1) & **Composer**
2.  **Node.js** & **NPM**
3.  **Python** (Minimal versi 3.9) & **PIP**
4.  **MySQL** (XAMPP/Laragon/sejenisnya)

## Dataset & Dokumen Pengetahuan

Repositori ini hanya menyertakan **sebagian dokumen sampel** untuk keperluan demonstrasi awal. 

> **Catatan:** Seluruh dokumen pedoman resmi BKKBN secara lengkap tidak disertakan dalam repositori ini demi alasan efisiensi ukuran penyimpanan dan privasi data.

Sistem RAG ini dirancang untuk beroperasi secara dinamis. Sistem tetap dapat berfungsi secara optimal dengan cara menambahkan atau mengunggah dokumen referensi `.pdf` baru melalui halaman *Dashboard Administrator*. Setiap dokumen yang diunggah akan secara otomatis memicu proses *ingest* (penyerapan dan pemotongan teks) ulang ke dalam vektor *database* sistem.

---
*Dikembangkan oleh Alfito Dwi Mirza Ziananda MIF 23 (@alfito_d_m_z_).*