> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Daten mit promptbasierten Aktivitäten extrahieren

> Erstellen Sie in ABBYY Vantage Advanced Designer promptbasierte Extraktionsaktivitäten: Verwenden Sie Anweisungen in natürlicher Sprache mit LLMs, um Daten aus Dokumenten zu extrahieren.

<div id="overview">
  ## Übersicht
</div>

Die promptbasierte Extraktion ermöglicht es Ihnen, mit Anweisungen in natürlicher Sprache strukturierte Daten aus Dokumenten mithilfe von LLMs zu extrahieren. Anstatt klassische Machine-Learning-Modelle zu trainieren, beschreiben Sie, welche Daten Sie extrahieren möchten und in welchem Format sie ausgegeben werden sollen, und das LLM übernimmt die Extraktion basierend auf Ihren Anweisungen.

**Was Sie erreichen werden:**

* 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.

**Benötigte Zeit:** 20–30 Minuten

**Anwendungsfälle:**

* Extraktion von Vendor-Informationen aus Rechnungen
* Erfassung von Dokumentdaten auf Kopfzeilenebene
* Verarbeitung halbstrukturierter Dokumente
* Dokumente mit variablen Layouts

***

<div id="prerequisites">
  ## Voraussetzungen
</div>

Bevor Sie beginnen, stellen Sie sicher, dass Folgendes vorhanden ist:

1. **Zugriff auf ABBYY Vantage Advanced Designer**.
2. **Eine konfigurierte LLM-Verbindung**. Siehe [Konfigurieren von LLM-Verbindungen](/de/vantage/how-to/connections).
3. **Ein Document-Skill** mit geladenen Beispieldokumenten.
4. **Grundlegendes Verständnis** der JSON-Struktur.
5. **Felddefinitionen** für die Daten, die Sie extrahieren möchten.

<Note>
  Dieser Leitfaden konzentriert sich auf die Extraktion auf Kopfzeilenebene. Die Möglichkeiten zur Tabellenextraktion können variieren.
</Note>

***

<div id="understanding-prompt-based-extraction">
  ## Grundlagen der promptbasierten Extraktion
</div>

<div id="what-is-prompt-based-extraction">
  ### Was ist promptbasierte Extraktion?
</div>

Promptbasierte Extraktion verwendet LLMs, um auf Basis von Anweisungen in natürlicher Sprache Dokumente zu verstehen und Daten daraus zu extrahieren. Sie definieren:

* **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.

<div id="benefits">
  ### Vorteile
</div>

* **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.

<div id="limitations">
  ### Einschränkungen
</div>

* **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.

***

<div id="step-1-add-a-prompt-based-activity">
  ## Schritt 1: Eine Prompt-basierte Aktivität hinzufügen
</div>

Erstellen Sie in Ihrem Document-Skill eine neue Prompt-basierte Extraktionsaktivität.

1. Öffnen Sie Ihren Document-Skill in **ABBYY Vantage Advanced Designer**.
2. Suchen Sie im linken Bereich **EXTRACT FROM TEXT (NLP)**.
3. Suchen Sie den Eintrag **Prompt-based** und klicken Sie darauf.

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_llm_connection.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=54644cb9dc145d0dcaf163af5201822e" alt="Prompt-basierte Aktivität auswählen" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_llm_connection.png" />
</Frame>

4. Die Aktivität wird in Ihrem Workflow-Canvas angezeigt.
5. Verbinden Sie sie zwischen den Eingabe- und Ausgabeaktivitäten.

<Note>
  Prompt-basierte Aktivitäten finden Sie im Aktivitätenbereich unter „EXTRACT FROM TEXT (NLP)“, zusammen mit anderen Extraktionsmethoden wie Named Entities (NER) und Deep Learning.
</Note>

***

<div id="step-2-configure-the-llm-connection">
  ## Schritt 2: LLM-Verbindung konfigurieren
</div>

Legen Sie fest, welche LLM-Verbindung die Activity verwenden soll.

1. Wählen Sie die promptbasierte Activity in Ihrem Workflow aus.
2. Suchen Sie im **Activity Properties**-Panel auf der rechten Seite den Eintrag **LLM Connection**.
3. Klicken Sie auf das Dropdown-Menü.

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_llm_connection.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=54644cb9dc145d0dcaf163af5201822e" alt="LLM-Verbindung konfigurieren" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_llm_connection.png" />
</Frame>

4. Wählen Sie Ihre konfigurierte LLM-Verbindung aus der Liste aus.
   * Beispiel: `Nick-ChatGPT`, `Microsoft Foundry`, `Production GPT-4`
5. Überprüfen Sie, ob die Verbindung ausgewählt ist.

<Note>
  Wenn keine Verbindungen angezeigt werden, müssen Sie zuerst eine LLM-Verbindung über Configuration → Connections konfigurieren.
</Note>

<Note>
  Wenn Sie den Skill veröffentlichen, wird die hier ausgewählte Verbindung im Vantage Web Portal zur **Standardverbindung** für diesen Skill. Unter **Skill Catalog → \[your skill] → Parameters** wird die Verbindung bereits vorausgefüllt angezeigt. Mandantenadministratoren können sie auf eine andere Verbindung umstellen (zum Beispiel, um einen Produktions-Skill je nach Umgebung auf einen anderen LLM-Endpunkt zu verweisen), ohne den Skill erneut zu veröffentlichen — siehe [Document-Skill-Parameter](/de/vantage/documentation/skill-designer/skill-parameters/document-skill-params).
</Note>

***

<div id="step-3-define-output-fields">
  ## Schritt 3: Ausgabefelder definieren
</div>

Richten Sie die Felder ein, die Sie extrahieren möchten, bevor Sie den Prompt schreiben.

1. Suchen Sie im Bereich **Activity Properties** den Abschnitt **Output**.
2. Sie sehen eine hierarchische Liste von Feldgruppen und Feldern.
3. 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

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_activity_editor.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=ca35ebd6bead5efce02f1e85af1afaed" alt="Struktur der Feldausgabe" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_activity_editor.png" />
</Frame>

4. Klicken Sie auf die Schaltfläche **Activity Editor**, um mit der Konfiguration des Prompts zu beginnen.

<Note>
  Definieren Sie alle Felder, bevor Sie den Prompt schreiben. Die Feldnamen werden in Ihrer Prompt-Struktur verwendet.
</Note>

***

<div id="step-4-write-the-role-definition">
  ## Schritt 4: Die Rollendefinition erstellen
</div>

Definieren Sie, welche Rolle das LLM bei der Verarbeitung von Dokumenten einnehmen soll.

1. Im Activity Editor wird die Oberfläche **Prompt Text** angezeigt
2. Beginnen Sie mit dem Abschnitt **ROLE**:

```
ROLLE

Sie sind ein Datenextraktionsmodell. Extrahieren Sie nur die angegebenen Vendor-bezogenen 
Felder aus einem Document. Extrahieren Sie den Werttext wortwörtlich (nicht die Beschriftung). 
Leiten Sie keine Daten ab und formatieren Sie diese nicht um. Lassen Sie alle Felder weg, die nicht eindeutig vorhanden sind.
```

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_prompt_text.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=5427ab4101aefbfd00f26b5c70c179a4" alt="Prompt Text Editor" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_prompt_text.png" />
</Frame>

**Wichtige Rollenanweisungen:**

* **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".

**Bewährte Vorgehensweisen:**

* 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.

***

<div id="step-5-define-the-output-format">
  ## Schritt 5: Ausgabeformat definieren
</div>

Geben Sie die genaue JSON-Struktur für die Extraktionsergebnisse an.

1. Fügen Sie unterhalb des ROLE-Abschnitts die Überschrift **OUTPUT FORMAT** hinzu.
2. Definieren Sie die JSON-Struktur:

```
OUTPUT FORMAT

Return one valid JSON object using this exact structure:

{
  "Fields": [
    { "FieldName": Vendor.Name, "Text": "...", "Line": <FirstLineIndex> },
    { "FieldName": Vendor.Address, "Text": "...", "Line": <FirstLineIndex> },
    { "FieldName": Vendor.TaxID, "Text": "...", "Line": <FirstLineIndex> },
    { "FieldName": Vendor.Account Number, "Text": "...", "Line": <FirstLineIndex> },
    { "FieldName": Vendor.Sort Code, "Text": "...", "Line": <FirstLineIndex> },
    { "FieldName": Vendor.IBAN, "Text": "...", "Line": <FirstLineIndex> },
    { "FieldName": Vendor.BIC_SWIFT, "Text": "...", "Line": <FirstLineIndex> }
  ]
}
```

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_json_output_format.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=a4885a4609b89597c9113b43ca825883" alt="JSON-Ausgabeformat" style={{ width:"56%" }} width="950" height="1360" data-path="images/vantage/how-to/prompt-extraction/how_to_json_output_format.png" />
</Frame>

**Strukturkomponenten:**

* **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.

**Wichtige Hinweise:**

* 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.

***

<div id="step-6-add-field-specific-extraction-rules">
  ## Schritt 6: Feldspezifische Extraktionsregeln hinzufügen
</div>

Geben Sie detaillierte Anweisungen für die Extraktion jedes Feldes.

Fügen Sie unterhalb des OUTPUT FORMAT spezifische Regeln für jeden Feldtyp hinzu:

```
VENDORNAME
1) Erkennen Sie Namen wie „ABC Corporation", „XYZ Ltd", „Acme Inc.".
2) Extrahieren Sie den vollständigen Firmennamen einschließlich rechtlicher Zusätze (Ltd, Inc, GmbH usw.).
3) Der Vendorname erscheint typischerweise oben im Dokument.

VENDORADRESSE
1) Extrahieren Sie die vollständige Adresse einschließlich Straße, Stadt, Postleitzahl.
2) Stellen Sie bei mehrzeiligen Adressen jede neue Zeile mit „\n" dar.
3) Nur Vendor-Seite; Kunden-/Käuferadressen ausschließen.

KONTONUMMER
1) Erkennen Sie „Account Number", „Account No", „Acct #".
2) Extrahieren Sie das numerische Format genau wie gedruckt (z. B. „12-34-56" oder „500 105 17").
3) Nur Vendor-eigene Konten (z. B. Abschnitte „Beneficiary" oder „Vendor Payment").
4) Ignorieren Sie IBAN – es hat ein eigenes Feld.

BANKLEITZAHL
1) Erkennen Sie „Sort Code", „Sort No.", „BLZ", „Bankleitzahl".
2) Extrahieren Sie das numerische Format genau wie gedruckt (z. B. „12-34-56" oder „500 105 17").
3) Nur Vendor-Seite; Zahler-/Käufercodes ignorieren.

IBAN
1) Erkennen Sie „IBAN", „International Bank Account Number".
2) Extrahieren Sie die vollständige IBAN genau wie gedruckt (einschließlich Leerzeichen).
3) Nur Vendor-Seite, typischerweise unter „Bankverbindung", „Coordonnées bancaires", „Payment Details" oder „Beneficiary Bank".

BIC_SWIFT
1) Erkennen Sie „BIC", „SWIFT" oder „BIC/SWIFT".
2) Extrahieren Sie die vollständige Kennung (normalerweise 8 oder 11 Großbuchstaben/Zahlen).
3) Nur Vendor-Seite, in der Nähe der IBAN oder des Banknamens.
4) Kunden-/Zahlerdaten ausschließen.
```

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_prompt_text.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=5427ab4101aefbfd00f26b5c70c179a4" alt="Extraktionsregeln" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_prompt_text.png" />
</Frame>

**Regelstruktur:**

* **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.

**Best Practices:**

* 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").

***

<div id="step-7-apply-strictness-rules">
  ## Schritt 7: Strictness-Regeln anwenden
</div>

Fügen Sie Validierungsregeln hinzu, um Datenqualität und Konsistenz sicherzustellen.

Fügen Sie am Ende Ihres Prompts den Abschnitt **STRICTNESS** hinzu:

```
STRICTNESS
- Niemals Werte generieren oder ableiten.
- Mehrdeutige oder fehlende Felder weglassen.
- Wenn keine der Vendor-Felder gefunden werden, Folgendes zurückgeben:
  {
    "Fields": []
  }
```

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_apply_strictness_rules.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=a345f62b355223d968714bb938bb2f0a" alt="Strictness Rules" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_apply_strictness_rules.png" />
</Frame>

**Zusätzliche Strenge-Regeln (optional):**

```
ALLGEMEINE REGELN
- Extrahieren Sie genau einen Wert pro Feld.
- Überspringen Sie jedes Feld, das nicht sicher lokalisiert werden kann — lassen Sie es in der Ausgabe weg.
- „FieldName" muss exakt mit den oben genannten Namen übereinstimmen.
- „Text" muss wörtlich aus dem Dokument kopiert werden — keine Normalisierung oder Inferenz.
- Für mehrzeilige Werte (z. B. Adressen) stellen Sie jede neue Zeile mit der Escape-Sequenz „\n" dar (ein Backslash gefolgt vom Buchstaben n).
- Fügen Sie keine HTML-Tags wie <br> in den Ausgabetext ein.
- „Line" ist der 0-basierte Index der ersten Zeile, die den extrahierten Wert enthält; fügen Sie ihn nur hinzu, wenn er verifizierbar ist.
```

**Warum Strenge wichtig ist:**

* **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.

**Wichtige Prinzipien der Strenge:**

* 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.

***

<div id="step-8-select-document-format">
  ## Schritt 8: Dokumentformat auswählen
</div>

Wählen Sie, welche Dokumentdarstellung an das LLM gesendet werden soll.

1. Suchen Sie im Activity Editor die Dropdown-Liste **Prompt**.
2. Sie sehen Optionen, wie das Dokument dem LLM bereitgestellt wird.

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_extracted_data_format.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=138f0f10dad8a127cface25d11d502bb" alt="Optionen für Dokumentformate" style={{ width:"61%" }} width="950" height="1360" data-path="images/vantage/how-to/prompt-extraction/how_to_extracted_data_format.png" />
</Frame>

**Verfügbare Formate:**

* **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

  <Warning>
    **Veraltet:** Das PDF-Dokumentformat ist veraltet und nur für bereits vorhandene OpenAI-Verbindungen verfügbar. Dieses Format wird für keine neuen Verbindungen mehr unterstützt – unabhängig vom Provider. Verwenden Sie stattdessen Annotated Text.
  </Warning>

* **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

3. Wählen Sie **Annotated Text** für die besten Ergebnisse

<Note>
  In Tests wurde festgestellt, dass Annotated Text die konsistentesten und zuverlässigsten Ergebnisse für Extraktionsaufgaben liefert. Es bewahrt die Dokumentstruktur und kann dennoch effizient von LLMs verarbeitet werden.
</Note>

***

<div id="step-9-test-your-extraction">
  ## Schritt 9: Testen Sie Ihre Extraktion
</div>

Führen Sie die Activity mit Beispieldokumenten aus, um die Ergebnisse zu prüfen.

<div id="run-the-activity">
  ### Aktivität ausführen
</div>

1. Schließen Sie den Activity Editor.
2. Navigieren Sie zur Registerkarte **All Documents**.
3. Wählen Sie ein Testdokument aus.
4. Klicken Sie auf **Test Activity** oder **Run**.

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_json_output_format.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=a4885a4609b89597c9113b43ca825883" alt="Testing Activity" style={{ width:"60%" }} width="950" height="1360" data-path="images/vantage/how-to/prompt-extraction/how_to_json_output_format.png" />
</Frame>

5. 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.

<div id="review-results">
  ### Ergebnisse überprüfen
</div>

Sobald die Verarbeitung abgeschlossen ist:

1. Die Oberfläche wechselt zur **Predictive view**.
2. Überprüfen Sie das **Output**-Panel mit den extrahierten Feldern.
3. Klicken Sie auf jedes Feld, um Folgendes zu sehen:
   * Extrahierter Wert
   * Konfidenzwert (falls verfügbar)
   * Hervorgehobener Bereich im Dokumentbild

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_activity_editor.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=ca35ebd6bead5efce02f1e85af1afaed" alt="Ergebnisse überprüfen" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_activity_editor.png" />
</Frame>

**Was Sie prüfen sollten:**

* ✅ 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)

<div id="common-result-patterns">
  ### Häufige Ergebnismuster
</div>

**Erfolgreiche Extraktion:**

```json theme={null}
{
  "Fields": [
    { "FieldName": "Vendor.Name", "Text": "ABC Corporation Ltd", "Line": 3 },
    { "FieldName": "Vendor.Address", "Text": "123 Business Street\nLondon SW1A 1AA", "Line": 5 },
    { "FieldName": "Vendor.IBAN", "Text": "GB29 NWBK 6016 1331 9268 19", "Line": 15 }
  ]
}
```

**Teilweise Extraktion (einige Felder fehlen):**

```json theme={null}
{
  "Fields": [
    { "FieldName": "Vendor.Name", "Text": "ABC Corporation Ltd", "Line": 3 }
  ]
}
```

**Keine Felder gefunden:**

```json theme={null}
{
  "Fields": []
}
```

***

<div id="step-10-refine-your-prompt">
  ## Schritt 10: Verfeinern Sie Ihren Prompt
</div>

Optimieren Sie Ihren Prompt anhand der Testergebnisse.

<div id="common-issues-and-solutions">
  ### Häufige Probleme und Lösungen
</div>

**Problem: LLM extrahiert das falsche Feld**

* **Lösung**: Fügen Sie genauere Positionshinweise hinzu.
* **Beispiel**: „Nur Vendor-Seite; Kunden-/Käuferadressen ausschließen“

**Problem: Formatierung wird geändert**

* **Lösung**: Betonen Sie die wortgetreue Extraktion.
* **Beispiel**: „Extrahieren Sie das numerische Format exakt wie gedruckt (z. B. ‚12-34-56‘)“

**Problem: LLM erfindet Daten**

* **Lösung**: Verschärfen Sie die Regeln zur Striktheit.
* **Beispiel**: „Werte niemals generieren oder ableiten. Auslassen, wenn nicht vorhanden.“

**Problem: Mehrzeilige Felder werden zusammengeführt**

* **Lösung**: Geben Sie Escape-Sequenzen an.
* **Beispiel**: „Für mehrzeilige Werte `\n` für Zeilenumbrüche verwenden“

**Problem: Falsche Feldnamen in der Ausgabe**

* **Lösung**: Stellen Sie sicher, dass Feldnamen exakt übereinstimmen.
* **Beispiel**: Verwenden Sie `Vendor.Account Number` und nicht `AccountNumber`

<div id="iterative-improvement-process">
  ### Iterativer Verbesserungsprozess
</div>

1. **Mit mehreren Dokumenten testen**: Nicht für ein einzelnes Beispiel optimieren.
2. **Muster dokumentieren**: Notieren, welche Regeln funktionieren und welche verfeinert werden müssen.
3. **Konkrete Beispiele hinzufügen**: Formatbeispiele in Klammern angeben.
4. **Strenge verfeinern**: Auf Basis von Über- bzw. Unterextraktion anpassen.
5. **Randfälle testen**: Dokumente mit fehlenden Feldern oder ungewöhnlichen Layouts ausprobieren.

<div id="example-refinements">
  ### Beispiele für Verfeinerungen
</div>

**Vorher:**

```
VENDOR NAME
1) Extract the vendor name from the document.
```

**Nachher:**

```
VENDOR NAME
1) Recognize names like "ABC Corporation", "XYZ Ltd", "Acme Inc.".
2) Extract the complete company name including legal suffixes (Ltd, Inc, GmbH, etc.).
3) Vendor name typically appears near the top of the document.
4) Exclude customer/buyer names - focus on the entity issuing the invoice.
```

***

<div id="understanding-the-extraction-process">
  ## Extraktionsprozess verstehen
</div>

<div id="how-prompt-based-extraction-works">
  ### Funktionsweise der promptbasierten Extraktion
</div>

1. **Dokumentkonvertierung**: Ihr Dokument wird in das ausgewählte Format umgewandelt (Format Annotated Text empfohlen).
2. **Prompt-Erstellung**: Ihre Rolle, das Ausgabeformat, Feldregeln und Regeln zur Strenge werden zu einem Prompt zusammengeführt.
3. **API-Aufruf**: Der Prompt und das Dokument werden über Ihre Verbindung an das LLM gesendet.
4. **LLM-Verarbeitung**: Das LLM liest das Dokument und extrahiert Daten gemäß Ihren Anweisungen.
5. **JSON-Antwort**: Das LLM gibt strukturierte Daten im angegebenen JSON-Format zurück.
6. **Feldzuordnung**: Vantage ordnet die JSON-Antwort den von Ihnen definierten Ausgabefeldern zu.
7. **Verifizierung**: Zeilennummern und Konfidenzwerte (falls bereitgestellt) unterstützen die Überprüfung der Genauigkeit.

<div id="token-usage-and-costs">
  ### Tokenverbrauch und Kosten
</div>

**Faktoren, die die Kosten beeinflussen:**

* **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.

**Optimierungstipps:**

* 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.

***

<div id="best-practices">
  ## Bewährte Vorgehensweisen
</div>

<div id="prompt-writing">
  ### Prompt-Erstellung
</div>

**Do:**

* ✅ Klare, imperative 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 nummerieren, um das Nachschlagen zu erleichtern.
* ✅ Einheitliche Terminologie durchgängig verwenden.

**Don't:**

* ❌ Unklare Anweisungen verwenden („get the name“).
* ❌ Davon ausgehen, dass das LLM domainspezifische Konventionen kennt.
* ❌ Übermäßig lange, komplexe Sätze schreiben.
* ❌ Sich in verschiedenen Abschnitten widersprechen.
* ❌ Regeln zur Strenge nicht weglassen.

<div id="field-definitions">
  ### Felddefinitionen
</div>

**Effektive Feldanweisungen:**

* 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.

**Beispiel:**

```
IBAN
1) Erkennen Sie „IBAN", „International Bank Account Number".
2) Extrahieren Sie die vollständige IBAN genau wie abgedruckt (einschließlich Leerzeichen).
3) Nur auf Vendor-Seite, typischerweise unter „Bankverbindung", „Payment Details".
4) NICHT mit Kontonummer verwechseln — IBAN ist länger und alphanumerisch.
```

<div id="testing-strategy">
  ### Teststrategie
</div>

1. **Mit einfachen Dokumenten beginnen**: Zuerst die grundlegende Extraktion testen.
2. **Auf Varianten erweitern**: Verschiedene Layouts und Formate ausprobieren.
3. **Randfälle testen**: Fehlende Felder, ungewöhnliche Positionen, mehrfache Treffer.
4. **Fehler dokumentieren**: Beispiele aufbewahren, in denen die Extraktion fehlschlägt.
5. **Systematisch iterieren**: Immer nur eine Sache auf einmal ändern.

<div id="performance-optimization">
  ### Leistungsoptimierung
</div>

**Für Geschwindigkeit:**

* Halten Sie Prompts prägnant.
* Verwenden Sie das Annotated Text-Format.
* Minimieren Sie die Anzahl der Felder pro Aktivität.
* Erwägen Sie das Aufteilen komplexer Dokumente.

**Für Genauigkeit:**

* Definieren Sie umfassende Feldregeln.
* Fügen Sie Formatbeispiele hinzu.
* Ergänzen Sie strikte Validierungsregeln.
* Testen Sie mit unterschiedlichen Dokumentbeispielen.

**Im Hinblick auf die Kosten:**

* Optimieren Sie die Prompt-Länge.
* Verwenden Sie effiziente Dokumentformate.
* Speichern Sie Ergebnisse bei Bedarf zwischen.
* Überwachen Sie den Token-Verbrauch über das Dashboard des LLM-Anbieters.

***

<div id="troubleshooting">
  ## Fehlerbehebung
</div>

<div id="extraction-issues">
  ### Extraktionsprobleme
</div>

**Problem:** Felder sind leer, obwohl Daten vorhanden sind.

**Lösungen:**

* Prüfen Sie, ob die Schreibweise des Feldnamens exakt übereinstimmt.
* Stellen Sie sicher, dass sich die Daten im ausgewählten Dokumentformat befinden.
* Fügen Sie weitere Label-Varianten zu den Erkennungsmustern hinzu.
* Verringern Sie den Strengegrad vorübergehend, um zu prüfen, ob das LLM die Daten findet.
* Prüfen Sie, ob die Dokumentqualität die OCR/Text-Extraktion beeinflusst.

**Problem:** LLM extrahiert Kundendaten statt Vendor-Daten.

**Lösungen:**

* Schärfen Sie die Spezifikationen für die Vendor-Seite.
* Fügen Sie explizite Ausschlüsse für Kunden-/Käuferdaten hinzu.
* Geben Sie Positionshinweise an (z. B. „oben im Dokument“, „Ausstellerbereich“).
* Fügen Sie Beispiele für korrekte vs. inkorrekte Extraktion hinzu.

**Problem:** Mehrzeilige Werte werden zusammengefügt oder fehlerhaft dargestellt.

**Lösungen:**

* Geben Sie das Format der Escape-Sequenz explizit an (`\n`).
* Stellen Sie Beispiele für eine korrekte mehrzeilige Ausgabe bereit.
* Stellen Sie sicher, dass das Dokumentformat Zeilenumbrüche beibehält.
* Fügen Sie die Anweisung hinzu: „Ursprüngliche Zeilenumbrüche mit `\n` beibehalten“.

**Problem:** LLM formatiert oder normalisiert Daten um.

**Lösungen:**

* Betonen Sie „wortgetreu“ und „genau wie gedruckt“.
* Fügen Sie eine Strenge-Regel hinzu: „Keine Normalisierung oder Ableitung“.
* Geben Sie konkrete Beispiele an, die die Beibehaltung der Formatierung zeigen.
* Fügen Sie Negativbeispiele ein: „Nicht ‚12-34-56‘, beibehalten als ‚12 34 56‘“.

<div id="performance-issues">
  ### Leistungsprobleme
</div>

**Problem:** Die Extraktion ist zu langsam.

**Lösungen:**

* Wechseln Sie zum Annotated Text-Format, wenn Sie PDFs verwenden.
* Vereinfachen Sie den Prompt, ohne wichtige Anweisungen zu verlieren.
* Reduzieren Sie die Dokumentauflösung, wenn Bilder sehr groß sind.
* Überprüfen Sie den Status und die Rate-Limits des LLM-Anbieters.
* Ziehen Sie ein schnelleres Modell für einfache Dokumente in Betracht.

**Problem:** Inkonsistente Ergebnisse zwischen Durchläufen.

**Lösungen:**

* Verschärfen Sie die Strengevorgaben.
* Formulieren Sie die Anweisungen genauer und eindeutiger.
* Fügen Sie mehr Formatbeispiele hinzu.
* Reduzieren Sie die Prompt-Komplexität, die zu Interpretationen führen könnte.
* Testen Sie mit höheren Temperatureinstellungen (falls in der Verbindung verfügbar).

**Problem:** Hohe API-Kosten.

**Lösungen:**

* Optimieren Sie die Prompt-Länge.
* Verwenden Sie Annotated Text anstelle von PDF.
* Verarbeiten Sie Dokumente in Batches außerhalb der Spitzenzeiten.
* Ziehen Sie kleinere/günstigere Modelle für einfache Dokumente in Betracht.
* Überwachen Sie das Budget und richten Sie Budgetwarnungen im Dashboard des LLM-Anbieters ein.

***

<div id="advanced-techniques">
  ## Fortgeschrittene Techniken
</div>

<div id="conditional-extraction">
  ### Bedingte Extraktion
</div>

Sie können das LLM anweisen, bestimmte Felder nur zu extrahieren, wenn festgelegte Bedingungen erfüllt sind:

```
KONTONUMMER (BEDINGT)
1) Nur extrahieren, wenn das Dokument Bankzahlungsdetails enthält.
2) Wenn „Zahlungsart: Scheck" oder Ähnliches erscheint, dieses Feld auslassen.
3) „Kontonummer", „Konto-Nr.", „Kto.-Nr." erkennen.
```

<div id="multi-language-support">
  ### Unterstützung mehrerer Sprachen
</div>

Promptbasierte Extraktion funktioniert auch mit mehrsprachigen Dokumenten sehr gut:

```
VENDOR NAME (MULTI-LANGUAGE)
1) Recognize in English: "Vendor Name", "Supplier", "Seller"
2) Recognize in German: "Verkäufer", "Lieferant", "Anbieter"
3) Recognize in French: "Fournisseur", "Vendeur"
4) Extract the complete company name regardless of language.
```

<div id="validation-rules">
  ### Validierungsregeln
</div>

Fügen Sie Validierungslogik zu Ihren Prompts hinzu:

```
IBAN (WITH VALIDATION)
1) Extract the full IBAN exactly as printed.
2) Verify it starts with a 2-letter country code.
3) If format doesn't match IBAN pattern, omit the field.
4) Do not invent check digits or country codes.
```

<div id="field-relationships">
  ### Feldbeziehungen
</div>

Legen Sie fest, wie Felder miteinander in Beziehung stehen:

```
ACCOUNT NUMBER vs IBAN
- Account Number: Usually shorter, numeric, domestic format.
- IBAN: Alphanumeric, starts with country code (e.g., "GB29 NWBK...").
- If both are present, extract both to separate fields.
- If only one is present, extract to the appropriate field.
- Do not duplicate the same value in both fields.
```

***

<div id="limitations-and-considerations">
  ## Einschränkungen und Überlegungen
</div>

<div id="current-capabilities">
  ### Aktuelle Funktionen
</div>

**Unterstützt:**

* ✅ Feldextraktion auf Header-Ebene
* ✅ Ein- und mehrzeilige Werte
* ✅ Mehrere Felder pro Dokument
* ✅ Bedingte Extraktionslogik
* ✅ Mehrsprachige Dokumente
* ✅ Variable Dokumentlayouts

**Eingeschränkt oder nicht unterstützt:**

* ⚠️ Tabellenextraktion (unterscheidet sich je nach Implementierung)
* ⚠️ Verschachtelte komplexe Strukturen
* ⚠️ Sehr große Dokumente (Token-Limits)
* ⚠️ Echtzeitverarbeitung (API-Latenz)
* ⚠️ Garantiert deterministische Ergebnisse

<div id="when-to-use-prompt-based-extraction">
  ### Wann Sie die promptbasierte Extraktion verwenden sollten
</div>

**Am besten geeignet für:**

* Dokumente mit variablen Layouts
* Teilstrukturierte Dokumente
* Schnelles Prototyping und Testen
* Kleine bis mittlere Dokumentvolumina
* Wenn keine Trainingsdaten verfügbar sind
* Mehrsprachige Dokumentverarbeitung

**Alternativen in Betracht ziehen bei:**

* 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)

***

<div id="integration-with-document-skills">
  ## Integration mit Document-Skills
</div>

<div id="using-extracted-data">
  ### Verwendung extrahierter Daten
</div>

Sobald die Extraktion abgeschlossen ist, stehen die Felddaten im gesamten Document-Skill zur Verfügung:

1. **Validierungsaktivitäten**: Geschäftsregeln auf extrahierte Werte anwenden.
2. **Skriptaktivitäten**: Extrahierte Daten verarbeiten oder transformieren.
3. **Exportaktivitäten**: Daten an externe Systeme senden.
4. **Review-Oberfläche**: Manuelle Überprüfung der extrahierten Felder.

<div id="combining-with-other-activities">
  ### Kombinieren mit anderen Activities
</div>

Promptbasierte Extraktion kann zusammen mit anderen Activities eingesetzt werden:

```
Workflow Example:
1. Classification (identify document type)
2. OCR (extract text)
3. Prompt-based extraction (extract structured data)
4. Validation rules (verify data quality)
5. Script (format for export)
6. Output (deliver results)
```

<div id="field-mapping">
  ### Feldzuordnung
</div>

Die extrahierten JSON-Felder werden automatisch Ihren definierten Ausgabefeldern zugeordnet:

* `"FieldName": "Vendor.Name"` → wird dem Ausgabefeld `Vendor.Name` zugeordnet.
* Die Feldhierarchie bleibt in der Ausgabestruktur erhalten.
* Zeilennummern helfen bei der Überprüfung und Fehlerbehebung.

***

<div id="summary">
  ## Zusammenfassung
</div>

Sie haben erfolgreich:

* ✅ Eine promptbasierte Extraktionsaktivität erstellt.
* ✅ Eine LLM-Verbindung konfiguriert.
* ✅ Einen umfassenden Extraktions-Prompt mit Rolle, Format und Regeln geschrieben.
* ✅ Das optimale Dokumentformat (Annotated Text) ausgewählt.
* ✅ Strenge Regeln zur Sicherstellung der Datenqualität angewendet.
* ✅ Die Extraktion getestet und die Ergebnisse überprüft.
* ✅ Best Practices für Prompt-Engineering gelernt.

**Wichtigste Erkenntnisse:**

* Promptbasierte Extraktion verwendet Anweisungen in natürlicher Sprache.
* Das Annotated-Text-Format liefert die besten Ergebnisse.
* Klare, spezifische Prompts führen zu einer konsistenten Extraktion.
* Strenge Regeln verhindern Halluzinationen und sichern die Datenqualität.
* Iteratives Testen und Verfeinern verbessert die Genauigkeit.

Ihre promptbasierte Extraktionsaktivität ist nun für die Dokumentverarbeitung bereit!

***

<div id="next-steps">
  ## Weitere Schritte
</div>

1. **Mit unterschiedlichen Dokumenten testen**: Validieren Sie Ihre Lösung mit verschiedenen Layouts und Varianten.
2. **Prompts verfeinern**: Verbessern Sie diese kontinuierlich auf Basis der Ergebnisse.
3. **Kosten überwachen**: Verfolgen Sie die Token-Nutzung im Dashboard Ihres LLM-Anbieters.
4. **Performance optimieren**: Stimmen Sie Prompts auf Geschwindigkeit und Genauigkeit ab.
5. **Tabellenextraktion erkunden**: Experimentieren Sie mit dem Extrahieren von Positionen (wiederholte Gruppe) (falls unterstützt).
6. **In Workflows integrieren**: Kombinieren Sie dies mit anderen Aktivitäten für eine vollständige Verarbeitung.

***

<div id="additional-resources">
  ## Zusätzliche Ressourcen
</div>

* **ABBYY Vantage Advanced Designer-Dokumentation:** [https://docs.abbyy.com](https://docs.abbyy.com)
* **Leitfaden zur Einrichtung von LLM-Verbindungen:** [LLM-Verbindungen konfigurieren](/de/vantage/how-to/connections).
* **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.

***

<div id="frequently-asked-questions">
  ## Häufig gestellte Fragen
</div>

**F: Was ist der Unterschied zwischen promptbasierter und traditioneller Extraktion?**
A: Promptbasierte Extraktion verwendet LLM-Anweisungen in natürlicher Sprache ohne Trainingsdaten. Traditionelle Methoden benötigen Trainingsbeispiele, sind aber in großem Maßstab schneller und kosteneffizienter.

**F: Kann ich mit promptbasierten Activities Tabellen extrahieren?**
A: Die Extraktion auf Kopfzeilenebene wird gut unterstützt. Die Fähigkeiten zur Tabellenextraktion können variieren und erfordern möglicherweise spezielle Prompt-Strukturen.

**F: Warum Annotated Text statt PDF verwenden?**
A: Annotated Text bietet das beste Gleichgewicht zwischen Strukturerhaltung und Verarbeitungseffizienz. In Tests hat sich dieses Format als am zuverlässigsten erwiesen.

**F: Wie reduziere ich API-Kosten?**
A: Optimieren Sie die Prompt-Länge, verwenden Sie das Annotated-Text-Format, verarbeiten Sie Dokumente effizient und überwachen Sie den Token-Verbrauch über das Dashboard Ihres LLM-Anbieters.

**F: Was ist, wenn meine LLM-Verbindung fehlschlägt?**
A: Prüfen Sie Ihren Verbindungsstatus unter Configuration → Connections. Testen Sie die Verbindung, überprüfen Sie Ihre Zugangsdaten und stellen Sie sicher, dass Ihr API-Kontingent nicht überschritten ist.

**F: Kann ich mehrere LLM-Verbindungen in einem Skill verwenden?**
A: Ja, unterschiedliche Activities können verschiedene Verbindungen nutzen. So können Sie unterschiedliche Modelle für verschiedene Extraktionsaufgaben einsetzen.

**F: Wie gehe ich mit Dokumenten in mehreren Sprachen um?**
A: Fügen Sie mehrsprachige Label-Varianten zu Ihren Feldregeln hinzu. LLMs verarbeiten mehrsprachige Inhalte in der Regel gut.

**F: Wie groß darf ein Dokument maximal sein?**
A: Das hängt von den Token-Grenzen Ihres LLM-Anbieters ab. Sehr lange Dokumente müssen möglicherweise aufgeteilt oder abschnittsweise verarbeitet werden.
