Spaces:
Running
Running
File size: 27,002 Bytes
860b5fd 56cf8f7 860b5fd 1b81d8f 860b5fd fcead5f 860b5fd 723adc4 860b5fd 56cf8f7 fcead5f 723adc4 fcead5f 723adc4 f7154a3 b3242a4 56cf8f7 fcead5f 723adc4 fcead5f 723adc4 f7154a3 723adc4 fcead5f 723adc4 fcead5f 723adc4 fcead5f 723adc4 fcead5f 723adc4 fcead5f 723adc4 fcead5f 723adc4 fcead5f 723adc4 fcead5f 723adc4 fcead5f 723adc4 fcead5f f7154a3 723adc4 fcead5f 723adc4 fcead5f 723adc4 fcead5f 723adc4 fcead5f 723adc4 fcead5f 723adc4 fcead5f 723adc4 c35d9d3 fcead5f 723adc4 f7154a3 723adc4 fcead5f 56cf8f7 fcead5f 723adc4 f7154a3 723adc4 b3242a4 723adc4 b3242a4 f7154a3 b3242a4 723adc4 b3242a4 f7154a3 b3242a4 723adc4 b3242a4 723adc4 f7154a3 723adc4 f7154a3 723adc4 f7154a3 723adc4 b3242a4 f7154a3 723adc4 f7154a3 723adc4 b3242a4 723adc4 f7154a3 723adc4 f7154a3 723adc4 f7154a3 56cf8f7 860b5fd b516520 723adc4 fcead5f 723adc4 f7154a3 723adc4 56cf8f7 fcead5f 723adc4 c35d9d3 723adc4 c35d9d3 fcead5f 723adc4 c35d9d3 723adc4 fcead5f 723adc4 c35d9d3 723adc4 fcead5f 723adc4 fcead5f 56cf8f7 723adc4 fcead5f 723adc4 fcead5f 723adc4 fcead5f 56cf8f7 860b5fd b516520 fcead5f b516520 860b5fd 723adc4 fcead5f 723adc4 fcead5f 56cf8f7 fcead5f 56cf8f7 fcead5f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 | ---
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`
|