Setup & Installation
How do I get started?
How do I get started?
create-ragen-app to scaffold a full local installation in one command:What are the minimum hardware requirements?
What are the minimum hardware requirements?
- 8 GB of RAM to evaluate it, 16 GB for a small production install — mostly headroom. The containers a default
docker compose upstarts idle at about 900 MB together, document parsing (Docling) being most of it. What the stack actually costs breaks it down service by service and shows how to run a smaller stack. - Docker and Docker Compose
- Node.js
^24.15.0 || >=26.0.0if you run the apps outside containers — a range, not a floor
Can I run Ragen without internet access?
Can I run Ragen without internet access?
- Set all four model variables (
DEFAULT_MODEL,REPHRASE_MODEL,SUMMARY_MODEL,EMBEDDINGS_MODEL) to models served on your own hardware via vLLM or Ollama. - Set
DOCLING_STRICT=1to prevent document parsing from falling back to an external model if Docling fails. - Point
SMTP_HOSTat an internal mail server, or setMAIL_PROVIDER=consoleto skip email entirely. - After the initial install, serve container images from an internal registry to eliminate outbound traffic for updates.
How do I update Ragen?
How do I update Ragen?
Models & AI
Which AI providers does Ragen support?
Which AI providers does Ragen support?
- OpenAI (GPT-4o, GPT-4.1, o3, etc.)
- Anthropic (Claude, direct or via Bedrock)
- Azure OpenAI
- Amazon Bedrock
- Google Vertex AI
openai-compatible route, which is two environment variables and no code change. See Model gateway.Can I use different models for different tasks?
Can I use different models for different tasks?
Can I change the embedding model after setup?
Can I change the embedding model after setup?
VECTOR_SIZE:bge-multilingual-gemma2(default) →3584cohere-embed-multilingual-v3,bge-m3,multilingual-e5-large→1024
What languages does Ragen support?
What languages does Ragen support?
bge-multilingual-gemma2) is multilingual. Retrieval uses a hybrid approach — dense vector search for semantic meaning combined with BM25 sparse vectors for exact terms — which performs well across languages and on technical content like part numbers or proper names.The internal benchmark score for multilingual retrieval is 92%. Results for your specific documents and language will vary, so test on your own material before committing to a model.Security & Privacy
Does Ragen send my documents to the vendor?
Does Ragen send my documents to the vendor?
What data leaves my network?
What data leaves my network?
- Document parsing can fall back externally.
DOCUMENT_PARSER=doclingparses on your hardware, but if Docling fails the worker falls back to a loader that sends PDFs to an external model. SetDOCLING_STRICT=1to fail ingest instead. - Content moderation goes directly outward. Moderation is a guardrail rule called
content-moderation, switched on in the admin panel rather than by an environment variable. When it is on it calls OpenAI’s moderation endpoint directly — the one model call the route table cannot redirect. Leave the rule off on an isolated install.
Is conversation data encrypted?
Is conversation data encrypted?
NODE_ENV other than development/test, and TARGET_ENV either unset or naming a real environment — a missing provider stops the process rather than writing plaintext, unless ALLOW_UNENCRYPTED=1 waives it as a logged, deliberate choice. See Encryption.Ragen supports AES-256-GCM encryption using envelope encryption: each conversation thread gets its own key, itself encrypted by a master key in your chosen key provider. Set ENCRYPTION_PROVIDER to one of:scaleway— Scaleway Key Managerkms— AWS KMSlocal— a master key in the environment
Is SSO supported?
Is SSO supported?
API & Integration
Is the Ragen API compatible with OpenAI?
Is the Ragen API compatible with OpenAI?
POST /v1/chat/completions— chat completions with streaming supportPOST /v1/files,GET /v1/files,DELETE /v1/files/:id— file managementPOST/GET/PATCH/DELETE /v1/assistants— assistant (project) managementPOST/GET/PATCH/DELETE /v1/threadsand messages — conversation thread management
base_url to your deployment’s API address. Ragen adds one extension field, assistant_id, to specify which project to query.top_p and seed). A few are rejected with a 400 because silently dropping them would produce unexpected results — response_format and tools/tool_choice fall into this category.How do I get an API key?
How do I get an API key?
Open Settings
Create a key
Copy it immediately
Is there a rate limit on the API?
Is there a rate limit on the API?
429 rate_limit_error. The official TypeScript SDK retries 429 responses automatically with exponential backoff and jitter.Can I use the Python OpenAI SDK with Ragen?
Can I use the Python OpenAI SDK with Ragen?
base_url at your Ragen instance and pass assistant_id as an extra body parameter:extra_body field passes Ragen’s assistant_id extension through the OpenAI SDK without triggering a validation error. Streaming works the same way — set stream=True and iterate the response as you normally would.