- Catégories :
Fonctions de chaîne et fonctions binaires (Large Language Model)
COMPLETE (SNOWFLAKE.CORTEX) (multimodal)¶
Important
Cette fonction est obsolète. Pour plus d’informations sur la fonction mise à jour, voir AI_COMPLETE. Snowflake maintient toujours cette fonction, mais utilisez la version mise à jour pour une meilleure expérience.
À partir d’une image et d’un prompt, génère une réponse (exécution) à l’aide d’un modèle de langage. Cette variante de fonction prend en charge les modèles d’image ainsi que les modèles de texte et traite les images stockés dans une zone de préparation Snowflake interne ou une zone de préparation externe. COMPLETE peut être utilisé pour traiter une seule image, plusieurs images par lot, en appliquant le même prompt ou un prompt différent à chaque image, ou plusieurs images en une seule opération (par exemple, comparaison).
Syntaxe¶
Utilisez l’une des méthodes suivantes :
SNOWFLAKE.CORTEX.COMPLETE(
'<model>', '<prompt>', <file_object>)
FROM <table>
SNOWFLAKE.CORTEX.COMPLETE(
'<model>', <prompt_object> )
FROM <table>
Arguments¶
model
Une chaîne spécifiant le modèle à utiliser. Spécifiez l’un des modèles suivants :
claude-3-5-sonnet
pixtral-large
Les modèles pris en charge peuvent avoir des coûts et des fenêtres contextuelles différents. De nouveaux modèles peuvent être ajoutés de temps à autre.
prompt
Une chaîne contenant une question sur l’image et spécifiant éventuellement un format de sortie, tel que JSON. L’un ou l’autre de ces arguments ou l’argument
prompt_object
est requis.prompt_object
Un SQL OBJECT contenant un prompt de chaînes avec des espaces réservés numérotés (
{0}
,{1}
, etc.) et un ou plusieurs textes ou valeurs FILE qui sont insérés dans le prompt. La fonction Fonction PROMPT est un moyen pratique de créer un objet avec l’exigence requise. Cet argument ouprompt
est nécessaire.file_object
Un objet FILE qui contient un fichier image à traiter. Utilisez la fonction TO_FILE pour créer des objets FILE à partir du chemin d’une zone de préparation. Exigence requise lors de l’utilisation d’un prompt de chaînes.
FROM table
Une table facultative contenant les chemins d’accès aux images et un prompt facultatif pour chaque image, ce qui permet de traiter les images par lots en un seul appel à COMPLETE.
Renvoie¶
Une chaîne contenant la réponse du modèle de langage.
Notes sur l’utilisation¶
Pour traiter plusieurs images, le prompt doit être un objet (généralement créé à l’aide de la fonction PROMPT) qui spécifie un modèle de prompt et les fichiers à traiter.
Seuls le texte et les images sont pris en charge. Les fichiers vidéo et audio ne sont pas pris en charge.
Les images portant l’extension
.jpg
,.jpeg
,.png
,.gif
et.webp
sont prises en charge.pixtral-large
prend également en charge.bmp
.La taille maximale de l’image est de 10 MB pour
pixtral-large
et de 3,75 MB pourclaude-3-5-sonnet
. En outre,claude-3-5-sonnet
ne prend 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 des zones de préparation ne tiennent pas compte de la casse, contrairement aux chemins.
Exemples¶
Les exemples suivants démontrent les capacités de base de la fonction COMPLETE avec des images.
Réponse visuelle aux questions¶
Un tableau des taux d’inflation est utilisé pour répondre à une question sur les données.

Comparaison entre les taux d’inflation en 2023 et en 2024 (Statista)¶
SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
'Which country will observe the largest inflation change in 2024 compared to 2023?',
TO_FILE('@myimages', 'highest-inflation.png'));
Réponse :
Looking at the data, Venezuela will experience the largest change in inflation rates between 2023 and 2024.
The inflation rate in Venezuela is projected to decrease significantly from 337.46% in 2023 to 99.98% in 2024,
representing a reduction of approximately 237.48 percentage points. This is the most dramatic change among
all countries shown in the chart, even though Zimbabwe has higher absolute inflation rates.
Classification des images¶
Cet exemple permet de classer le repère identifié dans une seule image.

SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
'Classify the landmark identified in this image. Respond in JSON only with the landmark name.',
TO_FILE('@myimages', 'Seattle.jpg'));
Réponse :
{"landmark": "Space Needle"}
Extraction d’entités à partir d’une image¶
Cet exemple extrait les entités (objets) d’une image et renvoie les résultats au format JSON.

SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
'Extract the kitchen appliances identified in this image. Respond in JSON only with the identified appliances.',
TO_FILE('@myimages', 'kitchen.png'));
Réponse :
{
"appliances": [ "microwave","electric stove","oven","refrigerator" ]
}
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 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 COMPLETE à la colonne contenant les objets FILE. L’exemple suivant permet de classer chaque image de la table :
SELECT SNOWFLAKE.CORTEX.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 SNOWFLAKE.CORTEX.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 SNOWFLAKE.CORTEX.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
.
SNOWFLAKE.CORTEX.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;
Avis juridiques¶
Reportez-vous à Snowflake AI et ML.