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