DocsInsight Engine is a high-performance, private Retrieval-Augmented Generation (RAG) platform. It allows users to upload complex documents and interact with them through a neural search interface powered by local Large Language Models (LLMs). Built on a robust Python/Flask backend and orchestrated by LangChain, it ensures sensitive data never leaves your infrastructure while delivering enterprise-grade search capabilities.
Tech Stack
Python
Flask
LangChain
Ollama
ChromaDB
Docker
Tools Used
VS Code
Docker
Ollama
Key Features
Core Capabilities
▸Multi-Format Support: Seamlessly process PDF, DOCX, XLSX, CSV, and TXT files.
▸Privacy-Centric: Fully local execution using Ollama. Your sensitive data never leaves your infrastructure.
▸Neural Retrieval: Uses ChromaDB for high-speed vector similarity search.
Modern Interface
▸Glassmorphism UI: A sleek, dark-themed interface with real-time markdown rendering.
▸Code Highlighting: Automatic syntax highlighting for technical responses.
▸Source Verification: Every answer comes with citations from uploaded documents to prevent hallucinations.
Technical Architecture
▸Backend: Python 3.11 with Flask and LangChain orchestration.
▸Vector DB: ChromaDB for persistent document embeddings.
▸One-Command Setup: Production-ready deployment with Docker and Docker Compose.
System Insights
▸Scalability: The `VectorStoreManager` handles multiple documents simultaneously by filtering searches based on unique file hashes.
▸Performance: Document chunking is optimized with a `1000` character size and `200` character overlap.
▸Security: Strictly enforced policies to prevent sensitive credentials (`.env`) or local databases from being exposed.
Highlights
Local LLM Execution
Multi-Format Support
Neural Retrieval
Installation
Clone and Setup
git clone https://github.com/Arfazrll/RAG-DocsInsight-Engine.git
cd rag-docsinsight-engine
Launch with Docker
docker-compose up --build
Access Application
Open http://localhost:5000
Challenges & Solutions
Challenge
Scalability with Multiple Documents
Solution
Designed a `VectorStoreManager` that filters searches based on unique file hashes, allowing the system to handle multiple uploaded documents simultaneously without cross-contamination.
Challenge
Context Window Efficiency
Solution
Optimized document chunking with a 1000-character size and 200-character overlap to maintain context coherence while fitting within the Llama 3 context window.
Challenge
Data Security
Solution
Implemented strict `.dockerignore` and `.gitignore` policies to prevent sensitive credentials (`.env`) or local vector databases from being leaked to version control.