Cortex, c'est le plus gros ajout de la certification snowpro COF-C03 et c'est pas un hasard. Snowflake pousse l'IA au coeur de la plateforme. Mais entre savoir que ça existe pour une certif et comprendre comment l'utiliser au quotidien, c'est pas la même chose. Cet article comble cet écart en détaillant les fonctions, la syntaxe SQL, les cas d'usage et la facturation.
Ce que Cortex contient
Cortex, c'est un nom global qui regroupe plusieurs briques. Pour bien comprendre, il faut les séparer en catégories :
1. Les fonctions AI SQL : des fonctions LLM que tu appelles en SQL pour analyser du texte, des images, des documents (résumer, traduire, classifier, extraire du sentiment, etc...)
2. Les fonctions ML : des modèles de machine learning pré-entraînés pour faire du forecast, de la détection d'anomalies et de la classification sur des données structurées.
3. Cortex Search : de la recherche sémantique (RAG) sur des documents et du texte non structuré.
4. Cortex Analyst : de la traduction langage naturel vers SQL sur des tables structurées.
5. Cortex Agents : c'est le mix des agents Search et Analyst pour répondre à des questions qui mélangent données structurées et non structurées.
Les fonctions AI SQL
C'est le coeur de Cortex pour la plupart des utilisateurs. Ce sont des fonctions que tu appelles en SQL, qui utilisent des LLMs (OpenAI, Llama, Mistral, Claude, DeepSeek, etc...).
Tu n'as pas besoin de choisir un modèle pour la majorité des fonctions. Snowflake s'en charge. La seule exception, c'est AI_COMPLETE où tu dois choisir explicitement le modèle.
Voici les fonctions principales :
AI_COMPLETE
C'est la fonction la plus flexible. Tu lui donnes un prompt et un modèle, elle te renvoie du texte généré. Tu peux l'utiliser pour résumer, classifier, extraire, reformuler... tout ce que tu veux.
-- Classifier des tickets de support
SELECT
ticket_id,
ticket_text,
AI_COMPLETE(
'mistral-large2',
'Classifie ce ticket en une seule catégorie parmi : Bug, Demande, Réclamation, Autre. Ticket : ' || ticket_text
) AS categorie
FROM support_tickets;
-- Extraire des infos structurées d'un texte libre
SELECT
AI_COMPLETE(
'llama3.1-70b',
'Extrais le nom du client, le montant et la date de cette facture. Réponds en JSON. Facture : ' || facture_text
) AS extraction
FROM factures_brutes;
Quelques modèles disponibles selon la région et la configuration du compte : mistral-large2, llama3.1-8b, llama3.1-70b, claude-3-5-sonnet, deepseek-r1, et bien d'autres...
AI_SENTIMENT : analyser le sentiment
Renvoie un score entre -1 (très négatif) et 1 (très positif).
SELECT
comment_text,
AI_SENTIMENT(comment_text) AS sentiment_score
FROM customer_feedback;
Pas besoin de spécifier un modèle. C'est une fonction managée, Snowflake gère tout.
AI_CLASSIFY : classer du texte ou des images
Tu définis toi-même les catégories, et Snowflake classe chaque ligne.
SELECT
email_subject,
AI_CLASSIFY(
email_body,
['Commande', 'Réclamation', 'Question produit', 'Spam']
) AS categorie
FROM emails_entrants;
AI_TRANSLATE : traduire
SELECT
AI_TRANSLATE(description_produit, 'fr', 'en') AS description_en
FROM produits;
AI_SUMMARIZE_AGG : résumer sur plusieurs lignes
C'est une fonction d'agrégation. Elle résume le contenu de plusieurs lignes d'un coup, sans être limitée par la fenêtre de contexte du modèle.
SELECT
product_id,
AI_SUMMARIZE_AGG(review_text) AS resume_avis
FROM product_reviews
GROUP BY product_id;
AI_PARSE_DOCUMENT : lire des PDF et documents
Extrait le texte d'un document (PDF, image) stocké dans un stage Snowflake. Supporte aussi le mode LAYOUT (qui conserve la structure du document).
SELECT AI_PARSE_DOCUMENT(
TO_FILE('@mon_stage', 'facture_001.pdf'),
{'mode': 'LAYOUT'}
) AS contenu_extrait;
AI_REDACT : masquer les données personnelles (PII)
SELECT
AI_REDACT(commentaire_client) AS commentaire_anonymise
FROM feedback;
Les autres fonctions
Il y en a d'autres qui méritent d'être mentionnées :
- AI_FILTER : renvoie True/False sur un texte ou une image, utile dans un WHERE pour filtrer en langage naturel
- AI_AGG : comme AI_SUMMARIZE_AGG mais avec un prompt libre (tu définis toi-même ce que tu veux extraire de l'agrégation)
- AI_EMBED : génère un vecteur d'embedding pour la recherche sémantique
- AI_SIMILARITY : calcule la similarité entre deux embeddings
- AI_TRANSCRIBE : transcrit des fichiers audio et vidéo stockés dans un stage
- AI_EXTRACT : extrait des informations précises d'un texte à partir d'une question
Les fonctions ML (Machine Learning)
C'est une catégorie différente des fonctions AI. Ici, on ne parle pas de LLMs mais de modèles de machine learning classiques pour analyser des données structurées.
L'avantage est que tu n'as pas besoin d'être data scientist pour l'utiliser. Tu entraînes un modèle en SQL, tu l'appelles en SQL.
FORECAST : prédire des séries temporelles
Tu as des ventes par jour et tu veux prévoir les 30 prochains jours ? C'est exactement à ça que sert FORECAST.
-- Étape 1 : créer et entraîner le modèle
CREATE SNOWFLAKE.ML.FORECAST sales_forecast(
INPUT_DATA => TABLE(SELECT date, revenue FROM daily_sales),
TIMESTAMP_COLNAME => 'DATE',
TARGET_COLNAME => 'REVENUE'
);
-- Étape 2 : générer les prévisions
CALL sales_forecast!FORECAST(FORECASTING_PERIODS => 30);
Le modèle gère automatiquement la saisonnalité (jour de la semaine, mois de l'année, etc...) et les tendances. Tu peux aussi ajouter des variables exogènes (jours fériés, promotions, etc..) pour améliorer la précision.
ANOMALY_DETECTION : détecter les anomalies
Le modèle génère une prévision et compare avec les données réelles pour identifier les points anormaux.
-- Entraîner le modèle
CREATE SNOWFLAKE.ML.ANOMALY_DETECTION cost_anomaly_model(
INPUT_DATA => TABLE(SELECT date, daily_cost FROM cloud_costs),
TIMESTAMP_COLNAME => 'DATE',
TARGET_COLNAME => 'DAILY_COST'
);
-- Détecter les anomalies sur de nouvelles données
CALL cost_anomaly_model!DETECT_ANOMALIES(
INPUT_DATA => TABLE(SELECT date, daily_cost FROM cloud_costs_recent),
TIMESTAMP_COLNAME => 'DATE',
TARGET_COLNAME => 'DAILY_COST'
);
Le résultat contient une colonne IS_ANOMALY (True/False) et un PERCENTILE qui indique à quel point la valeur est inhabituelle.
Cas d'usage simple => surveiller les coûts Snowflake, détecter des pics de trafic inhabituels ou identifier des anomalies dans les ventes.
CLASSIFICATION : classer des données structurées
Contrairement aux deux précédentes, CLASSIFICATION ne nécessite pas de séries temporelles. Elle classe des lignes en catégories à partir de features numériques et catégorielles.
-- Entraîner le modèle
CREATE SNOWFLAKE.ML.CLASSIFICATION churn_model(
INPUT_DATA => TABLE(SELECT * FROM training_data),
TARGET_COLNAME => 'IS_CHURNED'
);
-- Prédire sur de nouvelles données
SELECT * FROM TABLE(churn_model!PREDICT(
INPUT_DATA => TABLE(SELECT * FROM new_customers)
));
Cortex Search : la recherche sémantique (RAG)
Cortex Search, c'est de la recherche hybride (sémantique + mots-clés) sur du texte non structuré. Tu crées un service de recherche sur une colonne texte, et Snowflake gère l'indexation, les embeddings et la recherche.
Le cas d'usage classique est par exemple utiliser des documents internes (manuels, procédures etc...) et permettre à tes utilisateurs de poser des questions en langage naturel pour trouver l'info pertinente.
C'est la brique qui permet de faire du RAG (Retrieval-Augmented Generation) directement dans Snowflake.
Cortex Analyst : du langage naturel au SQL
Cortex Analyst fait l'inverse de Cortex Search. Au lieu de chercher dans des documents, il traduit une question en langage naturel en requête SQL sur tes tables structurées.
L'utilisateur pose une question comme "Quel est le chiffre d'affaires par région ce trimestre ?" et Cortex Analyst génère et exécute la requête SQL correspondante.
Pour que ça fonctionne, tu dois fournir un fichier YAML (semantic model) qui décrit tes tables, colonnes, métriques et relations. C'est ce fichier qui donne le contexte au modèle pour générer du SQL correct.
Cortex Agents : le meilleur des deux mondes
Les Agents orchestrent Cortex Search et Cortex Analyst dans une seule conversation. Ils décident automatiquement s'il faut chercher dans des documents ou requêter des tables SQL selon la question posée.
Snowflake positionne cette couche comme la brique centrale de agentic AI, car ce sont des agents IA capables de chercher, analyser et agir d'une manière globale.
Les Agents supportent aussi le MCP (Model Context Protocol) pour se connecter à des outils externes (Slack, Jira, Github etc...).
Facturation : comment c'est facturé ?
La facturation dépend du type de fonction :
| Type | Facturation |
|---|---|
| Fonctions AI SQL (AI_COMPLETE, AI_SENTIMENT, etc.) | Par token (input + output), coût variable selon le modèle |
| Fonctions ML (FORECAST, ANOMALY_DETECTION, CLASSIFICATION) | En crédits de compute (virtual warehouse) |
| Cortex Search | Par requête de recherche |
| Cortex Analyst | Par requête |
Pour les fonctions AI SQL, le coût varie selon le modèle. Un modèle léger comme llama3.1-8b coûte beaucoup moins cher qu'un modèle puissant comme claude-3-5-sonnet. C'est à toi de trouver le bon compromis qualité/coût selon le use case.
Depuis mars 2026, Snowflake fournit la vue CORTEX_AI_FUNCTIONS_USAGE_HISTORY dans Account Usage pour suivre la consommation par fonction, par modèle, par utilisateur et par rôle. Tu peux même mettre en place des alertes et des limites de dépenses par utilisateur.
Droits d'accès : qui peut utiliser Cortex ?
Pour utiliser les fonctions AI SQL, un utilisateur a besoin de deux choses :
- Le database role
SNOWFLAKE.CORTEX_USER(ouAI_FUNCTIONS_USER), qui est attribué à PUBLIC par défaut, donc accessible à tous sauf si un admin l'a révoqué, - Le privilège de compte
USE AI FUNCTIONS.
Si tu veux restreindre l'accès, tu peux révoquer le rôle CORTEX_USER de PUBLIC et le donner uniquement aux rôles qui en ont besoin.
Quelle brique Cortex pour quel besoin ?
| Brique | Pour quoi faire | Fonctions clés | Type de données |
|---|---|---|---|
| Fonctions AI SQL | Analyser, résumer, classer, traduire du texte/image via LLM | AI_COMPLETE, AI_SENTIMENT, AI_CLASSIFY, AI_TRANSLATE, AI_SUMMARIZE_AGG, AI_PARSE_DOCUMENT |
Texte, images, documents |
| Fonctions ML | Forecasting, détection d'anomalies, classification | FORECAST, ANOMALY_DETECTION, CLASSIFICATION |
Données structurées (tables) |
| Cortex Search | Recherche sémantique + mots-clés (RAG) | Service de recherche sur colonne texte | Documents, texte non structuré |
| Cortex Analyst | Convertir du langage naturel en SQL | Question utilisateur → requête SQL exécutée | Tables structurées (avec semantic model YAML) |
| Cortex Agents | Orchestrer Search + Analyst + outils externes (MCP) | Décide automatiquement où chercher selon la question | Tout (mix structuré et non structuré) |
Règle simple : tu pars de tes données et de ton besoin. Texte/image à analyser ? Fonctions AI SQL. Time series ou classification ? Fonctions ML. Documents à chercher ? Cortex Search. Tables SQL à interroger en langage naturel ? Cortex Analyst. Workflow agentique complet ? Cortex Agents.
Cortex à l'examen SnowPro Core COF-C03
Comme mentionné dans l'introduction cortex est sans doute le plus gros ajout de la COF-C03 (l'examen en vigueur depuis février 2026), au même titre que les Iceberg Tables et les Snowflake Notebooks. Les sujets les plus testés à l'examen sont :
- Distinction des 5 briques : savoir quand utiliser AI SQL vs ML vs Search vs Analyst vs Agents
- AI_COMPLETE vs autres fonctions AI : pourquoi
AI_COMPLETEexige un modèle alors queAI_SENTIMENTouAI_CLASSIFYsont managées - Fonctions ML (FORECAST, ANOMALY_DETECTION, CLASSIFICATION) : syntaxe, prérequis (séries temporelles ou non), entraînement vs inférence
- Cortex Search vs Cortex Analyst : la distinction structuré (Analyst) vs non structuré (Search) revient souvent
- Facturation : qui paie quoi (tokens pour AI SQL, crédits compute pour ML, par requête pour Search/Analyst)
- Droits d'accès : rôle
CORTEX_USER(ouAI_FUNCTIONS_USER) et privilègeUSE AI FUNCTIONS
Pour t'entraîner sur Cortex dans les conditions de la COF-C03, le module SnowPro Core de DataCertification.fr propose 700 questions scenario-based, avec une partie dédiée aux nouveautés COF-C03 (Cortex AI, Iceberg, Notebooks).
👉 Préparer la SnowPro Core sur DataCertification.fr
Pour voir tout ce qui change vs la COF-C02, voir SnowPro Core COF-C03 : ce qui change et comment s'y préparer.
Aller plus loin : Formation Snowflake
J'ai regroupé tous mes articles Snowflake dans un parcours complet.
👉 Accéder à la Formation Snowflake
Tu veux que je t'accompagne sur ton projet data (Snowflake, ingestion, modélisation, performance, coûts, gouvernance) ?
👉 Réserver un appel de 30 minutes
Questions
C'est quoi Snowflake Cortex AI ?
Snowflake Cortex AI est un ensemble de fonctionnalités IA et machine learning intégrées directement dans Snowflake et accessibles en SQL. Il regroupe cinq briques : les fonctions AI SQL (LLM intégrés pour analyser du texte et des images), les fonctions ML (forecasting, détection d'anomalies, classification), Cortex Search (recherche sémantique RAG), Cortex Analyst (langage naturel vers SQL) et Cortex Agents (orchestration agentique). C'est le plus gros ajout de la certification SnowPro Core COF-C03.
Quels modèles LLM sont disponibles dans Snowflake Cortex ?
Snowflake Cortex donne accès à plusieurs modèles selon la région : Mistral (mistral-large2), Llama (llama3.1-8b, llama3.1-70b), Anthropic Claude (claude-3-5-sonnet), DeepSeek (deepseek-r1) et d'autres. Pour AI_COMPLETE, tu dois choisir explicitement le modèle. Les autres fonctions (AI_SENTIMENT, AI_CLASSIFY, AI_TRANSLATE, AI_SUMMARIZE_AGG) sont managées et Snowflake choisit le modèle pour toi.
À quoi sert AI_COMPLETE dans Snowflake ?
AI_COMPLETE est la fonction Cortex la plus flexible. Tu lui donnes un prompt et un modèle, elle te renvoie du texte généré par le LLM. Cas d'usage typiques : résumer un texte long, classer un ticket support en plusieurs catégories, extraire des informations structurées (JSON) d'un texte libre, reformuler ou traduire. Syntaxe : AI_COMPLETE('mistral-large2', 'ton prompt'). Le coût varie fortement selon le modèle choisi.
Quelle différence entre Cortex Search et Cortex Analyst ?
Cortex Search fait de la recherche sémantique sur du texte non structuré (documents, manuels, FAQ) pour faire du RAG. Tu poses une question en langage naturel et il retourne les passages pertinents des documents. Cortex Analyst fait l'inverse donc il traduit une question en langage naturel en requête SQL sur tes tables structurées.
Comment Snowflake Cortex est-il facturé ?
La facturation dépend du type : fonctions AI SQL facturées au token (input + output) avec un coût variable selon le modèle (un llama3.1-8b coûte beaucoup moins qu'un claude-3-5-sonnet). Fonctions ML facturées en crédits compute classiques. Cortex Search et Cortex Analyst facturés par requête. Depuis mars 2026, la vue CORTEX_AI_FUNCTIONS_USAGE_HISTORY dans Account Usage permet de tracker la consommation par fonction, par modèle, par utilisateur et par rôle.
C'est quoi Cortex Agents dans Snowflake ?
Cortex Agents orchestrent Cortex Search et Cortex Analyst dans une seule conversation. L'agent décide automatiquement, selon la question posée, s'il faut chercher dans des documents (Search) ou requêter des tables SQL (Analyst). Les Agents supportent aussi le Model Context Protocol (MCP) pour se connecter à des outils externes comme Slack, Jira ou GitHub. C'est la brique centrale de l'agentic AI dans Snowflake : agents capables de chercher, analyser et agir de manière autonome.
Faut-il être data scientist pour utiliser Cortex AI ?
Non. C'est même l'idée principale de Cortex de démocratiser l'IA en l'exposant via SQL. Un analytics engineer ou un data engineer qui maîtrise SQL peut faire du forecasting, de la détection d'anomalies, du résumé de texte, de la classification et même du RAG sans écrire une ligne de Python ni configurer d'infrastructure ML. Les modèles sont pré-entraînés et gérés par Snowflake. La complexité ML est cachée derrière des fonctions SQL simples.
