// detail proyek

DMS AI — Sistem Manajemen Dokumen Bertenaga AI

DMS enterprise yang memecahkan 'masalah pencarian kata kunci' dalam retrieval dokumen: pengguna tidak dapat menemukan apa yang mereka butuhkan karena mereka tidak mengetahui kata-kata persis dalam dokumen. Pencarian vektor semantik via Qdrant + embedding LLM memungkinkan penemuan dokumen bahasa natural dalam skala enterprise, dibangun di atas arsitektur microservices Go + Python + gRPC.

Go (Golang)PythongRPCQdrantVector SearchOpenRouterKubernetesRedisWebSocketSemantic Search
Selesai2025

// Tantangan Utama

  • Kegagalan Pencarian Kata Kunci: Pencarian tradisional memaksa pengguna mengingat terminologi dokumen yang persis. Untuk dokumen regulasi dan kebijakan, ini mengakibatkan dokumen kritis 'tersembunyi di depan mata'.
  • Pemrosesan Konkuren: Mengunggah dan mengindeks batch dokumen besar (100+ file) memblokir pengguna lain selama operasi pengindeksan.
  • Latensi Lintas-Layanan: Generasi embedding AI (Python/ML) dan penyimpanan dokumen (Go/Postgres) perlu berkomunikasi tanpa menimbulkan bottleneck waktu respons.
  • Kolaborasi Real-Time: Beberapa anggota tim perlu melihat pembaruan status dokumen (terindeks, diproses, gagal) secara real-time tanpa polling.

// Pendekatan & Solusi

1. Pencarian Vektor Semantik via Qdrant

Dokumen di-chunk, di-embed via model LLM OpenRouter, dan disimpan sebagai vektor dimensi tinggi di Qdrant. Query pengguna di-embed pada waktu pencarian dan dicocokkan berdasarkan kemiripan kosinus, mengembalikan dokumen yang terkait secara semantik terlepas dari tumpang tindih kata kunci yang persis.

2. Pipeline Pemrosesan Dokumen Async gRPC

Upload dokumen memicu stream gRPC async ke layanan AI Python untuk generasi embedding non-blocking. Gateway Go langsung kembali ke pengguna sementara pemrosesan latar belakang selesai, menghilangkan pemblokiran UI yang diinduksi pengindeksan.

3. Pembaruan Status Real-Time WebSocket

Koneksi WebSocket persisten mendorong pembaruan status pemrosesan dokumen (diunggah → embedding → terindeks → siap) ke semua anggota tim yang terhubung secara real-time, menghilangkan kebutuhan untuk refresh atau polling ketersediaan dokumen.

// Mengapa Tech Stack Ini?

TeknologiAlasan Pemilihan
Go (Golang) API GatewayModel konkuren goroutine Go menangani ribuan request dokumen simultan dengan overhead memori minimal — kritis untuk lingkungan enterprise dengan 50+ pengguna konkuren.
Qdrant Vector DatabasePengindeksan HNSW Qdrant memungkinkan pencarian semantik di bawah 100ms di 100.000+ vektor dokumen — performa yang tidak dapat didekati PostgreSQL full-text search untuk query kemiripan semantik.
gRPC (Go ↔ Python)Protokol biner dengan Protocol Buffers mengurangi overhead serialisasi antar layanan sebesar 60-70% vs REST/JSON untuk panggilan generasi embedding AI frekuensi tinggi.
KubernetesAutoscaling pod horizontal untuk layanan AI Python menangani lonjakan batch dokumen tanpa intervensi manual, mempertahankan throughput embedding yang konsisten selama periode upload puncak.

// Hasil & Dampak Bisnis

  • <100ms - Respons Pencarian Semantik (Indeks HNSW Qdrant mengembalikan dokumen relevan dalam di bawah 100ms di 100K+ vektor)
  • 60-70% - Pengurangan Overhead Antar Layanan (gRPC + Protobuf vs REST/JSON untuk pipeline embedding AI)
  • 0ms - Pemblokiran UI Saat Pengindeksan (Pipeline gRPC async memproses dokumen tanpa memblokir operasi pengguna manapun)
  • Natural - Antarmuka Pencarian (Pengguna mendeskripsikan apa yang mereka butuhkan dalam bahasa biasa — tidak perlu menghafal kata kunci)
Tertarik dengan proyek seperti ini?
Mari diskusikan proyek Anda.
Hubungi Saya