Skip to main content
PreparationZone Logo
PrepZone

The RAG Tools and Frameworks Map

Loaders, splitters, embedding models, vector stores, chat models, orchestrators, agents, and monitors.

Pass checkpoint below

Why this matters

  • Tool questions in interviews are really boundary questions: what does this component own, and what should it refuse to own?
  • PolicyDesk wasted a week because three libraries all wanted to "be the application." One orchestrator is enough.
  • You should be able to swap the vector store or the chat model without rewriting the PDF parser.
  • Names move fast. The categories below are the stable part.

The map

SourcesFiles, web, SQL
Load and split
Embed
Vector store
LLM
Answer
Data flows to the right. Pick one primary tool per box unless you have a measured reason for two.

Orchestration wraps the arrows. Monitoring watches all of them. Agents sit on top of the LLM and call back into search.

Load and split

JobTools people nameNotes
PDFPyPDF, pdfplumber, Unstructured, DoclingDigital text versus scans versus tables. One library will not win all three.
WebWebBaseLoader, a real crawler if you mustClean HTML. Allow-list hosts.
Office and textUnstructured, python-docx, TextLoaderKeep headings. They are retrieval signals.
TablesCamelot, Tabula, pdfplumberCovered in the tables lesson. Do not character-split a grid.
SQLSQLAlchemy or the LangChain SQL utilityProject safe columns only.
SplitRecursiveCharacterTextSplitter, and token-aware variantsDefault for prose. Semantic splitters cost an embedding at ingest.
  • PDF

    Tools people namePyPDF, pdfplumber, Unstructured, Docling
    NotesDigital text versus scans versus tables. One library will not win all three.
  • Web

    Tools people nameWebBaseLoader, a real crawler if you must
    NotesClean HTML. Allow-list hosts.
  • Office and text

    Tools people nameUnstructured, python-docx, TextLoader
    NotesKeep headings. They are retrieval signals.
  • Tables

    Tools people nameCamelot, Tabula, pdfplumber
    NotesCovered in the tables lesson. Do not character-split a grid.
  • SQL

    Tools people nameSQLAlchemy or the LangChain SQL utility
    NotesProject safe columns only.
  • Split

    Tools people nameRecursiveCharacterTextSplitter, and token-aware variants
    NotesDefault for prose. Semantic splitters cost an embedding at ingest.

Embeddings

OptionWhen
OpenAI text-embedding-3-small or largeHosted, strong default if the text is allowed to leave your network
BGE, E5, or other sentence-transformersSelf-hosted, including on a GPU you already run
Cohere EmbedHosted, including multilingual needs
A model already in your cloud (Bedrock, Vertex, Azure OpenAI)When procurement already standardized there
  • OpenAI text-embedding-3-small or large

    WhenHosted, strong default if the text is allowed to leave your network
  • BGE, E5, or other sentence-transformers

    WhenSelf-hosted, including on a GPU you already run
  • Cohere Embed

    WhenHosted, including multilingual needs
  • A model already in your cloud (Bedrock, Vertex, Azure OpenAI)

    WhenWhen procurement already standardized there

The orchestrator should not hide which model you called. Log the model id. Your vectors are married to it.

Vector stores

FAISS (library), Chroma (prototype), Qdrant and Weaviate (self-hosted servers, Weaviate especially if you want hybrid in one query), Milvus (large distributed), Pinecone (managed), pgvector (Postgres you already operate). The vector-database lesson has the selection criteria. The ecosystem point: the store does not load PDFs and does not write answers.

Chat models

Hosted: OpenAI GPT models, Anthropic Claude, Google Gemini, Cohere Command. Self-hosted or VPC: Llama family models and others through vLLM, TGI, or Ollama. "Best model" is not a stable sentence. Pick with the eval set: faithfulness and refusal on your questions, then cost and latency. A small model that obeys the context can beat a large model that improvises.

Orchestration

LangChain is a wide toolbox: loaders, prompts, retrievers, agents. It is a reasonable default and it changes quickly. Learn the pipeline more than the import path.

LlamaIndex focuses on indexing and retrieval structures, including the hierarchical ideas in the architecture lesson. Teams pick it when the index, not the agent, is the product.

Haystack is a pipeline framework with explicit nodes. It reads clearly in reviews.

A few dozen lines of Python are a valid orchestrator for PolicyDesk's naive path. Frameworks pay off when you need agents, tracing, and many loaders. They cost you an upgrade treadmill. Do not wrap a framework in another framework.

Agents and tools

LangChain agents, LlamaIndex agents, and smaller libraries (the pattern matters more than the brand) implement the tool loop. Tool protocols such as MCP are one way to expose a search or a database to a model with a described schema. The rule from the agent lesson still holds: specific tools, validated arguments, a step budget.

Semantic kernels and similar enterprise SDKs show up in Microsoft-centric stacks. They are another orchestrator, not a new kind of retrieval.

Deployment and inference servers

FastAPI (or any HTTP framework) is the application boundary. Docker and Kubernetes run it. vLLM, TensorRT-LLM, and TGI (text generation inference) serve open-weight models with batching and KV-cache management. Ollama is a simple local runner, good for a laptop, not your availability story. If you call a hosted chat API, you do not run these servers. You still need timeouts and a budget.

Monitoring and evaluation

NeedTools people name
Traces of a RAG requestLangSmith, Phoenix / Arize, OpenTelemetry, Langfuse
Offline metricsRAGAS, your own Precision@K harness, DeepEval
Service metricsPrometheus and Grafana, the same stack as the rest of your APIs
LogsStructured JSON to whatever you already use. Include retrieved ids, not only the answer.
  • Traces of a RAG request

    Tools people nameLangSmith, Phoenix / Arize, OpenTelemetry, Langfuse
  • Offline metrics

    Tools people nameRAGAS, your own Precision@K harness, DeepEval
  • Service metrics

    Tools people namePrometheus and Grafana, the same stack as the rest of your APIs
  • Logs

    Tools people nameStructured JSON to whatever you already use. Include retrieved ids, not only the answer.

A trace that shows the question, the retrieved titles, the prompt, and the answer will debug more incidents than a new vector database. Adopt tracing before you adopt a second orchestration framework.

How to choose without collecting logos

A sane PolicyDesk stack

  • Python, FastAPI, and a recursive splitter.
  • One embedding model, logged by name.
  • Qdrant or pgvector, with payload filters.
  • One chat model, temperature 0, behind a timeout.
  • LangChain or plain functions, not both wrapped around each other.
  • A CSV of labeled questions and a script that prints Recall@4 and a faithfulness sample.
  • OpenTelemetry or one of the RAG tracers, plus ordinary API metrics.

Swap a box when the eval set or the ops burden says so. "We use seven AI tools" is not a design.

Quick recall

Everything you need if you only revisit this box.

  • Stages: load, split, embed, store, retrieve, generate, trace.
  • Loaders differ by format. Splitter default is recursive and token-aware.
  • Embeddings are hosted or self-hosted. Vectors are married to the model id.
  • Vector stores range from FAISS and Chroma to Qdrant, Weaviate, Milvus, Pinecone, and pgvector.
  • LangChain, LlamaIndex, and Haystack orchestrate. Plain Python is allowed.
  • vLLM, TGI, and TensorRT-LLM serve open models. Hosted APIs replace them.
  • Trace retrieved ids. Evaluate with a fixed question set. Then, and only then, add tools.

Test yourself

Answer these before moving on — recall is what makes it stick.

Checkpoint quiz

Pass 2 of 3 to verify this article on your path — scrolling alone does not count.

Question 1 of 3

How do you keep an order + payment + inventory flow consistent across services without distributed two-phase commit?