- 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:
stageName des Snowflake-Stagingbereichs.
pathRelativer Pfad zu dem Dokument im Snowflake-Stagingbereich.
Optional:
optionsEin 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.