- Kategorien:
- Dateifunktionen (AI-Funktionen) 
PARSE_DOCUMENT (SNOWFLAKE.CORTEX)¶
Bemerkung
AI_PARSE_DOCUMENT ist die neueste Version dieser Funktion. Verwenden Sie AI_PARSE_DOCUMENT für die neueste Funktionalität. Sie können weiterhin PARSE_DOCUMENT (SNOWFLAKE.CORTEX) verwenden.
Gibt den extrahierten Inhalt eines Dokuments in einem Snowflake-Stagingbereich als JSON-formatierte Zeichenfolge zurück. Diese Funktion unterstützt zwei Arten von Extraktionen: optische Zeichenerkennung (OCR) und Layout. Weitere Informationen dazu finden Sie unter AISQL-AI_PARSE_DOCUMENT.
Syntax¶
SNOWFLAKE.CORTEX.PARSE_DOCUMENT( '@<stage>', '<path>', [ <options> ] )
Argumente¶
Benötigt:
- stage
- Name des Snowflake-Stagingbereichs. 
- path
- Relativer Pfad zu dem Dokument im Snowflake-Stagingbereich. 
Optional:
- options
- Ein OBJECT-Wert, der Optionen für das Parsen von -Dokumenten enthält. Die unterstützten Schlüssel sind unten aufgeführt. Alle sind optional. - 'mode': Gibt den Parsing-Modus an. Folgende Modi werden unterstützt:- 'OCR': Die Funktion extrahiert nur Text. Dies ist der Standardmodus.
- 'LAYOUT': Die Funktion extrahiert sowohl das Layout als auch Text, einschließlich struktureller Inhalte wie Tabellen.
 
- 'page_split': Wenn auf TRUE gesetzt, teilt die Funktion das Dokument in Seiten auf und verarbeitet jede Seite separat. Nur PDF-, PowerPoint (- .pptx)- und Word (- .docx)-Dokumente werden unterstützt. Dokumente in anderen Formaten geben einen Fehler zurück. Der Standardwert ist FALSE.- Tipp - Zum Verarbeiten von langen Dokumenten, die die Token-Limit von PARSE_DOCUMENT überschreiten, setzen Sie diese Option auf TRUE. 
 
Rückgabewerte¶
Ein JSON-Objekt (als Zeichenfolge), das die extrahierten Daten und die zugehörigen Metadaten enthält. Das options-Argument bestimmt die Struktur des zurückgegebenen Objekts.
Tipp
Um die Ausgabe inSQL zu verwenden, konvertieren Sie es anhand der PARSE_JSON-Funktion in einen OBJECT-Wert.
Wenn die 'page_split'-Option festgelegt ist, hat die Ausgabe die folgende Struktur:
"pages": Ein Array von JSON-Objekten, die jeweils Text enthalten, der aus dem Dokument extrahiert wurde. Wenn das Dokument nur eine Seite hat, enthält die Ausgabe trotzdem ein"pages"-Array (das ein einzelnes Objekt enthält). Jede Seite hat die folgenden Felder:
"content": Klartext (im OCR-Modus) oder Markdown-formatierter Text (im LAYOUT-Modus).
"index": Der Seitenindex in der Datei, beginnend bei 0. Die im Dokument angegebenen Seitenzahlen und Formate werden ignoriert.
"errorInformation": Enthält Fehlerinformationen, wenn das Dokument nicht geparst werden kann.
"metadata": Enthält Metadaten zum Dokument, z. B. die Seitenanzahl.Bemerkung
Die Felder
"pages"und"metadata"sind in der Ausgabe vorhanden, wenn das Parsen erfolgreich war."errorInformation"ist nur dann vorhanden, wenn das Parsen fehlgeschlagen ist.
Wenn 'page_split' FALSE oder nicht vorhanden ist, hat die Ausgabe die folgende Struktur:
"content": Klartext (im OCR-Modus) oder Markdown-formatierter Text (im LAYOUT-Modus).
"errorInformation": Enthält Fehlerinformationen, wenn das Dokument nicht geparst werden kann.
"metadata": Enthält Metadaten zum Dokument, z. B. die Seitenanzahl.Bemerkung
Die Felder
"content"und"metadata"sind in der Ausgabe vorhanden, wenn das Parsen erfolgreich war."errorInformation"ist nur dann vorhanden, wenn das Parsen fehlgeschlagen ist.
Beispiele¶
OCR-Modus¶
SELECT TO_VARCHAR(
    SNOWFLAKE.CORTEX.PARSE_DOCUMENT(
        '@PARSE_DOCUMENT.DEMO.documents',
        'document_1.pdf',
        {'mode': 'OCR'})
    ) AS OCR;
Ausgabe:
{
    "content": "content of the document"
}
LAYOUT-Modus¶
In diesem Beispiel wird ein Dokument mit einer Tabelle analysiert, die im folgenden Screenshot gezeigt wird:
 
SELECT
  TO_VARCHAR (
    SNOWFLAKE.CORTEX.PARSE_DOCUMENT (
        '@PARSE_DOCUMENT.DEMO.documents',
        'document_1.pdf',
        {'mode': 'LAYOUT'} ) ) AS LAYOUT;
Ausgabe:
{
  "content": "# This is PARSE DOCUMENT example
     Example table:
     |Header|Second header|Third Header|
     |:---:|:---:|:---:|
     |First row header|Data in first row|Data in first row|
     |Second row header|Data in second row|Data in second row|
     Some more text."
 }
Seiten teilen¶
In diesem Beispiel wird ein mehrseitiges Dokument in getrennte Seiten aufgeteilt, die separat mit dem:code:'OCR'-Modus verarbeitet werden.
SELECT
  TO_VARCHAR (
    SNOWFLAKE.CORTEX.PARSE_DOCUMENT (
        '@PARSE_DOCUMENT.DEMO.documents',
        'document_1.pdf',
        {'mode': 'OCR', 'page_split': TRUE} ) ) AS MULTIPAGE;
Ausgabe:
{
  "pages": [
    {
      "content": "content of the first page",
      "index": 0
    },
    {
      "content": "content of the second page",
      "index": 1
    },
    {
      "content": "content of the third page",
      "index": 2
    }
  ],
  "metadata": {
    "pageCount": 3
  }
}
Einschränkungen¶
Snowflake Cortex-Funktionen unterstützen keine dynamischen Tabellen.