Dira AI: WhatsApp Bot Pintar untuk Analisis & Data PDDIKTI

🤖 Dira AI WhatsApp Assistant
Bot WhatsApp AI cerdas yang menggunakan Google Gemini 2.0 Flash dengan kemampuan:
- 💬 Chat dengan memori percakapan
- 🖼️ Analisis gambar/foto
- 🎬 Analisis video
- 🎵 Analisis audio/voice note
- 📄 Memahami dokumen
- 🧠 Ingatan jangka panjang per user
- 🎓 Database PDDIKTI - Pencarian data pendidikan tinggi Indonesia
⚡ Quick Start
1. Development (Local)
# Clone project git clone <repository-url> cd dira-ai-bot # Install dependencies npm install # Copy environment file cp .env.example .env # Edit .env dengan API key Anda nano .env # Jalankan bot npm start
2. Production (VPS/Server)
# Download deployment script wget https://your-repo/deploy.sh chmod +x deploy.sh # Run deployment ./deploy.sh # Follow instructions untuk konfigurasi
📱 Cara Penggunaan
1. Scan QR Code
- Jalankan bot dengan
npm start
- Scan QR code yang muncul dengan WhatsApp
- Bot akan online dan siap digunakan
2. Fitur Chat AI
- Chat biasa: Ketik apapun, Dira akan merespon dengan cerdas
- Kirim gambar: Bot akan menganalisis gambar secara detail
- Kirim video: Bot akan menjelaskan apa yang terjadi di video
- Voice note: Bot akan mendengar dan menganalisis audio
- Dokumen: Bot akan memberikan info tentang dokumen
3. Contoh Penggunaan
Chat Biasa:
User: "Halo Dira!" Dira: "Halo! Saya Dira, asisten AI yang siap membantu kamu! 😊" User: [Kirim foto makanan] Dira: "Wah, itu terlihat seperti nasi gudeg dengan ayam dan telur! 🍛 Makanan khas Yogyakarta yang terlihat sangat lezat..." User: "Ceritakan tentang cuaca hari ini" Dira: "Hmm, saya tidak bisa mengecek cuaca real-time, tapi saya bisa membantu dengan info umum tentang cuaca..."
Pencarian PDDIKTI:
User: "cari kampus ITB" Dira: "🎓 Hasil Pencarian PDDIKTI 🔍 Kata kunci: "ITB" 📊 Ditemukan: 1 hasil 1. 🏛️ Institut Teknologi Bandung 📍 Bandung ⭐ Akreditasi: A 🏢 Jenis: Perguruan Tinggi Negeri" User: "cari prodi teknik informatika" Dira: "🎓 Hasil Pencarian PDDIKTI 📚 Program Studi Teknik Informatika ditemukan di berbagai kampus..." User: "cari dosen machine learning" Dira: "👨🏫 Dosen dengan expertise machine learning ditemukan..."
🎓 Fitur PDDIKTI Database
Pencarian Data Pendidikan Tinggi
Bot dapat mencari data dari database PDDIKTI Kemendiktisaintek:
Jenis Pencarian Contoh Command Hasil Kampus/Universitas cari kampus ITB
Info lengkap universitas Program Studi cari prodi teknik informatika
Daftar prodi dan kampusnya Dosen cari dosen Ahmad Santosa
Profil dan afiliasi dosen Mahasiswa cari mahasiswa Budi
Data mahasiswa (jika public) Keyword yang Dikenali:
cari kampus/universitas [nama]
cari prodi/jurusan [nama]
cari dosen [nama]
cari mahasiswa [nama]
- Atau langsung sebut nama:
ITB
,teknik informatika
, dll.
Contoh Hasil:
🎓 Hasil Pencarian PDDIKTI 🔍 Kata kunci: "ITB" 📊 Ditemukan: 1 hasil 1. 🏛️ Institut Teknologi Bandung 📍 Bandung, Jawa Barat ⭐ Akreditasi: A 🏢 Jenis: PTN (Perguruan Tinggi Negeri) 💡 Tips: • Kirim "detail ITB" untuk info lengkap • Gunakan kata kunci spesifik untuk hasil lebih akurat • Data dari PDDikti Kemendiktisaintek
🔧 Konfigurasi
Mengubah Personality Dira
Edit bagian systemContext
di function chatWithAI()
:
const systemContext = `Kamu adalah Dira, asisten AI yang ramah, ceria, dan membantu. Karakteristik kamu: - Berbicara dengan gaya casual dan ramah seperti teman dekat - Gunakan bahasa Indonesia yang natural dan tidak kaku - Sesekali pakai emoticon untuk ekspresi 😊😄🤔💭✨ // Tambahkan karakteristik lainnya...`
Mengatur Memory Limit
Ubah batas history di function addToHistory()
:
// Batasi history maksimal 50 pesan terakhir untuk performa if (history.length > 50) { // Ubah angka 50 sesuai kebutuhan }
Mengatur Response Delay
Ubah delay typing di function handleAIMessage()
:
const typingDelay = Math.min(response.length * 30, 3000) // Max 3 detik
📁 Struktur Folder
dira-ai-bot/ ├── bot.js # File utama bot ├── package.json # Dependencies ├── session/ # Session WhatsApp (auto-generated) ├── media/ # Media yang diterima │ ├── images/ │ ├── videos/ │ ├── audio/ │ └── documents/ └── logs/ # Log files ├── bot.log # Log aktivitas ├── qr.txt # QR code string └── memory_backup.json # Backup memori
🧪 Testing
Test PDDIKTI Integration
# Test semua fitur node test-pddikti.js # Test specific features node test-pddikti.js --detection # Test query detection node test-pddikti.js --performance # Test API performance node test-pddikti.js --errors # Test error handling
⚡ Tips Optimasi
1. Untuk Server/VPS
# Install PM2 untuk auto-restart npm install -g pm2 # Jalankan dengan PM2 pm2 start bot.js --name "dira-ai" # Monitor pm2 logs dira-ai pm2 restart dira-ai
2. Environment Variables
Buat file .env
:
GEMINI_API_KEY=your_api_key_here NODE_ENV=production MAX_HISTORY_LENGTH=50 TYPING_DELAY_MS=30
3. Database Integration (Opsional)
Untuk production, ganti Map() dengan database:
- MongoDB untuk NoSQL
- PostgreSQL untuk SQL
- Redis untuk caching
🔍 Troubleshooting
Bot tidak connect
- Pastikan QR code fresh (scan ulang)
- Cek koneksi internet
- Restart bot:
Ctrl+C
lalunpm start
API Error
- Cek API key Gemini valid
- Cek quota API tidak habis
- Pastikan model
gemini-2.0-flash-exp
tersedia
Memory issues
- Kurangi
MAX_HISTORY_LENGTH
- Restart bot secara berkala
- Gunakan database untuk memory storage
Media analysis gagal
- Cek format file didukung
- Cek ukuran file tidak terlalu besar
- Pastikan file tidak corrupt
📝 Logs
Bot menyimpan log aktivitas di:
./logs/bot.log
- Log semua aktivitas./logs/qr.txt
- QR code string./logs/memory_backup.json
- Backup memori percakapan
🔐 Security Notes
- Jangan share API key di public repository
- Gunakan environment variables untuk credentials
- Backup session folder secara berkala
- Monitor usage API untuk menghindari overcharge
📞 Support
Jika ada pertanyaan atau masalah:
- Cek logs di
./logs/bot.log
- Restart bot dengan
npm start
- Pastikan semua dependencies terinstall
- Cek dokumentasi Google AI: https://ai.google.dev/
Dibuat dengan ❤️ menggunakan Google Gemini 2.0 Flash