Help Instance Help

Document Ingestion

Ragty processes uploaded and synchronized documents asynchronously, chunks their content, creates embeddings, and stores searchable vectors in PostgreSQL/pgvector or Qdrant.

Supported formats

Parser support is intentionally limited to formats implemented by the current parser engines.

Content

Extensions

Processing

PDF

.pdf

DeepDoc layout detection, table structure recognition, OCR, and positional metadata

Images

.png, .jpg, .jpeg, .gif, .tif, .tiff, .bmp, .webp

Local DeepDoc OCR

Office documents

.docx, .xlsx, .pptx

Microsoft MarkItDown

Text and structured files

.html, .xml, .json, .csv, .md, .txt

Microsoft MarkItDown

Legacy Office formats, email containers, audio, and video are not supported by the current ingestion pipeline.

Parser engines

The parser engine is selected per dataset.

Engine

Behavior

DEEPDOC

Uses the vision pipeline for PDFs, local OCR for supported images, and falls back to MarkItDown for supported non-vision formats.

MARKITDOWN

Converts supported Office, markup, and structured-text formats to Markdown.

DeepDoc

DeepDoc is suited to scanned or layout-heavy documents. It provides:

  • document layout detection for text, tables, figures, headers, and footers;

  • table structure recognition;

  • OCR for scanned pages and supported images;

  • page and bounding-box metadata used by citations.

DeepDoc runs inside the worker process; there is no DEEPDOC_URL remote-service setting. Keep M8TY_RAGTY_GPU_WORKER_CONCURRENCY=1 unless the deployed model and GPU capacity have been validated for greater concurrency.

MarkItDown

MarkItDown converts digitally structured documents to Markdown while preserving headings, lists, tables, and slide structure where the source format permits it. It does not require a GPU.

Pipeline

Ragty document processing pipeline

The high-level lifecycle is:

  1. The API stores the original artifact in S3-compatible storage and creates a document record.

  2. A parse job containing document references—not file bytes—is queued in Redis.

  3. An ARQ worker parses, chunks, embeds, and writes the vectors.

  4. The document status is updated. Successful documents become searchable when processing reaches DONE.

Queued documents remain unclaimed while no healthy worker is available. Workers refresh the namespaced Redis health key every 10 seconds, allowing the UI and API to distinguish a waiting queue from active processing.

Embedding providers

Embedding models are configured through Settings → Providers and selected per dataset. OpenAI-compatible providers and local Ollama endpoints are supported; the optional fallback environment settings are:

Variable

Default

M8TY_RAGTY_OPENAI_API_KEY

empty

M8TY_RAGTY_OLLAMA_URL

http://localhost:11434

Changing the embedding model requires affected documents to be re-embedded so that stored and query vectors use the same vector space.

Chunking and document generations

Chunking behavior is configured per dataset. Re-parsing increments the document's parse_generation. Before the replacement chunks are stored, the worker deletes existing vectors for that document and stamps the new points with the current generation.

Worker configuration

The same ARQ worker class handles document parsing and scheduled data-source synchronization.

Variable

Description

Default

M8TY_RAGTY_WORKER_COUNT

Process-count setting for deployment launchers that consume it; the direct ARQ command starts one process

1

M8TY_RAGTY_WORKER_MAX_JOBS

Concurrent ARQ jobs per worker

1

M8TY_RAGTY_GPU_WORKER_CONCURRENCY

Concurrent GPU-intensive parsing work

1

Scale worker replicas deliberately. DeepDoc inference is memory-intensive, and each replica must use the same PostgreSQL, Redis, object-storage, and vector-backend configuration as the API.

23 August 2026