Praktische Notizen: LlamaIndex RAG – Ein praktischer Leitfaden zum Aufbau intelligenterer KI
Schritt-für-Schritt-Anleitung zu den Praktischen Notizen: LlamaIndex RAG – Ein praktischer Leitfaden zum Aufbau intelligenterer KI: Verträge, Überprüfungen sowie Code-Blöcke für Teams, die dieses Muster einsetzen.
Nutzen Sie dies als für Operator zugängliche Neuformulierung der Ideen aus „LlamaIndex RAG: A Practical Guide to Building Smarter AI Applications“: klare Phasen, geordnete Codeabschnitte sowie Wiederherstellungshinweise, die auch bei Übergaben erhalten bleiben. Die Überblicksphase funktioniert am besten, wenn sie als messbarer Rahmen betrachtet wird. Erfassen Sie vor der Erweiterung des Umfangs ein optimales Transkript, einen Fehlerfall sowie die Notizen zur Rücksetzung. Protokollieren Sie neben den funktionalen Ergebnissen auch die Dauer sowie die Kosten pro Token oder Abfrage. Eine frühzeitige Sichtbarkeit der Kosten verhindert überraschende Rechnungen, wenn der Prozess von einer Demo in gemeinsame Umgebungen übergeht.
Was ist RAG genau?
In der Phase „Was genau ist RAG?“ sollten die Eingaben, der Verantwortliche für den Schritt sowie die Abbruchkriterien definiert werden, bevor der Code geändert wird. Die Operator sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Die Konfiguration sollte außerhalb des Anwendungscode gespeichert werden. Umgebungsdateien, Geheimdatenspeicher und Feature-Flags sollten an einem Ort zusammengefasst sein, den die Operator überprüfen können, ohne den gesamten Ablauf durchzulesen. Zitieren Sie die Passagen, die tatsächlich die Antwort untermauern. Ohne Zitate können die Operator nicht zwischen Halluzinationen und Lücken in der Indizierung unterscheiden.
User
↓
Question
↓
LLM
↓
Answer
User Question
↓
Retrieval
↓
Relevant Documents
↓
LLM Prompt
↓
LLM
↓
Answer
Wo LlamaIndex passt
In der Phase „Wo passt LlamaIndex hin?“ sollten die Eingaben, der Verantwortliche für den Schritt sowie die Abbruchkriterien definiert werden, bevor der Code geändert wird. Die Operator sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Dokumentieren Sie gemeinsam den erfolgreichen Ablauf sowie den Notfallweg. Wiederholungsversuche, menschliche Überprüfungen und die Handhabung von Fehlern gehören zum Produkt selbst und nicht zu späteren Optimierungen. Zitieren Sie die Passagen, die tatsächlich die Antwort begründen. Ohne Zitate können die Operator nicht zwischen Halluzinationen und Lücken bei der Indizierung unterscheiden.
Your Data
│
┌────────────┼────────────┐
↓ ↓ ↓
PDFs Websites Databases
│ │ │
└────────────┼────────────┘
↓
LlamaIndex
↓
Data Ingestion
↓
Chunks
↓
Embeddings
↓
Vector Store
↓
Retriever
↓
Reranker
↓
LLM
↓
Answer
Der LlamaIndex RAG-Pipeline
Für die The LlamaIndex RAG Pipeline-Phase sollten vor dem Ändern des Codes die Eingaben, der Verantwortliche für den Schritt sowie die Beendigungskriterien definiert werden. Die Operator sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Bevorzugen Sie kleine, testbare Einheiten vor umfangreichen Skripten. Wenn ein Schritt fehlschlägt, sollte der Fehler auf eine einzige Verantwortung verweisen und nicht auf ein verworrenes Pipeline-System. Zitieren Sie die Passagen, die tatsächlich die Grundlage für die Antwort bilden. Ohne Zitate können die Operator nicht zwischen Halluzinationen und Lücken im Indexing unterscheiden. Für die The LlamaIndex RAG Pipeline-Phase sollten vor dem Ändern des Codes die Eingaben, der Verantwortliche für den Schritt sowie die Beendigungskriterien definiert werden. Die Operator sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Erhalten Sie neben den funktionalen Ergebnissen auch Aufzeichnungen über die Dauer sowie die Kosten pro Token oder Abfrage. Eine frühzeitige Sichtbarkeit der Kosten verhindert überraschende Rechnungen, wenn der Prozess von einer Demo in eine gemeinsam genutzte Umgebung übergeht.
Umgebungen.Documents
↓
Loading
↓
Parsing
↓
Chunking
↓
Indexing
↓
Retrieval
↓
Context Selection
↓
Generation
1. Laden Sie Ihre Daten
Beim Bearbeiten der Phase „Laden Sie Ihre Daten“ sollten Sie zunächst den Vertrag aufschreiben: erforderliche Eingaben, Erfolgszeichen sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Bewahren Sie die Konfiguration außerhalb des Anwendungscode auf. Umgebungsdateien, Geheimdatenspeicher und Feature-Flags sollten an einem Ort gesammelt sein, den Betreiber ohne das Durchlesen des gesamten Systems überprüfen können. Messen Sie die Trefferquote anhand einer festgelegten Fragestellung, bevor Sie die Anfragen anpassen. Eine Änderung der Anfragen behebt selten ein schwaches Abrufverhalten.
PDFs
Markdown
Web pages
Notion
Google Drive
SQL databases
APIs
CSV files
documents = load_documents("data/")
Offline / ingestion time
↓
Prepare the knowledge
Online / query time
↓
Retrieve the knowledge
2. Teilen Sie Dokumente in Blöcke auf
Beim Bearbeiten des Schritts „Dokumente in 2 Teile aufteilen“ sollten Sie zunächst den Vertrag festhalten: erforderliche Eingaben, Erfolgsindikatoren sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Dokumentieren Sie sowohl den erfolgreichen Ablauf als auch den Notfallplan gemeinsam. Wiederholte Versuche, menschliche Überprüfungen sowie die Handhabung von Fehlern gehören zum Produkt selbst und nicht zu späteren Optimierungen. Messen Sie die Trefferquote anhand eines festgelegten Fragekatalogs, bevor Sie die Anfragenanweisungen anpassen – eine häufige Änderung dieser Anweisungen behebt in der Regel nicht ein schwaches Suchsystem.
Document
↓
Chapter
↓
Section
↓
Paragraph
↓
Chunk
chunks = split_document(
document,
chunk_size=512,
)
Huge chunk
↓
Lots of irrelevant information
↓
Large prompt
↓
Higher latency
Tiny chunk
↓
Missing context
↓
Poor retrieval
3. Embeddings erstellen
Beim Durchlaufen der 3 Phasen „Create Embeddings“ sollten Sie zunächst den Vertrag aufschreiben: erforderliche Eingaben, Erfolgszeichen sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Ziehen Sie kleine, testbare Einheiten vor großen Skripten vor. Wenn ein Schritt fehlschlägt, sollte der Fehler auf eine einzige Verantwortung verweisen und nicht auf ein verworrenes Ablaufverfahren. Messen Sie die Trefferquote anhand eines festgelegten Fragekatalogs, bevor Sie die Anfragen anpassen. Häufige Änderungen der Anfragen beheben selten ein schwaches Suchverhalten. Beim Durchlaufen der 3 Phasen „Create Embeddings“ sollten Sie zunächst den Vertrag aufschreiben: erforderliche Eingaben, Erfolgszeichen sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Notieren Sie die Laufzeiten sowie die Kosten pro Token oder Abfrage neben den funktionalen Ergebnissen. Eine frühzeitige Sichtbarkeit der Kosten verhindert überraschende Rechnungen, wenn der Prozess von einer Demo-Umgebung in gemeinsam genutzte Umgebungen übergeht.
"How can I reset my password?"
"What should I do if I forgot my login credentials?"
Text
↓
Embedding Model
↓
[0.12, -0.42, 0.81, ...]
4. Speichern der Vektoren
Die Phase des Speicherns der Vektoren funktioniert am besten, wenn sie als messbare Struktur betrachtet wird. Erfassen Sie ein gelungenes Beispiel, einen Fehlerfall sowie die Notizen zum Rollback, bevor der Umfang erweitert wird. Bewahren Sie die Konfiguration außerhalb des Anwendungscode auf. Umgebungsdateien, Geheimdatenspeicher und Feature-Flags sollten an einem Ort gesammelt sein, den Betreuer ohne Durchsicht des gesamten Systems prüfen können. Trennen Sie die Strategie zur Aufteilung in Blöcke von der Strategie zum Abrufen. Eine Änderung sollte nicht dazu führen, dass die andere bei sich ändernden Qualitätsmetriken neu geschrieben werden muss.
Document
↓
Chunk
↓
Embedding
↓
Vector Store
Vector Store
ID Vector Metadata
--------------------------------
001 [....] product=api
002 [....] product=web
003 [....] product=mobile
document_id
page_number
department
product
version
created_at
tenant_id
access_level
5. Abrufen relevanter Informationen
Die Phase „5 Relevante Informationen abrufen“ funktioniert am besten, wenn sie als messbarer Bereich betrachtet wird. Erfassen Sie vor Erweiterung des Umfangs ein „goldenes“ Transkript, einen Fehlerfall sowie die Notizen zur Rücksetzung. Dokumentieren Sie gleichzeitig den erfolgreichen Ablauf sowie den Wiederherstellungsprozess. Versuche, menschliche Überprüfungen und die Handhabung von Fehlnachrichten gehören zum Produkt selbst, nicht zu späteren Optimierungen. Trennen Sie die Strategie zur Aufteilung in Blöcke von der Strategie zum Abrufen. Ein Änderungsbedarf bei einer dieser Strategien sollte nicht dazu führen, dass die andere neu geschrieben werden muss, wenn sich die Qualitätsmetriken ändern.
Question
↓
Query Embedding
↓
Vector Search
Top 5 Results
1. API Authentication Guide
2. OAuth Configuration
3. API Token Documentation
4. Authentication Troubleshooting
5. Security Configuration
6. Die abgerufenen Dokumente in Kontext setzen
Die Phase „6 Turn Retrieved Documents“ funktioniert am besten, wenn sie als messbarer Bereich betrachtet wird. Erfassen Sie vor Erweiterung des Umfangs ein „goldenes Transkript“, einen Fehlerfall sowie eine Notiz zur Rücksetzung. Ziehen Sie kleine, testbare Einheiten vor umfangreichen Skripten vor. Wenn ein Schritt fehlschlägt, sollte der Fehler auf eine einzige Verantwortung verweisen und nicht auf ein verworrenes Ablaufverfahren. Trennen Sie die Strategie zur Aufteilung in Blöcke von der Strategie zur Abrufung. Änderungen an einer Seite sollten nicht dazu führen, dass die andere neu geschrieben werden muss, wenn sich die Qualitätsmetriken ändern. Die Phase „6 Turn Retrieved Documents“ funktioniert am besten, wenn sie als messbarer Bereich betrachtet wird. Erfassen Sie vor Erweiterung des Umfangs ein „goldenes Transkript“, einen Fehlerfall sowie eine Notiz zur Rücksetzung. Erhalten Sie neben den funktionalen Ergebnissen auch Aufzeichnungen zu Laufzeiten sowie Kosten für Token oder Abfragen. Eine frühzeitige Sichtbarkeit der Kosten verhindert überraschende Rechnungen, wenn der Prozess von einer Demo in gemeinsame Umgebungen übergeht.
User Question
+
Retrieved Context
↓
Prompt
↓
LLM
System:
Answer using the supplied context.
Context:
[Relevant document 1]
[Relevant document 2]
[Relevant document 3]
Question:
How do I configure API authentication?
7. Erstellen Sie die Antwort
In der Phase „7 Generate the Answer“ sollten die Eingaben, der Verantwortliche für den Schritt sowie die Abbruchkriterien definiert werden, bevor der Code geändert wird. Die Operator sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Die Konfiguration sollte außerhalb des Anwendungscode gespeichert werden. Umgebungsdateien, Geheimdatenspeicher sowie Feature-Flags sollten an einem Ort zusammengefasst sein, den die Operator überprüfen können, ohne den gesamten Ablauf durchzulesen. Zitieren Sie die Passagen, die tatsächlich die Grundlage für die Antwort bilden. Ohne Zitate können die Operator nicht zwischen Halluzinationen und Lücken in der Indizierung unterscheiden.
Question
+
Relevant Context
User
↓
Query
↓
Query Embedding
↓
Vector Retrieval
↓
Relevant Chunks
↓
Context Assembly
↓
LLM
↓
Answer
LlamaIndex ist mehr als nur „Vektorabfrage + LLM“
Für die Phase „LlamaIndex Is More Than“ sollten Eingaben, der Verantwortliche für den Schritt sowie die Abbruchkriterien vor dem Ändern des Codes definiert werden. Die Operator sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Dokumentieren Sie sowohl den erfolgreichen Ablauf als auch den Notfallweg gemeinsam. Wiederholungsversuche, menschliche Überprüfungen sowie die Handhabung von Fehlern gehören zum Produkt selbst und nicht zu späteren Optimierungen. Verwenden Sie bei dem nächsten Schritt, der ein Code-Aufruf oder eine Tool-Anfrage ist, lieber strukturierte Ausgaben mit Schema-Validierung statt freier Prosa.
Query
↓
Vector Search
↓
Top 5 Documents
↓
LLM
Query
↓
Query Processing
↓
┌─────────┴─────────┐
↓ ↓
Dense Search Keyword Search
↓ ↓
└─────────┬─────────┘
↓
Fusion
↓
Rerank
↓
Context Selection
↓
LLM
Abfragesysteme: Die Umwandlung von Informationsabruf in ein Frage-Antwort-System
Für die Phase „Abfragemaschinen – Datenabruf“ sollten vor dem Ändern des Codes die Eingaben, der Verantwortliche für den Schritt sowie die Beendigungskriterien definiert werden. Die Bediener sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Bevorzugen Sie kleine, testbare Einheiten vor umfangreichen Skripten. Wenn ein Schritt fehlschlägt, sollte der Fehler auf eine einzige Verantwortungsbereich hinweisen und nicht auf ein verworrenes Ablaufverfahren. Zitieren Sie die Passagen, die tatsächlich die Antwort untermauern. Ohne Zitate können die Bediener nicht zwischen Halluzinationen und Lücken im Indexing unterscheiden. Für die Phase „Abfragemaschinen – Datenabruf“ sollten vor dem Ändern des Codes die Eingaben, der Verantwortliche für den Schritt sowie die Beendigungskriterien definiert werden. Die Bediener sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Erhalten Sie neben den funktionalen Ergebnissen auch Aufzeichnungen über die Laufzeiten sowie die Kosten pro Token oder Abfrage. Eine frühzeitige Sichtbarkeit der Kosten verhindert überraschende Rechnungen, wenn der Ablauf von einer Demo-Version in die Produktivversion wechselt.
geteilte Umgebungen.query_embedding = embed(query)
documents = search(query_embedding)
context = build_context(documents)
answer = llm.generate(
query=query,
context=context,
)
query_engine = index.as_query_engine()
response = query_engine.query(
"How does authentication work?"
)
Dort versagen viele RAG-Systeme
Wenn Sie die Phase „Dort versagen viele“ durchgehen, notieren Sie zunächst den Vertrag: erforderliche Eingaben, Erfolgszeichen sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Bewahren Sie die Konfiguration außerhalb des Anwendungscode auf. Umgebungsdateien, Geheimdatenspeicher und Feature-Flags sollten an einem Ort gesammelt sein, den Betreiber ohne das Durchlesen des gesamten Systems prüfen können. Messen Sie die Erinnerungskraft anhand einer festgelegten Fragestellung, bevor Sie die Prompts anpassen. Prompt-Änderungen beheben selten ein schwaches Retrieval-System.
User Question
↓
Bad Retrieval
↓
Wrong Context
↓
LLM
↓
Bad Answer
Verbessern Sie das Retrieval mit Metadaten
Beim Arbeiten an der Phase „Verbesserte Suche mit Metadaten“ sollten Sie zunächst den Vertrag festhalten: erforderliche Eingaben, Signal für Erfolg sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Dokumentieren Sie gleichzeitig den erfolgreichen Ablauf sowie den Notfallweg. Wiederholte Versuche, menschliche Überprüfungen und die Handhabung von Fehlern gehören zum Produkt selbst, nicht zu späteren Optimierungen. Messen Sie die Erinnerungsrate anhand eines festgelegten Fragekatalogs, bevor Sie die Anfragen anpassen – eine häufige Änderung der Anfragen behebt selten ein schwaches Suchverhalten.
Product A
Product B
Product C
product = Product B
version = 3
document_type = documentation
Entire Knowledge Base
↓
Metadata Filter
↓
Relevant Subset
↓
Semantic Search
Hybride Suche kann besser sein als reine Vektorsuche
Wenn Sie die Phase „Hybrid Search Can Be“ durcharbeiten, notieren Sie zunächst den Vertrag: erforderliche Eingaben, Erfolgszeichen sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Ziehen Sie kleine, testbare Einheiten vor großen Skripten vor. Wenn ein Schritt fehlschlägt, sollte der Fehler auf eine einzige Verantwortung verweisen und nicht auf ein verworrenes Ablaufschema. Messen Sie die Trefferquote anhand eines festgelegten Fragekatalogs, bevor Sie die Anfragen anpassen. Eine häufige Änderung der Anfragen behebt selten ein schwaches Suchsystem. Wenn Sie die Phase „Hybrid Search Can Be“ durcharbeiten, notieren Sie zunächst den Vertrag: erforderliche Eingaben, Erfolgszeichen sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Erhalten Sie neben den funktionalen Ergebnissen auch Angaben zu Laufzeiten sowie Kosten pro Token oder Anfrage. Eine frühzeitige Sichtbarkeit der Kosten verhindert überraschende Rechnungen, wenn der Prozess von einer Demo in gemeinsame Umgebungen übergeht.
ERR_CONNECTION_RESET_502
Dense Retrieval
+
Sparse Retrieval
↓
Result Fusion
↓
Reranking
Reranking: Mehr Rechenleistung nur für die besten Kandidaten einsetzen
Die Phase „Mehr Rechenleistung einsetzen“ beim Reranking funktioniert am besten, wenn sie als messbare Größe betrachtet wird. Erfassen Sie vor der Erweiterung des Umfangs ein Beispiel für einen erfolgreichen Ablauf, einen Fehlerfall sowie eine Notiz zur Rücksetzung. Bewahren Sie die Konfiguration außerhalb des Anwendungscode auf. Umgebungsdateien, Geheimdatenspeicher und Feature-Flags sollten an einem Ort gesammelt sein, den Betreiber ohne das Durchlesen des gesamten Systems überprüfen können. Trennen Sie die Strategie zur Aufteilung in Blöcke von der Strategie zur Abrufung. Eine Änderung an einer sollte nicht dazu führen, dass die andere neu geschrieben werden muss, wenn sich die Qualitätsmetriken ändern.
Top 20 documents
Vector Search
↓
20 candidates
↓
Reranker
↓
Top 5
↓
LLM
Retriever
→ Find potentially relevant documents
Reranker
→ Determine which are actually relevant
LLM
→ Use those documents to answer
Kontext ist eine begrenzte Ressource
Der Kontext einer eingeschränkten Phase funktioniert am besten, wenn er als messbare Oberfläche betrachtet wird. Erfassen Sie einen erfolgreichen Fall, einen Fehlerfall sowie die Notizen zur Rücksetzung, bevor Sie den Umfang erweitern. Dokumentieren Sie gleichzeitig den erfolgreichen Ablauf und den Wiederherstellungsprozess. Versuche, menschliche Überprüfungen sowie die Handhabung von Fehlnachrichten gehören zum Produkt selbst und nicht zu späteren Optimierungen. Trennen Sie die Strategie zur Aufteilung in Blöcke von der Strategie zum Abrufen. Ein Änderungsbedarf bei einer dieser Strategien sollte nicht dazu führen, dass die andere neu geschrieben werden muss, wenn sich die Qualitätsmetriken ändern.
20 chunks
×
500 tokens
=
10,000 tokens
Retrieve 20
↓
Rerank
↓
Keep 5
↓
Compress
↓
Send 2,500 tokens
LlamaIndex RAG für PDFs
Die LlamaIndex RAG für PDFs-Funktion funktioniert am besten, wenn sie als messbarer Bereich betrachtet wird. Erfassen Sie vor der Erweiterung des Umfangs ein optimales Transkript, einen Fehlerfall sowie eine Notiz zur Rücksetzung. Ziehen Sie kleine, testbare Einheiten vor umfangreichen Skripten vor. Wenn ein Schritt fehlschlägt, sollte der Fehler auf eine einzige Verantwortung verweisen und nicht auf einen verworrenen Ablauf. Trennen Sie die Chunking-Strategie von der Abrufstrategie. Eine Änderung sollte nicht dazu führen, dass die andere neu geschrieben werden muss, wenn sich die Qualitätsmetriken ändern. Die LlamaIndex RAG für PDFs-Funktion funktioniert am besten, wenn sie als messbarer Bereich betrachtet wird. Erfassen Sie vor der Erweiterung des Umfangs ein optimales Transkript, einen Fehlerfall sowie eine Notiz zur Rücksetzung. Protokollieren Sie die Laufzeiten sowie die Kosten pro Token oder Abfrage zusammen mit den funktionalen Ergebnissen. Eine frühzeitige Sichtbarkeit der Kosten verhindert überraschende Rechnungen, wenn der Einsatzbereich von einer Demo in gemeinsame Umgebungen wechselt.
PDF Files
↓
Document Loading
↓
Text Extraction
↓
Chunking
↓
Embeddings
↓
Vector Store
↓
Retriever
↓
LLM
Company Handbook
↓
Employee Documentation
↓
HR Policies
↓
Benefits
↓
Leave Policies
LlamaIndex RAG für KI-Anwendungen
Für die LlamaIndex RAG for AI-Phase sollten Eingaben, der Verantwortliche für den Schritt sowie die Abbruchkriterien vor dem Ändern des Codes definiert werden. Die Operator sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Die Konfiguration sollte außerhalb des Anwendungscode gespeichert werden. Umgebungsdateien, Geheimdatenspeicher sowie Feature-Flags sollten an einem Ort zusammengefasst sein, den die Operator überprüfen können, ohne den gesamten Ablaufverlauf durchlesen zu müssen. Zitieren Sie die Passagen, die tatsächlich der Grundlage für die Antwort waren. Ohne Zitate können die Operator nicht zwischen Halluzinationen und Lücken in der Indizierung unterscheiden.
User
↓
RAG
↓
Answer
User
↓
Agent
↓
┌─────────┼─────────┐
↓ ↓ ↓
RAG Database API
↓ ↓ ↓
└─────────┼─────────┘
↓
LLM
↓
Answer
RAG-Latenz ist wichtig
In der RAG Latency Matters-Phase sollten Eingaben, der Verantwortliche für den Schritt sowie die Abbruchkriterien vor dem Codeändern definiert werden. Die Operator sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf versteckte Zustände schließen zu müssen. Dokumentieren Sie gemeinsam den erfolgreichen Ablauf sowie den Notfallweg. Wiederholte Versuche, menschliche Überprüfungen und die Handhabung von Fehlern gehören zum Produkt selbst, nicht zu späteren Optimierungen. Zitieren Sie die Passagen, die tatsächlich die Antwort begründen. Ohne Zitate können die Operator nicht zwischen Halluzinationen und Lücken in der Indizierung unterscheiden.
Query
↓
Embedding API
↓
Vector Database
↓
Reranker
↓
LLM
Nur weniger Dokumente abrufen
Für die Phase „Weniger Dokumente abrufen“ sollten vor dem Ändern des Codes die Eingaben, der Verantwortliche für diesen Schritt sowie die Abbruchkriterien definiert werden. Die Bediener sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf verborgene Zustände schließen zu müssen. Bevorzugen Sie kleine, testbare Einheiten vor umfangreichen Skripten. Wenn ein Schritt fehlschlägt, sollte der Fehler auf eine einzige Verantwortungsbereich hinweisen und nicht auf ein verworrenes Ablaufverfahren. Zitieren Sie die Passagen, die tatsächlich die Antwort untermauern. Ohne Zitate können die Bediener nicht zwischen Halluzinationen und Lücken im Indexing unterscheiden. Für die Phase „Weniger Dokumente abrufen“ sollten vor dem Ändern des Codes die Eingaben, der Verantwortliche für diesen Schritt sowie die Abbruchkriterien definiert werden. Die Bediener sollten in der Lage sein, den Schritt von einem bekannten Checkpoint aus erneut auszuführen, ohne auf verborgene Zustände schließen zu müssen. Erhalten Sie neben den funktionalen Ergebnissen auch Aufzeichnungen über die Laufzeiten sowie die Kosten für Tokens oder Abfragen. Eine frühzeitige Sichtbarkeit der Kosten verhindert überraschende Rechnungen, wenn der Ablauf von einer Demo-Umgebung in eine gemeinsame Umgebung wechselt.
Entsprechend.Verwenden Sie Metadatenfilter
Während der Phase „Verwenden Sie Metadatenfilter“ sollten Sie zunächst den Vertrag aufschreiben: erforderliche Eingaben, Erfolgsindikatoren sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Bewahren Sie die Konfiguration außerhalb des Anwendungscode auf. Umgebungsdateien, Geheimdatenspeicher und Feature-Flags sollten an einem Ort gesammelt sein, den Betreiber ohne das Durchlesen des gesamten Systems überprüfen können. Messen Sie die Trefferquote anhand einer festgelegten Fragestellung, bevor Sie die Anfragen anpassen. Eine Änderung der Anfragen behebt selten ein schwaches Abrufsystem.
Parallelisieren Sie unabhängige Abrufe
Beim Arbeiten an der Phase zur Parallelisierung unabhängiger Abfragen sollten Sie zunächst den Vertrag festhalten: erforderliche Eingaben, Erfolgsignal sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Dokumentieren Sie sowohl den erfolgreichen Ablauf als auch den Wiederherstellungsprozess gemeinsam. Wiederholte Versuche, menschliche Überprüfungen sowie die Handhabung von Fehlern gehören zum Produkt selbst und nicht zu späteren Optimierungen. Messen Sie die Trefferquote anhand eines festgelegten Fragekatalogs, bevor Sie die Anfragen anpassen – eine häufige Änderung der Anfragen behebt in der Regel nicht ein schwaches Abfrageverhalten.
Dense ──────┐
├──→ Fusion
Sparse ─────┘
Dense
↓
Sparse
↓
Fusion
Verkleinern Sie die Größe der Anfragen
Beim Bearbeiten der Phase zur Verringerung der Prompt-Größe sollten Sie zunächst den Vertrag aufschreiben: erforderliche Eingaben, Erfolgsignal sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Ziehen Sie kleine, testbare Einheiten vor großen Skripten. Wenn ein Schritt fehlschlägt, sollte der Fehler auf eine einzige Verantwortung verweisen und nicht auf ein verworrenes Ablaufschema. Cachen Sie stabile Systemanweisungen sowie Tool-Schemata. Das erneute Senden identischer Vorlagen ist eine häufige Ursache für Ressourcenverschwendung. Beim Bearbeiten der Phase zur Verringerung der Prompt-Größe sollten Sie zunächst den Vertrag aufschreiben: erforderliche Eingaben, Erfolgssignal sowie das Vorgehen bei teilweisen Fehlern. Diese Checkliste sorgt dafür, dass spätere Codeänderungen transparent bleiben. Notieren Sie die Laufzeiten sowie die Kosten für Tokens oder Abfragen neben den funktionalen Ergebnissen. Eine frühzeitige Sichtbarkeit der Kosten verhindert überraschende Rechnungen, wenn der Ablauf von einer Demo in gemeinsame Umgebungen wechselt.
Antwort streamen
Die Antwortverarbeitungsphase funktioniert am besten, wenn sie als messbare Ebene betrachtet wird. Erfassen Sie einen erfolgreichen Fallbeispiel-Transkript, einen Fehlerfall sowie die Notizen zum Rollback, bevor Sie den Umfang erweitern. Bewahren Sie die Konfiguration außerhalb des Anwendungscode auf. Umgebungsdateien, Geheimdatenspeicher und Feature-Flags sollten an einem Ort gesammelt sein, den Betreuer ohne das Durchlesen des gesamten Systems überprüfen können. Trennen Sie die Chunking-Strategie von der Abrufstrategie. Ein Änderung in einer sollte nicht dazu führen, dass die andere neu geschrieben werden muss, wenn sich die Qualitätsmetriken ändern.
RAG geht nicht nur um Genauigkeit
RAG funktioniert am besten, wenn es als messbare Oberfläche betrachtet wird. Erfassen Sie einen erfolgreichen Fall, einen Fehlerfall sowie die Notizen zur Rücksetzung, bevor Sie den Umfang erweitern. Dokumentieren Sie gleichzeitig den erfolgreichen Ablauf und den Wiederherstellungsprozess. Versuche, menschliche Überprüfungen sowie die Handhabung von Fehlern gehören zum Produkt selbst und nicht zu späteren Optimierungen. Trennen Sie die Strategie zur Aufteilung in Blöcke von der Strategie zur Abrufung. Ein Änderungsbedarf bei einer dieser Strategien sollte nicht dazu führen, dass die andere neu geschrieben werden muss, wenn sich die Qualitätsmetriken ändern.
RAG Quality
│
┌────────────┼────────────┐
↓ ↓ ↓
Retrieval Generation System
Quality Quality Performance
│ │ │
Recall Faithfulness Latency
Precision Relevance Cost
Ranking Completeness Reliability
Häufige Fehler bei der Erstellung von LlamaIndex RAG
Die häufigsten Fehler bei der Erstellung von Staging-Umgebungen lassen sich am besten bewältigen, wenn sie als messbare Struktur betrachtet werden. Erfassen Sie vor der Erweiterung des Umfangs ein Beispiel für einen erfolgreichen Ablauf, einen Fehlerfall sowie eine Notiz zur Rücksetzung. Ziehen Sie kleine, testbare Einheiten vor umfangreichen Skripten vor. Wenn ein Schritt fehlschlägt, sollte der Fehler auf eine einzige Verantwortungsbereich verweisen und nicht auf ein verworrenes Ablaufschema. Trennen Sie die Strategie zur Aufteilung in Teile von der Strategie zum Abrufen. Ein Änderungsbedarf bei einer dieser Strategien sollte nicht dazu führen, dass die andere neu geschrieben werden muss, wenn sich die Qualitätsmetriken ändern.
Fehler 1: Das LLM als gesamtes System zu betrachten
Fehler 1: Die Phase sollte am besten als messbarer Bereich betrachtet werden. Erfassen Sie ein „goldenes“ Transkript, einen Fehlerfall sowie eine Notiz zur Rücksetzung, bevor Sie den Umfang erweitern. Betrachten Sie diese Phase als Vertrag zwischen Eingaben und validierten Ausgaben. Benennen Sie die Artefakte, definieren Sie Erfolgskontrollen und lehnen Sie stille, unvollständige Abschlüsse ab. Legen Sie Budgets für Tokens pro Runde und pro Sitzung fest. Agentenbasierte Tools erweitern den Kontext aggressiv; feste Obergrenzen verhindern, dass Demos zu unerwarteten Rechnungen werden.
Fehler 2: Verwendung riesiger Datenmengen
Fehler 2: Die Verwendung großer Datensätze in der Phase funktioniert am besten, wenn sie als messbarer Bereich betrachtet wird. Erfassen Sie ein „goldenes“ Transkript, einen Fehlerfall sowie eine Notiz zur Rücksetzung, bevor Sie den Umfang erweitern. Erhalten Sie Aufzeichnungen zu Zeiten sowie Kosten für Tokens oder Abfragen neben den funktionalen Ergebnissen. Frühzeitige Sichtbarkeit der Kosten verhindert unerwartete Rechnungen, wenn der Prozess von einer Demo in gemeinsame Umgebungen übergeht.
Fehler 3: Zu viel Datenabruf
Fehler 4: Ignorieren von Metadaten
Fehler 5: Überspringen der Bewertung
Fehler 6: Annahme, dass Vektorabfragen ausreichen
Eine für die Produktion geeignete LlamaIndex RAG-Architektur
User Query
│
▼
Query Processing
│
▼
Query Router
│
┌──────────────┴──────────────┐
│ │
Direct Answer Retrieval Needed
│
▼
Metadata Filtering
│
┌──────────────────┴──────────────────┐
▼ ▼
Dense Search Sparse Search
│ │
└──────────────────┬──────────────────┘
▼
Fusion
│
▼
Rerank
│
▼
Context Selection
│
▼
LLM
│
▼
Response
Beginnen mit der einfachsten möglichen RAG-Lösung
Documents
↓
Chunk
↓
Embed
↓
Vector Store
↓
Retrieve
↓
LLM
Add metadata
Add hybrid retrieval
Add reranking
Add context compression
Cache + parallelize + reduce retrieval
Die wahre Stärke von LlamaIndex
Documents
Databases
APIs
Knowledge Bases
Search Systems
Structured Data
Unstructured Data
LLM
AI Application
│
┌────────────────┼────────────────┐
↓ ↓ ↓
LLM Tools Data
│ │
└───────┬────────┘
↓
Retrieval
↓
Context
↓
LLM
Zusammenfassung
Data
↓
Ingestion
↓
Indexing
↓
Retrieval
↓
Context
↓
LLM
↓
Answer