KI und Quelldokumente: Wie man LLM-Halluzinationen stoppt

2026-06-28 · Sintaris · rag, citations, hallucinations, grounding, document-ai, ocr

KI und Quelldokumente: Wie man LLM-Halluzinationen stoppt

TL;DR. LLM-„Halluzination" ist ein Symptom, keine Diagnose. Die Diagnose lautet: schlechtes Retrieval und/oder schlechte Zitation. Dieser Artikel beschreibt, wie man KI-Antworten auf Kundendokumenten so aufbaut, dass jede Aussage einen Verweis auf einen konkreten Abschnitt eines konkreten Dokuments enthält — und jeder Entwickler die Antwort in 10 Sekunden verifizieren kann. Ansatz: citation-mandatory-Generierung + hybrides Retrieval + strukturiertes Ingest + ein solides Eval-Set.

1. Das Problem: „Die KI hat sich das ausgedacht"

Die Szene: Ein KI-Assistent wurde auf Kundendokumenten eingesetzt. Eine Woche später schreibt der Abteilungsleiter: „Er hat gesagt, unsere Vorschrift sagt X. Ich habe die Vorschrift geöffnet — X steht dort nicht. Was machen wir jetzt?"

Wenn die Antwort des Teams lautet: „Nun, das ist eine LLM-Halluzination, das passiert, wir arbeiten am Prompt" — ist das Projekt tot. Der Kunde hat das Vertrauen verloren, und Vertrauen kehrt selten zurück.

Das ist ein lösbares Problem. Die Lösung ist architektonischer Natur, nicht „bitten Sie das LLM, vorsichtiger zu sein." Die Kernidee: Jede Aussage in der Antwort muss einen Verweis auf einen konkreten Chunk eines konkreten Dokuments haben, und der Verweis muss automatisch überprüfbar sein.

2. Für wen das relevant ist

3. Der häufige Fehler

  1. Standard-RAG-Template nehmen: Chunking → Embeddings → top-K → LLM.
  2. Annehmen „das LLM ist klug, es findet die Quellen selbst."
  3. Antworten ohne Zitierungen erhalten. Oder Zitierungen im Stil „gemäß Dokument X" — ohne Seitenzahl.
  4. Wenn der Anwalt fragt „zeigen Sie mir genau wo" — keine Antwort.

Weitere Fallen:

4. Der technische Ansatz: Strukturiertes Ingest + Citation-Mandatory-Generierung

Die Pipeline, wie sie sein sollte:

flowchart LR
  RAW[PDF / DOCX / HTML] --> PARSE[Strukturierter Parser<br/>Seite, Abschnitt, Tabelle]
  PARSE --> CHUNK[Intelligentes Chunking<br/>Struktur respektieren]
  CHUNK --> META[Metadaten-Anreicherung<br/>Seite, Abschnitt, Sprache]
  META --> EMB[Embeddings + FTS]
  EMB --> PG[(Postgres + pgvector)]
  QUERY[Benutzerfrage] --> HYBRID[Hybrides Retrieval<br/>BM25 + Dense + RRF]
  HYBRID --> RERANK[Cross-Encoder Rerank]
  RERANK --> PROMPT[Citation-Mandatory Prompt]
  PROMPT --> LLM[LLM]
  LLM --> VALIDATE[Zitierungs-Validator]
  VALIDATE -- ok --> ANSWER[Antwort mit Markierungen<br/>doc:42#p:18#§:4.2]
  VALIDATE -- fail --> RETRY[Retry mit Top-3 erzwungen]
  RETRY --> VALIDATE

4.1. Strukturierter Parser

Nicht „PDF → Text." Sondern „PDF → Folge von (Seite, Abschnitt, Zeichenbereich, Text, Tabelle?, Bild?)." Dafür:

4.2. Intelligentes Chunking

Regeln, die wir anwenden:

4.3. Citation-Mandatory Prompt

Vorlage (vereinfacht):

Sie antworten nur auf Basis der unten stehenden Fragmente.
Jede Aussage in der Antwort MUSS mit einer Markierung
der Form [doc:ID#chunk:N] enden.
Wenn die Fragmente keine Antwort enthalten — antworten Sie:
„Die bereitgestellten Quellen enthalten keine Antwort auf diese Frage."
Fügen Sie keine Fakten hinzu, die nicht in den Fragmenten stehen.

Fragmente:
[doc:42#chunk:7] (Seite 18, §4.2) ... Text ...
[doc:42#chunk:8] (Seite 19, §4.3) ... Text ...
...

Frage: {frage}

4.4. Post-Validierung

Nach der Generierung — einfacher Code:

def validate_citations(answer: str, allowed_chunk_ids: set[str]) -> bool:
    sentences = split_sentences(answer)
    for s in sentences:
        markers = re.findall(r"\[doc:(\d+)#chunk:(\d+)\]", s)
        if not markers:
            return False  # Satz ohne Zitierung
        for doc_id, chunk_id in markers:
            if f"{doc_id}#{chunk_id}" not in allowed_chunk_ids:
                return False  # Zitierung auf falsche Quelle
    return True

Bei Validierungsfehler — LLM-Wiederholung mit Top-3-Chunks erzwungen und strengerem Prompt. Wenn das auch scheitert — antwortet das System: „Die Quellen enthalten keine Antwort."

5. Tabelle: Kriterien für „echte" Zitierung

Kriterium Schwach Gut Ausgezeichnet
Dokument identifiziert „laut Vorschrift" „laut Vorschrift X" Dok-ID + Name
Seite identifiziert nein am Absatzende pro Satz
Abschnitt identifiziert nein Kapitel Kapitel + Paragraph
Zitierung automatisch prüfbar nein Regex maschinenlesbar + Hyperlink
Verweigerung bei fehlender Quelle nein manchmal immer
Eval-Set für Verweigerungen nein 5–10 Fragen 30+ Sondierungsfragen

6. SINTARIS-Minicase

Worksafety Superassistant — unsere anspruchsvollste Zitierungs-Implementierung. Korpus: ~3000 Seiten Arbeitsschutzvorschriften (RU + EAWU + EU) plus interne SOPs des Kunden.

Was gemacht wurde:

Metriken nach 6 Monaten:

Details: Worksafety § 6 RAG pipeline.

7. Checkliste (15 Punkte) für Citation-Mandatory RAG

  1. Parser erhält Struktur (Seite, Abschnitt, Paragraph) — kein „ganzes PDF als Blob."
  2. Chunking respektiert Struktur — trennt keine Sätze und Tabellen.
  3. Metadaten (Seite, Abschnitt) werden in jedem Chunk gespeichert.
  4. Hybrides Retrieval (BM25 + Dense + RRF) — nicht nur Embeddings.
  5. Cross-Encoder Rerank — Top-12 → Top-5.
  6. Prompt-Vorlage verlangt Zitierungsmarkierungen.
  7. Post-Validierung prüft das Vorhandensein von Markierungen.
  8. Verweigerungsmuster — „nicht in Quellen" als erstklassiges Verhalten.
  9. Eval-Set — mindestens 30 Fragen mit Referenz-Zitierungen.
  10. Sondierungsset für Verweigerungen — mindestens 20 nicht beantwortbare Fragen.
  11. Zitierungsgenauigkeit wird gemessen — in Grafana angezeigt, nicht „manuell manchmal."
  12. Verweigerungsrate wird gemessen — getrennt von der Genauigkeit.
  13. Drift-Monitor — prüft wöchentlich, ob Metriken nicht gesunken sind.
  14. Retrieval-Schwelle — bei Top-1-Score < X wird abgelehnt.
  15. Hyperlinks in Antworten — Benutzer klickt und sieht das Quelldokument.

8. Risiken

9. Was als Nächstes zu tun ist

Wenn Sie bereits einen RAG-Pilot haben, der gelegentlich „lügt" — beginnen Sie mit zwei Schritten:

  1. Citation-mandatory Prompt + Validator einschalten.
  2. Sondierungsset mit 20 Fragen aufbauen, die keine Antwort im Korpus haben, und Verweigerungskorrektheit messen.

Oft reichen diese zwei Schritte aus, um die Qualität von „manchmal richtig" auf „immer entweder richtig oder ehrlich ablehnen" zu heben.

Wenn Sie den vollständigen Zyklus durchlaufen möchten — KI-Pilot über 4–8 Wochen umfasst den Aufbau von citation-mandatory RAG als Standardmuster. Für slowenische Unternehmen −25 % vom 1. bis 30. Juni 2026.

10. Quellen


Sintaris erstellt RAG-Systeme mit überprüfbaren Zitierungen für Unternehmen in der EU und der GUS. Discovery-Call — kostenlos, 30 Minuten.