TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證QuantumPDF V1.3 enables intelligent conversations with PDF documents. Built with Next.js 15 and React 19, it uses Retrieval-Augmented Generation (RAG) to provide accurate, context-aware responses from your documents.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Advanced document analysis with 3-phase RAG, guardrails, evaluation metrics, and 14 AI providers Major Providers • ✅ OpenAI (GPT-5.6 Sol / Terra / Luna) • ✅ Anthropic (Claude 5 Fable / Opus / Sonnet) • ✅ Google AI (Gemini 3.6 / 3.5 Flash) • ✅ xAI (Grok 4.5, Grok 4.3) • ✅ Mistral (Large / Medium / Small, Ministral 3) • ✅ DeepSeek (V4 Pro, V4 Flash) Fast Inference • ✅ Groq (GPT-OSS, MiniMax M2.7, Qwen 3.6) • ✅ Fireworks (DeepSeek V4, Kimi K [README 설치·사용 부분 발췌] Installation檢視完整 README ↗
Advanced document analysis with 3-phase RAG, guardrails, evaluation metrics, and 14 AI providers
| Feature | Description |
|---|---|
| 3-Phase RAG | Context Analysis → Self-Critique → Refined Answer |
| 14 AI Providers | OpenAI, Anthropic, Google, Groq, DeepSeek, Mistral, xAI, and more |
| Guardrails System | Input validation, rate limiting, toxicity detection, PII detection |
| Evaluation Metrics | Retrieval quality, groundedness, citation coverage, latency tracking |
| Cross-Document Retrieval | Fair distribution with multi-document query detection |
| Adaptive Hybrid Search | Dynamic semantic/keyword weighting based on query type |
| Enhanced UI/UX | Inline citations, filtering, chunk visualization, history, export |
| Multimodal Processing | Images, tables, equations extracted and analyzed |
| Multi-Format Support | PDF, Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV/TSV |
| Server-Side PDF Parsing | Native liteparse (Rust + PDFium) text, OCR, and page previews |
| In-Browser Document Parsing | Everything non-PDF is converted to Markdown by anydoc compiled to WebAssembly — the bytes never leave your machine |
| Guided Onboarding | First-run product tour (driver.js) |
| PWA Support | Install as desktop/mobile app |
Major Providers
Fast Inference
Open Source & Enterprise
| Feature | Purpose | Location |
|---|---|---|
| 🔗 Inline Citations | Compact superscripts with a Sources line under each answer | In message content |
| 🔍 Document Filtering | Filter queries to specific documents | Above input |
| 📊 Chunk Visualization | View retrieved chunks with similarity scores | Expandable section |
| 📜 Query History | Persistent query storage and re-run | Chat header |
| 💾 Export Conversations | Export as JSON, Markdown, TXT or PDF | Quick actions menu |
| 🧭 First-Run Tour | Points at provider setup, upload and chat | On first visit (desktop) |
package-lock.json is the only lockfile)# Clone repository
git clone <repository-url>
cd QuantumPDF_ChatApp_VectorDB
# Install dependencies
npm install
# Configure environment (see Environment Variables below for the full list)
# Create .env.local and add at least one AI provider key.
# You can also skip this entirely and paste a key into the in-app Settings tab.
# Start development server
npm run dev
# Required: At least one AI provider
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GROQ_API_KEY=gsk_...
# Optional: Cloud vector database
PINECONE_API_KEY=your_key
PINECONE_ENVIRONMENT=us-east-1
PDF up to 100 MB — server-side, with OCR for scanned pages
DOC DOCX DOCM ODT RTF EPUB up to 50 MB — in-browser
PPT PPTX PPS ODP up to 50 MB — in-browser
XLS XLSX XLSM XLSB ODS CSV TSV up to 50 MB — in-browser
┌─────────────────────────────────────────────────────────────────────────┐
│ Frontend │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Chat │ │ Document │ │ Document │ │ Config │ │
│ │ Interface │ │ Processor │ │ Library │ │ Panel │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────────────┐
│ Extraction Layer │
│ ┌──────────────────────────┐ ┌──────────────────────────────────┐ │
│ │ PDF: liteparse (server) │ │ Non-PDF: anydoc-wasm (browser) │ │
│ │ text · OCR · previews │ │ Word/Slides/Sheets/EPUB → MD │ │
│ └──────────────────────────┘ └──────────────────────────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Image │ │ Table │ │ Equation │ (client, PDF.js) │
│ │ Extractor │ │ Extractor │ │ Extractor │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────────────┐
│ RAG Engine │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Phase 1 │ │ Phase 2 │ │ Phase 3 │ │
│ │ Context │─▶│ Self │─▶│ Refined │ │
│ │ Analysis │ │ Critique │ │ Answer │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────────────┐
│ Enhanced UI/UX Features │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ Citations │ │ Filter │ │ Chunks │ │ History │ │
│ └───────────┘ └───────────┘ └───────────┘ └───────────┘ │
│ ┌───────────┐ ┌───────────┐ │
│ │ Export │ │ Tour │ │
│ └───────────┘ └───────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────────────┐
│ AI Providers │
│ OpenAI │ Anthropic │ Google │ Groq │ DeepSeek │ Mistral │ 8 more │
└─────────────────────────────────────────────────────────────────────────┘
QuantumPDF_ChatApp_VectorDB/
├── app/ # Next.js app directory
│ ├── page.tsx # Main page component
│ ├── layout.tsx # Root layout
│ └── manifest.ts # PWA manifest (served at /manifest.webmanifest)
├── components/ # React components
│ ├── chat-interface.tsx # Chat with streaming + citations
│ ├── document-filter.tsx # Document filtering
│ ├── chunk-visualization.tsx # Chunk transparency
│ ├── query-history.tsx # Query persistence
│ ├── quick-actions.tsx # Clear / new session / export
│ ├── onboarding-tour.tsx # First-run driver.js tour
│ ├── unified-pdf-processor.tsx # File upload
│ ├── unified-configuration.tsx # Settings panel
│ └── ui/ # shadcn primitives (only the ones in use)
├── lib/ # Core libraries
│ ├── ai-client.ts # Multi-provider AI client
│ ├── rag-engine.ts # 3-phase RAG system
│ ├── advanced-chunking.ts # Semantic chunking
│ ├── liteparse-client.ts # Server-side PDF extraction
│ ├── anydoc-client.ts # In-browser wasm extraction (non-PDF)
│ └── store.ts # Zustand state
├── types/ # TypeScript definitions
├── docs/ # Documentation
└── __tests__/ # Test files
// Configure in UI or programmatically
const aiConfig = {
provider: 'openai', // or 'anthropic', 'groq', etc.
apiKey: 'sk-...',
model: 'gpt-4o-mini',
temperature: 0.7,
maxTokens: 4096
}
const ragConfig = {
maxChunksPerQuery: 25, // Retrieved context limit
minSimilarityScore: 0.5, // Relevance threshold
enableDiversityBoost: true, // Multi-document fairness
enableRefinement: true // 3-phase processing
}
// The document filter chips above the input drive this
await ragEngine.query(query, {
filters: { documentIds: ['doc-1', 'doc-2'] }
})
Rough figures from local runs — they depend heavily on your provider, document size and network, so treat them as ballpark rather than guarantees.
| Metric | Ballpark |
|---|---|
| PDF text extraction (1 MB, no OCR) | a few seconds |
| Non-PDF extraction (in-browser wasm) | sub-second after the module is warm |
| First non-PDF upload | + one-off ~6 MB wasm download, prefetched on page load |
| Vector search (local, in-memory) | tens of milliseconds |
| Chat response | dominated by provider latency |
# Run tests once (no watch)
npm test
# Watch mode
npx vitest
# Run a single test file
npx vitest run liteparse-client
End-to-end (production build, real Chromium, AI provider stubbed at the network layer):
npx playwright install chromium # once, unless a Chromium is preinstalled
npm run test:e2e
| Document | Description |
|---|---|
| Quick Start | 5-minute setup |
| Architecture | System diagrams |
| RAG Guide | RAG implementation |
| Implementation | Code reference |
| Optimization | Performance tips |
| PWA Guide | Progressive Web App |
| Security Residuals | Known accepted risks |
| CLAUDE.md | Architecture reference for AI coding agents |
| Category | Technology |
|---|---|
| Framework | Next.js 16 (Turbopack), React 19 |
| Language | TypeScript 5 |
| Styling | Tailwind CSS, shadcn/ui |
| State | Zustand (persist middleware) |
| @llamaindex/liteparse (native, server-side; unpdf fallback + client-side image/table/equation extractors) | |
| Documents | @firecrawl/anydoc-wasm (in-browser WebAssembly → Markdown), PapaParse (TSV→CSV) |
| Onboarding | driver.js |
| Local AI | None in-browser — all inference goes to the configured provider |
| Vector DB | In-Memory, Pinecone, Weaviate |
| Testing | Vitest + Testing Library (jsdom) |
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)MIT License - see LICENSE for details.