Decision guide
Recommendations
Use these recipes when users are unsure which RAG, embedding, database, or retrieval option to choose.
Recommended Stacks
Local demo
RAG: Naive RAG. Embeddings: OpenAI small or Hugging Face all-MiniLM. DB: ChromaDB. Retrieval: Dense vector. Add nothing else until the baseline works.
Support assistant
RAG: Advanced RAG. Embeddings: OpenAI small/large. DB: Qdrant or Pinecone. Retrieval: Hybrid or Dense + reranker. Evaluation: RAGAS + LangSmith/Langfuse.
Local/private deployment
RAG: Naive or Parent-Child. LLM: Ollama local. Embeddings: BGE, E5, or nomic-embed-text. DB: FAISS, ChromaDB, Qdrant local, or PGVector.
Cloud enterprise
RAG: Advanced or Adaptive. LLM: Azure OpenAI or AWS Bedrock. DB: Azure AI Search, OpenSearch, PGVector, or MongoDB Atlas depending on existing stack.
Legal/research documents
RAG: Parent-Child or Contextual Compression. Chunking: Sentence, paragraph, or document-aware. Retrieval: MMR or parent-child. Reranking: BGE/Cohere.
Decision Matrix
| User priority | Recommended choice | Why |
|---|---|---|
| Lowest setup friction | OpenAI + ChromaDB + Recursive Character + Dense Vector | Few moving parts and predictable behavior. |
| No local model downloads | Hosted OpenAI/Cohere/Hugging Face endpoint embeddings | All embedding inference happens through API calls. |
| Private local run | Ollama local + BGE/E5/nomic embeddings + FAISS/Qdrant local | Keeps documents and inference local. |
| Best retrieval for support docs | Advanced RAG + Hybrid retrieval + Cohere/BGE reranker | Balances semantic meaning, exact terms, and final ranking. |
| Long document fidelity | Parent-Child RAG + document-aware chunking + MMR | Preserves surrounding context while still retrieving precisely. |
| Strict release quality | Advanced/Self-RAG + RAGAS + CI/CD thresholds + OpenTelemetry | Measures faithfulness, traces failures, and blocks regressions. |
Simple Rules For Users
- Start with the simplest RAG that can answer the question.
- Fix extraction and chunking before changing the LLM.
- Use a new vector collection when changing embedding models.
- Add query enhancement when recall is poor.
- Add reranking when retrieved chunks include good and bad context together.
- Add compression when chunks are too long or noisy.
- Add evaluation before calling a system production-ready.
What To Avoid
Too much complexity early
Do not start with Agentic RAG, Self-RAG, reranking, compression, and fusion all at once. You will not know which part improved or broke quality.
Changing embeddings in the same index
This causes dimension mismatch or silent retrieval quality problems.
Skipping live smoke tests
Unit tests do not prove your Pinecone, Qdrant Cloud, MongoDB Atlas, or Azure setup works with real credentials.
Upgrade Path
- Start with a simple working baseline.
- Inspect retrieved chunks for failed queries.
- If relevant chunks are missing, improve extraction, chunking, query rewriting, or hybrid retrieval.
- If relevant chunks are present but low quality chunks are mixed in, add reranking.
- If chunks are too large or noisy, add context compression.
- If answers remain unsupported, use stricter prompts, Self-RAG, Corrective RAG, and faithfulness evaluation.
- Only after quality is measured, optimize latency and cost.