Zum Inhalt springen
Service status

Tippen, um zu suchen

Technische Dokumentation · 11 Min. Lesezeit

OCR-Pipeline

Wie Intric aus einem hochgeladenen Dokument einen durchsuchbaren Index macht: layoutgetreue Extraktion, OCR, Bildbeschreibung, Zusammenfassung, Chunking und die Retrieval-Tools, die darauf aufbauen.

Hängst du eine Datei an einen Assistenten an, zieht Intric nicht einfach den Text heraus und zerschneidet ihn in Stücke. Intric arbeitet das Dokument in mehreren Stufen durch. Stellt dann jemand eine Frage, weiß der Assistent bereits, worum es in der Datei geht, findet Passagen über den genauen Wortlaut oder über ihre Bedeutung und kann sich Seite für Seite durch das Dokument bewegen. Dieser Artikel beschreibt die einzelnen Stufen auf technischer Ebene. Was das für deine Arbeit mit einem Assistenten bedeutet, erfährst du unter Wie Intric deine Dokumente durchsucht.

Viele Retrieval-Systeme folgen demselben Muster: Sie extrahieren den Rohtext, zerschneiden ihn in Stücke fester Länge, wandeln jedes Stück in einen Vektor um und fügen die ähnlichsten paar Stücke in den Prompt ein. Für kurze Fragen zu kurzen Dokumenten reicht das. Bei dem Material, mit dem Organisationen tatsächlich arbeiten, stößt dieses Verfahren an seine Grenzen:

  • Eine gescannte Seite enthält keinen Text, den ein solches System extrahieren könnte. Sie trägt deshalb unbemerkt nichts bei.
  • Diagramme, Flussdiagramme und Infografiken fallen weg, selbst wenn genau dort die Antwort steht.
  • Eine in der Mitte zerschnittene Tabelle verliert die Verbindung zwischen Kopfzeile und Zeilen.
  • Eine Frage zu einem ganzen Kapitel liefert nur eine Handvoll zusammenhangloser Fragmente.
  • Sind Dutzende Dateien angehängt, läuft jede Suche über alles, und schwache Treffer aus irrelevanten Dateien verdrängen die richtige.

Jede der folgenden Stufen löst eines dieser Probleme.

Intric beginnt mit der Verarbeitung, sobald eine Datei angehängt ist, und arbeitet sie im Hintergrund in mehreren voneinander abhängigen Jobs ab:

  1. Extraktion – Intric liest das Dokument Seite für Seite. Seiten, bei denen es nötig ist, laufen durch die OCR; Abbildungen gehen an ein Vision-Modell.
  2. Zusammenfassung – Intric schreibt eine kurze Zusammenfassung der gesamten Datei.
  3. Chunking und Indexierung – Intric teilt den Text in kleine Passagen, versieht jede mit ihrer Position im Dokument und indexiert sie für die Stichwortsuche und die semantische Suche.

Zusammenfassung und Indexierung starten beide, sobald die Extraktion abgeschlossen ist, und laufen gleichzeitig. Große PDFs teilt Intric in Abschnitte auf, extrahiert sie parallel und setzt sie danach in der richtigen Reihenfolge wieder zusammen.

OCR ist langsamer und ungenauer, als eine vorhandene Textebene auszulesen. Deshalb wendet Intric OCR nicht auf alles an. Intric prüft jede Seite einzeln und schickt sie nur dann in die OCR, wenn sich nicht darauf verlassen lässt, dass ihre Textebene vollständig ist. Das ist zum Beispiel der Fall, wenn:

  • die Seite keine Textebene hat, wie bei einem gescannten Dokument
  • der eingebettete Text verstümmelt ist oder nur einen Teil dessen abdeckt, was auf der Seite steht
  • die Seite Bilder enthält, die groß genug für eigene Inhalte sind
  • die Seite Anmerkungen oder eine Tabelle ohne sichtbare Rahmenlinien enthält

Seiten mit sauberer Textebene liest Intric direkt aus. Ein Dokument, das teils digital erstellt und teils gescannt ist, verarbeitet Intric deshalb Seite für Seite richtig, statt es pauschal als das eine oder das andere zu behandeln.

Bei der Extraktion bleiben die Teile einer Seite erhalten, deren Bedeutung von ihrer Position abhängt:

  • Tabellen erkennt Intric und baut sie als strukturierte Tabellen neu auf. So bleibt jeder Wert seiner Spaltenüberschrift zugeordnet.
  • Formularfelder – angekreuzte Kontrollkästchen und ausgefüllte Textfelder – übernimmt Intric in den Text. Ein ausgefülltes Formular liest sich also auch als ausgefülltes.
  • Seitengrenzen bleiben exakt erhalten. Genau das ermöglicht später Quellenangaben auf Seitenebene.

Enthält eine Seite eine Abbildung – ein Schaubild, ein Diagramm, eine abfotografierte Tabelle, eine Infografik –, schneidet Intric diesen Bereich aus und übergibt ihn an ein Vision-Language-Modell. Das Modell beschreibt in Worten, was die Abbildung zeigt:

  • Text im Bild gibt es wörtlich wieder.
  • Bei Schaubildern beschreibt es die einzelnen Elemente und wie sie zusammenhängen.
  • Tabellen in Bildern wandelt es in strukturierte Daten um.
  • Bei Diagrammen beschreibt es Achsen und Datenpunkte.
  • Fotos, Zeichnungen wie Grundrisse und Schriftproben beschreibt es nach dem, was darauf zu sehen ist, statt sie auf ihre Bildunterschrift zu reduzieren.

Intric fügt die Beschreibung an der Stelle der Abbildung in die Seite ein. Dadurch steht sie im richtigen Zusammenhang, und Intric indexiert sie wie jeden anderen Text. Steht die Antwort auf eine Frage nur in einem Flussdiagramm, kann der Assistent sie trotzdem beantworten und dabei auf genau diese Seite verweisen.

Die Beschreibung von Abbildungen ist optional. Ist in einer Installation kein Vision-Modell konfiguriert, funktioniert die Extraktion trotzdem, bleibt aber auf Text beschränkt.

Dateityp So liest Intric ihn
PDF Vollständige Pipeline wie oben beschrieben, einschließlich OCR und Beschreibung von Abbildungen
Word, PowerPoint Direkte Extraktion von Text und Struktur
Klartext, Markdown, HTML, RTF, JSON und ähnliche Formate Einlesen als Text
Excel, CSV Eigener Verarbeitungsweg, siehe Tabellenkalkulationen

Für jede Datei schreibt Intric eine kurze Zusammenfassung, ausgehend von einem repräsentativen Auszug ihres Inhalts.

Mit diesen Zusammenfassungen kann ein Assistent entscheiden, in welcher Datei er suchen soll, bevor er überhaupt sucht. Bei wenigen Dateien bekommt das Modell alle Zusammenfassungen von vornherein. Bei vielen Dateien kann das Modell die Dateiliste durchsehen und mit einer übergreifenden Suche über alle Dateien Kandidaten finden. In beiden Fällen grenzt das Modell die Auswahl zuerst ein, statt fünfzig Dokumente auf einmal zu durchsuchen und sich durch schwache Treffer aus allen zu arbeiten. Das verringert Fehltreffer und hält den Arbeitskontext klein.

Intric teilt den extrahierten Text in Chunks von bis zu etwa 300 Token. Intric schneidet an der natürlichsten Grenze, die sich anbietet: zuerst zwischen Absätzen, dann zwischen Zeilen, dann zwischen Sätzen und nur als letzter Ausweg zwischen Wörtern. In einem PDF reicht ein Chunk nie über eine Seitengrenze hinaus, und Tabellen oder andere extrahierte Elemente bleiben ganz, sofern sie hineinpassen.

Keine Überlappung, dafür eine explizite Position

Abschnitt betitelt „Keine Überlappung, dafür eine explizite Position“

Viele Systeme wiederholen 10–20 % jedes Chunks am Anfang des nächsten. So bleibt ein Satz, der an einer Grenze zerschnitten wird, wenigstens in einem Stück vollständig erhalten. Dadurch wächst aber der Index, und im Prompt steht derselbe Text doppelt.

Die Chunks von Intric überlappen sich nicht. Stattdessen hält jeder Chunk fest, wo er steht:

  • Seitenzahl – die Seite des Originaldokuments, aus der der Chunk stammt
  • Chunk-Index – seine Position in der Abfolge aller Chunks des Dokuments

Weil die Position explizit vorliegt, kann der Assistent direkt „den nächsten Chunk“ oder „alles auf Seite 66“ anfordern. Den Zusammenhang holt er sich also, wenn er ihn braucht, statt ihn in jedem Chunk mitzubezahlen.

Intric indexiert jeden Chunk zweimal: für die Stichwortsuche und als Vektor-Embedding für die semantische Suche. Das Embedding-Modell ist je Installation konfiguriert, und jeder Wissensindex ist an das Embedding-Modell gebunden, mit dem er erstellt wurde.

Tabellenkalkulationen und CSV-Dateien zerlegt Intric bewusst nicht in Chunks und erstellt auch keine Embeddings dafür. Wer eine Tabelle in Textfragmente zerschneidet und diese als Vektoren vergleicht, zerstört gerade das, was sie zur Tabelle macht: Aus ein paar ähnlich aussehenden Zeilen lässt sich weder ein Durchschnitt noch eine gefilterte Anzahl berechnen.

Stattdessen bekommt der Assistent die Struktur jedes Tabellenblatts: die Spaltenüberschriften, einige Beispielzeilen und die Anzahl der Zeilen. Fragen beantwortet er, indem er Code schreibt und diesen in einer isolierten Sandbox auf die tatsächlichen Daten anwendet. Eine Frage wie „Wie viele Fälle wurden im März abgeschlossen?“ beantwortet er also durch Rechnen, nicht durch Raten anhand von Fragmenten. Auch Tabellenkalkulationen erhalten eine Zusammenfassung, damit der Assistent sie unter den anderen Dateien auswählen kann.

Kommt eine Frage, führt der Assistent nicht eine einzige, festgelegte Suche aus. Er verfügt über mehrere Retrieval-Tools und entscheidet anhand der Frage, welche er einsetzt und in welcher Reihenfolge.

Tool Was es macht
Hybride Suche Durchsucht eine Datei gleichzeitig nach Stichwörtern und nach Bedeutung. Das Modell legt für jede Suche die Gewichtung fest, von reiner Stichwortsuche bis zu rein semantischem Abgleich.
Navigierendes Lesen Ruft Chunks über ihre genaue Seitenzahl oder ihren Chunk-Index ab. So kann das Modell von einer gefundenen Stelle aus vorwärts oder rückwärts lesen.
Vollständiges Lesen Liest eine Datei komplett, für Aufgaben, die das ganze Dokument brauchen.
Übergreifende Suche Durchsucht alle Dateien eines Assistenten, um die relevanten zu finden.

Die hybride Suche nimmt eine Gewichtung zwischen 0 und 1 entgegen. Bei 0 ist sie reine Stichwortsuche (BM25), bei 1 reine semantische Ähnlichkeit, und jeder Wert dazwischen mischt beides. Das Modell wählt die Gewichtung für jede Suche selbst:

  • Ein Aktenzeichen, ein Verweis auf einen Artikel oder ein Personenname verlangt eine niedrige Gewichtung, damit die exakte Zeichenfolge gewinnt.
  • Eine konzeptionelle Frage verlangt eine hohe Gewichtung, damit „gesundheitliche Folgen unregelmäßiger Arbeitszeiten“ zu einer Frage über Nachtschichten passt.
  • Die meisten Fragen liegen irgendwo dazwischen.

Mit navigierendem Lesen kann ein Assistent eine Anfrage wie „Fasse Kapitel 8 zusammen“ bewältigen:

  1. Eine hybride Suche nach „Kapitel 8“ findet auf Seite 65 den Chunk, mit dem das Kapitel beginnt.
  2. Das Modell liest die Seitenzahl aus der Position dieses Chunks ab.
  3. Es ruft die folgenden Seiten der Reihe nach ab – 66, 67, 68 –, bis es die Überschrift von Kapitel 9 erreicht.
  4. Es fasst das ganze Kapitel zusammen und verweist dabei auf die Seiten, die es gelesen hat.

Eine einzelne Suche hätte den ersten Absatz des Kapitels und ein paar verstreute Passagen geliefert. Erst das Weiterlesen erfasst alles dazwischen.

Eine Datei komplett zu lesen, lohnt sich bei kurzen Dokumenten und bei Aufgaben wie dem Vergleich zweier Verträge. Eine sehr große Datei würde den Kontext aber überfluten. Bei indexierten Dateien ist vollständiges Lesen deshalb auf 60.000 Zeichen begrenzt. Ist eine Datei größer, lehnt das Tool ab und weist das Modell an, stattdessen die hybride Suche oder navigierendes Lesen zu verwenden. Das Modell muss die Suche also eingrenzen, statt alles zu lesen.

Warum nicht einfach ein großes Kontextfenster nutzen

Abschnitt betitelt „Warum nicht einfach ein großes Kontextfenster nutzen“

Modelle mit sehr großen Kontextfenstern können grundsätzlich eine ganze Dokumentsammlung auf einmal aufnehmen. In der Praxis lässt ihre Aufmerksamkeit über Hunderttausende Token hinweg nach: Passagen in der Mitte übersieht das Modell, und Vorgaben vom Anfang vergisst es. Ruft Intric stattdessen wenig, aber hochrelevanten Text ab und erweitert ihn nur bei Bedarf gezielt, bleibt das Material, mit dem das Modell arbeitet, kurz und dicht. Zugleich lässt sich jedes Stück bis zu seinem Ursprung zurückverfolgen.

Zu jedem Chunk, den der Assistent abruft, gehören Datei und Seitenzahl, und der Assistent muss die Quellen angeben, die er verwendet hat. In der Antwort erscheint jede Quellenangabe als nummerierter Verweis. Bei einem PDF öffnet der Verweis das Originaldokument in einem Viewer neben der Unterhaltung, direkt auf der zitierten Seite. Andere Dateitypen öffnen sich in einer Vorschau.

Quellenangaben verweisen auf die Seite, nicht auf eine markierte Passage, und sie verweisen in die Datei, die du hochgeladen hast. Deshalb bekommst du die nützlichsten Quellenangaben, wenn du das Originaldokument hochlädst und keine exportierte oder konvertierte Kopie.

An einen Assistenten angehängte Dateien und Dateien, die du direkt in eine Unterhaltung hochlädst, nehmen unterschiedliche Wege.

Am Assistenten angehängt In einer Unterhaltung hochgeladen
Extraktion Vollständige Pipeline, einschließlich OCR Vollständige Pipeline für PDFs, einschließlich OCR; andere Dateien: Einlesen als Text
Zusammengefasst und indexiert Ja Nein
Verwendung Durchsuchbar mit den Retrieval-Tools Das Modell erhält den extrahierten Text direkt
Verfügbar Solange die Datei angehängt ist Für diese Unterhaltung
Umfang Große Bibliotheken, viele Dateien Begrenzt durch das Kontextfenster des Modells
Am besten für Handbücher, Richtliniensammlungen, Archive Einmalige Prüfungen und Vergleiche

Die Retrieval-Tools funktionieren nur mit angehängten Dateien. Eine in der Unterhaltung hochgeladene Datei liest das Modell vollständig, deshalb gilt für sie das Kontextfenster des verwendeten Modells. Mehr dazu unter Anhänge.

Während Intric eine Datei verarbeitet, zeigt sie in den Wissenseinstellungen des Assistenten ihren Status an: erst Warten…, dann Analysieren… mit einem Fortschrittsbalken, schließlich Fertig. Der Status aktualisiert sich live, ohne dass du die Seite neu laden musst. Schlägt die Verarbeitung fehl, zeigt die Datei den Status Fehlgeschlagen und die Schaltfläche Erneut versuchen, die die Verarbeitung neu startet.

Die Pipeline wiederholt fehlgeschlagene Schritte selbstständig, bevor sie einen Fehler meldet, und versucht, beschädigte PDFs zu reparieren, bevor sie aufgibt. Eine Datei, deren Verarbeitung noch nicht abgeschlossen ist, sieht der Assistent bereits, allerdings nur als kurzen Auszug. Durchsuchen kann er sie erst, wenn die Indexierung fertig ist.

Limit Wert
An einen Assistenten angehängte Datei 100 MB
Mit OCR verarbeitetes PDF 3.000 Seiten
In einer Unterhaltung hochgeladene Datei 25 MB
Dateien pro Frage in einer Unterhaltung 20

Ein PDF über der Seitengrenze lehnt Intric schon beim Hochladen ab, mit einer Fehlermeldung, die Seitenzahl und Grenze nennt.

Jede Stufe läuft innerhalb der Intric-Plattform oder auf einem Modell-Endpunkt, den die Installation festlegt:

  • OCR und Layoutanalyse laufen innerhalb der Plattform selbst, ohne externen Dienst.
  • Beschreibung von Abbildungen, Zusammenfassung und Embedding rufen jeweils einen Modell-Endpunkt auf, der pro Installation separat konfiguriert ist.

Bei einer On-Premises-Installation kann jeder dieser Endpunkte auf ein Modell in deiner eigenen Infrastruktur zeigen. Ein Dokument lässt sich dann vom Upload bis zum Index verarbeiten, ohne deine Umgebung zu verlassen. Die Pipeline setzt eine Job-Queue und einen Suchindex voraus, die zu aktuellen Installationen gehören. Eine ältere On-Premises-Installation, auf der beides noch nicht läuft, nutzt bis zu ihrem Upgrade die frühere Wissensverarbeitung. Wie Dokumentdaten im Cloud-Dienst zwischen Intric und dem Embedding-Modell fließen, erfährst du unter Datenflüsse für Wissen.