Cortex PARSE_DOCUMENT¶
La fonction PARSE_DOCUMENT fait partie des Fonctions AISQL de Cortex AI et offre la possibilité d’extraire du texte, des données et des éléments de mise en page dans des documents. Vous pouvez utiliser PARSE_DOCUMENT pour extraire du texte de divers documents et formulaires afin de mettre en œuvre ce qui suit :
Pipelines RAG qui alimentent Cortex Search
Traitement LLM comme la synthèse de documents ou la traduction à l’aide des fonctions de Cortex AI
Extraction d’entités zero-shot à partir de sorties structurées de Cortex AI
Fonctionnement de PARSE_DOCUMENT¶
La fonction PARSE_DOCUMENT offre deux modes de traitement des documents PDF :
Le mode OCR est l’option recommandée pour une extraction de texte rapide et de haute qualité à partir de documents tels que des manuels, des contrats, des pages d’informations produit, des polices d’assurance et des demandes d’indemnisation, ainsi que des documentsSharePoint.
Le mode LAYOUT est optimisé pour l’extraction de texte et d’éléments de mise en page tels que les tableaux. C’est l’option recommandée pour améliorer le contexte d’une base de connaissances documentaire afin d’optimiser les systèmes d’information de récupération et pour l’inférence de Large Language Model (LLM).
Note
Le mode de mise en forme de PARSE_DOCUMENT est actuellement en aperçu. Le mode OCR est généralement disponible dans la plupart des régions.
Utilisation de PARSE_DOCUMENT¶
Cortex PARSE_DOCUMENT est une fonction SQL. Parce qu’elle est entièrement hébergée et gérée par Snowflake, son utilisation ne nécessite aucune configuration. Dirigez la fonction PARSE_DOCUMENT vers une zone de préparation contenant vos documents PDF afin d’en extraire les données. L’exemple suivant extrait le texte et les informations de mise en page du fichier document_1.pdf
sur la zone de préparation documents
de la base de données parse_document
et du schéma demo
.
Note
PARSE_DOCUMENT est actuellement incompatible avec les politiques de réseau personnalisées.
SELECT
SNOWFLAKE.CORTEX.PARSE_DOCUMENT(
@parse_document.demo.documents,
'document_1.pdf',
{'mode': 'LAYOUT'}
) AS layout;
Créer une zone de préparation pour le traitement des documents¶
Créez une zone de préparation interne ou externe pour stocker les documents que vous souhaitez traiter. Lors de la création de votre zone de préparation, activez le Chiffrement côté serveur. Sinon, PARSE_DOCUMENT renvoie une erreur indiquant que le fichier fourni n’est pas au format attendu ou qu’il est chiffré côté client.
Le SQL ci-dessous permet de créer une zone de préparation interne adaptée.
CREATE OR REPLACE STAGE input_stage
DIRECTORY = ( ENABLE = true )
ENCRYPTION = ( TYPE = 'SNOWFLAKE_SSE' );
Le SQL suivant crée une zone de préparation externe sur Amazon S3. Les zones de préparation externes Azure et GCP sont également prises en charge.
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' );
Note
Le traitement des fichiers à partir des zones de préparation est actuellement incompatible avec les politiques réseau personnalisées.
Astuce
Si vous rencontrez le message d’erreur « Expiry in seconds for AWS role is invalid » provenant d’une zone de préparation externe, assurez-vous que le délai d’expiration de l’URL présignée est bien défini. La valeur par défaut de ce paramètre de compte est optimisée pour les zones de préparation internes, mais il est possible de l’ajuster pour qu’il fonctionne avec les zones de préparation externes. Pour le modifier, contactez le support Snowflake.
Exemple¶
Cet exemple utilise le mode OCR de PARSE_DOCUMENT pour extraire le texte de la première page d’un document d’assurance contre les intempéries, illustré ci-dessous.

Pour analyser ce document, vous l’importeriez dans une zone de préparation nommée document_stage
et exécuteriez la requête suivante :
SELECT SNOWFLAKE.CORTEX.PARSE_DOCUMENT(
@document_stage,
'weather_policy.pdf'
) AS weather_policy_doc
La réponse brute de PARSE_DOCUMENT est la suivante :
{
"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
}
}
En traitant cette réponse avec les fonctions LLM de Cortex AI, vous pouvez facilement effectuer une analyse des données non structurées. L’exemple suivant illustre une tâche simple de réponse à une question :
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
Réponse :
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"
Exigences en matière d’entrées¶
PARSE_DOCUMENT est optimisé pour les documents numériques et numérisés. Le tableau suivant répertorie les limites et les exigences des documents d’entrée :
Taille maximale du fichier |
100 MB |
Nombre maximal de pages par document |
300 pages |
Type de fichier autorisé |
PDF, PPTX, DOCX, JPEG, JPG, PNG, TIFF, TIF |
Chiffrement de la zone de préparation |
Chiffrement côté serveur |
Taille de la police |
8 points ou plus pour de meilleurs résultats |
Fonctions des documents prises en charge¶
Fonctionnalité |
Description |
---|---|
Orientation de la page |
PARSE_DOCUMENT détecte automatiquement l’orientation de la page. |
Caractères |
PARSE_DOCUMENT détecte les caractères suivants :
|
Note
PARSE_DOCUMENT n’est pas formé à la reconnaissance de l’écriture manuscrite.
Langues acceptées¶
PARSE_DOCUMENT est délibérément formé aux langues suivantes :
Mode OCR |
Mode LAYOUT |
---|---|
|
|
Le mode LAYOUT prend également en charge, mais n’est pas optimisé pour, le français, l’allemand, l’italien, le norvégien, le polonais, le portugais, l’espagnol et le suédois.
Disponibilité régionale¶
La prise en charge de cette fonctionnalité est disponible pour les comptes dans les régions Snowflake suivantes :
AWS |
Azure |
Google Cloud Platform |
---|---|---|
US Ouest 2 (Oregon) |
Est US 2 (Virginie) |
US Central 1 (Iowa) |
US East (Ohio) |
Ouest US 2 (Washington) |
|
US East 1 (N. du Nord) |
Europe (Pays-Bas) |
|
Europe (Irlande) |
||
Europe Central 1 (Francfort) |
||
Asie-Pacifique (Sydney) |
||
Asie-Pacifique (Tokyo) |
Exigences en matière de contrôle d’accès¶
Pour utiliser la fonction PARSE_DOCUMENT, un utilisateur ayant un rôle ACCOUNTADMIN doit accorder le rôle de base de données SNOWFLAKE.CORTEX_USER à l’utilisateur qui appellera la fonction. Consultez la rubrique Privilèges requis pour plus de détails.
Considérations relatives aux clients¶
La fonction Cortex PARSE_DOCUMENT engendre des coûts de calcul basés sur le nombre de pages par document traité.
Pour les formats de documents (PDF, DOCX), chaque page du document est facturée comme une page.
Pour les formats d’images (JPEG, JPG, TIF, TIFF, PNG), chaque fichier d’image est facturé comme une page.
Snowflake recommande d’exécuter les requêtes qui font appel à la fonction Cortex PARSE_DOCUMENT dans un entrepôt plus petit (pas plus grand que MEDIUM). Des entrepôts plus grands n’augmentent pas les performances.
Conditions d’erreur¶
Snowflake Cortex PARSE_DOCUMENT peut produire les messages d’erreur suivants.
Message |
Explication |
---|---|
Le document contient une langue qui n’est pas prise en charge. |
Le document d’entrée contient une langue non prise en charge |
Le format de fichier fourni {file_extension} n’est pas pris en charge. Formats pris en charge : .[“.docx”, “.pptx”, “.pdf”]. |
Renvoyé lorsque le document n’est pas dans un format pris en charge. |
Le format de fichier .bin fourni n’est pas pris en charge. Formats pris en charge : [“.docx”, “.pptx”, “.pdf”]. Assurez-vous que le fichier est stocké avec un chiffrement côté serveur. |
Renvoyé lorsque le format du fichier n’est pas pris en charge et compris comme un fichier binaire. Assurez-vous que la zone de préparation utilise le chiffrement côté serveur. |
Nombre maximum de 300 pages dépassé. |
Renvoyé lorsque le PDF contient plus de 300 pages. |
La taille maximale du fichier de 104857600 octets a été dépassée. |
Renvoyé lorsque le document est supérieur à 100 MB. |
Le fichier fourni est introuvable. |
Le fichier n’existe pas. |
Le fichier fourni n’est pas accessible. |
L’accès au fichier est impossible en raison de privilèges insuffisants. |
La fonction Parse Document n’a pas répondu dans le temps imparti. |
Un délai d’expiration s’est produit. |
Erreur interne. |
Une erreur système s’est produite. Attendez et réessayez. |
Avis juridiques¶
La classification des données d’entrées et de sorties est présentée dans la table suivante.
Classification des données d’entrée |
Classification des données de sortie |
Désignation |
---|---|---|
Usage Data |
Customer Data |
Les fonctions généralement disponibles sont des fonctions AI couvertes. Les fonctions d’aperçu sont les fonctions AI d’aperçu. [1] |
Pour plus d’informations, reportez-vous à Snowflake AI et ML.