Loading...
Platform manajemen buku berbasis AI dengan PDF processing otomatis, semantic search, dan chat RAG. Upload PDF → AI bersihkan teks → generate embedding → siap dicari dan dichat.

Mengelola koleksi buku PDF secara digital seharusnya sederhana — tapi kenyataannya tidak.
Teks dari PDF sering berantakan. Hasil ekstraksi dari PDF scanner penuh dengan karakter rusak, spasi ganda, dan line break yang salah. Sebelum bisa dipakai untuk pencarian atau AI, teksnya harus dibersihkan — proses yang melelahkan kalau dilakukan manual per halaman.
Pencarian berbasis kata kunci tidak cukup. Mencari "hukum gravitasi" tidak akan menemukan halaman yang membahas "gaya tarik bumi" atau "percepatan jatuh bebas". Untuk koleksi yang besar, pencarian semantik adalah kebutuhan — bukan fitur tambahan.
Tidak ada cara untuk "bicara" dengan buku. Kamu bisa baca buku dari halaman pertama sampai terakhir, tapi tidak bisa langsung bertanya: "Apa pandangan penulis tentang inflasi?" atau "Jelaskan konsep di bab 3 dengan kata-kata sederhana." LLM seperti Claude bisa menjawab ini — tapi perlu infrastruktur RAG yang benar untuk membuatnya akurat.
Tools yang ada terlalu generik atau terlalu mahal. Platform seperti Notion AI atau ChatGPT bisa membaca satu dokumen, tapi tidak dirancang untuk mengelola puluhan buku sekaligus, melacak progres membaca, atau memberikan pengalaman membaca yang nyaman.
Dutaksara adalah platform manajemen buku berbasis AI yang mengubah koleksi PDF pasif menjadi knowledge base yang bisa dicari dan dichat.
Alurnya sederhana: upload PDF → sistem otomatis mengekstrak teks menggunakan PDF.js, membersihkannya dengan Claude AI untuk menghilangkan artefak OCR, lalu menghasilkan vector embedding menggunakan OpenAI. Setelah proses selesai (~$0.75 per buku), buku siap untuk semantic search dan RAG chat.
Platform terbagi dua app terpisah: Admin App untuk librarian/pengelola — upload buku, monitor proses, proofread konten per halaman, dan review AI-generated summary. User App untuk pembaca — browse koleksi, baca PDF langsung di browser, cari konten secara semantik lintas semua buku, dan chat dengan buku menggunakan RAG.
Semua service berjalan dalam Docker: PostgreSQL dengan pgvector untuk vector storage, Redis + BullMQ untuk background job queue, MinIO sebagai self-hosted S3, dan dua frontend React yang terhubung ke satu backend Express.
Saya membangun Dutaksara sepenuhnya sendiri — dari desain arsitektur, backend Express + Prisma, dual-frontend React, background worker pipeline, sampai Docker orchestration. Tidak ada tim, tidak ada co-founder.
Keputusan paling krusial adalah pemilihan arsitektur dual-app yang memisahkan concern pengelolaan dan pembacaan sejak awal, dan penggunaan pgvector di PostgreSQL (bukan dedicated vector DB) untuk menjaga stack tetap sederhana tanpa kehilangan kemampuan similarity search yang dibutuhkan.
PDF processing pipeline dengan BullMQ. Setiap buku yang diupload masuk ke job queue Redis. Worker Node.js memproses secara async: ekstrak teks (PDF.js) → clean text (Claude API) → generate embeddings (OpenAI text-embedding-ada-002) → store di PostgreSQL. Setiap tahap dilacak status-nya, sehingga Admin App bisa menampilkan real-time progress monitoring per buku.
Semantic search dengan pgvector. Teks buku di-chunk per halaman dan di-embed menjadi vektor 1536 dimensi. Saat user mencari, query juga di-embed lalu dibandingkan menggunakan cosine similarity di pgvector. Hasilnya jauh lebih relevan dari full-text search biasa — mencari "konflik batin tokoh utama" bisa menemukan halaman yang membahas "dilema moral" tanpa menyebut kata kunci yang sama.
RAG chat dengan Claude. Setiap pertanyaan user ke buku diproses dua tahap: pertama retrieve halaman paling relevan via semantic search, lalu inject sebagai context ke Claude API dengan prompt yang membatasi jawaban hanya dari konten buku. Ini mencegah Claude "hallucinate" jawaban di luar teks asli.
Content proofreading workflow. Admin App menyediakan antarmuka side-by-side: PDF viewer di kiri, editor teks per halaman di kanan. Admin bisa review hasil OCR cleanup dari Claude, edit manual jika ada yang salah, dan tandai halaman sebagai "proofread". Perubahan ini langsung mempengaruhi kualitas search dan chat.
Self-hosted storage via MinIO. File PDF dan cover buku disimpan di MinIO (S3-compatible), bukan cloud storage berbayar. Untuk deployment di VPS, ini menghilangkan dependency eksternal dan menjaga biaya operasional predictable.
Dutaksara menyelesaikan masalah nyata yang saya hadapi sendiri: mengelola puluhan buku PDF tanpa cara yang baik untuk mencari atau mengeksplorasi isinya. Platform ini membuktikan bahwa stack "AI-ready" tidak harus mahal atau kompleks — PostgreSQL + pgvector sudah cukup untuk similarity search yang solid, dan Claude + OpenAI bisa diintegrasikan ke pipeline yang fully self-hosted.
Dari sisi teknis, proyek ini menjadi referensi arsitektur untuk sistem RAG di atas koleksi dokumen besar: bagaimana menstruktur chunk strategy, bagaimana membangun job queue yang fault-tolerant, dan bagaimana memisahkan concern antara ingestion pipeline dan query interface.
Core platform selesai: PDF processing pipeline, semantic search, RAG chat, dan dual-app architecture berjalan penuh via Docker.
Goal: Partner penulis/penerbit & operational cost
Dutaksara membutuhkan partner strategis dari kalangan penulis atau penerbit buku yang mau co-develop dan menjadi early adopter. Selain itu, dana dibutuhkan untuk biaya AI API (Claude + OpenAI embeddings) yang bertambah seiring jumlah buku yang diproses, infrastruktur cloud, dan pengembangan fitur lanjutan seperti mobile app dan multi-tenant support.