Catégories :

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

AI_EXTRACT

Extrait les informations d’une chaîne ou d’un fichier d’entrée.

Syntaxe

Extraire des informations d’une chaîne d’entrée :

AI_EXTRACT( <text>, <responseFormat> )
Copy
AI_EXTRACT( text => <text>,
            responseFormat => <responseFormat> )
Copy

Extraire des informations d’un fichier :

AI_EXTRACT( <file>, <responseFormat> )
Copy
AI_EXTRACT( file => <file>,
            responseFormat => <responseFormat> )
Copy

Arguments

text

Une chaîne d’entrée pour l’extraction.

file

Un FILE pour l’extraction.

Formats de fichiers pris en charge :

  • PDF

  • PNG

  • PPTX

  • EML

  • DOC, DOCX

  • JPEG, JPG

  • HTM, HTML

  • TEXT, TXT

  • TIF, TIFF

La taille des fichiers ne doit pas dépasser 100 MB.

responseFormat

Informations à extraire dans l’un des formats de réponse suivants :

  • Schéma d’objet simple qui mappe le nom de la fonctionnalité et les informations à extraire, par exemple :

    {'name': 'What is the last name of the employee?', 'address': 'What is the address of the employee?'}
    
  • Tableau de chaînes contenant les informations à extraire, par exemple :

    ['What is the last name of the employee?', 'What is the address of the employee?']
    
  • Un tableau de tableaux contenant deux chaînes (le nom de la fonctionnalité et les informations à extraire), par exemple :

    [['name', 'What is the last name of the employee?'], ['address', 'What is the address of the employee?']]
    
  • Tableau de chaînes contenant le nom de la fonctionnalité et les informations à extraire, séparées par le signe deux-points (« : »), par exemple :

    ['name: What is the last name of the employee?', 'address: What is the address of the employee?']
    

Note

Vous pouvez soit poser des questions en langage naturel, soit décrire les informations à extraire (comme la ville, la route, le code ZIP), par exemple :

['address': 'City, street, ZIP', 'name': 'First and last name']

Renvoie

Un objet JSON contenant les informations extraites.

Exigences en matière de contrôle d’accès

Les utilisateurs doivent utiliser un rôle auquel le rôle de base de données SNOWFLAKE.CORTEX_USER a été accordé. Pour plus d’informations sur l’octroi de ce privilège, voir Privilèges requis.

Notes sur l’utilisation

  • Les langues suivantes sont prises en charge :

    • Arabe

    • Bengali

    • Birman

    • Cebuano

    • Chinois

    • Tchèque

    • Néerlandais

    • Anglais

    • Français

    • Allemand

    • Hébreu

    • Hindi

    • Indonésien

    • Italien

    • Japonais

    • Khmer

    • Coréen

    • Lao

    • Malais

    • Persan

    • Polonais

    • Portugais

    • Russe

    • Espagnol

    • Tagalog

    • Thaïlandais

    • Turc

    • Ourdou

    • Vietnamien

  • Les documents ne doivent pas dépasser 125 pages.

  • Le nombre maximum de fonctionnalités pouvant être extraites est de 100.

  • La longueur de sortie maximale est de 512 jetons par question.

  • Pour extraire une liste, ajoutez List: au début de chaque question. Par exemple :

    [['languages', 'List: What languages are supported for AI_EXTRACT?']]
    
  • Vous ne pouvez pas utiliser de signe deux-points (« : ») à l’intérieur d’un nom de fonctionnalité lorsque vous utilisez le format de réponse qui utilise deux-points pour séparer le nom de la fonctionnalité et les informations à extraire, par exemple :

    ['location: Where does the employee live?', 'name:employee: What is the first name of the employee?']
    
  • Les scores de confiance ne sont pas pris en charge.

Exemples

L’exemple suivant extrait les informations du texte d’entrée :

SELECT AI_EXTRACT(
 text => 'John Smith lives in San Francisco and works for Snowflake',
 responseFormat => {'name': 'What is the first name of the employee?', 'city': 'What is the address of the employee?'}
);
Copy

L’exemple suivant extrait et analyse les informations contenues dans le texte d’entrée :

SELECT AI_EXTRACT(
 text => 'John Smith lives in San Francisco and works for Snowflake',
 responseFormat => PARSE_JSON('{"name": "What is the first name of the employee?", "address": "What is the address of the employee?"}')
);
Copy

L’exemple suivant extrait les informations du fichier document.pdf :

SELECT AI_EXTRACT(
  file => TO_FILE('@db.schema.files','document.pdf'),
  responseFormat => [['name', 'What is the first name of the employee?'], ['city', 'Where does the employee live?']]
);
Copy

L’exemple suivant extrait les informations de tous les fichiers sur une zone de préparation :

SELECT AI_EXTRACT(
  file => TO_FILE('@db.schema.files', relative_path),
  responseFormat => [
    'What is this document?',
    'How would you classify this document?'
  ]
) FROM DIRECTORY (@db.schema.files);
Copy