Catégories :

Fonctions de chaîne et fonctions binaires (Large Language Model)

AI_COMPLETE (Objet de prompt)

Note

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

Génère une réponse (exécution) pour un objet de prompt. L’objet de prompt fait référence à une ou plusieurs colonnes contenant des données de texte ou d’image.

Syntaxe

La fonction peut être utilisée avec la syntaxe des arguments positionnels ou nommés.

AI_COMPLETE(
    <model>, <prompt> [ , <model_parameters> ] )
Copy

Arguments

model

Une chaîne spécifiant le modèle à utiliser. Pour les entrées de texte uniquement, vous pouvez utiliser l’un des modèles suivants :

  • claude-4-opus

  • claude-4-sonnet

  • claude-3-7-sonnet

  • claude-3-5-sonnet

  • deepseek-r1

  • gemma-7b

  • jamba-1.5-mini

  • jamba-1.5-large

  • jamba-instruct

  • llama2-70b-chat

  • llama3-8b

  • llama3-70b

  • llama3.1-8b

  • llama3.1-70b

  • llama3.1-405b

  • llama3.2-1b

  • llama3.2-3b

  • llama3.3-70b

  • llama4-maverick

  • llama4-scout

  • mistral-large

  • mistral-large2

  • mistral-7b

  • mixtral-8x7b

  • openai-gpt4.1

  • openai-o4-mini

  • reka-core

  • reka-flash

  • snowflake-arctic

  • snowflake-llama-3.1-405b

  • snowflake-llama-3.3-70b

Pour les entrées d’images, vous pouvez utiliser l’un des modèles suivants :
  • claude-4-opus

  • claude-4-sonnet

  • claude-3-7-sonnet

  • claude-3-5-sonnet

  • llama-4-maverick

  • llama-4-scout

  • pixtral-large

Les modèles pris en charge peuvent avoir des coûts différents.

prompt

Un objet de prompt contenant du texte et/ou des images

model_parameters Un objet contenant plusieurs ou aucune des options suivantes qui affectent les hyperparamètres du modèle. Voir Paramètres LLM.

  • temperature : une valeur comprise entre 0 et 1 (inclusivement) qui contrôle le caractère aléatoire de la sortie du modèle de langage. Une température plus élevée (par exemple, 0,7) produit des résultats plus divers et aléatoires, tandis qu’une température plus basse (telle que 0,2) rend les résultats plus déterministes et plus ciblés.

    Par défaut : 0

  • top_p : une valeur comprise entre 0 et 1 (inclus) qui contrôle le caractère aléatoire et la diversité du modèle linguistique, généralement utilisée comme alternative à temperature. La différence est que top_p restreint l’ensemble des jetons possibles que le modèle produit, tandis que temperature influence les jetons choisis à chaque étape.

    Par défaut : 0

  • max_tokens : définit le nombre maximum de jetons de sortie dans la réponse. De petites valeurs peuvent entraîner des réponses tronquées.

    Valeur par défaut : 4 096 Valeur maximale autorisée : 8 192

  • guardrails : filtre les réponses potentiellement dangereuses et nuisibles d’un modèle de langage avec Cortex Guard. Soit TRUE soit FALSE. La valeur par défaut est FALSE.

Exemple

Passage de plusieurs images en entrée

L’exemple suivant compare deux images en les passant toutes deux en entrée de la fonction AI_COMPLETE et en demandant si elles sont toutes deux des images de chats :

SELECT AI_COMPLETE('claude-3-5-sonnet',
  PROMPT('Are both image {0} and image {1} pictures of cats?',
    TO_FILE('@myimages', 'sleepingcat.png'), TO_FILE('@myimages', 'jumpingcat.png')) AS image_classification
FROM image_table;
Copy

Traitement par lots d’images à partir d’un répertoire ou d’une table

Pour le traitement par lots de plusieurs images, en effectuant la même opération sur chacune d’elles, stockez les fichiers images dans la même zone de préparation. Appliquez la fonction AI_COMPLETE à chaque ligne de la table.

Note

La zone de préparation interne doit disposer d’une table de répertoire pour récupérer les chemins d’accès à ses fichiers.

Créez d’abord la table en récupérant les emplacements des images dans le répertoire, en les convertissant en objets FILE et en stockant les objets FILE qui en résultent dans la colonne d’une table. Utilisez SQL comme ce qui suit :

CREATE TABLE image_table AS
    (SELECT TO_FILE('@myimages', RELATIVE_PATH) AS img FROM DIRECTORY(@myimages));
Copy

Appliquez ensuite la fonction AI_COMPLETE à la colonne contenant les objets FILE. L’exemple suivant permet de classer chaque image de la table :

SELECT AI_COMPLETE('claude-3-5-sonnet',
    PROMPT('Classify the input image {0} in no more than 2 words. Respond in JSON', img_file)) AS image_classification
FROM image_table;
Copy

Réponse :

{ "classification": "Inflation Rates" }
{ "classification": "beverage refrigerator" }
{ "classification": "Space Needle" }
{ "classification": "Modern Kitchen" }
{ "classification": "Pie Chart" }
{ "classification": "Economic Graph" }
{ "classification": "Persian Cat" }
{ "classification": "Labrador Retriever" }
{ "classification": "Jedi Cat" }
{ "classification": "Sleeping cat" }
{ "classification": "Persian Cat" }
{ "classification": "Garden Costume" }
{ "classification": "Floral Fashion" }

Si vous disposez déjà d’une table contenant les chemins d’accès aux images, vous pouvez utiliser la fonction TO_FILE pour construire les objets FILE dans la requête :

SELECT AI_COMPLETE('claude-3-5-sonnet',
    PROMPT('Classify the input image {0} in no more than 2 words. Respond in JSON',
        TO_FILE('@myimages', img_path)) AS image_classification
FROM image_table;
Copy

Vous pouvez également récupérer les images à traiter directement dans le répertoire d’une zone de préparation, comme indiqué ici :

SELECT AI_COMPLETE('claude-3-5-sonnet',
    PROMPT('Classify the input image {0} in no more than 2 words. Respond in JSON',
        TO_FILE('@myimages', RELATIVE_PATH))) as image_classification
FROM DIRECTORY(@myimages);
Copy

Fournir des images et des prompts dans une table

Pour effectuer une opération différente sur chaque image d’un tableau, fournissez les images et les prompts correspondants dans un tableau. Dans l’exemple suivant, la table contient le chemin de la zone de préparation interne de chaque image dans la colonne img_path et le prompt dans la colonne prompt.

AI_COMPLETE('claude-3-5-sonnet',
    PROMPT('Given the input image {0}, {1}. Respond in JSON',
        TO_FILE('@myimages', img_path), prompt) as image_result)
FROM image_table;
Copy

Notes sur l’utilisation pour le traitement des images

  • Pour traiter plusieurs images, spécifiez un objet de prompt dans l’appel de fonction qui définit un modèle de prompt et les fichiers d’image associés. Vous pouvez utiliser la fonction Fonction PROMPT pour créer cet objet. Le modèle de prompt peut contenir des caractères génériques numérotés ({0}, {1}, etc.) qui correspondent aux images de l’objet de prompt.

  • Seuls le texte et les images sont pris en charge. Les fichiers vidéo et audio ne sont pas pris en charge.

  • Formats d’image pris en charge :

    • .jpg

    • .jpeg

    • .png

    • .gif

    • .webp

    • Les modèles pixtral et llama4 prennent également en charge .bmp.

  • La taille maximale de l’image est de 10 MB pour la plupart des modèles et de 3,75 MB pour les modèles claude. Les modèles claude ne prennent pas en charge les images dont la résolution est supérieure à 8000x8000.

  • La zone de préparation contenant les images doit avoir le chiffrement côté serveur activé. Les zones de préparation chiffrées côté client ne sont pas prises en charge.

  • La fonction ne prend pas en charge les politiques réseau personnalisées.

  • Les noms de zones de préparation ne tiennent pas compte de la casse ; les chemins tiennent compte de la casse.