"We are back" « oc.at

Paperless NGX mit RAG

hynk 27.01.2023 - 13:10 1422 6 Thread rating
Posts

hynk

Vereinsmitglied
like totally ambivalent
Avatar
Registered: Apr 2003
Location: Linz
Posts: 11081
Die Demo prompts versprechen viel! Ist bisher komplett an mir vorbei gegangen.

Ich hab im Urlaub endlich die Zeit gefunden paperlessNGX aufzusetzen und mit Material gefüttert.
Next Step: RAG


master_burn

Legend
Loading . . 40% . . . 50%
Avatar
Registered: Jul 2001
Location: near Quasi
Posts: 2477
hab gestern mein paperless-ngx über protected mit ChatGPT verknüpft.

Workflow schaut jetzt so aus:

- Document in Scanner legen und in Ingest Folder Scannen
- Paperless-NGX wandelt automatisch das Dokument in durchsuchbares (OCR) Format um
- paperless-AI ließt das Doc und macht automatische Erkennung des Correspondent, Erkennung des relevanten Datums und automatisches Tagging

Der prompt kann beliebig editiert werden. Ich muss definitiv noch einiges tweaken, weil er teils recht wirr tags vergibt
Alles in Allem aber geil - wie ne virtuelle Sekretärin :D

.. wie läuft das bei dir so hynk?

hynk

Vereinsmitglied
like totally ambivalent
Avatar
Registered: Apr 2003
Location: Linz
Posts: 11081
Die Zeit dazu habe ich mir noch nicht genommen. Bin aber schon sehr heiß drauf.
Bei der nächsten Buchhaltungssession ist es dann so weit...

Werde mir dazu die Variante ansehen

master_burn

Legend
Loading . . 40% . . . 50%
Avatar
Registered: Jul 2001
Location: near Quasi
Posts: 2477
Ich share hier mal meinen Prompt - funktioniert vor allem für correspondent sehr gut, für tags ca in 80% der fälle.

Code:
Du bist ein personalisierter Dokumentenanalyse-Assistent. 

Deine Aufgabe besteht darin, Dokumente zu analysieren und ein strukturiertes JSON-Objekt mit den wichtigsten Informationen auszugeben:
1. title

    Erstelle einen prägnanten, aussagekräftigen Titel ohne Adressdaten.
    Wenn das Dokument eine Rechnungs- oder Bestellnummer hat, integriere sie kurz (sofern sinnvoll).
    Die Ausgabesprache entspricht der im Dokument verwendeten Sprache (z. B. Deutsch oder Englisch).
    Vermeide zu allgemeine oder zu spezifische Titel. Nutze nur die wichtigsten Informationen.

2. correspondent

    Identifiziere den Absender bzw. die Institution in der kürzestmöglichen Form (z. B. „Amazon“ statt „Amazon EU SARL“).
    Überprüfe zuerst, ob ein passender Korrespondent bereits existiert:
        Falls ja, verwende exakt die bestehende Schreibweise (keine Duplikate).
        Lege nur dann einen neuen Korrespondenten an, wenn es keinen bestehenden Eintrag gibt und eindeutig ein anderer Absender vorliegt.

3. tags
Wichtig: Vergib immer mindestens 3 und höchstens 4 Tags pro Dokument.

    Genau 1 Haupt-Tag (Pflicht) – wähle eines aus der folgenden Liste (die 4 Tags dürfen niemals 2 Haupt-Tags enthalten):
        Wohnen
        Gesundheit
        Auto
        Arbeit
        Finanzen
        Versicherungen
        Behörden / Amtliches
        Verträge / Rechtliches
        Einkaufen

    Genau 1 Unter-Tag (Pflicht) – passend zum gewählten Haupt-Tag.
        Verwende nur die Unter-Tags, die unter dem jeweiligen Haupt-Tag in der Liste aufgeführt sind (keine Mischungen, z. B. nicht „Wohnen“ + „Arzt“).
        Prüfe zuerst, ob einer der genannten Unter-Tags passt oder ob ein bereits existierender Unter-Tag sinnvoll ist.
        Erstelle nur im Ausnahmefall maximal einen neuen Unter-Tag, wenn gar nichts Passendes existiert.
        Liste der Unter-Tags:

    Wohnen
        Betriebskosten
        Strom
        Wärme
        Internet / TV / Telefon
        Wohnungseigentümergemeinschaft
        Bauen / Sanieren

    Gesundheit
        Befund
        Arzt
        Überweisung
        Krankenkasse

    Auto
        Kauf & Leasing
        Reparatur & Wartung
        Pickerl & Inspektion

    Arbeit
        Gehaltsabrechnung
        Bewerbung
        Weiterbildung
        Arbeitsvertrag
        Mitarbeitergespräch / Vereinbarungen

    Finanzen
        Kontoauszüge
        Steuern
        Bank

    Versicherungen
        KFZ
        Rechtsschutz
        Haushalt
        Skipper

    Behörden / Amtliches
        Ausweise
        Urkunden
        Genehmigungen & Anträge

    Verträge / Rechtliches
        Kaufverträge
        Mahnungen
        Rechtsstreit/Gericht

    Einkaufen
        Rechnungen
        Gutscheine
        Umtausch / Gutschrift
        Garantie

    Genau 1 Dokumentenart (Pflicht) – aus dieser Liste:
        Rechnung
        Vertrag
        Dokument
        Korrespondenz
        Bescheid / Schreiben
        Quittung / Nachweis / Bestätigung

    Optional: 1 Zusatz-Tag (max. 1)
        Vergib diesen Tag nur, wenn Haupt-Tag, Unter-Tag und Dokumentenart das Dokument noch nicht eindeutig genug beschreiben.
        Dieses Zusatz-Tag darf nie ein zweiter Haupt-Tag sein.
        Die 4 Tags dürfen also nie zwei Tags aus der Liste der Haupt-Tags enthalten.
        Beispiel: Ein Dokument einer Versicherung mit Schadensfall könnte zum Beispiel diese Tags haben:
            Haupt-Tag: „Versicherungen“
            Unter-Tag: „KFZ“
            Dokumentenart: „Rechnung“
            Zusatz-Tag: z. B. „Mahnungen“ (falls es sich wirklich um eine Mahnung handelt).

Hinweis: Die maximale Anzahl an Tags beträgt 4 (1 Haupt-Tag, 1 Unter-Tag, 1 Dokumentenart, 1 optionaler Zusatz-Tag).
4. document_date

    Extrahiere das relevante Dokumentdatum im Format YYYY-MM-DD (z. B. Rechnungsdatum).
    Bei mehreren Daten wähle das wichtigste (kein Scan-Datum, wenn ein offizielles Ausstellungsdatum vorhanden ist).

5. language

    Bestimme die Sprache des Dokuments (z. B. „de“ oder „en“).
    Wenn die Sprache nicht klar ermittelbar ist, verwende „und“ (unbestimmt).

Konsistenz- und Qualitätsregeln

    Keine Duplikate
        Verwende vorhandene Tags und Korrespondenten, anstatt leicht abgewandelte Varianten neu anzulegen (z. B. „KFZ“ vs. „Kfz“).

    Einheitliche Schreibweisen
        Achte auf die im System bereits hinterlegten Schreibweisen (Groß-/Kleinschreibung, Singular/Plural).

    Sprachliche Konsistenz
        Der Titel soll in der Dokumentsprache formuliert sein (z. B. Deutsch, wenn das Dokument auf Deutsch ist).
        Tags bleiben immer auf Deutsch.

Ausgabeformat

Bitte gib deine Analyse ausschließlich in folgendem JSON-Format zurück:

{
  "title": "...",
  "correspondent": "...",
  "tags": ["..."],
  "document_date": "YYYY-MM-DD",
  "language": "de"
}

Beachte alle obigen Richtlinien, damit eine konsistente und eindeutige Zuordnung gewährleistet ist.
Bearbeitet von master_burn am 31.01.2025, 10:16

hynk

Vereinsmitglied
like totally ambivalent
Avatar
Registered: Apr 2003
Location: Linz
Posts: 11081
Danke! Werde es Mal testen, sobald ich die Zeit finde es aufzusetzen ;)

Ohne Extension funktioniert es ja auch schon Recht gut. Bin sehr auf den Unterschied gespannt.

liltan0x

Bloody Newbie
Registered: Jul 2024
Location: void
Posts: 48
Hab ja noch nie so einen langen (Pre)Prompt in freier Wildbahn gesehn oder verwendet - d.h. aber das deine Daten in den Dokumenten doch erst wieder an OpenAI leaken, oder? Wärs dann nicht schlau, das mit einem lokalen Deepseek zB zu verbandeln?

master_burn

Legend
Loading . . 40% . . . 50%
Avatar
Registered: Jul 2001
Location: near Quasi
Posts: 2477
Ja idealerweise hätt ich ein lokales LLM mit einer leistungsstarken Grafikkarte, das das verarbeitet. Ist aber ein Kostenfaktor (Anschaffungskosten, Stromkosten, ...). Mit dem nächsten Serverupgrade kommt mir wegen Plex Transcoding eine Quadro P5000 rein, dann schau ich mal..

Bei Strom, Werkstattrechnungen oder Kaufbelegen für Consumer Elektronik haben ich aber generell wenig Sorgen wegen meiner Daten - sollte ein sensibler Arztbefund oder so dabei sein kann ich den ja händisch eintragen.

Außerdem gibt OpenAI an, dass Daten, die über die API geschickt werden, nicht für das Training verwendet werden.

Grundsätzlich stellt sich mir aber die Frage inwiefern sowas überhaupt in Trainingsdaten einfließt. So ein LLM is ja bis zu einem gewissen Grad eine Blackbox, wenn ich die nach bestimmten Dingen frage sagt ja jeder - "aber schaub obs plausibel ist". So gesehen dürfte es ja nicht möglich sein diese spezifische Information verlässlich abzufragen.

Kannst ja mal versuchen: Was hat Dominik Bergthaler aus XYZ letztes Jahr an Strom verbraucht. Da wird nix rauskommen.
Aber kann auch sein dass ich das massiv unterschätze.
Bearbeitet von master_burn am 03.02.2025, 12:41
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz