Übersicht
- Erstellen einer promptbasierten Extraktionsaktivität
- Konfigurieren einer LLM-Verbindung
- Schreiben effektiver Extraktions-Prompts
- Definieren von Ausgabeformat und -struktur
- Anwenden von Striktheitsgrad und Validierungsregeln
- Testen und Verfeinern Ihrer Extraktion
- Extraktion von Vendor-Informationen aus Rechnungen
- Erfassung von Dokumentdaten auf Kopfzeilenebene
- Verarbeitung halbstrukturierter Dokumente
- Dokumente mit variablen Layouts
Voraussetzungen
- Zugriff auf ABBYY Vantage Advanced Designer
- Eine konfigurierte LLM-Verbindung (siehe Konfigurieren von LLM-Verbindungen)
- Ein Document-Skill mit geladenen Beispieldokumenten
- Grundlegendes Verständnis der JSON-Struktur
- Felddefinitionen für die Daten, die Sie extrahieren möchten
Grundlagen der promptbasierten Extraktion
Was ist promptbasierte Extraktion?
- Rolle: Welche Rolle das LLM einnehmen soll (z. B. „Datenextraktionsmodell“)
- Anweisungen: Wie Daten extrahiert und formatiert werden sollen
- Ausgabestruktur: Das genaue JSON-Format für die Ergebnisse
- Regeln: Richtlinien für den Umgang mit mehrdeutigen oder fehlenden Daten
Vorteile
- Keine Trainingsdaten erforderlich: Kommt allein mit Prompt-Engineering aus
- Flexibel: Felder lassen sich leicht hinzufügen oder ändern
- Robust gegenüber Varianten: LLMs können unterschiedliche Dokumentformate verstehen
- Schnelle Einrichtung: Schneller als das Trainieren herkömmlicher ML-Modelle
- Natürliche Sprache: Formulieren Sie Anweisungen in einfachem Englisch
Einschränkungen
- Kosten: Jede Extraktion nutzt LLM-API-Aufrufe
- Geschwindigkeit: Langsamer als die herkömmliche Extraktion für einfache Dokumente
- Konsistenz: Ergebnisse können zwischen einzelnen Durchläufen leicht variieren
- Kontextbeschränkungen: Sehr lange Dokumente müssen möglicherweise speziell behandelt werden
Schritt 1: Eine Prompt-basierte Aktivität hinzufügen
- Öffnen Sie Ihren Document-Skill in ABBYY Vantage Advanced Designer
- Suchen Sie im linken Bereich EXTRACT FROM TEXT (NLP)
- Suchen Sie den Eintrag Prompt-based und klicken Sie darauf

- Die Aktivität wird in Ihrem Workflow-Canvas angezeigt
- Verbinden Sie sie zwischen den Eingabe- und Ausgabeaktivitäten
Schritt 2: LLM-Verbindung konfigurieren
- Wählen Sie die promptbasierte Activity in Ihrem Workflow aus
- Suchen Sie im Activity Properties-Panel auf der rechten Seite den Eintrag LLM Connection
- Klicken Sie auf das Dropdown-Menü

-
Wählen Sie Ihre konfigurierte LLM-Verbindung aus der Liste aus
- Beispiel:
Nick-ChatGPT,Microsoft Foundry,Production GPT-4
- Beispiel:
- Überprüfen Sie, ob die Verbindung ausgewählt ist
Schritt 3: Ausgabefelder definieren
- Suchen Sie im Bereich Activity Properties den Abschnitt Output.
- Sie sehen eine hierarchische Liste von Feldgruppen und Feldern.
- In diesem Beispiel extrahieren wir Vendor-Informationen:
- Vendor
- Name
- Address
- TaxID
- Account Number
- Sort Code
- IBAN
- BIC_SWIFT
- Business Unit
- Name
- Address
- Invoice Date
- Invoice Number
- Totals
- Net Amount
- Vendor

- Klicken Sie auf die Schaltfläche Activity Editor, um mit der Konfiguration des Prompts zu beginnen.
Schritt 4: Die Rollendefinition erstellen
- Im Activity Editor wird die Oberfläche Prompt Text angezeigt
- Beginnen Sie mit dem Abschnitt ROLE:

- Sei präzise: „data extraction model“ teilt dem LLM seinen Zweck mit
- Umfang definieren: „vendor-related fields“ begrenzt, was extrahiert werden soll
- Erwartungen festlegen: „value text verbatim“ verhindert eine Umformatierung
- Mit fehlenden Daten umgehen: „Omit any field that is not clearly present“
- Halte die Rollenbeschreibung klar und prägnant
- Verwende Imperativformen („Extract“, „Do not infer“)
- Sei explizit darin, was NICHT getan werden soll
- Lege fest, wie Sonderfälle zu behandeln sind
Schritt 5: Ausgabeformat definieren
- Fügen Sie unterhalb des ROLE-Abschnitts die Überschrift OUTPUT FORMAT hinzu
- Definieren Sie die JSON-Struktur:

- FieldName: Muss exakt mit Ihren Felddefinitionen übereinstimmen (z. B.
Vendor.Name) - Text: Der extrahierte Wert als string
- Line: 0-basierter Zeilenindex der Zeile, in der der Wert im Dokument erscheint
- Verwenden Sie die exakten Feldnamen aus Ihrer Output-Konfiguration
- Schließen Sie alle Felder ein, auch wenn einige leer sein können
- Die Struktur muss gültiges JSON sein
- Zeilennummern helfen bei der Verifizierung und Fehlersuche
Schritt 6: Feldspezifische Extraktionsregeln hinzufügen

- Erkennungsmuster: Alternative Bezeichnungen für jedes Feld auflisten
- Formatangaben: Exaktes zu extrahierendes Format beschreiben
- Positionshinweise: Wo die Daten typischerweise zu finden sind
- Ausschlüsse: Was NICHT extrahiert werden soll
- Nummerieren Sie Ihre Regeln für bessere Übersichtlichkeit
- Geben Sie mehrere Bezeichnungsvarianten an
- Geben Sie an, wem die Daten gehören (auf Vendor-Seite vs. kundenseitig)
- Fügen Sie Formatbeispiele in Klammern hinzu
- Seien Sie explizit bei zugehörigen Feldern (z. B. „IBAN ignorieren — sie hat ihr eigenes Feld“)
Schritt 7: Strictness-Regeln anwenden

- Verhindert Halluzinationen: LLMs können plausibel wirkende, aber falsche Daten erzeugen
- Stellt Konsistenz sicher: Klare Regeln verringern die Unterschiede zwischen Durchläufen
- Geht mit fehlenden Daten um: Definiert, was zu tun ist, wenn Felder nicht gefunden werden
- Erhält die Datenintegrität: 1:1-Extraktion im Originalwortlaut bewahrt das ursprüngliche Format
- Niemals Daten erzeugen, die nicht im Dokument vorhanden sind
- Unsichere Extraktionen lieber auslassen, als zu raten
- Eine leere Struktur zurückgeben, wenn keine Felder gefunden werden
- Feldnamen exakt einhalten
- Ursprüngliche Textformatierung beibehalten
Schritt 8: Dokumentformat auswählen
- Suchen Sie im Activity Editor die Dropdown-Liste Prompt
- Sie sehen Optionen, wie das Dokument dem LLM bereitgestellt wird

-
PDF: Ursprüngliche PDF-Datei
- Einsatz für: Dokumente, bei denen das Layout entscheidend ist
- Hinweise: Größere Dateigröße, einige LLMs haben nur eingeschränkte PDF-Unterstützung
-
Plain Text: Unformatierte Textextraktion
- Einsatz für: Einfache Dokumente, die nur Text enthalten
- Hinweise: Verliert sämtliche Formatierungs- und Layoutinformationen
-
Annotated Text ⭐ (Empfohlen)
- Einsatz für: Die meisten Dokumenttypen
- Hinweise: Bewahrt die Struktur, bleibt aber textbasiert
- Vorteile: Bestes Gleichgewicht zwischen Struktur und Performance
-
Formatted Text: Text mit grundlegender Formatierung
- Einsatz für: Dokumente, bei denen eine gewisse Formatierung wichtig ist
- Hinweise: Mittelweg zwischen Plain und Annotated
- Wählen Sie Annotated Text für die besten Ergebnisse
Schritt 9: Testen Sie Ihre Extraktion
Aktivität ausführen
- Schließen Sie den Activity Editor
- Navigieren Sie zur Registerkarte All Documents
- Wählen Sie ein Testdokument aus
- Klicken Sie auf Test Activity oder Run

- Warten Sie, bis das LLM das Dokument verarbeitet hat
- Verarbeitungszeit: in der Regel 5–30 Sekunden, abhängig von der Komplexität des Dokuments
- Während Sie auf die API-Antwort warten, wird eine Ladeanzeige angezeigt
Ergebnisse überprüfen
- Die Oberfläche wechselt zur Predictive view
- Überprüfen Sie das Output-Panel mit den extrahierten Feldern
- Klicken Sie auf jedes Feld, um Folgendes zu sehen:
- Extrahierter Wert
- Confidence (falls verfügbar)
- Hervorgehobener Bereich im Dokumentbild

- ✅ Alle erwarteten Felder sind ausgefüllt
- ✅ Werte stimmen exakt mit dem Dokument überein
- ✅ Keine halluzinierten oder abgeleiteten Daten
- ✅ Korrekte Verarbeitung von mehrzeiligen Feldern
- ✅ Fehlende Felder werden ausgelassen (nicht mit falschen Daten aufgefüllt)
Häufige Ergebnismuster
Schritt 10: Verfeinern Sie Ihren Prompt
Häufige Probleme und Lösungen
- Lösung: Präzisere Positionsangaben hinzufügen
- Beispiel: „Nur Vendor-Seite; Kunden-/Käuferadressen ausschließen“
- Lösung: Auf wortgetreue Extraktion bestehen
- Beispiel: „Das numerische Format exakt wie gedruckt extrahieren (z. B. ‚12-34-56‘)“
- Lösung: Striktheitsregeln verschärfen
- Beispiel: „Niemals Werte generieren oder ableiten. Auslassen, wenn nicht vorhanden.“
- Lösung: Escape-Sequenzen angeben
- Beispiel: „Für mehrzeilige Werte
\nfür Zeilenumbrüche verwenden“
- Lösung: Sicherstellen, dass Feldnamen exakt übereinstimmen
- Beispiel:
Vendor.Account Numberund nichtAccountNumberverwenden
Iterativer Verbesserungsprozess
- Mit mehreren Dokumenten testen: Nicht für ein einzelnes Beispiel optimieren
- Muster dokumentieren: Notieren, welche Regeln funktionieren und welche verfeinert werden müssen
- Konkrete Beispiele hinzufügen: Formatbeispiele in Klammern angeben
- Strenge verfeinern: Auf Basis von Über- bzw. Unterextraktion anpassen
- Randfälle testen: Dokumente mit fehlenden Feldern oder ungewöhnlichen Layouts ausprobieren
Beispiele für Verfeinerungen
Extraktionsprozess verstehen
Funktionsweise der promptbasierten Extraktion
- Dokumentkonvertierung: Ihr Dokument wird in das ausgewählte Format umgewandelt (Format Annotated Text empfohlen)
- Prompt-Erstellung: Ihre Rolle, das Ausgabeformat, Feldregeln und Regeln zur Strenge werden zu einem Prompt zusammengeführt
- API-Aufruf: Der Prompt und das Dokument werden über Ihre Verbindung an das LLM gesendet
- LLM-Verarbeitung: Das LLM liest das Dokument und extrahiert Daten gemäß Ihren Anweisungen
- JSON-Antwort: Das LLM gibt strukturierte Daten im angegebenen JSON-Format zurück
- Feldzuordnung: Vantage ordnet die JSON-Antwort den von Ihnen definierten Ausgabefeldern zu
- Verifizierung: Zeilennummern und Konfidenzwerte (falls bereitgestellt) unterstützen die Überprüfung der Genauigkeit
Tokenverbrauch und Kosten
- Dokumentenlänge: Längere Dokumente verwenden mehr Token
- Komplexität des Prompts: Detaillierte Prompts erhöhen den Tokenverbrauch
- Formatwahl: Annotated Text ist in der Regel effizienter als PDF
- Anzahl der Felder: Mehr Felder = längere Prompts
- Verwenden Sie prägnante, aber klare Formulierungen in Prompts
- Wiederholen Sie Anweisungen nicht
- Entfernen Sie unnötige Beispiele
- Erwägen Sie, verwandte Felder zu gruppieren
Bewährte Vorgehensweisen
Prompt-Erstellung
- ✅ Klare, imperativ formulierte Anweisungen verwenden („Extract“, „Recognize“, „Omit“)
- ✅ Mehrere Bezeichnungsvarianten für jedes Feld angeben
- ✅ Formatbeispiele in Klammern hinzufügen
- ✅ Angeben, was NICHT extrahiert werden soll (Ausschlüsse)
- ✅ Regeln zur einfachen Referenz nummerieren
- ✅ Einheitliche Terminologie im gesamten Dokument verwenden
- ❌ Vage Anweisungen verwenden („get the name“)
- ❌ Annehmen, dass das LLM fachspezifische Konventionen kennt
- ❌ Übermäßig lange, komplexe Sätze schreiben
- ❌ Sich in verschiedenen Abschnitten widersprechen
- ❌ Striktheitsregeln weglassen
Felddefinitionen
- Beginnen Sie mit Erkennungsmustern (alternativen Bezeichnungen)
- Geben Sie das exakt beizubehaltende Format an
- Geben Sie Positionierungshinweise an (typische Platzierung)
- Definieren Sie die Datenverantwortung (Vendor vs. Kunde)
- Beschreiben Sie den Umgang mit mehrzeiligen Werten
- Verweisen Sie auf verwandte Felder, um Verwechslungen zu vermeiden
Teststrategie
- Mit einfachen Dokumenten beginnen: Zuerst die grundlegende Extraktion testen
- Auf Varianten erweitern: Verschiedene Layouts und Formate ausprobieren
- Randfälle testen: Fehlende Felder, ungewöhnliche Positionen, mehrfache Treffer
- Fehler dokumentieren: Beispiele aufbewahren, in denen die Extraktion fehlschlägt
- Systematisch iterieren: Immer nur eine Sache auf einmal ändern
Leistungsoptimierung
- Prompts knapp halten
- Annotated Text-Format verwenden
- Anzahl der Felder pro Aktivität minimieren
- Erwägen, komplexe Dokumente aufzuteilen
- Umfassende Feldregeln bereitstellen
- Formatbeispiele einbeziehen
- Strenge Striktheitsregeln hinzufügen
- Mit vielfältigen Dokumentbeispielen testen
- Promptlänge optimieren
- Effiziente Dokumentformate verwenden
- Ergebnisse bei Bedarf cachen
- Token-Verbrauch über das Dashboard des LLM-Anbieters überwachen
Fehlerbehebung
Extraktionsprobleme
- Prüfen, ob die Schreibweise des Feldnamens exakt übereinstimmt
- Überprüfen, ob sich die Daten im ausgewählten Dokumentformat befinden
- Weitere Label-Varianten zu den Erkennungsmustern hinzufügen
- Strenge vorübergehend reduzieren, um zu sehen, ob das LLM sie findet
- Prüfen, ob die Dokumentqualität die OCR/Text-Extraktion beeinflusst
- Vorgaben auf der Vendor-Seite präzisieren bzw. verstärken
- Explizite Ausschlüsse für Kunden-/Käuferdaten hinzufügen
- Positionshinweise angeben (z. B. „oben im Dokument“, „Ausstellerbereich“)
- Beispiele für korrekte vs. inkorrekte Extraktion bereitstellen
- Format der Escape-Sequenz (
\n) explizit angeben - Beispiele für korrekte mehrzeilige Ausgaben bereitstellen
- Prüfen, ob das Dokumentformat Zeilenumbrüche beibehält
- Anweisung hinzufügen: „Preserve original line breaks using
\n“
- „wortgetreu“ und „genau wie gedruckt“ betonen
- Strengere Regel hinzufügen: „No normalization or inference“
- Konkrete Beispiele bereitstellen, die die Beibehaltung der Formatierung zeigen
- Negative Beispiele einfügen: „Not ‘12-34-56’, keep as ‘12 34 56’“
Leistungsprobleme
- Zum Annotated Text-Format wechseln, wenn PDF verwendet wird
- Prompt vereinfachen, ohne kritische Anweisungen zu verlieren
- Dokumentauflösung reduzieren, wenn Bilder sehr groß sind
- Status und Rate Limits des LLM-Providers prüfen
- Für einfache Dokumente die Verwendung eines schnelleren Modells in Betracht ziehen
- Striktheitsregeln verschärfen
- Anweisungen spezifischer und eindeutiger formulieren
- Mehr Formatbeispiele hinzufügen
- Prompt-Komplexität reduzieren, die zu Interpretationsspielraum führen kann
- Mit höheren Temperatureinstellungen testen (falls in der gewählten Verbindung verfügbar)
- Prompt-Länge optimieren
- Annotated Text anstelle von PDF verwenden
- Dokumente stapelweise außerhalb der Spitzenzeiten verarbeiten
- Für einfache Dokumente kleinere/günstigere Modelle in Betracht ziehen
- Budgetwarnungen im Dashboard des LLM-Providers überwachen und einrichten
Fortgeschrittene Techniken
Bedingte Extraktion
Unterstützung mehrerer Sprachen
Validierungsregeln
Feldbeziehungen
Einschränkungen und Überlegungen
Aktuelle Funktionen
- ✅ Feldextraktion auf Header-Ebene
- ✅ Ein- und mehrzeilige Werte
- ✅ Mehrere Felder pro Dokument
- ✅ Bedingte Extraktionslogik
- ✅ Mehrsprachige Dokumente
- ✅ Variable Dokumentlayouts
- ⚠️ Tabellenextraktion (unterscheidet sich je nach Implementierung)
- ⚠️ Verschachtelte komplexe Strukturen
- ⚠️ Sehr große Dokumente (Token-Limits)
- ⚠️ Echtzeitverarbeitung (API-Latenz)
- ⚠️ Garantiert deterministische Ergebnisse
Wann Sie die promptbasierte Extraktion verwenden sollten
- Dokumente mit variablen Layouts
- Teilstrukturierte Dokumente
- Schnelles Prototyping und Testen
- Kleine bis mittlere Dokumentvolumina
- Wenn keine Trainingsdaten verfügbar sind
- Mehrsprachige Dokumentverarbeitung
- Produktivbetrieb mit hohem Volumen (traditionelles ML kann schneller sein)
- Stark strukturierte Formulare (vorlagenbasierte Extraktion)
- Kostenkritische Anwendungen (traditionelle Methoden können günstiger sein)
- Latenzkritische Anwendungen (LLM-APIs haben Netzwerklatenz)
- Anforderungen an Offline-Verarbeitung (für traditionelle Methoden ist kein Internet erforderlich)
Integration mit Document-Skills
Verwendung extrahierter Daten
- Validierungsaktivitäten: Geschäftsregeln auf extrahierte Werte anwenden
- Skriptaktivitäten: Extrahierte Daten verarbeiten oder transformieren
- Exportaktivitäten: Daten an externe Systeme senden
- Review-Oberfläche: Manuelle Überprüfung der extrahierten Felder
Kombinieren mit anderen Activities
Feldzuordnung
"FieldName": "Vendor.Name"→ wird dem AusgabefeldVendor.Namezugeordnet- Die Feldhierarchie bleibt in der Ausgabestruktur erhalten
- Zeilennummern helfen bei der Überprüfung und Fehlerbehebung
Zusammenfassung
- ✅ Eine promptbasierte Extraktionsaktivität erstellt
- ✅ Eine LLM-Verbindung konfiguriert
- ✅ Einen umfassenden Extraktionsprompt mit Rolle, Format und Regeln geschrieben
- ✅ Das optimale Dokumentformat (Annotated Text) ausgewählt
- ✅ Strengevorgaben für die Datenqualität angewendet
- ✅ Die Extraktion getestet und die Ergebnisse ausgewertet
- ✅ Best Practices für das Prompt Engineering gelernt
- Promptbasierte Extraktion verwendet Anweisungen in natürlicher Sprache
- Das Annotated-Text-Format liefert die besten Ergebnisse
- Klare, spezifische Prompts führen zu konsistenter Extraktion
- Strengevorgaben verhindern Halluzinationen und sichern die Datenqualität
- Iteratives Testen und Verfeinern verbessert die Genauigkeit
Weitere Schritte
- Mit unterschiedlichen Dokumenten testen: Validieren Sie Ihre Lösung mit verschiedenen Layouts und Varianten
- Prompts verfeinern: Verbessern Sie diese kontinuierlich auf Basis der Ergebnisse
- Kosten überwachen: Verfolgen Sie die Token-Nutzung im Dashboard Ihres LLM-Anbieters
- Performance optimieren: Stimmen Sie Prompts auf Geschwindigkeit und Genauigkeit ab
- Tabellenextraktion erkunden: Experimentieren Sie mit dem Extrahieren von Positionen (wiederholte Gruppe) (falls unterstützt)
- In Workflows integrieren: Kombinieren Sie dies mit anderen Aktivitäten für eine vollständige Verarbeitung
Zusätzliche Ressourcen
- ABBYY Vantage Advanced Designer-Dokumentation: https://docs.abbyy.com
- Leitfaden zur Einrichtung von LLM-Verbindungen: So konfigurieren Sie LLM-Verbindungen
- Best Practices für Prompt-Engineering: Konsultieren Sie die Dokumentation Ihres LLM-Anbieters
- Support: Wenden Sie sich für technische Unterstützung an den ABBYY-Support
