- Catégories :
Fonctions de fichiers (Fonctions AI)
PARSE_DOCUMENT (SNOWFLAKE.CORTEX)¶
Note
AI_PARSE_DOCUMENT est la dernière version de cette fonction. Utilisez le site AI_PARSE_DOCUMENT pour bénéficier des dernières fonctionnalités. Vous pouvez continuer à utiliser PARSE_DOCUMENT (SNOWFLAKE.CORTEX).
Renvoie le contenu extrait d’un document sur une zone de préparation Snowflake sous forme de chaîne au format JSON. Cette fonction prend en charge deux types d’extractions, la reconnaissance optique de caractères (OCR) et la mise en page. Pour plus d’informations, voir AISQL AI_PARSE_DOCUMENT.
Syntaxe¶
SNOWFLAKE.CORTEX.PARSE_DOCUMENT( '@<stage>', '<path>', [ <options> ] )
Arguments¶
Obligatoire :
stage
Nom de la zone de préparation Snowflake.
path
Chemin relatif vers le document sur la zone de préparation Snowflake.
Facultatif :
options
Une valeur OBJECT qui contient des options en matière d’analyse de documents. Les clés prises en charge sont indiquées ci-dessous. Elles sont toutes facultatives.
'mode'
: Spécifie le mode d’analyse. Les modes pris en charge sont les suivants :'OCR'
: La fonction extrait uniquement du texte. Il s’agit du mode par défaut.'LAYOUT'
: La fonction extrait la mise en page ainsi que le texte, y compris le contenu structurel tel que les tables.
'page_split'
: Si définie sur TRUE, la fonction divise le document en pages et traite chaque page séparément. Seuls les documents PDF, PowerPoint (.pptx
) et Word (.docx
) sont pris en charge. Les documents dans d’autres formats renvoient une erreur. La valeur par défaut est FALSE.Astuce
Pour traiter des documents longs qui dépassent la limite de jetons de PARSE_DOCUMENT, définissez cette option sur TRUE.
Renvoie¶
Un objet JSON (sous forme de chaîne) contenant les données extraites et les métadonnées associées. L’argument options
détermine la structure de l’objet retourné.
Astuce
Pour utiliser la sortie en SQL, convertissez-la en valeur OBJECT en utilisant la fonction PARSE_JSON.
Si l’option 'page_split'
est définie, la sortie sera dotée de la structure suivante :
"pages"
: Un tableau d’objets JSON, chacun contenant du texte extrait du document. Si le document ne comporte qu’une seule page, la sortie contient toujours un tableau"pages"
(qui contient un seul objet). Chaque page comporte les champs suivants :
"content"
: Texte brut (en mode OCR) ou texte au format Markdown (en mode LAYOUT).
"index"
: L’index de page dans le fichier, commençant à 0. Les numéros de page et les formats spécifiés dans le document sont ignorés.
"errorInformation"
: contient des informations d’erreur si le document ne peut pas être analysé.
"metadata"
: Contient des métadonnées sur le document, telles que le nombre de pages.Note
Les champs
"pages"
et"metadata"
sont présents dans la sortie lorsque l’analyse réussit."errorInformation"
n’est présent que si l’analyse échoue.
Si 'page_split'
est FALSE ou n’est pas présent, la sortie sera dotée de la structure suivante :
"content"
: Texte brut (en mode OCR) ou texte au format Markdown (en mode LAYOUT).
"errorInformation"
: contient des informations d’erreur si le document ne peut pas être analysé.
"metadata"
: Contient des métadonnées sur le document, telles que le nombre de pages.Note
Les champs
"content"
et"metadata"
sont présents dans la sortie lorsque l’analyse réussit."errorInformation"
n’est présent que si l’analyse échoue.
Exemples¶
Mode OCR¶
SELECT TO_VARCHAR(
SNOWFLAKE.CORTEX.PARSE_DOCUMENT(
'@PARSE_DOCUMENT.DEMO.documents',
'document_1.pdf',
{'mode': 'OCR'})
) AS OCR;
Sortie :
{
"content": "content of the document"
}
Mode LAYOUT¶
Cet exemple analyse un document avec une table affichée dans la capture d’écran suivante :

SELECT
TO_VARCHAR (
SNOWFLAKE.CORTEX.PARSE_DOCUMENT (
'@PARSE_DOCUMENT.DEMO.documents',
'document_1.pdf',
{'mode': 'LAYOUT'} ) ) AS LAYOUT;
Sortie :
{
"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."
}
Diviser les pages¶
Cet exemple divise un document de plusieurs pages en pages distinctes, qui sont traitées séparément en utilisant le mode 'OCR'
.
SELECT
TO_VARCHAR (
SNOWFLAKE.CORTEX.PARSE_DOCUMENT (
'@PARSE_DOCUMENT.DEMO.documents',
'document_1.pdf',
{'mode': 'OCR', 'page_split': TRUE} ) ) AS MULTIPAGE;
Sortie :
{
"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
}
}
Limitations¶
Les fonctions de Snowflake Cortex ne prennent pas en charge les tables dynamiques.