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...

💡
Tous les modèles ne sont pas égaux en terme de vitesse, qualité et coût

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)
));
💡
Les fonctions ML créent des objets de type modèle dans ton schéma. Tu peux les réentraîner périodiquement avec une Task pour garder tes prédictions à jour.

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.

💡
La distinction à retenir : Cortex Search = documents et texte (non structuré). Cortex Analyst = tables SQL (structuré).

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 (ou AI_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_COMPLETE exige un modèle alors que AI_SENTIMENT ou AI_CLASSIFY sont 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 (ou AI_FUNCTIONS_USER) et privilège USE 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.