Spaces:
Running
Running
AI Assistant
docs: accuracy pass on README (fix latency claims, subsystem count, units, links, and naming)
f7154a3 |
Download README.md from amer003100/vectorless_RAG: direct link, hf CLI and curl.
- Browser
- Download file 27 kB
-
https://huggingface.co/spaces/amer003100/vectorless_RAG/resolve/main/README.md
- Command line
-
hf download hf://spaces/amer003100/vectorless_RAG/README.md
-
curl -L -o README.md https://huggingface.co/spaces/amer003100/vectorless_RAG/resolve/main/README.md
27 kB
| title: Atlas Document Intelligence API | |
| emoji: πΏ | |
| colorFrom: green | |
| colorTo: blue | |
| sdk: docker | |
| app_port: 7860 | |
| pinned: false | |
| # πΏ Atlas β Enterprise Vectorless RAG & Document Intelligence Platform | |
| > **Understand Documents. Discover Knowledge. Reason with Exact Page Verification.**<br> | |
| > Production-grade Vectorless RAG platform powered by hierarchical outline reasoning (`PageIndex` + `PyMuPDF`), pure-Python lexical BM25 with **Nucleus (`top_p`) Cumulative Probability Cutoff**, Sub-Node Paragraph Pruning with **Exact Inner-Page Citation Pinning**, an **Interactive Study Studio** (Mind Maps + Quizzes), a **Research & Study FastMCP Suite** (5 zero-paid-key tools), and resilient dual LLM inference (Hugging Face + Groq zero-downtime failover) on PostgreSQL persistence. | |
| --- | |
| ## π Ψ¬Ψ―ΩΩ Ψ§ΩΩ ΨΨͺΩΩΨ§Ψͺ / Table of Contents | |
| 1. [Overview & Core Philosophy](#-overview--core-philosophy) | |
| 2. [Complete System Architecture](#-complete-system-architecture) | |
| 3. [Vectorless Hybrid Retrieval & Nucleus (`top_p`) Cutoff](#-vectorless-hybrid-retrieval--nucleus-top_p-cutoff) | |
| 4. [Key Features & Capabilities](#-key-features--capabilities) | |
| - [1. Page Boundary Injection & Exact Inner-Page Pinning](#1-page-boundary-injection--exact-inner-page-pinning) | |
| - [2. Vectorless Hybrid Search (Tree + BM25 + Nucleus RRF)](#2-vectorless-hybrid-search-tree--bm25--nucleus-rrf) | |
| - [3. Query Intent Routing & Collective Knowledge Dossiers](#3-query-intent-routing--collective-knowledge-dossiers) | |
| - [4. Interactive Study Studio (Mind Maps + Quizzes)](#4-interactive-study-studio-notebooklm-style) | |
| - [5. Research & Study FastMCP Suite (5 Zero-Key Tools)](#5-research--study-fastmcp-suite-5-zero-key-tools) | |
| - [6. Enterprise Persistence & Multi-Tier Memory](#6-enterprise-persistence--multi-tier-memory) | |
| - [7. Resilient Dual LLM Inference Engine](#7-resilient-dual-llm-inference-engine-hf--groq) | |
| 5. [Industry Benchmarks & Quantitative Evaluation (95 Questions)](#-industry-benchmarks--quantitative-evaluation-95-questions) | |
| - [Subsystem Health & Functional Audit (Table 1)](#subsystem-health--functional-audit-table-1) | |
| - [IEEE TKDE Research Benchmark β 80 Questions (Table 2)](#ieee-tkde-research-benchmark--80-questions-table-2) | |
| - [FinanceBench-style 10-K Sample β 15 Questions (Table 3)](#financebench-style-10-k-sample--15-questions-table-3) | |
| 6. [Tech Stack](#-tech-stack) | |
| 7. [API Endpoints Reference](#-api-endpoints-reference) | |
| 8. [Environment Variables](#-environment-variables) | |
| 9. [Live Deployments](#-live-deployments) | |
| --- | |
| ## π Overview & Core Philosophy | |
| **Atlas** redefines Document Intelligence and Retrieval-Augmented Generation (RAG) by completely eliminating vector embeddings, arbitrary chunking, and similarity drift. Instead of blindly slicing documents into 500-token chunks and computing cosine distance over a vector database, Atlas models documents as **Hierarchical Semantic Trees** (`PageIndex` + `PyMuPDF`). | |
| Every section, chapter, table, and footnote preserves its parent-child lineage and exact physical page coordinates. When a user queries the system: | |
| 1. **Hybrid Retrieval**: Runs lexical BM25 search and weighted RRF fusion in ~2ms, while the LLM tree-search step adds model latency, achieving an end-to-end average query latency of 1.45s. | |
| 2. **Nucleus Consensus (`top_p = 0.75`)**: Combines rankings via Weighted Reciprocal Rank Fusion (RRF: `0.6` Tree, `0.4` BM25) and applies temperature-scaled Softmax to dynamically isolate the minimal sufficient set of nodes (single-hop queries truncate to 1 node; multi-hop queries preserve 2 nodes). | |
| 3. **Sub-Node Paragraph Pruning & Exact Inner-Page Pinning**: Filters long sections down to high-density paragraphs and pins citations to the exact `--- [PAGE X] ---` where evidence resides. | |
| 4. **Fallback & Extended Research**: When out-of-document facts, arXiv papers, mathematical ratios, or YouTube lectures are needed, Atlas activates its built-in **Research & Study FastMCP Suite** with zero external API fees. | |
| --- | |
| ## ποΈ Complete System Architecture | |
| ```mermaid | |
| flowchart TB | |
| subgraph Client_Layer["π₯οΈ Frontend Client (React 19 + Vite / Vercel)"] | |
| direction TB | |
| UI_Sidebar["Sidebar (Sessions, Multi-Chat & Unread Indicators)"] | |
| UI_Explorer["Document Structure Explorer (Hierarchical Tree View)"] | |
| UI_Studio["Study Studio (Interactive Mind Map & Flashcard Quiz)"] | |
| UI_Chat["Concurrent Async Chat (Multi-Session Streaming)"] | |
| UI_Sources["Interactive Source Badges (π PDF Pages & π Web Badges)"] | |
| UI_Memory["Knowledge Memory & Workspace Dossier View"] | |
| UI_SSE["SSE Stream Parser & Background Dispatcher"] | |
| UI_Storage[("Browser LocalStorage Cache")] | |
| UI_Sidebar <--> UI_Chat | |
| UI_Chat <--> UI_Sources | |
| UI_Chat <--> UI_SSE | |
| UI_Chat <--> UI_Storage | |
| UI_Sidebar <--> UI_Studio | |
| end | |
| subgraph API_Layer["β‘ Backend Gateway (FastAPI / Hugging Face Spaces)"] | |
| direction TB | |
| Router_Chat["/ask & /chat Routers (Streaming SSE, Multi-Doc)"] | |
| Router_Studio["/studio Router (/mindmap, /quiz MCQs & Flashcards)"] | |
| Router_Tools["/tools Router (Web, arXiv, YouTube, Math)"] | |
| Router_Docs["/documents Router (Upload, Ingestion, Trees)"] | |
| Router_Memory["/memory Router (Dossiers, Workspace Synthesis)"] | |
| Router_MCP["FastMCP Server Mount (/mcp via SSE/HTTP)"] | |
| end | |
| subgraph FastMCP_Suite["π Research & Study FastMCP Suite (Zero Paid Keys)"] | |
| direction LR | |
| Tool_Web["Deep Web Reader (httpx + BS4/Trafilatura, 6s timeout)"] | |
| Tool_ArXiv["Academic arXiv Tool (export.arxiv.org Atom API)"] | |
| Tool_YT["YouTube Transcript (Segmenter & Chapter Analyzer)"] | |
| Tool_Math["Safe AST Math Evaluator (AST Whitelist, Zero eval)"] | |
| Tool_Atlas["Atlas Internal Tools (list_docs, query, dossiers)"] | |
| end | |
| subgraph Core_Engine["π§ Vectorless RAG & Reasoning Pipelines"] | |
| direction TB | |
| Intent_Classifier["Fast Intent Classifier (< 0.02ms Deterministic)"] | |
| Doc_Service["DocumentService (PageIndex API + PyMuPDF Page Markers)"] | |
| BM25_Engine["Zero-Dependency Okapi BM25 (Arabic/English Stemmer)"] | |
| RAG_Pipeline["VectorlessRAG (Weighted RRF + Nucleus top_p Softmax)"] | |
| Pruner["Sub-Node Paragraph Pruning & Exact Inner-Page Pinning"] | |
| LLM_Service["LLMService (Tree Search, Grounded Synthesis, Dual Failover)"] | |
| Memory_Service["MemoryService (Short-Term, Long-Term, Workspace Dossiers)"] | |
| end | |
| subgraph AI_Inference["π€ Resilient Dual-Provider LLM Engine"] | |
| direction LR | |
| HF_LLM["Hugging Face Serverless (Primary: meta-llama/Llama-3.1-8B-Instruct)"] | |
| Groq_LLM["Groq Cloud API (Zero-Downtime Fallback: qwen/qwen3.8-27b)"] | |
| HF_LLM -.->|Auto-Failover on 402/Limit/Error| Groq_LLM | |
| end | |
| subgraph Persistence_Layer["πΎ Enterprise Persistence & Database"] | |
| direction TB | |
| Mem_Store["MemoryStorage (In-Memory Hot Cache)"] | |
| subgraph DB_System["PostgreSQL / Supabase (AWS eu-west-1)"] | |
| PG_Pool["Threaded Connection Pool (psycopg2)"] | |
| T_Meta[("doc_meta (Metadata & Statuses)")] | |
| T_Indices[("doc_indices (JSONB Trees & Injected Markers)")] | |
| T_Chats[("chats & messages (Isolated Sessions)")] | |
| T_Docs[("chat_documents (Multi-Doc Associations)")] | |
| T_Memory[("knowledge_memory (Per-Doc Dossiers)")] | |
| T_Global[("global_knowledge_summary (Workspace)")] | |
| end | |
| SQLite_Fallback[("SQLite Local Fallback (memory.db)")] | |
| end | |
| %% Wiring | |
| Client_Layer <==>|REST API & SSE Streams| API_Layer | |
| API_Layer <--> Router_MCP | |
| Router_MCP <--> FastMCP_Suite | |
| Router_Studio --> LLM_Service | |
| Router_Chat --> Intent_Classifier | |
| Intent_Classifier --> RAG_Pipeline | |
| RAG_Pipeline --> BM25_Engine & Doc_Service | |
| RAG_Pipeline --> Pruner | |
| Pruner --> LLM_Service | |
| LLM_Service <==> AI_Inference | |
| Router_Memory --> Memory_Service | |
| Mem_Store <--> PG_Pool | |
| PG_Pool --> T_Meta & T_Indices & T_Chats & T_Docs & T_Memory & T_Global | |
| PG_Pool -.->|Offline Failover| SQLite_Fallback | |
| ``` | |
| --- | |
| ## π§ Vectorless Hybrid Retrieval & Nucleus (`top_p`) Cutoff | |
| Instead of relying on arbitrary static `top_k=3` cutoffs that pollute LLM context on single-fact queries, Atlas dynamically sizes the retrieved node set via **Temperature-Scaled Softmax Nucleus Retrieval**: | |
| ```mermaid | |
| flowchart TD | |
| Q["User Query"] --> Clf{"Fast Intent Classifier (< 0.02ms)"} | |
| Clf -->|"Academic Paper"| MCP_Arxiv["FastMCP arXiv Tool (export.arxiv.org)"] | |
| Clf -->|"Live Market / Web"| MCP_Web["FastMCP Web Reader (Clean Markdown)"] | |
| Clf -->|"Global / Overview"| Dossier["Pre-computed Executive Dossier + Root Chapters"] | |
| Clf -->|"Specific / Numerical"| Hybrid["Parallel Hybrid Search (BM25 + Fusion ~2ms)"] | |
| Hybrid --> Tree["Hierarchical LLM Tree Traversal (Weight 0.6)"] | |
| Hybrid --> BM25["Pure-Python Okapi BM25 (Weight 0.4)"] | |
| Tree & BM25 --> Consensus["Consensus Score: S(d) = sum w_L / (60 + rank_L) * Density"] | |
| Consensus --> Softmax["Temperature-Scaled Softmax (T = 0.15): P(node_i)"] | |
| Softmax --> Nucleus{"Accumulate P(node_i) until sum >= top_p (0.75)"} | |
| Nucleus -->|Single-Node Local Query| Top1["Select Minimal Sufficient Top-1 Node"] | |
| Nucleus -->|Multi-Hop Complex Query| Top2["Preserve High-Relevance Top-2 Nodes (min_k=2)"] | |
| Top1 & Top2 --> Prune["Sub-Node Paragraph Pruning (> 1200 chars)"] | |
| Prune --> PagePin["Pin Exact Inner-Page: active_page from --- [PAGE X] ---"] | |
| PagePin --> PostFilter["Trailing Noise Filter (Drop nodes < 0.22 of Top Score)"] | |
| PostFilter --> MathCheck{"Contains Numerical Ratio or Calculation?"} | |
| MathCheck -->|"Yes"| ASTMath["Safe AST Math Evaluator (AST Whitelist, Zero eval)"] | |
| MathCheck -->|"No"| Synthesis["Grounded LLM Synthesis Stream"] | |
| ASTMath --> Synthesis | |
| Synthesis --> Output["Answer with Verifiable Citations (Section: 'Title', Page: X)"] | |
| ``` | |
| --- | |
| ## π Key Features & Capabilities | |
| ### 1. π Page Boundary Injection & Exact Inner-Page Pinning | |
| - **Marker Format**: Injects explicit `--- [PAGE X] ---` tokens during document ingestion for every physical page transition. | |
| - **Sub-Node Paragraph Pruning**: Long sections (> 1,200 characters) are parsed into individual paragraphs, scoring each paragraph against query keywords, phrase bi-grams, and numerical entities. | |
| - **Inner Active Page Tracking**: Tracks the exact preceding page marker for the winning paragraph, exposing `node["active_page"]` to `LLMService`. | |
| - **Result**: Raises Citation Page Accuracy from **38.33% to 83.13%**, eliminating imprecise section-level citations in multi-page sections. | |
| ### 2. π² Vectorless Hybrid Search (Tree + BM25 + Nucleus RRF) | |
| - **100% Vectorless**: Consumes zero vector storage, requires no vector database (Qdrant, Chroma, Pinecone), and eliminates cosine drift. | |
| - **Sub-Millisecond Lexical Index**: Powered by a zero-dependency Okapi BM25 implementation supporting Arabic and English tokenization, BM25 title boosting ($3\times$), and inverted index hashing in under **0.5ms**. | |
| - **Nucleus (`top_p = 0.75`) Cumulative Probability Cutoff**: Normalizes consensus candidate scores into a probability distribution via Softmax ($T=0.15$), rejecting long-tail noise candidates ($P < 0.18$). | |
| - **Result**: Pushes Context Precision from **39.16% to 82.50%** on IEEE benchmarks and **81.1%** on the FinanceBench-style 10-K sample. | |
| ### 3. π§ Query Intent Routing & Collective Knowledge Dossiers | |
| - **Sub-Millisecond Classifier**: Classifies queries in $< 0.02\text{ms}$ into `Local`, `Global / Overview`, `Multi-Hop`, `Comparison`, or `External Tool` routes. | |
| - **Dossier Injection**: For global overview and cross-chapter synthesis queries, Atlas automatically injects the document's pre-computed Executive Dossier from `MemoryService` alongside root chapter summaries. | |
| - **Result**: Boosts Global Questions Retrieval Recall from **41.0% to 52.6%**. | |
| ### 4. π Interactive Study Studio (NotebookLM-Style) | |
| - **Interactive Mind Map (`GET /studio/{doc_id}/mindmap`)**: Automatically transforms the document's hierarchical outline tree and key concept findings into a visual node-edge graph with section titles and page numbers. | |
| - **AI Quiz & Flashcard Generator (`POST /studio/{doc_id}/quiz`)**: Generates 5 high-yield Multiple Choice Questions (with options, correct answer, and explanation) and 5 Flashcards (front/back), each pinned to its exact `(Section, Page)` source citation. | |
| - **Frontend Workspace Integration**: Deep interactive viewer tab allowing users to click graph nodes to jump directly to document sections. | |
| ### 5. π Research & Study FastMCP Suite (5 Zero-Key Tools) | |
| Mounted via official Model Context Protocol (FastMCP) at `/mcp` and exposed through REST endpoints with zero paid API key dependencies: | |
| 1. **Deep Web Reader (`read_webpage_markdown`)**: Fetches full web pages using HTTPX and cleans HTML into readable Markdown via BeautifulSoup/Trafilatura with a strict 6-second timeout. | |
| 2. **Academic & arXiv Tool (`search_arxiv_papers`)**: Queries the public arXiv Atom API (`export.arxiv.org`) for preprint titles, authors, abstracts, and direct PDF links. | |
| 3. **YouTube Lecture Transcript (`fetch_youtube_transcript`)**: Extracts video IDs from any YouTube URL pattern, fetches transcripts, and segments them into 3-minute study chapters. | |
| 4. **Safe AST Math Evaluator (`evaluate_math_expression`)**: Evaluates financial ratios, YoY growth rates, percentages, and math expressions using an Abstract Syntax Tree (AST) whitelistβblocking `eval()`, `exec()`, and malicious injection vectors. | |
| 5. **Atlas Internal MCP Tools (`atlas_*`)**: Allows external agents (Cursor, Claude Desktop, Antigravity) to list indexed documents, query trees, and fetch executive knowledge dossiers directly. | |
| ### 6. πΎ Enterprise Persistence & Multi-Tier Memory | |
| - **PostgreSQL / Supabase**: Connected via threaded connection pooling (`psycopg2.pool.ThreadedConnectionPool`, 5 to 20 connections) on AWS `eu-west-1`. | |
| - **Three-Tier Isolated Memory**: | |
| - *Tier 1 (Short-Term)*: Sliding conversational window per chat session. | |
| - *Tier 2 (Long-Term)*: Rolling structured summaries preventing prompt bloat. | |
| - *Tier 3 (Workspace Knowledge)*: Pre-computed per-document dossiers and unified workspace synthesis. | |
| - **Resilient Fallback**: Gracefully degrades to local SQLite (`memory.db`) if cloud persistence is temporarily unreachable. | |
| ### 7. π‘οΈ Resilient Dual LLM Inference Engine (HF + Groq) | |
| - **Primary Provider**: Hugging Face Serverless Inference API (`meta-llama/Llama-3.1-8B-Instruct`). | |
| - **Zero-Downtime Fallback**: Instantaneous automated failover to Groq Cloud API (`qwen/qwen3.8-27b`) upon token credit exhaustion (`402 Payment Required`), rate limits (`429`), or timeouts. | |
| --- | |
| ## π Industry Benchmarks & Quantitative Evaluation (95 Questions) | |
| Atlas was systematically validated across **95 comprehensive evaluation questions** combining an **80-question IEEE Research Benchmark** (`data.pdf`: *Unifying LLMs and Knowledge Graphs: A Roadmap*, IEEE TKDE 2024, 28 pages) with a **15-question FinanceBench-style 10-K sample** (`financebench_10k_sample.pdf`, 6 pages). | |
| ### Subsystem Health & Functional Audit (Table 1) | |
| All 9 integrated subsystems, tools, and routers passed automated verification with strict latency bounds: | |
| | Subsystem / Tool | Audit Status | Latency | Operational Description | | |
| | :--- | :---: | :---: | :--- | | |
| | **Ingestion & Page Boundary Injection** | β PASS | 1,344.9 ms | Ingested 6 pages, 6 sections, 100% page marker coverage | | |
| | **Vectorless Hybrid Retrieval (BM25 + RRF + Pruning)** | β PASS | 2.2 ms | BM25 search 0.47ms, fused top-4 nodes, pruning preserved page markers | | |
| | **MCP: Safe Math Evaluator (`evaluate_math_expression`)** | β PASS | 0.6 ms | AST-whitelisted ratios & exploit blocking verified | | |
| | **MCP: Academic & arXiv Tool (`search_arxiv_papers`)** | β PASS | 8,203.5 ms | Queried public arXiv Atom API (zero paid API keys) | | |
| | **MCP: Deep Web Reader (`read_webpage_markdown`)** | β PASS | 80.6 ms | Clean Markdown extraction with 6s safeguard timeout | | |
| | **MCP: YouTube Transcript (`fetch_youtube_transcript`)** | β PASS | 0.3 ms | URL extractor & 3-minute chapter segmentation | | |
| | **MCP: Atlas Internal Tools (`atlas_*`)** | β PASS | 856.8 ms | List documents, grounded query, and executive dossier | | |
| | **Studio: Interactive Mindmap (`GET /studio/.../mindmap`)** | β PASS | 301.4 ms | Generated node-edge graph (14 nodes, 13 edges) | | |
| | **Studio: Quiz Generator (`POST /studio/.../quiz`)** | β PASS | 1,538.7 ms | Generated 5 MCQs + 5 Flashcards with exact `(Section, Page)` citations | | |
| --- | |
| ### IEEE TKDE Research Benchmark β 80 Questions (Table 2) | |
| Comparison between baseline PageIndex RAG and the upgraded Atlas platform featuring Nucleus (`top_p = 0.75`) RRF and exact inner-page citation pinning: | |
| | Evaluation Metric | Baseline Score (Pre-Upgrades) | Upgraded Atlas (`top_p` Nucleus) | Delta (pp) | Benchmark Status | | |
| | :--- | :---: | :---: | :---: | :---: | | |
| | **Context Precision** | 39.16% | **82.50%** | **+43.34 pp** | π― **+80% Target Achieved** | | |
| | **Citation Page Accuracy** | 38.33% | **83.13%** | **+44.80 pp** | π― **+80% Target Achieved** | | |
| | **Retrieval Recall** | 73.08% | **77.98%** | **+4.90 pp** | π Major Uplift | | |
| | **Answer Correctness** | 87.73% | **90.77%** | **+3.04 pp** | β SOTA Quality | | |
| | **Faithfulness (Anti-Hallucination)** | 90.65% | **92.01%** | **+1.36 pp** | β Strictly Grounded | | |
| | **Global Questions Recall** | 41.00% | **52.60%** | **+11.60 pp** | π Dossier Boost | | |
| | **Average Query Latency** | 1.80 s | **1.45 s** | **-0.35 s** | β‘ High Velocity | | |
| | **Average Cost per Query** | $0.000919 | **$0.000512** | **-$0.000407** | π° Zero Embedding Cost | | |
| #### Category Performance Breakdown (IEEE Benchmark, N=80) | |
| - **Summary Questions (N=10)**: **100.0% Context Precision**, **100.0% Citation Accuracy**, **83.7% Recall**. | |
| - **Multi-Hop Questions (N=20)**: **90.0% Context Precision**, **85.0% Citation Accuracy**, **87.5% Recall**. | |
| - **Numerical / Factual Questions (N=10)**: **90.0% Context Precision**, **90.0% Citation Accuracy**, **90.0% Recall**. | |
| - **Local Questions (N=20)**: **85.0% Context Precision**, **85.0% Citation Accuracy**, **85.0% Recall**. | |
| - **Global Overview Questions (N=20)**: **60.0% Context Precision**, **67.5% Citation Accuracy**, **52.6% Recall**. | |
| --- | |
| ### FinanceBench-style 10-K Sample β 15 Questions (Table 3) | |
| Evaluated against `financebench_10k_sample.pdf` (*Atlas Technologies, Inc. SEC Form 10-K Annual Report*). This dataset is a small synthetic sample (N=15, 3 questions per category), so category-level numbers are indicative, not statistically robust. | |
| | Financial Category | N | Retrieval Recall | Context Precision | Answer Correctness | Faithfulness | Citation Page Acc | Avg Latency | Cost / Query | | |
| | :--- | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | | |
| | **Overall (All 15 Questions)** | 15 | **84.4%** | **81.1%** | **94.7%** | **96.9%** | **81.1%** | **1.25 s** | **$0.000406** | | |
| | **Table & Numerical Extraction** | 3 | 66.7% | 66.7% | 83.3% | 88.7% | 66.7% | β | β | | |
| | **Financial Ratio & Math Reasoning** | 3 | **100.0%** | **100.0%** | **100.0%** | **100.0%** | **100.0%** | β | β | | |
| | **Multi-Hop Footnote Synthesis** | 3 | 83.3% | 61.1% | 95.0% | 98.0% | 61.1% | β | β | | |
| | **Global Executive Summary** | 3 | 72.2% | 77.8% | 95.0% | 98.0% | 77.8% | β | β | | |
| | **Out-of-Document / Live Web Fallback** | 3 | **100.0%** | **100.0%** | **100.0%** | **100.0%** | **100.0%** | β | β | | |
| ```mermaid | |
| pie title FinanceBench-style 10-K Sample Question Distribution by Category | |
| "Table & Numerical Extraction" : 3 | |
| "Financial Ratio & Math Reasoning" : 3 | |
| "Multi-Hop Footnote Synthesis" : 3 | |
| "Global Executive Summary" : 3 | |
| "Out-of-Document / Live Web Fallback" : 3 | |
| ``` | |
| - π **Full Benchmark Report:** [evaluation/FULL_BENCHMARK_AND_FINANCEBENCH_REPORT.md](evaluation/FULL_BENCHMARK_AND_FINANCEBENCH_REPORT.md) | |
| - π **FinanceBench-style 10-K Sample Dataset:** [evaluation/financebench_sample.json](evaluation/financebench_sample.json) | |
| - π§ͺ **Master Evaluation Runner:** [evaluation/run_full_system_benchmark.py](evaluation/run_full_system_benchmark.py) | |
| --- | |
| ## π οΈ Tech Stack | |
| | Layer | Technologies & Libraries | Key Responsibilities | | |
| |---|---|---| | |
| | **API Gateway** | **FastAPI** (Python 3.11, async runtime) | High-performance asynchronous REST endpoints, SSE streams, CORS | | |
| | **Package Management** | **`uv`** (Astral) | Sub-second deterministic dependency resolution & virtual environments | | |
| | **Vectorless Lexical Engine** | **Zero-Dependency Okapi BM25** | In-memory tokenized index, Arabic/English normalization, title boost | | |
| | **RRF & Nucleus Selection** | **Weighted consensus RRF + Softmax** | Dynamic `top_p = 0.75` cumulative cutoff, $T=0.15$, noise filtering | | |
| | **MCP Server Mount** | **`fastmcp` (4.1.0)** + **`mcp` (2.3.0)** | Official Model Context Protocol server mounted via ASGI at `/mcp` (`>=4.1.0` and `>=2.3.0` in `pyproject.toml`, pinned in `uv.lock`) | | |
| | **Research Tools** | **`httpx`**, **`beautifulsoup4`**, **`trafilatura`** | Clean HTML-to-Markdown extraction, public arXiv Atom XML parser | | |
| | **Media & Math Analysis** | **`youtube_transcript_api`**, **Python `ast`** | Video transcript segmenter, exploit-safe AST math evaluator | | |
| | **Primary LLM Provider** | **`huggingface-hub`** (`meta-llama/Llama-3.1-8B-Instruct`) | Outline tree navigation, sub-node pruning synthesis, citations | | |
| | **Fallback LLM Provider** | **`openai`** (`qwen/qwen3.8-27b` via Groq Cloud) | Automated sub-second zero-downtime failover engine (~0.20s TTFT) | | |
| | **Document Ingestion** | **`PageIndexClient`** + **`PyMuPDF` (fitz)** | Hierarchical outline extraction, `--- [PAGE X] ---` injection | | |
| | **Cloud Persistence** | **PostgreSQL (Supabase)** + `psycopg2-binary` | Connection pooled storage for trees (JSONB), chats, and dossiers | | |
| | **Offline Fallback DB** | **SQLite** (`memory.db`) | Local database fallback if cloud database is unreachable | | |
| | **Frontend UI** | **React 19** + **Vite** + **Tailwind CSS 4** | Interactive workspace, study studio, mind maps, real-time SSE | | |
| | **Deployment** | **Docker** on Hugging Face Spaces + **Vercel** | Containerized backend server + global edge-deployed SPA client | | |
| --- | |
| ## π API Endpoints Reference | |
| ### 1. Research & Chat | |
| - `POST /ask` β Stream grounded answers across single/multiple documents, or conversational mode with FastMCP fallback. | |
| - `POST /chat/new` β Create a new isolated chat session. | |
| - `GET /chats` β List all persisted chat sessions with unread status indicators. | |
| - `GET /chat/{chat_id}/history` β Retrieve full conversation turn history for a session. | |
| - `POST /chat/{chat_id}/attach` β Attach an indexed document to a chat session. | |
| - `POST /chat/{chat_id}/attach-multiple` β Attach multiple documents simultaneously. | |
| - `GET /chat/{chat_id}/documents` β List all documents attached to a session. | |
| - `DELETE /chat/{chat_id}/document/{doc_id}` β Detach a specific document from a session. | |
| - `DELETE /chat/{chat_id}` β Permanently delete a conversation session. | |
| - `PATCH /chat/{chat_id}/title` β Rename a conversation session title. | |
| ### 2. Study Studio (NotebookLM-Style) | |
| - `GET /studio/{doc_id}/mindmap` β Transform document outline tree and key concept findings into a visual node-edge JSON graph with section titles and page numbers. | |
| - `POST /studio/{doc_id}/quiz` β Generate 5 Multiple Choice Questions and 5 Flashcards with exact `(Section, Page)` citations. | |
| ### 3. FastMCP Research Tools | |
| - `GET/POST /mcp` β FastMCP server endpoint supporting Model Context Protocol via SSE/HTTP. | |
| - `POST /tools/web-search` β Direct REST endpoint for live DuckDuckGo web searches (`query`, `max_results`). | |
| - `POST /tools/arxiv-search` β Query public arXiv Atom API for academic preprints. | |
| - `POST /tools/read-webpage` β Fetch URL and extract clean Markdown with a 6-second timeout. | |
| - `POST /tools/youtube-transcript` β Extract transcripts and segment YouTube lectures into study chapters. | |
| - `POST /tools/calculate-math` β Execute AST-whitelisted financial and mathematical formulas safely. | |
| ### 4. Document Library & Tree Ingestion | |
| - `POST /upload` β Upload PDF to trigger asynchronous hierarchical tree indexing (HTTP 202). | |
| - `GET /documents` β List all ingested documents, page counts, and indexing statuses. | |
| - `GET /documents/{document_id}` β Get metadata, page count, and status for a document. | |
| - `GET /documents/{document_id}/tree` β Retrieve the full hierarchical outline tree. | |
| - `DELETE /documents/{document_id}` β Permanently delete a document and its cached indices. | |
| - `POST /documents/{document_id}/retry` β Retry indexing for a failed document. | |
| ### 5. Memory & Collective Knowledge | |
| - `GET /memory/knowledge` β Retrieve workspace master knowledge summary and all per-document dossiers. | |
| - `POST /memory/knowledge/refresh` β Synthesize and rebuild workspace global knowledge memory. | |
| - `GET /memory/dossier/{doc_id}` β Fetch structured knowledge dossier for an individual document. | |
| - `GET /memory/chat/{chat_id}` β Inspect short-term turns and long-term rolling summary. | |
| - `POST /memory/chat/{chat_id}/summarize` β Force-generate or update session long-term memory. | |
| ### 6. Health & Diagnostics | |
| - `GET /health` β Check API status, database connectivity, FastMCP status, and indexed document counts. | |
| --- | |
| ## βοΈ Environment Variables | |
| Configure these variables in your `.env` file or in **Hugging Face Space Settings β Variables and secrets**: | |
| ```env | |
| # Database Persistence (Supabase PostgreSQL on AWS eu-west-1) | |
| DATABASE_URL="postgresql://postgres.USER:PASSWORD@aws-0-eu-west-1.pooler.supabase.com:5432/postgres" | |
| # Hugging Face Inference Token (Primary Provider) | |
| HF_TOKEN="hf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" | |
| # Groq Cloud API (Automatic Zero-Downtime Fallback) | |
| GROQ_API_KEY="gsk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" | |
| GROQ_CHAT_MODEL="qwen/qwen3.8-27b" | |
| GROQ_RETRIEVAL_MODEL="qwen/qwen3.8-27b" | |
| # PageIndex Ingestion API Keys (Rotated for High Throughput) | |
| PAGEINDEX_API_KEY_1="your_pageindex_api_key_1" | |
| PAGEINDEX_API_KEY_2="your_pageindex_api_key_2" | |
| PAGEINDEX_API_KEY_3="your_pageindex_api_key_3" | |
| # Optional Model Selection | |
| HF_RETRIEVAL_MODEL="meta-llama/Llama-3.1-8B-Instruct" | |
| HF_CHAT_MODEL="meta-llama/Llama-3.1-8B-Instruct" | |
| ``` | |
| --- | |
| ## π Live Deployments | |
| - **Frontend Application (Vercel):** [https://vectorless-front-8gpg.vercel.app](https://vectorless-front-8gpg.vercel.app) | |
| - **Backend API (Hugging Face Spaces):** [https://amer003100-vectorless-rag.hf.space](https://amer003100-vectorless-rag.hf.space) | |
| - **Interactive Swagger Docs:** [https://amer003100-vectorless-rag.hf.space/docs](https://amer003100-vectorless-rag.hf.space/docs) | |
| - **FastMCP Endpoint:** `https://amer003100-vectorless-rag.hf.space/mcp` | |