From the original RAG paper to today — the design decisions that explain the LoC numbers. Click any event to expand.
Settings global config object meant you configured LLM and embeddings once, then focused on indexing and querying. The mental model: your data becomes an index, the index answers questions. More opinionated than LangChain, fewer concepts to learn.
langchain-openai, langchain-groq, llama-index-llms-openai, llama-index-llms-groq. The benefit: each integration is independently versioned and maintained. The cost: every provider switch now requires a new pip install and a new import. The dependency tree grows linearly with the number of providers you support. This is the right long-term call — but it added friction to provider switching that wasn't there in 2022.
RAG class internalises chunking, embedding, storage, retrieval, and generation behind a two-method API. Provider switching is a single string parameter — no new import, no new package. The design assumption: most RAG pipelines at the application layer don't need per-step customisation. For teams building on top of RAG rather than building RAG infrastructure, the facade trades control for speed.