Startseite / Artikel / Praktische Notizen: LlamaIndex RAG – Ein praktischer Leitfaden zum Aufbau intelligenterer KI

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.

3766 Wörter

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

Operative Kontrollliste