About RAGDoll

What it does and how it works.

What is RAGDoll?

RAGDoll is a simple way to get answers from your own files. Upload anything — documents, spreadsheets, slides, even scanned images — and just ask, in plain words. Every answer comes with the exact page it came from, so you can always check it's right.

Step 1
You add filesanything you want answers from
→
Step 2
RAGDoll reads themso you don't have to
→
Step 3
You ask a questionin everyday language
→
Step 4
You get the answerwith the source shown

Works with everything

Documents, spreadsheets, slides, images and web pages — all searchable, with answers pointed back to the source.

Private by design

Your files are yours alone. Nothing is shared with anyone, and you can export or delete everything anytime.

Answers in seconds

Ask a question and get a clear, direct answer fast — no scrolling through long files to find it yourself.

Built by Deepeshwar

A portfolio project showing real, end-to-end engineering. View on GitHub →

Under the hood — for the curious

The full engineering behind the simple experience — built end to end, from the retrieval pipeline to production deployment.
The answer pipeline
1 · Ingest
Parse & OCRPDF, Office, images, HTML
→
2 · Embed
BGE-M3dense + sparse vectors
→
3 · Retrieve
Hybrid searchQdrant + RRF fusion
→
4 · Rerank
Cross-encoderBGE-reranker-v2
→
5 · Answer
Grounded LLMstreamed + cited
Deep thinking — the agent loop
Plan
Decide next movethe agent reasons step by step
→
Act
Use a toolyour docs, web search or calculator
→
Observe
Read the resultthen loop until it has enough
→
Answer
Synthesizeone grounded, cited reply
Built like production software

Async ingestion

Uploads are processed in the background by Celery workers with a Redis queue, so the app stays fast while big files are parsed, chunked and embedded.

Secure by design

Sign-in uses Supabase (ES256 JWTs verified on every request). Each user only ever sees their own files and conversations.

Agentic RAG + web search

A ReAct agent can search your documents, search the live web (DuckDuckGo) and do maths — choosing tools itself to answer harder questions.

Full observability

Every request is traced with OpenTelemetry to Langfuse Cloud, with Prometheus metrics and structured logs — so nothing is a black box.

Built to scale safely

Redis-backed rate limiting, health checks, and disconnect-safe streaming keep the service stable under real traffic.

CI/CD & deployment

GitHub Actions runs lint, type-checks and tests on every push. Shipped as Docker containers behind Caddy (automatic HTTPS) on Oracle Cloud.

The full stack
Backend
PythonFastAPIPydanticSQLAlchemyAlembicCelery
Data & storage
PostgreSQLQdrantRedisMinIO
AI / retrieval
BGE-M3BGE-reranker-v2RapidOCROpenRouterDuckDuckGo
Frontend
Next.jsTypeScriptReactSupabase Auth
Ops & delivery
DockerCaddyGitHub ActionsLangfuseOpenTelemetryPrometheusOracle Cloud
Want the details? Read the code and docs on GitHub →