TL;DR
- Chunk source docs by structure first, size second.
- Deduplicate before embedding — cheaper and cleaner recall.
- Ship an evaluation harness before you ship the feature.
Every RAG demo is 90% of the way there. That last 10% — where the system serves real users on real data — is where projects quietly die.
Ingestion
Everything downstream depends on how you chunk, dedupe, and enrich source documents.
- Chunk by structure first, size second
- Deduplicate before embedding, not after
- Preserve source metadata for citation
- Version your ingestion pipeline
Retrieval
Vector-only retrieval loses to hybrid search almost every time.
Evaluation
You cannot iterate on quality you cannot measure. Build a golden dataset before shipping.
