DEV Community

Cover image for RAGnarok Part 1 — Scoping an Enterprise RAG System (Before Any Code)
Tanmay
Tanmay

Posted on

RAGnarok Part 1 — Scoping an Enterprise RAG System (Before Any Code)

Starting a series called RAGnarok — building an Enterprise Knowledge Assistant (RAG system) in public, part by part. This first post is scope/architecture only, no code — that starts in Part 2.

The problem

Internal docs (HR policy, engineering docs, deployment runbooks, incident postmortems, API references) are scattered, and finding the right one is slow. Goal: a retrieval system that answers questions like "how do I rotate AWS credentials?" by pulling from the actual internal docs instead of a person searching manually.

Tech stack
Embeddings: Sentence Transformers
Vector store: ChromaDB
Orchestration: LangChain (added later)
LLM: OpenAI / Ollama
Engineering: OOP, logging, config management, exception handling
Data pipeline: ETL-style ingestion, metadata management, incremental updates, versioning
Project structure
enterprise-rag/

├── data/
│ ├── hr/
│ ├── engineering/
│ ├── finance/
│ └── policies/

├── ingestion/
│ ├── extractor.py
│ ├── chunker.py
│ ├── embedder.py
│ └── loader.py

├── vectordb/
│ └── chroma_client.py

├── retrieval/
│ └── retriever.py

├── llm/
│ └── generator.py

├── config/
├── tests/
├── app.py
└── requirements.txt
Phased build plan
Phase 1 — read docs → chunk → embed → store in ChromaDB → semantic search
Phase 2 — automated PDF ingestion, multi-file handling, metadata filtering, document categories
Phase 3 — LLM integration: retriever → top-K chunks → LLM → answer (full RAG loop)
Phase 4 — production hardening: logging, config, exception handling, versioning, incremental ingestion, tests
Why this project over the obvious ones

Skipped: chat-with-PDF (overdone), resume analyzer (learning value drops off fast), YouTube RAG (adds complexity unrelated to RAG), medical/legal RAG (needs domain expertise). Enterprise Knowledge Assistant hits chunking, metadata filtering, retrieval tuning, and incremental ingestion — the concepts that actually come up in RAG system-design interviews.

Next

Part 2: the ingestion pipeline — extractor.py, chunker.py, embedder.py, loader.py.

Repo will be linked once Phase 1 code lands. Full technical writeup (with more depth than fits here) is on Hashnode.

Feedback on the phase breakdown or stack choices welcome — especially if anyone's built something similar.

Top comments (0)