Generative AI Architecture: RAG Explained