PageIndex: ein Open-Source-PDF-Indexierungssystem für präzisere, logischere Suche 52

小编 ·

PageIndex: ein Open-Source-PDF-Indexierungssystem für präzisere, logischere Suche

PageIndex ist ein Open-Source-PDF-Indexierungssystem, das die Abrufgenauigkeit für lange, fachliche Dokumente verbessert und das LLM-Reasoning stärkt. Durch die Umwandlung von PDFs in eine hierarchische Baumstruktur ersetzt es die herkömmliche vektorbasierte RAG-Semantikähnlichkeitssuche und ermöglicht so eine präzisere, logischere Suche.

PageIndex: ein Open-Source-PDF-Indexierungssystem für präzisere, logischere Suche

Was ist PageIndex?

PageIndex ist ein Open-Source-PDF-Dokumentindexierungssystem, das die Genauigkeit der Recherche in umfangreichen Fachdokumenten sowie die logischen Schlussfolgerungsfähigkeiten von LLMs verbessert. Es ersetzt die herkömmliche vektorbasierte RAG-Semantikähnlichkeitssuche, indem es PDF-Dokumente in eine hierarchische Baumstruktur umwandelt und so eine präzisere und logischere Recherche ermöglicht.

Zu den Kernfunktionen von PageIndex gehört es, Dokumente in eine baumartige Struktur ähnlich einem intelligenten Inhaltsverzeichnis umzuwandeln, eine präzise Seitenlokalisierung bereitzustellen, beliebiges Chunking zu vermeiden und sehr lange Dokumente zu unterstützen – so können problemlos Hunderte oder sogar Tausende von Seiten verarbeitet werden.

Die Arbeitsweise besteht darin, PDF-Dokumente in eine semantische Baumstruktur umzuwandeln und Abfrageanalyse, Dokumentenauswahl, Knotenauswahl und Inhaltsgenerierung zu kombinieren, um schließlich genaue Antworten zu liefern. Im Gegensatz zu Systemen, die auf Vektordatenbanken oder herkömmlichem Chunking basieren, ist PageIndex vollständig kostenlos und Open Source. Es eignet sich besonders für Finanzberichte, regulatorische Dokumente, akademische Lehrbücher, juristische oder technische Handbücher sowie für alle Dokumente, die die Kontextgrenzen eines LLMs überschreiten.

PageIndex:开源PDF文档索引系统.webp

Kernfunktionen von PageIndex

  • Dokumentenverarbeitung: Kann lange Dokumente verarbeiten, insbesondere Fachdokumente, indem eine Suchbaumstruktur aufgebaut wird, um eine auf logischem Reasoning basierende Retrieval-Augmented Generation (RAG) vorzubereiten.

  • Extraktion und Verarbeitung des Inhaltsverzeichnisses

  • Kann den Inhalt des Inhaltsverzeichnisses aus dem Dokument extrahieren und dabei unterschiedliche Fälle behandeln, ob Seitenzahlen vorhanden sind oder nicht.

  • Wandelt das Inhaltsverzeichnis in ein bestimmtes JSON-Format um, um die weitere Verarbeitung zu erleichtern.

  • Seitenzahlenverarbeitung: Fügt Inhaltsverzeichniseinträgen physische Indizes hinzu, behandelt fehlende oder falsche Seitenzahlen und repariert fehlerhafte Einträge durch mehrfache Versuche.

  • Knotenverarbeitung: Verarbeitet große Knoten rekursiv und teilt sie in kleinere Knoten auf, um die Beschränkungen hinsichtlich Token- und Seitenanzahl einzuhalten.

  • Validierung und Korrektur: Überprüft die Genauigkeit des Inhaltsverzeichnisses, berechnet die Genauigkeitsrate und korrigiert ungenaue Ergebnisse.

Eigenschaften von PageIndex

  • Hierarchische Baumstruktur: Ermöglicht es dem LLM, das Dokument logisch zu durchlaufen – wie ein intelligentes, für LLMs optimiertes Inhaltsverzeichnis.

  • Präzise Seitenverweise: Jeder Knoten enthält seine Zusammenfassung und die physischen Indizes der Start- und Endseiten und ermöglicht so eine präzise Recherche.

  • Kein beliebiges Chunking: Es wird kein beliebiges Chunking verwendet; die Knoten folgen der natürlichen Struktur des Dokuments.

  • Unterstützung für umfangreiche Dokumente: Konzipiert für die mühelose Verarbeitung von Hunderten oder sogar Tausenden von Seiten.

Anwendungsbereiche von PageIndex

Finanzbereich

  • Analyse von Finanzberichten: Schnelles Auffinden wichtiger Finanzdaten und Kennzahlen.

  • Auswertung regulatorischer Dokumente: Präzises Auffinden von Vorschriften zur Sicherstellung der Compliance.

Juristischer Bereich

  • Recherche in juristischen Dokumenten: Effizientes Auffinden von Gesetzesbestimmungen und Fällen.

  • Vertragsprüfung: Schnelles Auffinden wichtiger Klauseln in Verträgen.

Wissenschaftliche Forschung

  • Recherche in wissenschaftlichen Arbeiten: Schnelles Auffinden von Forschungsergebnissen und theoretischer Unterstützung.

  • Lernen mit Lehrbüchern: Bequemes Auffinden bestimmter Kapitel und Wissensinhalte.

Technische Dokumentation

  • Technische Handbücher: Schnelles Auffinden von Bedienungsschritten und technischen Parametern.

  • Projektdokumentation: Effizientes Auffinden wichtiger Informationen im Projekt.

Unternehmensintern

  • Interne Berichte: Schnelles Auffinden wichtiger Inhalte in umfangreichen Berichten.

  • Wissensmanagement: Verbesserung des Wissensteilens und der Rechercheneffizienz.

Medizinischer Bereich

  • Recherche in medizinischer Literatur: Schnelles Auffinden von Forschungsergebnissen und Behandlungsmethoden.

  • Klinische Leitlinien: Präzises Auffinden klinischer Handlungsanweisungen.

Bildungsbereich

  • Materialien für Online-Kurse: Schnelles Auffinden der Schwerpunkte eines Kurses.

  • Prüfungsvorbereitungsmaterialien: Effizientes Auffinden der wichtigsten Wiederholungspunkte.

Behörden

  • Auswertung politischer Dokumente: Schnelles Auffinden relevanter Richtlinien.

  • Recherche öffentlicher Informationen: Steigerung der Effizienz öffentlicher Dienstleistungen.

Verwendung von PageIndex

1. Abhängigkeiten installieren

pip3 install -r requirements.txt

2. Openai API-Schlüssel einrichten

Erstellen Sie im Stammverzeichnis eine .env-Datei und fügen Sie Ihren API-Schlüssel hinzu:

CHATGPT_API_KEY=your_openai_key_here

3. PageIndex auf einer PDF-Datei ausführen

python3 run_pageindex.py --pdf_path /path/to/your/document.pdf

Sie können den Verarbeitungsprozess zusätzlich über optionale Parameter anpassen, zum Beispiel:

--model                 OpenAI model to use (default: gpt-4o-2024-11-20)
--toc-check-pages       Pages to check for table of contents (default: 20)
--max-pages-per-node    Max pages per node (default: 10)
--max-tokens-per-node   Max tokens per node (default: 20000)
--if-add-node-id        Add node ID (yes/no, default: yes)
--if-add-node-summary   Add node summary (yes/no, default: no)
--if-add-doc-description Add doc description (yes/no, default: yes)

Github:https://github.com/VectifyAI/PageIndex

Offizielle Projektseite:https://vectify.ai/pageindex