Catégories :

Fonctions de chaîne et fonctions binaires (Fonctions AI)

AI_PARSE_DOCUMENT

Note

AI_PARSE_DOCUMENT est la version actualisée de PARSE_DOCUMENT (SNOWFLAKE.CORTEX). Pour obtenir les dernières fonctionnalités, utilisez AI_PARSE_DOCUMENT.

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’extraction : Reconnaissance optique de caractères (OCR) et mise en page. Pour plus d’informations, voir Analyse de documents avec AI_PARSE_DOCUMENT.

Syntaxe

AI_PARSE_DOCUMENT( <file_object> [, <options> ] [, <return_error_details> ] )

Arguments

Obligatoire :

file_object

Un objet FILE qui spécifie le document à analyser, stocké dans une zone de préparation Snowflake. Pour plus d’informations sur la création d’objets fichier, consultez TO_FILE.

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.

  • 'extract_images' : Si défini sur TRUE, la fonction extrait les images incorporées dans le document. Nécessite le mode LAYOUT.

  • '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. Cette fonctionnalité prend uniquement en charge les documents PDF, PowerPoint (.pptx) et Word (.docx). 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 AI_PARSE_DOCUMENT, définissez cette option sur TRUE.

  • 'page_filter' : Tableau qui spécifie les plages de pages d’un document de plusieurs pages à traiter. Chaque plage est un objet avec les champs start et end qui indiquent la première (inclusive) et la dernière (exclusive) page de la plage. Les index de page commencent à 0. Par exemple, {'start': 0, 'end': 1} spécifie la première page du document.

    Note

    Spécifier page_filter implique page_split. Si vous spécifiez des plages de pages, il n’est pas nécessaire de définir également page_split.

return_error_details

Un indicateur BOOLEAN qui indique s’il faut renvoyer les détails de l’erreur en cas d’erreur. Lorsqu’elle est définie sur TRUE, la fonction renvoie un OBJECT qui contient des champs value, error et metadata. Le champ value contient les données du document analysé, le champ error contient le message d’erreur (ou NULL en cas de réussite), et le champ metadata est un champ de premier niveau plutôt qu’un sous-champ de la sortie analysée. Consultez Comportement d’erreur pour plus de détails.

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.

  • "metadata" : Contient des métadonnées sur le document, telles que le nombre de pages.

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

  • "metadata" : Contient des métadonnées sur le document, telles que le nombre de pages.

Si l’option "extract_images" est définie sur TRUE, la sortie inclut un champ supplémentaire :

  • "images" : Un tableau d’objets JSON, chacun représentant une image extraite. Chaque objet image comporte les champs suivants :

    • "id" : Identificateur unique pour l’image.

    • "top_left_x", "top_left_y", "bottom_right_x", "bottom_right_y" : Les coordonnées de la zone englobante de l’image sur la page.

    • "image_base64" : Les données d’image extraites encodées sous forme de chaîne base64.

Comportement d’erreur

Par défaut, si AI_PARSE_DOCUMENT ne peut pas traiter l’entrée, la fonction renvoie NULL. Si la requête traite plusieurs lignes, les lignes contenant des erreurs renvoient NULL et n’empêchent pas l’achèvement de la requête.

La valeur de retour sur l’erreur dépend de l’argument return_error_details. La table suivante indique la valeur de retour basée sur l’argument return_error_details :

return_error_details

Valeur de retour

Description

FALSE

Non transmise

NULL

TRUE

OBJECT avec les champs value, error et metadata

value : Un OBJECT contenant les données du document analysé, ouNULL si une erreur s’est produite.

error : Une valeur VARCHAR qui contient le message d’erreur si une erreur s’est produite, ou NULL si la fonction a fonctionné. Le champ error à l’intérieur de value (anciennement errorInformation) contient des détails d’erreur par document lorsqu’il est présent.

metadata : Un OBJECT contenant des métadonnées de document telles que le nombre de pages. Ce champ se trouve au niveau supérieur plutôt qu’à l’intérieur de la sortie analysée.

Pour plus d’informations sur le traitement des erreurs pour les fonctions AI, consultez Snowflake Cortex AI Function: Multirow error handling improvements.

Exemples

Pour des exemples, voir. AI_PARSE_DOCUMENT.