- 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> ] )
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 quetop_p
restreint l’ensemble des jetons possibles que le modèle produit, tandis quetemperature
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. SoitTRUE
soitFALSE
. La valeur par défaut estFALSE
.
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;
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));
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;
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;
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);
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;
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
etllama4
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èlesclaude
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.