Cortex PARSE_DOCUMENT

Die PARSE_DOCUMENT-Funktion ist eine Cortex-AI AISQL-Funktionen, die die Möglichkeit bietet, Text, Daten und Layoutelemente aus Dokumenten zu extrahieren. Sie können PARSE_DOCUMENT verwenden, um Text aus verschiedenen Dokumenten und Formularen zu extrahieren, um Folgendes zu realisieren:

  • RAG-Pipelines für Cortex Search

  • LLM-Verarbeitung wie Dokumentenzusammenfassung oder Übersetzung mit Cortex AI-Funktionen

  • Extraktion von Zero-Shot-Entitäten mit strukturierten Cortex AI-Ausgaben

Wie funktioniert PARSE_DOCUMENT?

Die PARSE_DOCUMENT-Funktion bietet zwei Modi für die Verarbeitung von PDF-Dokumenten:

  • Der Modus OCR ist die empfohlene Option für die schnelle, qualitativ hochwertige Textextraktion aus Dokumenten wie Handbüchern, Verträgen, Produktdetailseiten, Versicherungspolicen und -ansprüchen sowie SharePoint-Dokumenten.

  • Der Modus LAYOUT ist für die Extraktion von Text und Layoutelementen wie Tabellen optimiert. Dies ist die empfohlene Option zur Verbesserung des Kontexts einer Dokument-Wissensdatenbank, um die Abrufinformationssystemen zu optimieren, und für die Inferenz des Large Language Model (LLM).

Bemerkung

Der Layout-Modus PARSE_DOCUMENT befindet sich derzeit in der Vorschau. Der OCR-Modus ist in den meisten Regionen allgemein verfügbar.

Verwenden von PARSE_DOCUMENT

Cortex PARSE_DOCUMENT ist eine SQL-Funktion. Da es vollständig von Snowflake gehostet und verwaltet wird, ist für die Nutzung kein Setup erforderlich. Richten Sie die PARSE_DOCUMENT-Funktion auf einen Stagingbereich, der Ihre PDF-Dokumente enthält, um Daten aus ihnen zu extrahieren. Das folgende Beispiel extrahiert die Text- und Layoutinformationen aus der Datei document_1.pdf im documents-Stagingbereich in der Datenbank parse_document und im Schema demo.

Bemerkung

PARSE_DOCUMENT ist derzeit nicht mit den benutzerdefinierten von Netzwerkrichtlinien kompatibel.

SELECT
  SNOWFLAKE.CORTEX.PARSE_DOCUMENT(
    @parse_document.demo.documents,
    'document_1.pdf',
    {'mode': 'LAYOUT'}
  ) AS layout;
Copy

Einen Stagingbereich für die Dokumentenverarbeitung erstellen

Erstellen Sie einen internen oder externen Stagingbereich, um die zu verarbeitenden Dokumente zu speichern. Aktivieren Sie bei der Erstellung Ihres Stagingbereichs Serverseitige Verschlüsselung. Andernfalls gibt PARSE_DOCUMENT einen Fehler zurück, dass die angegebene Datei nicht das erwartete Format hat oder clientseitig verschlüsselt ist.

Das folgende SQL erstellt einen geeigneten internen Stagingbereich.

CREATE OR REPLACE STAGE input_stage
    DIRECTORY = ( ENABLE = true )
    ENCRYPTION = ( TYPE = 'SNOWFLAKE_SSE' );
Copy

Das folgende SQL erstellt einen externen Stagingbereich auf Amazon S3. Auch die externen Stagingbereiche von Azure und GCP werden unterstützt.

CREATE OR REPLACE STAGE input_stage
    URL='s3://<s3-path>/'
    CREDENTIALS=(AWS_KEY_ID=<aws_key_id>
    AWS_SECRET_KEY=<aws_secret_key>)
    ENCRYPTION=( TYPE = 'AWS_SSE_S3' );
Copy

Bemerkung

Die Verarbeitung von Dateien aus Stagingbereichen ist derzeit nicht mit benutzerdefinierten Netzwerkrichtlinien kompatibel.

Tipp

Wenn Sie von einem externen Stagingbereich die Fehlermeldung „Ablauf in Sekunden für AWS-Rolle ist ungültig“ erhalten, vergewissern Sie sich, dass die vorgegebene URL-Ablaufzeit korrekt eingestellt ist. Der Standardwert dieses Kontoparameters ist für interne Stagingbereiche optimiert, aber es gibt eine Option, ihn für externe Stagingbereiche anzupassen. Um sie zu ändern, wenden Sie sich an den Snowflake-Support.

Beispiel

In diesem Beispiel wird PARSE_DOCUMENTim Modus OCR verwendet, um Text aus der ersten Seite eines Wetterversicherungsdokuments zu extrahieren (siehe unten).

Beispiel für ein Wetterversicherungsdokument

Um dieses Dokument zu analysieren, laden Sie es in einen Stagingbereich namens document_stage hoch und führen die folgende Abfrage aus:

SELECT SNOWFLAKE.CORTEX.PARSE_DOCUMENT(
    @document_stage,
    'weather_policy.pdf'
  ) AS weather_policy_doc
Copy

Die Rohfassung der Antwort von PARSE_DOCUMENT lautet wie folgt:

{
  "content": "SOME INSURANCE COMPANY\nWEATHER PROTECTION INSURANCE POLICY\nPolicy Number: WP-2025-789456\nEffective Date: April 1, 2025\nExpiration Date: April 1, 2026\nNAMED INSURED AND PROPERTY:\nJohn and Mary Homeowner\n123 Shelter Lane\nWeatherton, ST 12345\n

SECTION I - DEFINITIONS\nThroughout this policy, \"you\" and \"your\" refer to the Named Insured shown in the Declarations and the spouse if a\nresident of the same household. \"We,\" \"us,\" and \"our\" refer to Evergreen Insurance Company providing this\ninsurance. In addition, certain words and phrases are defined as follows:\n1. Weather Event means a natural atmospheric occurrence including but not limited to: a. Wind (including\nhurricanes, tornadoes, and straight-line winds) b. Hail c. Lightning d. Snow, ice, and freezing rain e.\nExcessive rainfall resulting in flooding f. Extreme temperatures causing damage\n2. Named Storm means any storm or weather disturbance that has been declared and named as a tropical\nstorm or hurricane by the National Weather Service or National Hurricane Center.\n3. Actual Cash Value (ACV) means the cost to repair or replace damaged property with new material of like\nkind and quality, less depreciation due to age, wear and condition.\n4. Replacement Cost means the cost to repair or replace damaged property with new material of like kind\nand quality, without deduction for depreciation.\n5. Dwelling means the building structure at the insured location including attached structures and fixtures.\n6. Other Structures means structures on the residence premises separated from the dwelling by clear\nspace or connected only by a fence, utility line, or similar connection.\n7. Personal Property means movable items owned by you and located at the insured property.\n

SECTION II - COVERAGE\nA. PROPERTY COVERAGE\nWe will pay for direct physical loss to property described in the Declarations caused by a Weather Event unless\nthe loss is excluded in Section III - Exclusions.\n1. Dwelling Protection We will cover: a. Your dwelling, including attached structures b. Materials and\nsupplies located on or adjacent to the residence premises for use in construction, alteration, or repair of\nthe dwelling or other structures c. Foundation, floor slab, and footings supporting the dwelling d.\nWall-to-wall carpeting attached to the dwelling\n2. Other Structures Protection We will cover structures on your property separated from your dwelling by\nclear space, including: a. Detached garages b. Storage sheds c. Fences d. Driveways and walkways e.\nPatios and retaining walls\n3. Personal Property Protection We will cover personal property owned or used by you while it is on the\nresidence premises. Coverage includes but is not limited to: a. Furniture b. Clothing c. Electronic\nequipment d. Appliances e. Sporting goods\n4. Loss of Use Protection If a Weather Event makes your residence uninhabitable, we will cover: a.\nAdditional living expenses incurred to maintain your normal standard of living b. Fair rental value if part of\nyour residence is rented to others c. Necessary expenses required to make the residence habitable or\nmove to temporary housing\nB. ADDITIONAL COVERAGES",
  "metadata": {
    "pageCount": 1
  }
}
Copy

Durch die Verarbeitung dieser Antwort mit Cortex AI LLM-Funktionen können Sie problemlos unstrukturierte Datenanalysen durchführen. Das folgende Beispiel demonstriert eine einfache Frage-Antwort-Aufgabe:

SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
  CONCAT ('Is clothing covered as part of the weather protection insurance policy?',
    TO_VARCHAR(weather_policy_doc))) FROM ocr_example_docs
Copy

Antwort:

Yes, clothing is covered under the insurance policy. According to Section II - Coverage, Part A.3 (Personal Property Protection), clothing is specifically listed as one of the covered personal property items while it is on the residence premises. The policy states: "We will cover personal property owned or used by you while it is on the residence premises. Coverage includes but is not limited to: a. Furniture b. Clothing c. Electronic equipment d. Appliances e. Sporting goods"

Eingabeanforderungen

PARSE_DOCUMENT ist sowohl für digital erstellte als auch für gescannte Dokumente optimiert. In der folgenden Tabelle sind die Beschränkungen und Anforderungen für Eingabedokumente aufgeführt:

Maximale Dateigröße

100 MB

Maximale Seitenzahl pro Dokument

300 Seiten

Erlaubter Dateityp

PDF, PPTX, DOCX, JPEG, JPG, PNG, TIFF, TIF

Stagingbereich-Verschlüsselung

Serverseitige Verschlüsselung:

Schriftgröße

8 Punkt oder größer für beste Ergebnisse

Unterstützte Features für Dokumente

Feature

Beschreibung

Seitenausrichtung

PARSE_DOCUMENT erkennt automatisch die Seitenausrichtung.

Zeichen

PARSE_DOCUMENT erkennt die folgenden Zeichen:

  • a–z

  • A-Z

  • 0-9

  • À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ Ą ą Ć ć Č č Đ đ Ę ę ı Ł ł Ń ń ō Œ œ Ś ś Š š Ÿ Ź ź Ż ż Ž ž ʒ β δ ε з Ṡ

  • ! „ # $ % & ‚ ( ) * + , - . / : ; < = > ? @ [ ] ^ _ ` { | } ~ ¡ ¢ £ ¥ § © ª « ­ ® ¯ ° ± ² ³ ´ µ ¶ · º » ¿ ‚ † ‡ • ‣ ⁋ ₣ ₤ ₦ ₩ € ₭ ₹ ™ ← ↑ → ↓ ↔ ↕ ↖ ↗ ↘ ↙ ↰ ↱ ↲ ↳ ↴ ↵

Bemerkung

PARSE_DOCUMENT ist nicht für die Handschrifterkennung trainiert.

Unterstützte Sprachen

PARSE_DOCUMENT ist gezielt für die folgenden Sprachen trainiert:

OCR-Modus

LAYOUT-Modus

  • Englisch

  • Französisch

  • Deutsch

  • Italienisch

  • Norwegisch

  • Polnisch

  • Portugiesisch

  • Spanisch

  • Schwedisch

  • Englisch

Der LAYOUT-Modus unterstützt auch Französisch, Deutsch, Italienisch, Norwegisch, Polnisch, Portugiesisch, Spanisch und Schwedisch, ist aber nicht dafür optimiert.

Regionale Verfügbarkeit

Dieses Feature ist für Konten in den folgenden Snowflake Regionen verfügbar:

AWS

Azure

Google Cloud Platform

US West 2 (Oregon)

East US 2 (Virginia)

US Central 1 (Iowa)

US East (Ohio)

West US 2 (Washington)

US East 1 (N. Virginia)

Europa (Niederlande)

Europa (Irland)

Europe Central 1 (Frankfurt)

Asia Pacific (Sydney)

Asia Pacific (Tokio)

Anforderungen an die Zugriffssteuerung

Um die Funktion PARSE_DOCUMENT zu verwenden, muss ein Benutzer mit der Rolle ACCOUNTADMIN dem Benutzer, der die Funktion aufruft, die Datenbankrolle SNOWFLAKE.CORTEX_USER erteilen. Siehe Erforderliche Berechtigungen für weitere Informationen.

Hinweise zu Kosten

Die Cortex PARSE_DOCUMENT-Funktion verursacht Rechenkosten, die sich nach der Anzahl der verarbeiteten Seiten pro Dokument richten.

  • Bei Dokumentdateiformaten (PDF, DOCX) wird jede Seite des Dokuments als eine Seite abgerechnet.

  • Bei Bilddateiformaten (JPEG, JPG, TIF, TIFF, PNG) wird jede einzelne Bilddatei als eine Seite abgerechnet.

Snowflake empfiehlt die Ausführung von Abfragen, die die Cortex-Funktion PARSE_DOCUMENT aufrufen, in einem kleineren Warehouse (nicht größer als MEDIUM). Größere Warehouses erhöhen die Leistung nicht.

Fehlerbedingungen

Snowflake Cortex PARSE_DOCUMENT kann die folgenden Fehlermeldungen erzeugen:

Meldung

Erläuterung

Dokument enthält Sprache, die nicht unterstützt wird.

Eingabedokument enthält nicht unterstützte Sprache

Das bereitgestellte Dateiformat {file_extension} wird nicht unterstützt. Unterstützte Formate: .[‚.docx‘, ‚.pptx‘, ‚.pdf‘].

Wird zurückgegeben, wenn das Dokument nicht in einem unterstützten Format vorliegt.

Das bereitgestellte Dateiformat .bin wird nicht unterstützt. Unterstützte Formate: [‚.docx‘, ‚.pptx‘, ‚.pdf‘]. Stellen Sie sicher, dass die Datei mit serverseitiger Verschlüsselung gespeichert wird.

Wird zurückgegeben, wenn das Dateiformat nicht unterstützt und als Binärdatei verstanden wird. Stellen Sie sicher, dass der Stagingbereich serverseitige Verschlüsselung verwendet.

Maximale Anzahl von 300 Seiten überschritten.

Wird zurückgegeben, wenn PDF mehr als 300 Seiten enthält.

Maximale Dateigröße von 104857600 Bytes überschritten.

Wird zurückgegeben, wenn das Dokument größer als 100 MB ist.

Die bereitgestellte Datei kann nicht gefunden werden.

Die Datei existiert nicht.

Auf die bereitgestellte Datei kann nicht zugegriffen werden.

Der Zugriff auf die Datei ist aufgrund unzureichender Berechtigungen nicht möglich.

Die Funktion Parse Document hat nicht in der zulässigen Zeit geantwortet.

Timeout aufgetreten.

Interner Fehler.

Es ist ein Systemfehler aufgetreten. Warten Sie und versuchen Sie es erneut.