Features

Everything a production RAG deployment needs

One self-hosted stack — FastAPI, React, Qdrant, LiteLLM, Postgres — with the grounding guarantees and access control enterprise deployments actually require.

01

Retrieval & answers

Grounded responses that cite their sources — and stay quiet when the corpus does not support an answer.

Grounded, cited chat

Streaming answers with citations down to document, version, section, and page — so every claim is traceable to a source.

No-answer mode

When retrieval lacks sufficient grounding, Ragz says so instead of guessing. Confident hallucinations are not an option.

Hybrid retrieval + rerank

Dense and sparse retrieval fused, then reranked. If the reranker is down, results fall back to fusion order rather than failing.

Version-aware retrieval

The latest approved version of a document wins; superseded revisions stay out of answers automatically.

Rich generative UI

Answers render as more than text: visual cards, charts, tables, clickable source cards, follow-up chips, and accordions.

Web search, on demand

Toggle web search per turn. Answers can cite full public web pages via DuckDuckGo by default, or Tavily if configured.

02

Security & governance

Access control enforced where it counts — inside the query — with encrypted secrets and a full audit trail.

Tenant isolation

A single code path per store enforces tenant and workspace boundaries. No org-owned query escapes the tenancy context.

In-query ACLs

Document access is enforced inside the vector query, never post-filtered in code — an answer can never cite a document you cannot open.

RBAC + custom roles

Superadmin / admin / user tiers plus composable custom role templates, with deny-by-default permission checks at every route.

Encrypted secrets

Every provider key is AES-256-GCM envelope-encrypted in Postgres under a single out-of-DB KEK. Keys are write-only and never logged.

Strong authentication

Argon2id password hashing, 15-minute JWT access tokens with rotating refresh, and rate limiting on auth and chat endpoints.

Append-only audit log

Sensitive actions are recorded to an immutable event log for review and compliance.

03

Models & documents

Bring any model — cloud or fully local — and ingest real documents, scans included.

Bring any model

OpenAI, Anthropic, Gemini, or any LiteLLM provider for generation, embeddings, and rerank — swap providers without switching platforms.

Fully local / air-gapped

Run generation on Ollama or vLLM with local embeddings and rerank for installs that never touch the public internet.

Pluggable parsers

liteparse by default (local, page-accurate citations), plus anydoc, Docling, and LlamaParse — chosen per install.

OCR for scans

Scanned or image-only PDFs fall back to OCR automatically, so text locked in images still becomes searchable, cited content.

Real document formats

PPTX, DOCX, PDF, and more — the formats teams actually store their knowledge in.

Per-workspace metadata

Capture name, version, revision date, department, and document type per workspace to power version-aware, filtered retrieval.

04

Integrations & API

Talk to Ragz the way your stack already talks — an OpenAI-compatible endpoint and inbound chat bots.

OpenAI-compatible API

A drop-in endpoint with per-user or per-workspace keys — point existing OpenAI SDK code at Ragz and keep your grounding and ACLs.

Chat bots

Inbound bots for Telegram, Discord, and Slack, so answers reach people where they already work.

Model catalog sync

The model registry syncs from LiteLLM and probes capabilities, keeping the available-model list accurate.

05

Operations

Built to run and observe in production, and to degrade gracefully when a dependency wobbles.

Docker Compose deploy

A single-node reference deployment brings up Postgres, Qdrant, Redis, and MinIO — behind your own TLS reverse proxy.

Observability built in

Prometheus metrics, per-stage RAG latency histograms, OpenTelemetry tracing, and health/readiness probes on every process.

Priority queues

Celery on Redis with separate interactive and default lanes, so a big ingestion job never blocks live chat.

Graceful degradation

Reranker down falls back to fusion order; an LLM error walks a fallback chain; Redis down fails quotas closed and caches open.

Run it yourself in about 10 minutes.

Clone the repo, bring up infrastructure with Docker Compose, and start chatting with your first document.