Snowflake Cortex AISQL (y compris les fonctions LLM)

Utilisez Cortex AISQL dans Snowflake Cortex pour exécuter des analyses non structurées sur du texte et des images avec les LLMs leaders de l’industrie de OpenAI, Anthropic, Meta, Mistral AI et DeepSeek. Cortex AISQL prend en charge des cas d’utilisation tels que les suivants :

  • Extraction d’entités pour enrichir les métadonnées et rationaliser la validation

  • Agrégation d’informations sur les tickets des clients

  • Filtrage et classification du contenu par la langue naturelle

  • Analyse des sentiments et des aspects pour l’amélioration des services

  • Traduction et localisation des contenus multilingues

  • Analyse des documents pour l’analytique et les pipelines RAG

Tous les modèles sont entièrement hébergés dans Snowflake, ce qui garantit la performance, l’évolutivité et la gouvernance tout en gardant vos données sécurisées et en place.

Fonctions disponibles

Les fonctionnalités de Cortex de Snowflake sont fournies sous forme de fonctions SQL et sont également disponibles en Python. Les fonctions de Cortex AISQL peuvent être regroupées dans les catégories suivantes :

Fonctions AISQL

Les fonctions spécifiques aux tâches sont spécialement conçues et gérées pour automatiser les tâches de routine, comme les résumés simples et les traductions rapides, qui ne nécessitent aucune exigence de personnalisation.

  • AI_COMPLETE : Génère un achèvement pour une chaîne de texte ou une image donnée en utilisant un LLM sélectionné. Utilisez cette fonction pour la plupart des tâches de l’AI générative.

  • AI_CLASSIFY : Classe le texte ou les images dans des catégories définies par l’utilisateur.

  • AI_FILTER : Renvoie True ou False pour une entrée de texte ou d’image donnée, ce qui vous permet de filtrer les résultats dans les clauses SELECT, WHERE ou JOIN. .. ON.

  • AI_AGG : Agrège une colonne de texte et renvoie des aperçus sur plusieurs lignes en fonction d’un prompt défini par l’utilisateur. Cette fonction n’est pas soumise aux limites des fenêtres contextuelles.

  • AI_EMBED : Génère un vecteur d’intégration pour une entrée de texte ou d’image, qui peut être utilisé pour des tâches de recherche de similarité, de clustering et de classification.

  • AI_EXTRACT : Extrait des informations d’une chaîne ou d’un fichier d’entrée, par exemple du texte, des images et des documents. Prend en charge plusieurs langues.

  • AI_SENTIMENT : Extrait les scores de sentiment d’un texte.

  • AI_SUMMARIZE_AGG : Agrège une colonne de texte et renvoie un résumé sur plusieurs lignes. Cette fonction n’est pas soumise aux limites des fenêtres contextuelles.

  • AI_SIMILARITY : Calcule la similarité d’intégration entre deux entrées.

  • AI_TRANSCRIBE : Transcrit les fichiers audio stockés dans une zone de préparation, en extrayant le texte, les horodatages et les informations sur le locuteur.

  • AI_PARSE_DOCUMENT : extrait du texte (à l’aide du mode OCR) ou du texte avec des informations de mise en page (avec le mode LAYOUT) à partir de documents dans une zone de préparation interne ou externe.

  • TRANSLATE (SNOWFLAKE.CORTEX) : Traduit le texte entre les langues prises en charge.

  • SUMMARIZE (SNOWFLAKE.CORTEX) : Renvoie un résumé du texte que vous avez spécifié.

Fonctions d’assistance

les fonctions d’assistance sont des fonctions gérées spécialement conçues qui réduisent les cas d’échec lors de l’exécution d’autres fonctions AISQL, par exemple en obtenant le nombre de jetons dans une invite de saisie pour garantir que l’appel ne dépasse pas une limite de modèle.

  • TO_FILE : crée une référence à un fichier dans une zone de préparation interne ou externe pour une utilisation avec AI_COMPLETE et d’autres fonctions qui acceptent des fichiers.

  • COUNT_TOKENS (SNOWFLAKE.CORTEX) : Avec un texte d’entrée, renvoie le nombre de jetons en fonction du modèle ou de la fonction Cortex spécifiée.

  • PROMPT : vous aide à créer des objets d’invite à utiliser avec AI_COMPLETE et d’autres fonctions.

  • TRY_COMPLETE (SNOWFLAKE.CORTEX) : Fonctionne comme la fonction COMPLETE, mais renvoie NULL lorsque la fonction n’a pas pu s’exécuter, au lieu d’un code d’erreur.

Cortex Guard

cortex guard est une option de la fonction AI_COMPLETE (ou SNOWFLAKE.CORTEX.COMPLETE) conçue pour filtrer les éventuelles réponses dangereuses et nuisibles d’un modèle de langue. Cortex Guard est actuellement construit avec Llama Guard 3 de Meta. Cortex Guard fonctionne en évaluant les réponses d’un modèle de langage avant que cette sortie ne soit renvoyée à l’application. Une fois que vous avez activé Cortex Guard, les réponses du modèle linguistique qui peuvent être associées à des crimes violents, à la haine, au contenu sexuel, à l’automutilation, etc. sont automatiquement filtrées. Voir arguments COMPLETE pour la syntaxe et les exemples.

Note

l’utilisation de cortex guard entraîne des frais de calcul basés sur le nombre de jetons d’entrée traités, en plus des frais pour la fonction AI_COMPLETE.

Considérations en matière de performances

Les fonctions de Cortex AISQL sont optimisées pour le débit. Nous vous recommandons d’utiliser ces fonctions pour traiter de nombreuses entrées telles que du texte provenant de grandes tables SQL. Le traitement par lots est généralement mieux adapté aux fonctions AISQL. Pour des cas d’utilisation plus interactifs où la latence est importante, utilisez l’API REST. Elle est disponible pour l’inférence simple (Complete API), l’intégration (Embed API) et les applications agentiques (Agents API).

Privilèges requis

Le rôle de base de données CORTEX_USER dans la base de données SNOWFLAKE comprend les privilèges qui permettent aux utilisateurs d’appeler les fonctions AI Cortex de Snowflake. Par défaut, le rôle CORTEX_USER est accordé au rôle PUBLIC. Le rôle PUBLIC est automatiquement accordé à tous les utilisateurs et rôles, de façon à permettre à tous les utilisateurs de votre compte d’utiliser les fonctions de Snowflake Cortex AI.

si vous ne souhaitez pas que tous les utilisateurs disposent de ce privilège, vous pouvez révoquer l’accès au rôle PUBLIC et accorder l’accès à d’autres rôles. le rôle de base de donnéesSNOWFLAKE.CORTEX_USER ne peut pas être accordé directement à un utilisateur. pour plus d’informations, consultez À l’aide des rôles de base de données SNOWFLAKE.

Pour révoquer le rôle de base de données CORTEX_USER à partir du rôle PUBLIC, exécutez les commandes suivantes à l’aide du rôle ACCOUNTADMIN :

REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_USER
  FROM ROLE PUBLIC;

REVOKE IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE
  FROM ROLE PUBLIC;
Copy

Vous pouvez ensuite accorder un accès sélectif à des rôles spécifiques. un utilisateur ayant le rôle ACCOUNTADMIN peut attribuer ce rôle à un rôle personnalisé afin de permettre aux utilisateurs d’accéder aux fonctions AI de cortex. Dans l’exemple suivant, vous avez le rôle ACCOUNTADMIN et accordez à l’utilisateur some_user le rôle de base de données CORTEX_USER via le rôle de compte cortex_user_role, que vous créez à cet effet.

USE ROLE ACCOUNTADMIN;

CREATE ROLE cortex_user_role;
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE cortex_user_role;

GRANT ROLE cortex_user_role TO USER some_user;
Copy

Vous pouvez également accorder l’accès aux fonctions AI Cortex de Snowflake par le biais de rôles existants utilisés par des groupes d’utilisateurs spécifiques. (Voir Rôles utilisateur.) Par exemple, si vous avez créé un rôle analyst qui est utilisé comme rôle par défaut par les analystes de votre organisation, vous pouvez facilement accorder à ces utilisateurs l’accès aux fonctions AISQL Cortext de Snowflake avec une seule instruction GRANT.

GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE analyst;
Copy

Contrôle de l’accès au modèle

Snowflake Cortex fournit deux mécanismes indépendants pour appliquer l’accès aux modèles :

vous pouvez utiliser la liste d’autorisation au niveau du compte pour contrôler l’accès aux modèles pour l’ensemble de votre compte, ou vous pouvez utiliser RBAC pour contrôler l’accès aux modèles en fonction de chaque rôle. Pour une flexibilité maximale, vous pouvez également utiliser les deux mécanismes ensemble, si vous pouvez accepter une complexité supplémentaire.

Paramètre de la liste d’autorisation au niveau du compte

vous pouvez contrôler l’accès aux modèles pour l’ensemble de votre compte à l’aide du paramètreCORTEX_MODELS_ALLOWLIST. les fonctionnalités prises en charge respecteront la valeur de ce paramètre et empêcheront l’utilisation de modèles qui ne figurent pas dans la liste d’autorisation.

Le paramètre CORTEX_MODELS_ALLOWLIST peut être réglé sur 'All', 'None', ou sur une liste de noms de modèles séparés par des virgules. Ce paramètre ne peut être défini qu’au niveau du compte, pas aux niveaux de l’utilisateur ou de la session. seul le rôle ACCOUNTADMIN peut définir le paramètre à l’aide de la commande ALTER ACCOUNT:

Exemples :

  • Pour autoriser l’accès à tous les modèles :

    ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'All';
    
    Copy
  • pour permettre l’accès aux modèles mistral-large2 et llama3.1-70b :

    ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'mistral-large2,llama3.1-70b';
    
    Copy
  • Pour empêcher l’accès à tout modèle :

    ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'None';
    
    Copy

utiliser le RBAC, comme décrit dans la section suivante, pour fournir des rôles spécifiques avec un accès supérieur à celui que vous avez spécifié dans la liste d’autorisation.

contrôle d’accès basé sur les rôles (RBAC)

Bien que les modèles Cortex ne soient pas eux-mêmes des objets Snowflake, Snowflake vous permet de créer des objets de modèle dans le schéma SNOWFLAKE.MODELS qui représentent les modèles Cortex. en appliquant le RBAC à ces objets, vous pouvez contrôler l’accès aux modèles de la même manière que vous le feriez pour tout autre objet snowflake. Les fonctionnalités prises en charge acceptent les identificateurs des objets dans SNOWFLAKE.MODELS partout où un modèle peut être spécifié.

Astuce

Pour utiliser exclusivement le RBAC, définissez CORTEX_MODELS_ALLOWLIST sur 'None'.

Actualiser les objets de modèle et les rôles des applications

SNOWFLAKE.MODELS n’est pas automatiquement renseigné avec les objets qui représentent les modèles cortex. Vous devez créer ces objets lorsque vous configurez pour la première fois le modèle RBAC, et les actualiser lorsque vous voulez appliquer le RBAC à de nouveaux modèles.

en tant que ACCOUNTADMIN, exécutez la procédure enregistrée SNOWFLAKE.MODELS.CORTEX_BASE_MODELS_REFRESH pour renseigner le schéma SNOWFLAKE.MODELS avec des objets représentant les modèles cortex actuellement disponibles, et pour créer des rôles d’application qui correspondent aux modèles. La procédure crée également CORTEX-MODEL-ROLE-ALL, un rôle qui couvre tous les modèles.

Astuce

vous pouvez appeler en toute sécurité CORTEX_BASE_MODELS_REFRESH à tout moment ; sans que cela crée d’objets ou de rôles en double.

CALL SNOWFLAKE.MODELS.CORTEX_BASE_MODELS_REFRESH();
Copy

Après avoir actualisé les objets de modèle, vous pouvez vérifier que les modèles apparaissent dans le schéma SNOWFLAKE.MODELS comme suit :

SHOW MODELS IN SNOWFLAKE.MODELS;
Copy

La liste de modèles renvoyée ressemble à ce qui suit :

created_on

name

model_type

database_name

schema_name

owner

2025-04-22 09:35:38.558 -0700

CLAUDE-3-5-SONNET

CORTEX_BASE

SNOWFLAKE

MODELS

SNOWFLAKE

2025-04-22 09:36:16.793 -0700

LLAMA3.1-405B

CORTEX_BASE

SNOWFLAKE

MODELS

SNOWFLAKE

2025-04-22 09:37:18.692 -0700

SNOWFLAKE-ARCTIC

CORTEX_BASE

SNOWFLAKE

MODELS

SNOWFLAKE

pour vérifier que vous pouvez voir les rôles des applications associés à ces modèles, utilisez la commande SHOW APPLICATION ROLES comme dans l’exemple suivant :

SHOW APPLICATION ROLES IN APPLICATION SNOWFLAKE;
Copy

La liste des rôles des applications ressemble à ce qui suit :

created_on

name

owner

comment

owner_role_type

2025-04-22 09:35:38.558 -0700

CORTEX-MODEL-ROLE-ALL

SNOWFLAKE

MODELS

APPLICATION

2025-04-22 09:36:16.793 -0700

CORTEX-MODEL-ROLE-LLAMA3.1-405B

SNOWFLAKE

MODELS

APPLICATION

2025-04-22 09:37:18.692 -0700

CORTEX-MODEL-ROLE-SNOWFLAKE-ARCTIC

SNOWFLAKE

MODELS

APPLICATION

Attribuer des rôles d’application aux rôles d’utilisateur

Après avoir créé les objets de modèle et les rôles des applications, vous pouvez attribuer ces rôles à des rôles d’utilisateur spécifiques de votre compte.

  • Pour accorder à un rôle l’accès à un modèle spécifique :

    GRANT APPLICATION ROLE SNOWFLAKE."CORTEX-MODEL-ROLE-LLAMA3.1-70B" TO ROLE MY_ROLE;
    
    Copy
  • Pour accorder à un rôle l’accès à tous les modèles (modèles actuels et futurs) :

    GRANT APPLICATION ROLE SNOWFLAKE."CORTEX-MODEL-ROLE-ALL" TO ROLE MY_ROLE;
    
    Copy

Utiliser des objets de modèle avec des fonctionnalités prises en charge

pour utiliser des objets de modèle avec des fonctionnalités cortex prises en charge, indiquez l’identificateur de l’objet de modèle dans SNOWFLAKE.MODELS comme argument du modèle. Vous pouvez utiliser un identificateur qualifié ou un identificateur partiel, en fonction de votre base de données actuelle et du contexte de votre schéma.

  • Utiliser un identificateur entièrement qualifié :

    SELECT AI_COMPLETE('SNOWFLAKE.MODELS."LLAMA3.1-70B"', 'Hello');
    
    Copy
  • Utiliser un identificateur partiel :

    USE DATABASE SNOWFLAKE;
    USE SCHEMA MODELS;
    SELECT AI_COMPLETE('LLAMA3.1-70B', 'Hello');
    
    Copy

utiliser le RBAC avec liste d’autorisation au niveau du compte

Un certain nombre de fonctionnalités Cortex acceptent un nom de modèle comme argument de chaîne, par exemple AI_COMPLETE('model', 'prompt'). Cortex le traite d’abord comme l’identificateur d’un objet de modèle au niveau du schéma. si l’objet de modèle est trouvé, le RBAC est appliqué pour déterminer si l’utilisateur peut utiliser le modèle. Si aucun objet de modèle n’est trouvé, l’argument est interprété comme un nom de modèle simple et comparé à la liste d’autorisation au niveau du compte.

l’exemple suivant illustre l’utilisation commune de la liste d’autorisation et du RBAC. dans cet exemple, la liste d’autorisation est définie de sorte à autoriser le modèle mistral-large2, et l’utilisateur a accès à l’objet de modèle LLAMA3.1-70B via le RBAC.

-- set up access
USE SECONDARY ROLES NONE;
USE ROLE ACCOUNTADMIN;
ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'MISTRAL-LARGE2';
CALL SNOWFLAKE.MODELS.CORTEX_BASE_MODELS_REFRESH();
GRANT APPLICATION ROLE SNOWFLAKE."CORTEX-MODEL-ROLE-LLAMA3.1-70B" TO ROLE PUBLIC;

-- test access
USE ROLE PUBLIC;

-- this succeeds because mistral-large2 is in the allowlist
SELECT AI_COMPLETE('MISTRAL-LARGE2', 'Hello');

-- this succeeds because the role has access to the model object
SELECT AI_COMPLETE('SNOWFLAKE.MODELS."LLAMA3.1-70B"', 'Hello');

-- this fails because the first argument is
-- neither an identifier for an accessible model object
-- nor is it a model name in the allowlist
SELECT AI_COMPLETE('SNOWFLAKE-ARCTIC', 'Hello');
Copy

Problèmes courants

  • l’accès à un modèle (soit par liste d’autorisation, soit via le RBAC) ne signifie pas toujours qu’il peut être utilisé. Il peut encore être soumis à des contraintes de région, d’obsolescence ou à d’autres contraintes de disponibilité. Ces restrictions peuvent entraîner des messages d’erreur qui semblent similaires à des erreurs d’accès au modèle.

  • Les contrôles d’accès aux modèles régissent uniquement l’utilisation d’un modèle, et non l’utilisation d’une fonctionnalité elle-même, qui peut avoir ses propres contrôles d’accès. par exemple, l’accès à AI_COMPLETE est régi par le rôle de base de données CORTEX_USER. Pour plus d’informations, voir Privilèges requis.

  • Toutes les fonctions ne prennent pas en charge les contrôles d’accès aux modèles. consultez le tableau des fonctionnalités prises en charge pour voir les méthodes de contrôle d’accès prises en charge par une fonctionnalité donnée.

  • Les rôles secondaires peuvent masquer les autorisations. Par exemple, si un utilisateur a ACCOUNTADMIN en tant que rôle secondaire, tous les objets du modèle peuvent être accessibles. Désactivez temporairement les rôles secondaires lors de la vérification des autorisations.

  • n’oubliez pas que vous devez utiliser les identificateurs d’objet de modèle avec le RBAC et qu’il s’agit d’identificateurs avec guillemets et qu’ils sont donc sensibles à la casse. Pour plus d’informations, voir QUOTED_IDENTIFIERS_IGNORE_CASE.

Fonctionnalités prises en charge

Les contrôles d’accès aux modèles sont pris en charge par les fonctionnalités suivantes :

Fonctionnalité

Liste d’autorisation au niveau du compte

Contrôle d’accès basé sur les rôles

Remarques

AI_COMPLETE

AI_CLASSIFY

Si le modèle alimentant cette fonction n’est pas autorisé, le message d’erreur contient des informations sur la manière de modifier la liste d’autorisation.

AI_FILTER

Si le modèle alimentant cette fonction n’est pas autorisé, le message d’erreur contient des informations sur la manière de modifier la liste d’autorisation.

AI_AGG

Si le modèle alimentant cette fonction n’est pas autorisé, le message d’erreur contient des informations sur la manière de modifier la liste d’autorisation.

AI_SUMMARIZE_AGG

Si le modèle alimentant cette fonction n’est pas autorisé, le message d’erreur contient des informations sur la manière de modifier la liste d’autorisation.

COMPLETE (SNOWFLAKE.CORTEX)

TRY_COMPLETE (SNOWFLAKE.CORTEX)

API REST Cortex

Cortex Playground

Disponibilité régionale

Les fonctions AI de Snowflake Cortex sont actuellement disponibles en natif dans les régions suivantes. si votre région n’est pas répertoriée pour une fonction particulière, utilisez l’inférence interrégionale.

Note

  • La fonction TRY_COMPLETE est disponible dans les mêmes régions que COMPLETE.

  • La fonction COUNT_TOKENS est disponible dans toutes les régions pour tous les modèles, mais les modèles eux-mêmes ne sont disponibles que dans les régions spécifiées dans les tables ci-dessous.

les modèles suivants sont disponibles dans n’importe quelle région via l’inférence interrégionale.

Fonction
(Modèle)
Inter-Cloud (n’importe quelle région)
AWS US
(inter-régionale)
AWS EU
(inter-régionale)
AWS APJ
(inter-régionale)
Azure US
(inter-régionale)
AI_COMPLETE
(claude-4-sonnet)

AI_COMPLETE
(claude-4-opus)

En aperçu

En aperçu

AI_COMPLETE
(claude-3-7-sonnet)

AI_COMPLETE
(claude-3-5-sonnet)

AI_COMPLETE
(llama4-maverick)

AI_COMPLETE
(llama4-scout)

AI_COMPLETE
(llama3.2-1b)

AI_COMPLETE
(llama3.2-3b)

AI_COMPLETE
(llama3.1-8b)

AI_COMPLETE
(llama3.1-70b)

AI_COMPLETE
(llama3.3-70b)

AI_COMPLETE
(snowflake-llama-3.3-70b)

AI_COMPLETE
(llama3.1-405b)

AI_COMPLETE
(openai-gpt-4.1)

En aperçu

En aperçu

AI_COMPLETE
(openai-o4-mini)

En aperçu

En aperçu

AI_COMPLETE
(openai-gpt-5)

En aperçu

En aperçu

AI_COMPLETE
(openai-gpt-5-mini)

En aperçu

En aperçu

AI_COMPLETE
(openai-gpt-5-nano)

En aperçu

En aperçu

AI_COMPLETE
(openai-gpt-5-chat)

En aperçu

AI_COMPLETE
(openai-gpt-oss-120b)

En aperçu

AI_COMPLETE
(openai-gpt-oss-20b)

En aperçu

AI_COMPLETE
(snowflake-llama-3.1-405b)

AI_COMPLETE
(snowflake-arctic)

AI_COMPLETE
(deepseek-r1)

AI_COMPLETE
(reka-core)

AI_COMPLETE
(reka-flash)

AI_COMPLETE
(mistral-large2)

AI_COMPLETE
(mixtral-8x7b)

AI_COMPLETE
(mistral-7b)

AI_COMPLETE
(jamba-instruct)

AI_COMPLETE
(jamba-1.5-mini)

AI_COMPLETE
(jamba-1.5-large)

AI_COMPLETE
(gemma-7b)

EMBED_TEXT_768
(e5-base-v2)

EMBED_TEXT_768
(snowflake-arctic-embed-m)

EMBED_TEXT_768
(snowflake-arctic-embed-m-v1.5)

EMBED_TEXT_1024
(snowflake-arctic-embed-l-v2.0)

EMBED_TEXT_1024
(snowflake-arctic-embed-l-v2.0-8k)

EMBED_TEXT_1024
(nv-embed-qa-4)

EMBED_TEXT_1024
(multilingual-e5-large)

EMBED_TEXT_1024
(voyage-multilingual-2)

AI_CLASSIFY TEXT

AI_CLASSIFY IMAGE

AI_EXTRACT

AI_FILTER TEXT

AI_FILTER IMAGE

AI_AGG

AI_SENTIMENT

AI_SIMILARITY TEXT

AI_SIMILARITY IMAGE

AI_SUMMARIZE_AGG

EXTRACT_ANSWER

SENTIMENT

ENTITY_SENTIMENT

SUMMARIZE

TRANSLATE

Les fonctions suivantes de Snowflake Cortex AI sont actuellement disponibles dans les régions étendues suivantes.

Fonction
(Modèle)
AWSUS Est 2
(Ohio)
AWS CA Central 1
(Central)
AWS SA East 1
(São Paulo)
AWS Europe Ouest 2
(Londres)
AWS Europe Central 1
(Francfort)
AWS Europe du Nord 1
(Stockholm)
AWS AP Nord-Est 1
(Tokyo)
AWS AP Sud 1
(Mumbai)
AWS AP Sud-Est 2
(Sydney)
AWS AP Sud-Est 3
(Jakarta)
Azure Centre-Sud US
(Texas)
Azure West US 2
(Washington)
Azure UK Sud
(Londres)
Azure Nord de l’Europe
(Irlande)
Azure Suisse Nord
(Zurich)
Azure Centre de l’Inde
(Pune)
Azure Japon Est
(Tokyo, Saitama)
Azure Asie du Sud-Est
(Singapour)
Azure Australie Est
(Nouvelle-Galles du Sud)
GCP Europe Ouest 2
(Londres)
GCP Europe Ouest 4
(Pays-Bas)
GCP US Central 1
(Iowa)
GCP US Est 4
(Virginie du Nord)
EMBED_TEXT_768
(snowflake-arctic-embed-m-v1.5)

EMBED_TEXT_768
(snowflake-arctic-embed-m)

EMBED_TEXT_1024
(multilingual-e5-large)

AI_EXTRACT

Interrégionale uniquement

Interrégionale uniquement

Interrégionale uniquement

Interrégionale uniquement

La table suivante répertorie les modèles hérités. Si vous débutez, commencez par les modèles de la table précédente

Héritage
Fonction
(Modèle)
AWS US West 2
(Oregon)
AWS US East 1
(Virginie du Nord)
AWS Europe Central 1
(Francfort)
AWS Europe Ouest 1
(Irlande)
AWS AP Sud-Est 2
(Sydney)
AWS AP Nord-Est 1
(Tokyo)
Azure Est US 2
(Virginie)
Azure Europe de l’Ouest
(Pays-Bas)
AI_COMPLETE
(llama2-70b-chat)

AI_COMPLETE
(llama3-8b)

AI_COMPLETE
(llama3-70b)

AI_COMPLETE
(mistral-large)

Considérations relatives aux clients

Les fonctions Snowflake Cortex AI ont un coût de calcul basé sur le nombre de jetons traités. Reportez-vous à la table de consommation des services Snowflake pour le coût de chaque fonction en crédits par million de jetons.

un jeton est la plus petite unité de texte traitée par les fonctions d’AI de snowflake cortex. Une convention de l’industrie pour le texte est qu’un jeton équivaut approximativement à quatre caractères, bien que cela puisse varier selon le modèle, de même que l’équivalence des jetons pour les fichiers média.

  • pour les fonctions qui génèrent un nouveau texte dans la réponse (AI_COMPLETE, AI_CLASSIFY, AI_FILTER, AI_AGG, AI_SUMMARIZE, et TRANSLATE, et leurs versions précédentes dans le schéma SNOWFLAKE.CORTEX), les jetons d’entrée et de sortie sont facturables.

  • Pour Cortex Guard, seuls les jetons d’entrée sont comptés. le nombre de jetons d’entrée est basé sur le nombre de jetons de sortie de AI_COMPLETE (ou COMPLETE). l’utilisation de cortex guard est facturée en plus du coût de la fonction AI_COMPLETE (ou COMPLETE).

  • pour les fonctions AI_SIMILARITY et EMBED_*, seuls les jetons d’entrée sont comptés.

  • Pour EXTRACT_ANSWER, le nombre de jetons facturables est la somme du nombre de jetons dans les champs from_text et question.

  • AI_CLASSIFY, AI_FILTER, AI_AGG, AI_SENTIMENT, AI_SUMMARIZE_AGG, SUMMARIZE, TRANSLATE, EXTRACT_ANSWER, ENTITY_SENTIMENT et SENTIMENT ajoutent une invite au texte d’entrée afin de générer la réponse. Par conséquent, le nombre de jetons en entrée est supérieur au nombre de jetons dans le texte que vous fournissez.

  • Les étiquettes, les descriptions et les exemples d’AI_CLASSIFY sont comptés comme des jetons d’entrée pour chaque enregistrement traité, et non pas une seule fois pour chaque appel à AI_CLASSIFY.

  • Pour AI_PARSE_DOCUMENT (ou SNOWFLAKE.CORTEX.PARSE_DOCUMENT), la facturation est basée sur le nombre de pages de documents traitées.

  • TRY_COMPLETE (SNOWFLAKE.CORTEX) n’entraîne pas de frais de traitement des erreurs. si la fonction TRY_COMPLETE(SNOWFLAKE.CORTEX) renvoie NULL, aucun frais n’est engagé.

  • pour AI_EXTRACT, les jetons d’entrée et de sortie sont comptés. l’argument responseFormat est compté comme jetons d’entrée. Pour les formats de documents composés de pages, le nombre de pages traitées est compté comme jeton d’entrée. Chaque page d’un document est comptée comme 970 jetons.

  • COUNT_TOKENS (SNOWFLAKE.CORTEX) n’entraîne que des coûts de calcul pour exécuter la fonction. Aucun coût supplémentaire basé sur les jetons n’est encouru.

Pour les modèles qui prennent en charge les fichiers médias tels que les images ou l’audio :

snowflake recommande d’exécuter les requêtes qui font appel à la fonction AISQL de snowflake cortex dans un entrepôt plus petit (pas plus grand que MEDIUM). Des entrepôts plus grands n’augmentent pas les performances. le coût associé à la tenue d’un entrepôt actif continue de s’appliquer lors de l’exécution d’une requête qui appelle un la fonction LLM de snowflake cortex. pour des informations générales sur les coûts de calcul, consultez comprendre le coût du calcul.

Suivi des coûts des services AI

Pour suivre les crédits utilisés pour les services d’AI, y compris les fonctions LLM de votre compte, utilisez l” Vue METERING_HISTORY :

SELECT *
  FROM SNOWFLAKE.ACCOUNT_USAGE.METERING_DAILY_HISTORY
  WHERE SERVICE_TYPE='AI_SERVICES';
Copy

Suivre la consommation de crédit pour les fonctions AISQL

Pour voir la consommation de crédit et de jetons pour chaque appel de fonction AISQL, utilisez le Vue CORTEX_FUNCTIONS_USAGE_HISTORY :

SELECT *
  FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_USAGE_HISTORY;
Copy

Vous pouvez également voir la consommation de crédits et de jetons pour chaque requête dans votre compte Snowflake. La vue de la consommation de crédits et de jetons pour chaque requête vous aide à identifier les requêtes qui consomment le plus de crédits et de jetons.

L’exemple de requête suivant utilise l”Vue CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY pour afficher la consommation de crédits et de jetons pour toutes vos requêtes au sein de votre compte.

SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY;
Copy

Vous pouvez également utiliser la même vue pour voir la consommation de crédits et de jetons pour une requête spécifique.

SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY
WHERE query_id='<query-id>';
Copy

Note

Vous ne pouvez pas obtenir d’informations granulaires sur l’utilisation des requêtes effectuées avec l’API REST.

L’historique de l’utilisation des requêtes est groupé en fonction des modèles utilisés dans la requête. Par exemple, si vous avez exécuté :

SELECT AI_COMPLETE('mistral-7b', 'Is a hot dog a sandwich'), AI_COMPLETE('mistral-large', 'Is a hot dog a sandwich');
Copy

L’historique de l’utilisation de la requête fait apparaître deux lignes, l’une pour mistral-7b et l’autre pour mistral-large.

Quotas d’utilisation

les comptes snowflake à la demande sans mode de paiement valide (tels que les comptes d’essai) sont limités à 10 crédits par jour pour l’utilisation de la fonction AISQL de snowflake cortex. pour lever cette restriction, convertissez votre compte d’essai en compte payant.

Gestion des coûts

Snowflake recommande d’utiliser une taille d’entrepôt ne dépassant pas MEDIUM lors de l’appel des fonctions AISQL de Snowflake Cortex. L’utilisation d’un entrepôt plus grand que nécessaire n’augmente pas les performances, mais peut entraîner des coûts inutiles. cette recommandation pourrait changer à l’avenir à mesure que nous continuerons à faire évoluer les fonctions AISQL de cortex.

Restrictions du modèle

Les modèles utilisés par Snowflake Cortex sont limités en taille comme décrit dans le tableau ci-dessous. Les tailles sont données en jetons. Les jetons représentent généralement environ quatre caractères de texte, donc le nombre de mots correspondant à une limite est inférieur au nombre de jetons. Les entrées qui dépassent la limite entraînent une erreur.

La taille maximale de la sortie qu’un modèle peut produire est limitée par les éléments suivants :

  • La limite du jeton de sortie du modèle.

  • L’espace disponible dans la fenêtre contextuelle après que le modèle a consommé les jetons d’entrée.

Par exemple, claude-3-5-sonnet dispose d’une fenêtre contextuelle de 200 000 jetons. Si 100 000 jetons sont utilisés comme entrée, le modèle peut générer jusqu’à 8 192 jetons. Toutefois, si 195 000 jetons sont utilisés en entrée, le modèle ne peut générer que 5 000 jetons au maximum, soit un total de 200 000 jetons.

Important

Dans la région AWS AP Southeast 2 (Sydney) :

  • la fenêtre contextuelle pour llama3-8b et mistral-7b est de 4 096 jetons.

  • la fenêtre contextuelle pour llama3.1-8b est de 16 384 jetons.

  • la fenêtre contextuelle pour le modèle géré par Snowflake à partir de la fonction SUMMARIZE est de 4 096 jetons.

Dans la région AWS Europe West 1 (Irlande) :

  • la fenêtre contextuelle pour llama3.1-8b est de 16 384 jetons.

  • la fenêtre contextuelle pour mistral-7b est de 4 096 jetons.

Fonction

Modèle

Fenêtre contextuelle (jetons)

Sortie maximale des fonctions AISQL (jetons)

COMPLETE

llama4-maverick

128,000

8,192

llama4-scout

128,000

8,192

snowflake-arctic

4,096

8,192

deepseek-r1

32,768

8,192

claude-4-opus

200,000

8,192

claude-4-sonnet

200,000

32,000

claude-3-7-sonnet

200,000

32,000

claude-3-5-sonnet

200,000

8,192

mistral-large

32,000

8,192

mistral-large2

128,000

8,192

openai-gpt-4.1

128,000

32,000

openai-o4-mini

200,000

32,000

openai-gpt-5

272,000

8,192

openai-gpt-5-mini

272,000

8,192

openai-gpt-5-nano

272,000

8,192

openai-gpt-5-chat

128,000

8,192

openai-gpt-oss-120b

128,000

8,192

openai-gpt-oss-20b

128,000

8,192

reka-flash

100,000

8,192

reka-core

32,000

8,192

jamba-instruct

256,000

8,192

jamba-1.5-mini

256,000

8,192

jamba-1.5-large

256,000

8,192

mixtral-8x7b

32,000

8,192

llama2-70b-chat

4,096

8,192

llama3-8b

8,000

8,192

llama3-70b

8,000

8,192

llama3.1-8b

128,000

8,192

llama3.1-70b

128,000

8,192

llama3.3-70b

128,000

8,192

snowflake-llama-3.3-70b

128,000

8,192

llama3.1-405b

128,000

8,192

snowflake-llama-3.1-405b

8,000

8,192

llama3.2-1b

128,000

8,192

llama3.2-3b

128,000

8,192

mistral-7b

32,000

8,192

gemma-7b

8,000

8,192

EMBED_TEXT_768

e5-base-v2

512

s/o

snowflake-arctic-embed-m

512

s/o

EMBED_TEXT_1024

nv-embed-qa-4

512

s/o

multilingual-e5-large

512

s/o

voyage-multilingual-2

32,000

s/o

AI_EXTRACT

arctic-extract

128,000

51 200

AI_FILTER

Modèle géré par Snowflake

128,000

s/o

AI_CLASSIFY

Modèle géré par Snowflake

128,000

s/o

AI_AGG

Modèle géré par Snowflake

128 000 par ligne
peuvent être utilisés sur plusieurs lignes

8,192

AI_SENTIMENT

Modèle géré par Snowflake

2,048

s/o

AI_SUMMARIZE_AGG

Modèle géré par Snowflake

128 000 par ligne
peuvent être utilisés sur plusieurs lignes

8,192

ENTITY_SENTIMENT

Modèle géré par Snowflake

2,048

s/o

EXTRACT_ANSWER

Modèle géré par Snowflake

2 048 pour le texte
64 pour la question

s/o

SENTIMENT

Modèle géré par Snowflake

512

s/o

SUMMARIZE

Modèle géré par Snowflake

32,000

4,096

TRANSLATE

Modèle géré par Snowflake

4,096

s/o

Choix d’un modèle

La fonction Snowflake Cortex AI_COMPLETE prend en charge plusieurs modèles dont la capacité, la latence et le coût varient. Ces modèles ont été soigneusement choisis pour correspondre aux cas d’utilisation courants des clients. Pour obtenir la meilleure performance par crédit, choisissez un modèle qui correspond bien à la taille du contenu et à la complexité de votre tâche. Voici un bref aperçu des modèles disponibles.

Grands modèles

Si vous ne savez pas par où commencer, essayez d’abord les modèles les plus performants afin d’établir une base de référence pour évaluer les autres modèles. claude-3-7-sonnet, reka-core et mistral-large2 sont les modèles les plus performants proposés par Snowflake Cortex. Ils vous donneront une bonne idée de ce que peut faire un modèle à la pointe de la technologie.

  • Claude 3-7 Sonnet est un leader dans le domaine du raisonnement général et des capacités multimodales. Il surpasse ses prédécesseurs dans les tâches qui requièrent un raisonnement à travers différents domaines et modalités. Vous pouvez utiliser sa large capacité de sortie pour obtenir davantage d’informations à partir de requêtes structurées ou non structurées. Ses capacités de raisonnement et ses grandes fenêtres contextuelles le rendent bien adapté aux flux de travail agentiques.

  • deepseek-r1 est un modèle de base formé à l’aide de l’apprentissage par renforcement à grande échelle (RL) sans affinage supervisé (SFT). Il peut offrir des performances élevées dans les tâches de mathématiques, de codage et de raisonnement. Pour accéder au modèle, définissez le paramètre d’inférence inter-régionale sur AWS_US.

  • mistral-large2 est le grand modèle de langage le plus avancé de l’AI Mistral avec des capacités de raisonnement de premier plan. Par rapport à mistral-large, il est nettement plus performant en matière de génération de code, de mathématiques, de raisonnement et offre un support multilingue beaucoup plus puissant. C’est idéal pour les tâches complexes qui requièrent de grandes capacités de raisonnement ou qui sont hautement spécialisées, telles que la génération de textes synthétiques, la génération de codes et l’analyse de texte multilingue.

  • llama3.1-405b est un modèle open source de la famille de modèles llama3.1 de Meta avec une grande fenêtre de contexte de 128K. Il excelle dans le traitement de documents longs, l’assistance multilingue, la génération de données synthétiques et la distillation de modèles.

  • snowflake-llama3.1-405b est un modèle dérivé du modèle open source llama3.1. il utilise les optimisations `SwiftKV<https://www.snowflake.com/en/blog/up-to-75-lower-inference-cost-llama-meta-llm/>`_ qui ont été développées par l’équipe de recherche AI de snowflake pour fournir jusqu’à 75 % de réduction des coûts d’inférence. SwiftKV permet d’obtenir des performances de débit supérieures avec une perte de précision minimale.

Modèles moyens

  • llama3.1-70b est un modèle open source qui offre des performances de pointe idéales pour les applications de chat, la création de contenu et les applications d’entreprise. Il s’agit d’un modèle hautement performant et rentable qui permet divers cas d’utilisation avec une fenêtre contextuelle de 128K. llama3-70b est toujours pris en charge et dispose d’une fenêtre contextuelle de 8K.

  • snowflake-llama3.3-70b est un modèle dérivé du modèle open source llama3.3. Il utilise le <SwiftKV optimizations https://www.snowflake.com/en/blog/up-to-75-lower-inference-cost-llama-meta-llm/> développé par l’équipe de recherche de Snowflake AI pour permettre une réduction des coûts d’inférence pouvant aller jusqu’à 75 %. SwiftKV permet d’obtenir des performances de débit plus élevées avec une perte de précision minimale.

  • snowflake-arctic est la solution de premier plan de Snowflake axée sur l’entreprise LLM. Arctic excelle dans les tâches d’entreprise telles que la génération de SQL, le codage et les benchmarks de suivi des instructions.

  • mixtral-8x7b est idéal pour la génération de textes, la classification et la réponse aux questions. Les modèles Mistral sont optimisés pour une faible latence avec de faibles besoins en mémoire, ce qui se traduit par un débit plus élevé pour les cas d’utilisation en entreprise.

  • Le modèle jamba-Instruct est construit par AI21 Labs pour répondre efficacement aux exigences des entreprises. Il est optimisé pour offrir une fenêtre de contexte de 256 000 jetons avec un faible coût et une faible latence, ce qui le rend idéal pour des tâches telles que le résumé, les questions-réponses et l’extraction d’entités sur des documents longs et de vastes bases de connaissances.

  • La famille de modèles AI21 Jamba 1.5 est à la pointe de la technologie, avec une instruction SSM-Transformer hybride qui suit les modèles fondamentaux. Le jamba-1.5-mini et le jamba-1.5-large avec une longueur de contexte de 256K prennent en charge des cas d’utilisation tels que la sortie structurée (JSON), et une génération ancrée.

Petits modèles

  • Les modèles llama3.2-1b et llama3.2-3b prennent en charge une longueur de contexte de 128 000 jetons et sont à la pointe de la technologie dans leur catégorie pour les cas d’utilisation tels que les tâches de résumé, de suivi d’instructions et de réécriture. Les modèles Llama 3.2 offrent des capacités multilingues, avec prise en charge de l’anglais, de l’allemand, du français, de l’italien, du portugais, de l’hindi, de l’espagnol et du thaï.

  • llama3.1-8b est idéal pour les tâches qui nécessitent un raisonnement faible à modéré. C’est un modèle léger et ultra-rapide avec une fenêtre contextuelle de 128K. llama3-8b et llama2-70b-chat sont des modèles toujours pris en charge qui fournissent une fenêtre de contexte plus petite et une précision relativement faible.

  • mistral-7b est idéal pour vos tâches les plus simples de résumé, de structuration et de réponse à des questions qui doivent être effectuées rapidement. Il offre une faible latence et un traitement à haut débit pour plusieurs pages de texte grâce à sa fenêtre contextuelle de 32 Ko.

  • gemma-7b est adapté aux tâches simples de complétion de code et de texte. Il dispose d’une fenêtre contextuelle de 8 000 jetons, mais il est étonnamment performant dans cette limite et tout à fait rentable.

Le tableau suivant fournit des informations sur les performances des modèles les plus courants sur différents benchmarks, y compris les modèles proposés par Snowflake Cortex AI_COMPLETE ainsi que quelques autres modèles courants.

Modèle

Fenêtre contextuelle
(Jetons)
MMLU
(Raisonnement)
HumanEval
(Codage)
GSM8K
(Raisonnement arithmétique)
Spider 1.0
(SQL)

GPT 4.o

128,000

88,7

90,2

96,4

-

Claude 3.5 Sonnet

200,000

88,3

92,0

96,4

-

llama3.1-405b

128,000

88,6

89

96,8

-

reka-core

32,000

83,2

76,8

92,2

-

llama3.1-70b

128,000

86

80,5

95,1

-

mistral-large2

128,000

84

92

93

-

reka-flash

100,000

75,9

72

81

-

llama3.1-8b

128,000

73

72,6

84,9

-

mixtral-8x7b

32,000

70,6

40,2

60,4

-

jamba-instruct

256,000

68,2

40

59,9

-

jamba-1.5-mini

256,000

69,7

-

75,8

-

jamba-1.5-large

256,000

81,2

-

87

-

Compte Snowflake

4,096

67,3

64,3

69,7

79

llama3.2-1b

128,000

49,3

-

44,4

-

llama3.2-3b

128,000

69,4

-

77,7

-

gemma-7b

8,000

64,3

32,3

46,4

-

mistral-7b

32,000

62,5

26,2

52,1

-

GPT 3.5 Turbo*

4,097

70

48,1

57,1

-

Versions antérieures du modèle

Les fonctions AI_COMPLETE et COMPLETE de Snowflake Cortex prennent également en charge les versions de modèles plus anciennes suivantes. Nous vous recommandons d’utiliser les dernières versions de modèles au lieu des versions répertoriées dans ce tableau.

Modèle

Fenêtre contextuelle
(Jetons)
MMLU
(Raisonnement)
HumanEval
(Codage)
GSM8K
(Raisonnement arithmétique)
Spider 1.0
(SQL)

mistral-large

32,000

81,2

45,1

81

81

llama-2-70b-chat

4,096

68,9

30,5

57,5

-

Utilisation de Snowflake Cortex AISQL avec Python

Appeler les fonctions AISQL de Cortex dans Snowpark Python

vous pouvez utiliser les fonctions AISQL de cortex dans l’API snowpark python. Ces fonctions incluent ce qui suit. Notez que les fonctions de Snowpark Python ont des noms au format Python « snake_case », avec des mots séparés par des traits de soulignement et toutes les lettres en minuscules.

Exemple ai_agg

la fonction ai_agg agrège une colonne de texte en utilisant des instructions en langage naturel de la même manière que vous demanderiez à un analyste de résumer ou d’extraire des résultats à partir de données groupées ou non groupées.

l’exemple suivant résume les avis des clients pour chaque produit utilisant la fonction:code:ai_agg. La fonction prend une colonne de texte et une instruction en langage naturel pour synthétiser les avis.

from snowflake.snowpark.functions import ai_agg, col

df = session.create_dataframe([
    [1, "Excellent product!"],
    [1, "Great battery life."],
    [1, "A bit expensive but worth it."],
    [2, "Terrible customer service."],
    [2, "Won’t buy again."],
], schema=["product_id", "review"])

# Summarize reviews per product
summary_df = df.group_by("product_id").agg(
    ai_agg(col("review"), "Summarize the customer reviews in one sentence.")
)
summary_df.show()
Copy

Note

Utilisez des descriptions de tâches détaillées et centrées sur le cas d’utilisation. Par exemple, « Résumez les commentaires des clients pour un rapport destiné aux investisseurs ».

Catégoriser du texte avec ai_classify

La fonction ai_classify prend une chaîne ou une image et la classe dans les catégories que vous définissez.

L’exemple suivant classe les avis de voyageurs dans des catégories telles que « voyages » et « cuisine ». La fonction prend une colonne de texte et une liste de catégories dans lesquelles classer le texte.

from snowflake.snowpark.functions import ai_classify, col

df = session.create_dataframe([
    ["I dream of backpacking across South America."],
    ["I made the best pasta yesterday."],
], schema=["sentence"])

df = df.select(
    "sentence",
    ai_classify(col("sentence"), ["travel", "cooking"]).alias("classification")
)
df.show()
Copy

Note

Vous pouvez fournir jusqu’à 500 catégories. Vous pouvez classer à la fois du texte et des images.

Filtrer les lignes avec ai_filter

La fonction ai_filter évalue une condition de langage naturel et renvoie True or False. Vous pouvez l’utiliser pour filtrer ou baliser des lignes.

from snowflake.snowpark.functions import ai_filter, prompt, col

df = session.create_dataframe(["Canada", "Germany", "Japan"], schema=["country"])

filtered_df = df.select(
    "country",
    ai_filter(prompt("Is {0} in Asia?", col("country"))).alias("is_in_asia")
)
filtered_df.show()
Copy

Note

Vous pouvez filtrer à la fois sur les chaînes et sur les fichiers. Pour les invites dynamiques, utilisez la fonction:code:Invite. pour plus d’informations, consultez la `référence snowpark python<https://docs.snowflake.com/developer-guide/snowpark/reference/python/latest/snowpark/index>`_.

Appeler les fonctions AISQL Cortex dans Snowflake ML

Snowflake ML contient les anciennes fonctions AISQL, celles dont les noms ne commencent pas par « AI ». Ces fonctions sont prises en charge dans la version 1.1.2 et ultérieure de Snowflake ML. Les noms sont rendus au format Python « snake_case », avec des mots séparés par des traits de soulignement et toutes les lettres en minuscules.

Si vous exécutez votre script Python en dehors de Snowflake, vous devez créer une session Snowpark pour utiliser ces fonctions. Pour obtenir des instructions, voir Connexion à Snowflake.

Traiter des valeurs uniques

L’exemple Python suivant illustre l’appel de fonctions Snowflake Cortex AI sur des valeurs uniques :

from snowflake.cortex import complete, extract_answer, sentiment, summarize, translate

text = """
    The Snowflake company was co-founded by Thierry Cruanes, Marcin Zukowski,
    and Benoit Dageville in 2012 and is headquartered in Bozeman, Montana.
"""

print(complete("llama2-70b-chat", "how do snowflakes get their unique patterns?"))
print(extract_answer(text, "When was snowflake founded?"))
print(sentiment("I really enjoyed this restaurant. Fantastic service!"))
print(summarize(text))
print(translate(text, "en", "fr"))
Copy

Transmettre des options d’hyperparamètres

Vous pouvez transmettre des options qui affectent les hyperparamètres du modèle lorsque vous utilisez la fonction complete. L’exemple Python suivant illustre la modification du nombre maximal de jetons de sortie que le modèle peut générer :

from snowflake.cortex import complete, CompleteOptions

model_options1 = CompleteOptions(
    {'max_tokens':30}
)

print(complete("llama3.1-8b", "how do snowflakes get their unique patterns?", options=model_options1))
Copy

Appeler des fonctions sur des colonnes de table

Vous pouvez appeler une fonction AI sur une colonne du tableau, comme indiqué ci-dessous. Cet exemple nécessite un objet session (stocké dans session) et une table articles contenant une colonne de texte abstract_text, et crée une nouvelle colonne abstract_summary contenant un résumé de l’abrégé.

from snowflake.cortex import summarize
from snowflake.snowpark.functions import col

article_df = session.table("articles")
article_df = article_df.withColumn(
    "abstract_summary",
    summarize(col("abstract_text"))
)
article_df.collect()
Copy

Note

la forme avancée de COMPLETE de type chat (multi-message) n’est actuellement pas prise en charge par python dans snowflake ML.

Utilisation des fonctions Snowflake Cortex AI avec Snowflake CLI

AISQL de Snowflake Cortex est disponible dans la version 2.4.0 et ultérieure de Snowflake CLI. consultez Présentation de Snowflake CLI pour plus d’informations sur l’utilisation de Snowflake CLI. les fonctions sont les anciennes fonctions AISQL, celles dont les noms ne commencent pas par « AI ».

Les exemples suivants illustrent l’utilisation des commandes :codenowrap :snow cortex sur des valeurs uniques. Le paramètre -c spécifie quelle connexion utiliser.

Note

La forme avancée de COMPLETE de type chat (multi-message) n’est actuellement pas prise en charge par Snowflake CLI.

snow cortex complete "Is 5 more than 4? Please answer using one word without a period." -c "snowhouse"
Copy
snow cortex extract-answer "what is snowflake?" "snowflake is a company" -c "snowhouse"
Copy
snow cortex sentiment "Mary had a little Lamb" -c "snowhouse"
Copy
snow cortex summarize "John has a car. John's car is blue. John's car is old and John is thinking about buying a new car. There are a lot of cars to choose from and John cannot sleep because it's an important decision for John."
Copy
snow cortex translate herb --to pl
Copy

Vous pouvez également utiliser des fichiers contenant le texte que vous souhaitez utiliser pour les commandes. Pour cet exemple, supposons que le fichier about_cortex.txt contienne le contenu suivant :

Snowflake Cortex gives you instant access to industry-leading large language models (LLMs) trained by researchers at companies like Anthropic, Mistral, Reka, Meta, and Google, including Snowflake Arctic, an open enterprise-grade model developed by Snowflake.

Since these LLMs are fully hosted and managed by Snowflake, using them requires no setup. Your data stays within Snowflake, giving you the performance, scalability, and governance you expect.

Snowflake Cortex features are provided as SQL functions and are also available in Python. The available functions are summarized below.

COMPLETE: Given a prompt, returns a response that completes the prompt. This function accepts either a single prompt or a conversation with multiple prompts and responses.
EMBED_TEXT_768: Given a piece of text, returns a vector embedding that represents that text.
EXTRACT_ANSWER: Given a question and unstructured data, returns the answer to the question if it can be found in the data.
SENTIMENT: Returns a sentiment score, from -1 to 1, representing the detected positive or negative sentiment of the given text.
SUMMARIZE: Returns a summary of the given text.
TRANSLATE: Translates given text from any supported language to any other.

Vous pouvez ensuite exécuter la commande snow cortex summarize en passant le nom de fichier à l’aide du paramètre --file, comme indiqué :

snow cortex summarize --file about_cortex.txt
Copy
Snowflake Cortex offers instant access to industry-leading language models, including Snowflake Arctic, with SQL functions for completing prompts (COMPLETE), text embedding (EMBED\_TEXT\_768), extracting answers (EXTRACT\_ANSWER), sentiment analysis (SENTIMENT), summarizing text (SUMMARIZE), and translating text (TRANSLATE).

Pour plus d’informations sur ces commandes, consultez Commandes snow cortex.