BiZETO: WhatsApp Media Preview, Quoted Message Reply, & Smart Persona Auto-Reply
Implementasi media downloader (gambar lightbox, audio, video, dokumen) WhatsApp, quoted context reply, dan optimasi persona AI auto-reply ringkas tanpa analisa aplikasi.
Pada penggunaan harian chat WhatsApp di BiZETO Command Center, ditemukan kebutuhan esensial:
- Pesan Non-Teks: Pesan media seperti gambar, rekaman suara (voice note), video, dan dokumen belum menampilkan preview interaktif di UI dan belum dapat di-download/di-zoom.
- Quoted Reply Message: Belum ada kemampuan membalas pesan secara spesifik (reply with quoted message) seperti pada WhatsApp asli.
- Karakter Respons AI: Balasan otomatis bot perlu dijaga agar ringkas, cerdas, ramah, dan langsung menjawab esensi pertanyaan pelanggan tanpa analisis teknis aplikasi/sistem.
- Media Ingestion (
manager.go):- Mengunduh data biner media (
whatsmeow.Download) saat pesan masuk untuk tipeImageMessage,VideoMessage,AudioMessage,DocumentMessage, danStickerMessage. - Menyimpan file ke storage lokal
./media_files/whatsapp/<tenant_id>/<msg_id>.<ext>. - Mendaftarkan static endpoint Fiber
/api/mediadan/mediadimain.go.
- Mengunduh data biner media (
- ContextInfo Extractor:
- Mengekstrak
StanzaID,Participant, danQuotedMessagesaat pesan merupakan balasan dari pesan lain. - Memperbarui skema database tabel
messagesdengan kolommedia_url,media_type,file_name,quoted_msg_id,quoted_sender, danquoted_content.
- Mengekstrak
- Pengiriman Pesan dengan Context (
manager.go&chat_handler.go):- Method
SendWhatsAppMessagemenyusun payloadproto.ExtendedTextMessagedenganproto.ContextInfoberisiStanzaIDpesan target. - WhatsApp penerima akan merender pesan tersebut sebagai balasan resmi bertaut (quoted message).
- Method
- Optimasi Prompt (
orchestrator.go):- Membatasi keluaran respons AI WhatsApp agar to the point, ramah, dan adaptif sesuai intensi pelanggan.
- Menghilangkan segala bentuk meta-analisa aplikasi/sistem/database dari respons bot.
- Image Preview & Lightbox:
- Thumbnail gambar dengan hover zoom icon.
- Modal Lightbox Fullscreen dengan gambar resolusi penuh, tombol Zoom, dan Tombol Download.
- Audio Player:
- Mini HTML5 audio player untuk voice note/audio pesan suara.
- Document & Video:
- Card download dokumen dan inline video player.
- Quoted Message Header:
- Banner kutipan di dalam bubble pesan dengan highlight warna dan nama pengirim.
- Smooth-scroll ke pesan target saat banner kutipan diklik.
- Interactive Reply Bar:
- Tombol Reply pada hover bubble pesan.
- Strip preview “Membalas ke: [Nama/Nomor]” di atas input text bar dengan tombol pembatalan
(X).
- ✅ Backend Compilation: Binary Linux AMD64
bizeto-serverberhasil di-build tanpa error. - ✅ Frontend Build: Bundle Vite/React
distterkompilasi optimal (890 kB). - ✅ Deployment VPS: Container
bizeto_backenddanbizeto_frontendberhasil di-restart dan aktif melayani request dengan latensi 1-3 ms.