Learn AI with Python · Lektion

Ein RAG-Frage-Antwort-System von Anfang bis Ende erstellen

RetrievalQA-Chain, benutzerdefinierte Prompts, Quellenangaben, Evaluierung von RAG mit RAGAS.

Lektion 4 von 413 Schritte

Ein RAG-Frage-Antwort-System von Anfang bis Ende erstellen ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.

Was ist RAG?

Retrieval-Augmented Generation verankert ein LLM in Ihren eigenen Daten. Zum Abfragezeitpunkt rufen Sie relevante Chunks aus einem Vektorspeicher ab und fügen sie in den Prompt ein. So antwortet das Modell auf der Grundlage von Fakten, statt zu raten.

Der RAG-Ablauf

Jede RAG-Abfrage umfasst vier Schritte: (1) die Frage einbetten, (2) ähnliche Chunks abrufen, (3) sie als Kontext in den Prompt einfügen, (4) eine vom Kontext gestützte Antwort durch das LLM generieren lassen.

Einen Speicher in einen Retriever umwandeln

Wandeln Sie Ihren Vektorspeicher mit as_retriever in einen Retriever um. Das Dict search_kwargs steuert den Abruf, vor allem k, die Anzahl der pro Frage abzurufenden Chunks.

retriever = db.as_retriever(
    search_kwargs={"k": 4}
)

search_kwargs abstimmen

Mit search_kwargs können Sie auch einen Schwellenwert für den Score oder MMR-Optionen festlegen. Beginnen Sie mit k=4. Erhöhen Sie den Wert, wenn Antworten Kontext vermissen lassen, oder senken Sie ihn, um Token-Kosten und Rauschen zu reduzieren.

retriever = db.as_retriever(
    search_type="similarity_score_threshold",
    search_kwargs={"k": 6, "score_threshold": 0.5}
)

RetrievalQA-Chain

Die RetrievalQA-Chain verbindet Retrieval und Generierung. Erstellen Sie sie mit from_chain_type und übergeben Sie Ihr llm und Ihren retriever. Mit einem einzigen Aufruf können Sie nun Fragen zu Ihren Dokumenten beantworten.

from langchain.chains import RetrievalQA
from langchain_openai import ChatOpenAI

qa = RetrievalQA.from_chain_type(
    llm=ChatOpenAI(model="gpt-4o"),
    retriever=retriever
)

chain_type: So wird Kontext kombiniert

chain_type legt fest, wie abgerufene Chunks in den Prompt gelangen. "stuff" (Standard) fügt alle Chunks in einen Prompt ein – einfach und optimal, wenn sie in das Kontextfenster passen. Andere Typen wie "map_reduce" verarbeiten viele große Chunks.

qa = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=retriever
)

Eine Frage stellen

Führen Sie die Chain mit invoke aus und übergeben Sie Ihre Frage unter dem Schlüssel query. Die Chain ruft die relevanten Chunks ab, erstellt den Prompt und gibt die faktenbasierte Antwort zurück.

response = qa.invoke({"query": "What is the refund window?"})
print(response["result"])

Quelldokumente zurückgeben

Setzen Sie return_source_documents=True, um die für die Antwort verwendeten Chunks zu erhalten. Dadurch werden Zitate ermöglicht und Benutzer können überprüfen, woher die einzelnen Fakten stammen – entscheidend für Vertrauen.

qa = RetrievalQA.from_chain_type(
    llm=llm,
    retriever=retriever,
    return_source_documents=True
)
resp = qa.invoke({"query": "Refund window?"})
for d in resp["source_documents"]:
    print(d.metadata)

Warum RAG evaluieren?

RAG kann auf zwei Arten fehlschlagen: Das Retrieval ruft die falschen Chunks ab, oder die Generierung halluziniert trotz guter Chunks. Sie benötigen Metriken, um zu erkennen, welchen Teil Sie verbessern müssen. Antworten manuell zu prüfen, lässt sich nicht skalieren.

RAGAS-Metriken

RAGAS ist eine Bibliothek zur Bewertung der RAG-Qualität. Zu den wichtigsten Metriken gehören: faithfulness (die Antwort wird vom Kontext gestützt), answer_relevancy (die Antwort geht auf die Frage ein) und context_precision (die abgerufenen Chunks sind relevant).

pip install ragas

from ragas.metrics import faithfulness, answer_relevancy, context_precision

Eine Evaluation durchführen

Erstellen Sie einen Datensatz mit Fragen, generierten Antworten, abgerufenen Kontexten und Ground-Truth-Antworten und rufen Sie anschließend evaluate auf. Die Scores zeigen Ihnen, ob Sie Chunk-Aufteilung, Retrieval-k oder den Prompt verbessern sollten.

from ragas import evaluate

result = evaluate(
    dataset,
    metrics=[faithfulness, answer_relevancy, context_precision]
)
print(result)

Kurzer Test

Testen Sie Ihr Wissen über RAG.

Zusammenfassung: RAG von Anfang bis Ende

Sie haben eine vollständige RAG-Pipeline erstellt: db.as_retriever mit search_kwargs, eine RetrievalQA.from_chain_type-Chain über Ihr llm und Ihren Retriever sowie return_source_documents=True für Zitate. Außerdem haben Sie gelernt, die Qualität mit RAGAS-Metriken wie Faithfulness und Context Precision zu messen.

Kostenlos starten

Lerne Python mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
53
Lektionen
225

Häufig gestellte Fragen

Ist die Lektion „Ein RAG-Frage-Antwort-System von Anfang bis Ende erstellen“ kostenlos?

Ja — der vollständige Text von „Ein RAG-Frage-Antwort-System von Anfang bis Ende erstellen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Ein RAG-Frage-Antwort-System von Anfang bis Ende erstellen“?

RetrievalQA-Chain, benutzerdefinierte Prompts, Quellenangaben, Evaluierung von RAG mit RAGAS. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Learn AI with Python zu starten?

Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Ein RAG-Frage-Antwort-System von Anfang bis Ende erstellen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?

Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. LangChain-Architektur und LCEL
  2. Dokumente laden, aufteilen und mit Embeddings versehen
  3. Vektorspeicher: Chroma und FAISS
  4. Ein RAG-Frage-Antwort-System von Anfang bis Ende erstellen
← Zurück zu Learn AI with Python