Solutions · Open Source

Argus RAG Studio

An open-source, self-hosted platform that covers the full RAG lifecycle — Build, Retrieve & Generate, Evaluate, and Operate & Deploy — in one place. Not a "works-once RAG demo": it ships with an evaluation harness that measures quality in numbers, config sweeps that auto-explore optimal settings, a feedback loop, and agent-based remote deployment, so it runs on-premises and in air-gapped (closed) networks.

Apache License 2.0 · Open SourceGitHub RepositoryProduct Brochure
5 parsing strategies8 chunking strategies5 vector stores

What is RAG?

An LLM answering on its own has neither current information nor evidence. RAG searches your own documents first, and builds the answer only on what it found.

Without RAG vs. with RAG — the indexing path and the query path
Without RAG vs. with RAG — the indexing path and the query path

Put documents in, get answers with citations

Load internal policies, manuals and contracts as they are. The platform retrieves the passages that answer the question and generates a response with [n] citations — every sentence traces back to its place in the source, so staff verify the evidence before acting on it.

A grounded answer in five steps, using a travel expense policy as the example
A grounded answer in five steps, using a travel expense policy as the example

Concept diagram

Build, Retrieve & Generate, and Evaluate & Operate run on one shared data plane, while inference servers and deployment attach through standard interfaces.

Argus RAG Studio system overview
Argus RAG Studio system overview

Highlights

01

Measure → optimize → improve loop

Quality is measured in numbers with golden sets, Hit Rate/MRR, and 3-axis LLM-as-Judge; config sweeps auto-explore the best combination of chunking, search mode, and reranker; and 👍/👎 user feedback is promoted back into the golden set — the loop most self-built RAG stacks never get to is a built-in feature.

02

Hybrid search + cited answers

Vector (pgvector) and lexical (tsvector) results are fused with RRF and reordered by reranking (LLM, in-process or cross-encoder), and answers stream over SSE with [n] citations. Federated queries search knowledge bases with heterogeneous embeddings at once.

03

Built for Korean documents

A dedicated Rust parser for HWP/HWPX (rhwp), kss Korean sentence splitting, a VLM/OCR (PaddleOCR) pipeline for scanned documents, and AI-Hub-compatible annotation — an axis general open-source RAG frameworks do not cover.

04

Air-gap · agent-based remote deployment

Models are brought in as packs and auto-installed at deploy time, while per-host agents remotely deploy workers, embedding, reranker, and VLM servers. With the zot registry even containers stay fully offline — meeting network-separation requirements in finance, government, and defense.

The whole RAG lifecycle, on one page

From ingestion through retrieval, generation, evaluation, operations and deployment — managed in one platform instead of stitched-together tools.

Build, Retrieve & Generate and Evaluate & Operate on a shared deployment foundation
Build, Retrieve & Generate and Evaluate & Operate on a shared deployment foundation

Document routing — which knowledge base does this belong to?

Classification tells you what a document is; it does not decide where it goes. Routers — from filename, path and metadata through embedding similarity and LLM judgement — combine into a policy that picks the destination before ingestion, and every decision is recorded.

Three intake points and their modes, seven routers, policy combination and fallback
Three intake points and their modes, seven routers, policy combination and fallback

Document parsing — from source file to text

A PDF whose meaning lives in its tables is not read the same way as a scan. The parser is swappable per file type and quality requirement, and every path converges on one Markdown form that still carries tables and headings.

Five parsing strategies, plus automatic selection by file type
Five parsing strategies, plus automatic selection by file type

PII — removed before anything is indexed

Personal data is redacted right after parsing, so only the redacted text reaches chunking, embedding and indexing. Where regex is not enough, checksum validation and sandboxed custom functions take over.

Where PII redaction runs, its three mechanisms, and the custom-function sandbox
Where PII redaction runs, its three mechanisms, and the custom-function sandbox

Chunking — the unit retrieval matches

A chunk is what retrieval actually matches. Too large and the evidence drowns in noise; too small and the sentence cannot stand on its own. Each collection picks the boundary strategy that fits its documents.

Eight chunking strategies, with size unit and overlap options
Eight chunking strategies, with size unit and overlap options

Embedding — into vectors retrieval can match

The embedding settings define a collection's vector space. Provider, model, dimension and distance metric are fixed when the collection is created, and changing them later means reindexing. On closed networks or in CI, the wiring can be verified with no embedding server at all.

Three embedding providers, the vector-space settings, and the dimension guards
Three embedding providers, the vector-space settings, and the dimension guards

Retrieval — how the evidence is found

One question splits into a vector search and a lexical search, then merges again through RRF. Throughout, the collection boundary and the metadata filter constrain what can be read, and the vector store can be swapped without moving any content.

Parallel vector and lexical search, RRF fusion, and the boundaries on scope
Parallel vector and lexical search, RRF fusion, and the boundaries on scope

Reranking — search wide, select narrow

First-stage search is built not to miss anything, so it gathers candidates broadly. Reranking looks closely at just those candidates and reorders them. It is a query-time setting, so changing it never triggers a reindex, and if the reranker fails, retrieval survives on the fusion order.

Four rerankers, top-N reordering, and the fallback on failure
Four rerankers, top-N reordering, and the fallback on failure

Evaluation — quality as a number

Retrieval is scored without an LLM through Hit Rate and MRR; answers are scored by an LLM judge on faithfulness, relevance and correctness. Configuration sweeps split the search space by whether reindexing is needed, and a holdout split with an overfit flag validates the winner.

Retrieval and generation metrics, the composite score, sweep axes and holdout validation
Retrieval and generation metrics, the composite score, sweep axes and holdout validation

Platform Architecture

The frontend dashboard, RAG backend, inference servers, and data stores/registry work together, and inference and workers can be deployed separately via agents to scale in stages.

Frontend Dashboard
Next.js 16 · React 19
Knowledge bases · Playground · Chat
Pipelines · evaluation · observability
Feedback · document routing · fine-tuning
Annotation · image explorer
Model & server management · source watch
Jobs · users/permissions · API keys · PII rules
RAG Backend
FastAPI :4700
Ingestion — parse·chunk·embed·index (async workers)
Query — hybrid search · rerank · generate
Evaluation · traces · feedback · pipeline versions
RAG document routing · source watch
servermgr — agent deploy · proxy · heartbeat
REST · SSE streaming · local JWT/Keycloak
Inference
Local or separately deployed
Embedding :8080 — FastEmbed local · OpenAI-compatible
Reranker :8081 — cross-encoder
Detection (OCR) :8082 — PaddleOCR · EasyOCR
Generation LLM — Claude · OpenAI-compatible · Ollama · vLLM
VLM (vLLM) — scanned docs & image parsing
GPU variants — cpu · gpu(onnx) · gpu-torch
Data Stores
PostgreSQL · MinIO · zot
PostgreSQL + pgvector — chunks·vectors·tsvector (system of record)
Pluggable vector stores — Qdrant · Weaviate · Milvus · Databricks
Traces · evaluation · feedback in the same plane
MinIO / S3 — source docs · images · model packs
Model Repository (argus-models)
zot OCI registry — air-gapped images
buildx bake — amd64+arm64 multi-arch

Core Capabilities

From ingestion, parsing, and chunking to hybrid search & generation, evaluation, config sweeps, retrieval fine-tuning, versions & observability, agent deployment & air-gap, and annotation & images — twelve pillars covering the full RAG lifecycle in a single platform.

Build

Ingest documents, read them, split them, and route them to the right knowledge base

From three intake paths to the index — the ingestion pipeline
From three intake paths to the index — the ingestion pipeline

Ingestion pipeline

Multi-format documents are processed by async workers through upload → parse → chunk → embed → index.

Multi-format loaders — txt/pdf/docx/xlsx/pptx/hwp/hwpx and more
Source watch — periodic drop-zone scans · unattended intake
content_hash idempotency · reprocessing (reindex)
Job progress tracking · workers deployable on separate hosts

5 parse strategies

Pick the parse strategy per collection to match the document (auto-fallback when uninstalled).

text · layout (pdfplumber) · docai (docling)
vlm — vision LLM (scans · complex layouts)
rhwp — dedicated Rust parser for HWP/HWPX (preserves merged tables)
Availability introspection · validated on real models

8 chunking strategies

Chunking decides half of retrieval quality — implemented down to table preservation and meaning boundaries.

recursive · fixed · sentence (Korean kss) · paragraph · section
markdown (preserves tables/code blocks · heading breadcrumbs) · semantic · auto
char / token (tiktoken) units · smart overlap
Quality guards — small-chunk merging · chunk budget caps

Knowledge base design — fail-closed isolation

Collections are designed as security isolation boundaries, not just topic buckets.

Every query physically filtered by collection_id (fail-closed)
Embedding model · dimension · distance metric frozen — vector-space integrity
Deterministic document routing — priority · first-match-wins
Uncertain security grade → assigned to the highest grade

Retrieve & Generate

Find the passages that answer the question and generate a cited response

From parallel vector and lexical search to a cited answer
From parallel vector and lexical search to a cited answer

Hybrid search & generation

Search meaning and keywords in parallel, fuse the results, and generate cited answers.

Vector (pgvector) + lexical (tsvector) + RRF fusion
Reranking none / llm / local / cross_encoder
[n] grounded cited answers · multi-turn chat (SSE)
Federated queries — RRF merge across heterogeneous-embedding collections
Pluggable vector stores — pgvector · Qdrant · Weaviate · Milvus · Databricks

Model flexibility

Swap embedding, reranker, generation LLM, VLM, and OCR per workload.

Embedding — local (FastEmbed) · OpenAI-compatible (TEI/vLLM/Ollama) · default bge-m3
Generation LLM — Claude · OpenAI-compatible · Ollama · vLLM
VLM (vLLM) · OCR detection (PaddleOCR/EasyOCR)
Per-collection model · dimension · distance · auto dimension detection

Evaluate & Operate

Measure quality as numbers and manage it through versions

The measure → optimise → improve loop
The measure → optimise → improve loop

Evaluation harness

Measure quality in numbers with golden datasets and an LLM judge.

Golden-set (question · answer docs) management · feedback promotion
Retrieval metrics — Hit Rate · MRR
Generation metrics — 3-axis LLM-as-Judge (Faithfulness·Relevance·Correctness)
Holdout · overfitting flags · judge gating

Config sweeps & improvement loop

Auto-explore combinations of chunking, search mode, top-k, and reranker, compared on a leaderboard.

Sweeps across query axes + index axes (temporary collections)
Leaderboard — sorted by Hit Rate · MRR · judge scores
Promote the winning config as a new pipeline version · rollback
Traces → 👍/👎 feedback → golden-set promotion loop

Pipeline versions & observability

Treat search, rerank, and generation settings as versionable assets, and instrument every query.

Append-only versions · stages · rollback · field-level diff
Evaluation linked per version — block regressions upfront
Query Trace — per-stage latency · token capture
Statistics — success rate · p50/p95 · top queries · API keys (M2M)

Extend & Deploy

Tune for your domain and deploy anywhere, including air-gapped sites

Retrieval fine-tuning

Tune embeddings and rerankers to your domain terms and acronyms.

Glossary → synthetic query generation · labeling UI review
(query · positive · negative) triplet training datasets
JSONL export · external trainer (M2M callback)
Register to the model registry → hot-swap the embedding server

Agent-based deployment & air-gap

Per-host Argus Agents deploy workers and inference servers; closed networks import models as packs.

servermgr — agent registration · remote deploy · proxy · heartbeat
Automatic GPU variant selection — amd64 gpu(onnx) · arm64 gpu-torch
Model pack import · Model Repository auto-install · offline serving
zot OCI registry · buildx multi-arch images

Annotation & image pipeline

Turn in-document images and scans into knowledge via OCR and VLM.

Image OCR labeling — AI-Hub JSON compatible
Detection server proposes draft labels (PaddleOCR/EasyOCR)
Image explorer · VLM content analysis indexing
HWP preview — Chromium rendering (@rhwp/core)

A pipeline built for Korean documents

Merged HWP tables, scanned PDFs, footnotes and multi-column layouts — the documents generic RAG frameworks quietly drop are handled on dedicated paths.

Real-world document problems and how Argus RAG Studio handles them
Real-world document problems and how Argus RAG Studio handles them
  • rhwp — a Rust parser for HWP/HWPX that preserves merged table structure
  • kss sentence splitting tuned for Korean particles and quotation marks
  • VLM and PaddleOCR — text and captions from scans, drawings and images
  • AI-Hub compatible annotation — bbox + text labelling, import and export

Deployment that reaches air-gapped sites

The central backend deploys to an agent on every host, and models are brought in as packs and served offline — matching the network separation rules of finance, the public sector and defence.

Remote agent deployment and the air-gapped model supply path
Remote agent deployment and the air-gapped model supply path
  • servermgr → Agent :4501 — install, start and stop workers, embedding, reranker, detection and VLM remotely
  • Automatic GPU variant selection — cpu, gpu (ONNX), gpu-torch
  • zot OCI registry — container images stay fully offline
  • Model registry — packs are installed on the target host automatically at deploy time
Tech Stack
Python 3.11+FastAPI (async)SQLAlchemy 2.0Pydantic v2PostgreSQL + pgvectorMinIO / S3Next.js 16React 19TypeScriptTailwind 4 · shadcn/uiFastEmbed(ONNX) · torch(cu128)Docker/Podman · zot · buildxJWT · Keycloak OIDC · API keys
Apache License 2.0 · Open Source

An open-source RAG platform

Argus RAG Studio is published on GitHub under the Apache License 2.0. The entire RAG engine — backend (FastAPI), frontend (Next.js), and the standalone embedding/reranker servers — is open, so enterprises can verify the code directly, extend it to fit their environment, and operate it without sending data outside.

  • Apache 2.0 with no commercial-use restrictions
  • Verify and extend the code yourself
  • Self-host in air-gapped / on-premises