Skip to content

RayRAG 0.4.47 — bounded downloads, host-sized ingestion (parity v0.3.8y)

Choose a tag to compare

@Junesgone Junesgone released this 23 Sep 16:56
· 1 commit to main since this release

RayRAG 0.4.47 — every download is bounded, and the app sizes itself to your machine

No more unbounded waits or downloads

RayRAG talks to embedding servers, vision models, OCR services, crawlers and object
storage. Every one of those reads is now capped:

  • Timeouts on model calls. RAYRAG_MODEL_TIMEOUT (default 300 s) replaces
    "wait up to two hours" for embedding, vision and OCR requests.
  • A size limit on every response body. RAYRAG_HTTP_BODY_LIMIT_BYTES
    (default 32 MiB). The limit is enforced while the body is being read, so a server
    that streams forever, lies about its length, or uses chunked transfer cannot make
    RayRAG grow. Previously a crawler comment said "limit the response body (anti-OOM)"
    — now it actually does.

Smaller memory during indexing

Committing a document used to hold three full copies of the search index
(including every embedding). It now holds one, the pre-image it needs to roll back.
The bigger your library, the more this matters.

The app measures your machine and adapts

At startup RayRAG reads your CPU count and free memory and decides how many
documents to index at once — half your cores, limited by what memory can hold, capped
at 8. This host reports:

Host resources detected; ingestion concurrency derived from them
host=12 cpus, 110.4 GiB available document_tasks=6

The same numbers appear in the admin console (GET /api/v1/system/status, host).
A small NAS now indexes one document at a time instead of running a workstation
default; a big machine is not throttled by a fixed guess. Set
RAYRAG_MAX_CONCURRENT_TASKS to override it.

Upgrading

git pull
docker compose build rayrag
docker compose up -d rayrag

Nothing to migrate. New optional settings, all with safe defaults:
RAYRAG_MODEL_TIMEOUT, RAYRAG_HTTP_BODY_LIMIT_BYTES, RAYRAG_MAX_CONCURRENT_TASKS.

Verified with 1601 Rust tests and a real-browser walkthrough of every previewer
(14/14) on the running container.