Zum Inhalt springen
>_<
AI EngineeringWiki

RAG Complete Guide

Tools · 10 min

Stand: März 2026LangChain 0.3.x
RAG Pipeline — Wissen verbinden
RAG Pipeline — Wissen verbinden
📋 Überblick
RAG (Retrieval Augmented Generation) kombiniert Information Retrieval mit Textgenerierung: Dein LLM greift auf eigene Dokumente zu statt nur auf Trainingsdaten. Dieser Guide deckt die komplette Pipeline ab — von Embeddings über Vector DBs (ChromaDB, Qdrant) bis Hybrid Search und Query Transformations. Mit Code-Beispielen für Ollama + LangChain.

RAG (Retrieval Augmented Generation) kombiniert Information Retrieval mit Text Generation. Das LLM kann so auf dein eigenes Wissen zugreifen — statt nur auf seine Trainingsdaten.

Warum RAG?

  • LLMs wissen nicht alles — besonders nicht dein Wissen
  • Trainings-Daten sind veraltet — RAG nutzt aktuelle Dokumente
  • Kein Prompt-Engineering für jeden Use Case nötig
  • Zitate und Quellen sind nachvollziehbar
  • Datenschutz: Deine Dokumente verlassen nie deine Infrastruktur
RAG Pipeline — Document Chunking, Embedding, Retrieval, Generation
RAG Pipeline: Von der Dokumentenverarbeitung bis zur Antwortgenerierung
Diagramm wird geladen...

RAG Workflow

Phase 1: Offline (einmalig)

  1. Document Chunking: Dokumente in kleinere Teile splitten (256-512 Tokens)
  2. Embedding: Chunks in numerische Vektoren umwandeln
  3. Indexing: Vektoren in durchsuchbare Datenbank speichern

Phase 2: Online (bei jeder Query)

  1. Query Embedding: User-Frage in Vektor umwandeln
  2. Retrieval: Ähnlichste Dokument-Chunks finden
  3. Augmented Generation: LLM generiert Antwort basierend auf Query + Chunks

Vector Databases

DatabaseTypVorteileNachteile
ChromaDBOpen SourceEinfach, Python-nativWeniger Features
WeaviateOpen SourceHybrid Search, GraphQLKomplexer
QdrantOpen SourceSchnell, Rust-basiertJünger, weniger Docs
PineconeManaged CloudZero Ops, skalierbarKosten, nicht lokal
Neo4jGraph + VektorBeziehungen wichtigRessourcen-intensiv

Embedding Models

ModelDimensionenKostenLokal?
text-embedding-ada-0021536$0.0001/1K TokensNein
text-embedding-3-large3072$0.00013/1KNein
all-MiniLM-L6-v2384KostenlosJa
all-mpnet-base-v2768KostenlosJa
mxbai-embed-large1024KostenlosJa (Ollama)

Best Practices

  1. Chunk Size: 256-512 Tokens — Balance zwischen Kontext und Präzision
  2. Overlap: 50-100 Tokens — Kontext geht nicht verloren an Chunk-Grenzen
  3. Hybrid Search: BM25 (Keyword) + Semantische Suche kombinieren
  4. Reranking: Cross-Encoder nach initial Retrieval für bessere Ergebnisse
  5. Metadata Filtering: Filter nach Datum, Autor, Kategorie ermöglichen

Einfaches RAG Setup mit Ollama

# 1. Ollama mit LangChain/LlamaIndex
pip install langchain langchain-community llama-index

# 2. Einfaches RAG mit LangChain
from langchain_community.document_loaders import TextLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain_community.embeddings import OllamaEmbeddings
from langchain_community.vectorstores import Chroma
from langchain_ollama import ChatOllama
from langchain.chains import RetrievalQA

# Dokumente laden
loader = TextLoader("meine_dokumente.txt")
docs = loader.load()

# Chunking
text_splitter = CharacterTextSplitter(chunk_size=500, chunk_overlap=50)
chunks = text_splitter.split_documents(docs)

# Embedding + Vector Store
embeddings = OllamaEmbeddings(model="nomic-embed-text")
vectorstore = Chroma.from_documents(chunks, embeddings)

# QA Chain
llm = ChatOllama(model="llama3.2")
qa = RetrievalQA.from_chain_type(llm=llm, chain_type="stuff", 
                                   retriever=vectorstore.as_retriever())

# Query
result = qa.run("Was steht in meinen Dokumenten?")
print(result)

Erwartete Ausgabe:

# Beispielausgabe:
# "In Ihren Dokumenten geht es um die Projektplanung für Q1 2026.
# Die Hauptpunkte sind: Budgetfreigabe, Team-Ressourcen und 
# Meilenstein-Definitionen."

Hybrid RAG: BM25 + Vektor

Für beste Ergebnisse kombinieren wir keyword-basierte Suche (BM25) mit semantischer Suche:

# Hybrid Search mit LangChain
from langchain.retrievers import ContextualCompressionRetriever
from langchain.retrievers.document_compressors import LLMChainExtractor
from langchain_community.retrievers import BM25Retriever

# BM25 Retriever (Keyword)
bm25_retriever = BM25Retriever.from_documents(chunks)

# Vector Retriever (Semantic)
vector_retriever = vectorstore.as_retriever(search_kwargs={"k": 5})

# Beide kombinieren
from langchain.retrievers import EnsembleRetriever
ensemble = EnsembleRetriever(
    retrievers=[bm25_retriever, vector_retriever],
    weights=[0.5, 0.5]
)

# Fusion Retrieval (neuere Alternative)
# Alle Ergebnisse mischen und nach Score neu sortieren

Fortgeschritten: Query Transformations

Du kannst die Query vor dem Retrieval verbessern:

# Multi-Query Retrieval
from langchain.retrievers.multi_query import MultiQueryRetriever

# Generiert mehrere Varianten der User-Query
# und führt alle Retrievals zusammen
retriever = MultiQueryRetriever.from_llm(
    retriever=vector_retriever,
    llm=llm
)

# Step-back Prompting
from langchain.prompts import PromptTemplate
step_back_prompt = PromptTemplate.from_template("""
Du bist ein hilfreicher Assistent. 
Frage allgemeiner formuliert: {question}
""")

# HyDE (Hypothetical Document Embeddings)
# LLM generiert hypothetische Antwort → embedden → Retrieval

Unser Hybrid RAG Stack

Wir nutzen:

  • ChromaDB — Vector Store (einfach, Python-nativ)
  • Neo4j — Knowledge Graph für Beziehungen
  • BM25 — Keyword-Suche via Whoosh
  • nomic-embed-text — Lokales Embedding Model
  • LlamaIndex — RAG Framework
  • Ollama — Lokales LLM für Generation

Zusammenfassung

RAG ist der Schlüssel zu lokalen AI-Systemen, die auf dein Wissen zugreifen können. Mit ChromaDB + Ollama hast du ein einfaches Setup. Für Produktion empfehlen wir Hybrid Search (BM25 + Vektor) + Reranking für beste Ergebnisse.

Quellen

Weiterführende Artikel: Ollama Tutorial · Was ist ein LLM? · n8n Workflow Bundle

Für die Umsetzung gibt es Ressourcen auf ai-engineering.at.

Verwandte Artikel

War dieser Artikel hilfreich?

Weiter im Lernpfad

Der Lernpfad bringt diese Artikel in eine Reihenfolge, und der Hub führt die Bausteine, die wir im eigenen Betrieb geprüft haben.

Warum AI Engineering
  • Lokal und selbst gehostet
  • Dokumentiert und prüfbar
  • Aus eigenem Betrieb
  • Made in Austria
Kein Ersatz für Rechtsberatung.