What is Retrieval-Augmented Generation (RAG) and how does it work in AI systems? How does RAG combine information retrieval with generative models to improve responses? What components are involved in a typical RAG architecture? How does RAG enhance accuracy and reduce hallucinations in AI outputs? What are the real-world applications and limitations of using RAG in Generative AI systems?