Overview
MQNotebook is a production-ready, local-first Retrieval-Augmented Generation (RAG) system built to handle the messy reality of enterprise documents.
Unlike typical “chat with PDF” demos, MQNotebook is engineered to ingest:
- scanned PDFs,
- complex Excel spreadsheets,
- PowerPoint decks with speaker notes,
- and mixed-format document collections,
while running securely on a local machine or cloud environment.
🔗 Live Demo: https://mqnotebook.streamlit.app/
Why MQNotebook Exists
Most Retrieval-Augmented Generation (RAG) demos assume an ideal world: clean PDFs, perfect text extraction, and well-structured documents.
Enterprise reality is different.
In real environments, knowledge lives in:
- scanned documents
- poorly formatted PDFs
- spreadsheets with implicit structure
- slide decks where critical context lives in speaker notes
Most RAG pipelines fail before retrieval even begins — at ingestion.
MQNotebook exists to address this gap.
Instead of optimizing for model size or prompt tricks, MQNotebook focuses on:
- failure-first document ingestion
- retrieval precision over raw recall
- controlled context passed to the LLM
The system is designed so that the language model only sees high-confidence, conceptually relevant information, reducing hallucinations and wasted tokens.
Design Philosophy
Most RAG demos assume clean text input.
MQNotebook assumes documents will fail — and designs for that failure.
The system prioritizes:
- deterministic ingestion,
- retrieval precision,
- and controlled LLM exposure.
System Architecture
MQNotebook follows a multi-stage retrieval pipeline that separates document ingestion, retrieval, and reasoning.
Document Ingestion Layer
Scanned PDFs & Images
OCR fallback using Tesseract + Poppler when text extraction fails.PowerPoint (.pptx)
Extracts text from slides, shapes, SmartArt, and speaker notes.Excel (.xlsx)
Parses spreadsheets row-by-row while preserving column structure.
All extracted content is normalized before embedding.
Retrieval & Ranking Layer
- Vector Store: ChromaDB
- Embeddings: BAAI/bge-small-en-v1.5 (runs locally on CPU)
- Retriever: Top-K semantic search
- Reranker: Cross-encoder to filter results before LLM inference
This reduces hallucinations by ensuring only conceptually relevant context reaches the model.
Generation Layer
- LLM: Gemini 2.0 Flash (via OpenRouter)
- Large context window
- Fast reasoning
- Controlled prompt scope
API keys are handled in-memory per session and cleared on reset.
Engineering Considerations
Windows File Locking Fix
Dynamic, timestamped sessions preventWinError 32during vector store resets.OS-Aware Execution
Automatically switches OCR binary paths between Windows (local) and Linux (cloud).Local-First Security Model
Documents and embeddings remain local; only final prompts are sent to the LLM.
Relationship to DevShelf
MQNotebook complements DevShelf, which focuses on classic information retrieval and search engines.
- DevShelf: First-principles search engine (TF-IDF, inverted index, ranking)
- MQNotebook: Modern RAG system (embeddings, reranking, LLM integration)
Together, they demonstrate a full spectrum of search and knowledge retrieval systems — from traditional IR to AI-augmented reasoning.
Source & Documentation
- Source Code: https://github.com/Kas-sim/MQNotebook
- DevShelf: https://github.com/Kas-sim/DevShelf