VisoRAG has two public surfaces:
VisoRAG_v8_Final (1).ipynb: the authoritative notebook provenance.src/visorag/: an import-safe Python package extracted for maintainers and contributors.
sequenceDiagram
participant Client
participant API as FastAPI /query
participant Ingest as document_ingestion
participant Retrieve as visual_retrieval
participant Store as In-memory Qdrant
participant VLM as Qwen2.5-VL
Client->>API: multipart file + query + query_type + top_k
API->>Ingest: sanitize, validate, render pages
Ingest-->>API: page images
API->>Retrieve: embed page images with ColQwen2
Retrieve->>Store: create per-request multivector collection
API->>Retrieve: embed user query
Retrieve->>Store: retrieve top visual pages
API->>VLM: selected page images + prompt
VLM-->>API: answer text
API-->>Client: JSON extraction or answer
config.pyowns environment-derived defaults.pipeline.pyowns the notebook-compatible request orchestration.features/document_ingestion.pyowns file conversion and page rendering.features/visual_retrieval.pyowns ColQwen2 model loading, embeddings, and Qdrant operations.features/answer_generation.pyowns local Qwen2.5-VL loading and generation.api/app.pyowns HTTP validation, auth, routes, and response mapping.cli.pyowns local operator commands.
Each request gets a temporary UUID directory and an in-memory Qdrant collection. Uploaded files, rendered pages, and vector data are not persisted by default.
- No hosted multi-user auth system.
- No persistent vector database by default.
- No CPU fallback for real Qwen2.5-VL generation.
- No Streamlit UI in the first clean open-source release.