You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
馃搫 PDF Extraction with PyMuPDF & Multimodal AI OCR Fallback
High-Performance Digital Extraction: Fast text and layout extraction via PyMuPDF with per-page metadata, table structure preservation, and header/footer normalization.
Vision AI OCR Fallback: Automatically invokes upstream multimodal models (e.g. Gemini 2.5 Flash, Qwen3-VL, Claude 3.5 Sonnet) for scanned, image-only, or dense technical PDFs (such as ASD-STE100 specifications) with page-level rendering.
PDF Preview & Inspection Modal: Interactive UI modal in Local Storage allowing operators to inspect page text, review AI OCR extraction quality, view generated semantic chunks, and confirm ingestion before writing vectors to Qdrant/pgvector/Chroma.
MCP Storage Tool Integration: Extended manage_local_file MCP tool with preview action and formatted multi-page PDF reading.
馃 Dynamic LiteLLM Model Discovery & Hot-Reloadable AI Configuration
Live Model Discovery: REST endpoint GET /admin/api/models/discover queries upstream LiteLLM gateways (GET /v1/models) and categorizes models into Dense Embeddings, Vision OCR, and General Chat models.
UI Model Selectors & Discovery Controls: Replaced static text inputs with dynamic capability dropdowns and custom manual write-in options in the Settings tab.
Relational Metadata Persistence: Model selections (dense_model, sparse_model, vision_ocr_model, chat_model, litellm_url, litellm_api_key) persist to SQLite/PostgreSQL system_metadata and hot-reload in-process without container restarts.
馃┖ Vector Database Health Check Fix
Directly interrogates the active vector store's .health_check() method instead of relying solely on connection status flags, correctly reflecting operational status in the dashboard.
馃И Automated Test Verification
Pytest Backend: 492 passed (100%).
Vitest Frontend: 286 passed across 27 test files (100%).