Sign inSign up

nuvraxis/rag-chatbot-worker

By nuvraxis

Updated 10 days ago

Ingestion worker — extracts, chunks and embeds uploaded documents

Image
0

293

nuvraxis/rag-chatbot-worker repository overview

rag-chatbot-worker

The ingestion worker for the multi-tenant RAG chatbot platform. It takes documents uploaded through the API, extracts their text, splits it into passages, embeds those passages and writes the vectors — so that an upload returns immediately and the slow work happens off the request path.

Source and full documentation: https://github.com/Nuvraxis/nuvrag-platform

Tags

TagWhen it movesUse it for
1.2.3neverproduction — pin this
1.2, 1each matching releasetracking patches or minors
latesteach stable releasetrying it out

Pre-releases such as 1.2.3-rc.1 publish under that exact version only, and never move latest, 1.2 or 1.

Run the same version as the API. This image is built directly from nuvraxis/rag-chatbot-api with a different command, and the two share a database schema.

What it needs

The same PostgreSQL + pgvector and Redis as the API, the same environment, and the same document storage. If STORAGE_BACKEND=local, the API and this worker must share that directory as a real volume — otherwise the worker cannot read what the API just wrote, and every document fails to ingest.

It is a Celery worker: it takes jobs from Redis and needs no inbound port and no ingress.

Configuration

Identical to the API — see nuvraxis/rag-chatbot-api — plus two of its own:

VariableDefaultNotes
CELERY_QUEUESingestion,defaultingestion is the slow, bursty work; default carries light background tasks
CELERY_CONCURRENCY4kept low on purpose: PDF parsing is CPU-bound, so scale out on queue depth rather than up on concurrency

AI_CREDENTIALS_ENCRYPTION_KEY must be the same value as the API's. The worker decrypts each tenant's embedding provider credentials with it; a different key means every ingestion job fails.

Optional malware scanning: set INGESTION_CLAMAV_HOST and a ClamAV daemon becomes mandatory — a scanner that cannot be reached fails the job rather than letting the file through.

Image facts

  • Port: none, and none needed
  • User: non-root, UID/GID 1001
  • Restarts: --max-tasks-per-child=200, so a leaky parser cannot accumulate
  • Base: the API image of the same version

Scaling

Worker load is queue depth, not CPU, so a CPU-based autoscaler will scale down while a backlog is still draining. The Helm chart at oci://registry-1.docker.io/nuvraxis/rag-platform supports KEDA on Redis list length for exactly this reason.

Licence and security

See the repository. Report security issues privately through GitHub rather than in a public issue.

Tag summary

Content type

Image

Digest

sha256:4720345f6

Size

182.3 MB

Last updated

10 days ago

docker pull nuvraxis/rag-chatbot-worker:0.0.5-rc.1