DOCUMENTATION
/
Prise en main
Guides
Développeur
Référence
Versions
Tutoriels
Statut
  1. Aperçu
    • Catalogue Snowflake Horizon
    • Applications et outils pour se connecter à Snowflake
    • Entrepôts virtuels
    • Bases de données, tables et vues
    • Data types
      • Intégration des données
        1. Snowflake Openflow
        2. Apache Iceberg™
          1. Tables Apache Iceberg™
          2. Snowflake Open Catalog
      • Ingénierie des données
        1. Chargement des données
        2. Tables dynamiques
        3. Flux et tâches
        4. dbt Projects on Snowflake
        5. Déchargement des données
      • Migrations
      • Requêtes
      • Éléments de liste
      • Collaboration
      • Snowflake AI et ML
          1. Inférence interrégionale
            • Opt out of AI features
              • Snowflake Intelligence
                • Cortex AISQL
                • Cortex Agents
                • Cortex Analyst
                • Cortex Search
                    1. Interroger un Cortex Search Service
                      • Replicate a Cortex Search Service
                        • Compréhension des coûts
                          • Tutoriels
                      • Cortex Knowledge Extensions
                      • Observabilité AI
                      • Fonctions ML
                      • Document AI
                      • Provisioned Throughput
                        • Développement ML et Opérations ML
                      • Alertes et notifications
                      • Sécurité
                      • Gouvernance des données
                      • Confidentialité
                      • Organisations et comptes
                      • Continuité des affaires et récupération des données
                      • Optimisation des performances
                      • Coût et facturation
                      GuidesSnowflake AI et MLCortex Search

                      Cortex Search¶

                      La prise en charge de cette fonctionnalité est disponible pour les comptes dans la plupart des régions Snowflake. Consultez la section Disponibilité régionale pour une liste complète des régions.

                      Vue d’ensemble¶

                      Cortex Search permet une recherche « floue » à faible latence et de haute qualité sur vos données Snowflake. Il propose un large éventail d’expériences de recherche pour les utilisateurs de Snowflake, notamment les applications de génération augmentée par récupération (RAG) exploitant des Large Language Models (LLMs).

                      Cortex Search vous permet de démarrer avec un moteur de recherche hybride (vecteur et mot-clé) sur vos données textuelles en quelques minutes, sans avoir à vous soucier de l’intégration, de la maintenance de l’infrastructure, du réglage des paramètres de qualité de recherche ou des actualisations continues de l’index. Cela signifie que vous pouvez consacrer moins de temps au réglage de l’infrastructure et de la qualité de la recherche, et plus de temps au développement d’expériences de chat et de recherche de haute qualité en utilisant vos données. Découvrez les Tutoriels Cortex Search pour des instructions étape par étape sur l’utilisation de Cortex Search pour alimenter des applications de chat et de recherche AI.

                      Quand utiliser Cortex Search¶

                      Les deux principaux cas d’utilisation de Cortex Search sont la génération augmentée par récupération (RAG) et la recherche en entreprise.

                      • Moteur RAG pour les chatbots LLM : utilisez Cortex Search comme moteur RAG pour applications de chat avec vos données textuelles en exploitant la recherche sémantique pour des réponses personnalisées et contextualisées.

                      • Recherche en entreprise : utilisez Cortex Search comme backend pour une barre de recherche de haute qualité intégrée à votre application.

                      Cortex Search pour RAG¶

                      La génération augmentée par récupération (RAG) est une technique permettant de récupérer des données à partir d’une base de connaissances afin d’améliorer la réponse générée par un grand modèle linguistique. Le diagramme d’architecture suivant montre comment vous pouvez combiner Cortex Search avec les Fonctions LLM Cortex pour créer des chatbots d’entreprise avec RAG en utilisant vos données Snowflake comme base de connaissances.

                      Utilisation de Cortex Search pour RAG dans Snowflake

                      Cortex Search est le moteur de recherche qui fournit au modèle de langage étendu le contexte dont il a besoin pour renvoyer des réponses basées sur vos données propriétaires les plus récentes.

                      Exemple¶

                      Cet exemple vous guide à travers les étapes de création d’un Cortex Search Service et de son interrogation à l’aide de la REST API. Consultez la rubrique Interrogation d’un Cortex Search Service pour plus de détails sur l’interrogation du service.

                      Cet exemple utilise un exemple d’ensemble de données de transcription de support client.

                      Exécutez les commandes suivantes pour configurer l’exemple de base de données et le schéma.

                      CREATE DATABASE IF NOT EXISTS cortex_search_db;
                      
                      CREATE OR REPLACE WAREHOUSE cortex_search_wh WITH
                         WAREHOUSE_SIZE='X-SMALL';
                      
                      CREATE OR REPLACE SCHEMA cortex_search_db.services;
                      
                      Copy

                      Exécutez les commandes SQL suivantes pour créer la base de données.

                      CREATE OR REPLACE TABLE support_transcripts (
                          transcript_text VARCHAR,
                          region VARCHAR,
                          agent_id VARCHAR
                      );
                      
                      INSERT INTO support_transcripts VALUES
                          ('My internet has been down since yesterday, can you help?', 'North America', 'AG1001'),
                          ('I was overcharged for my last bill, need an explanation.', 'Europe', 'AG1002'),
                          ('How do I reset my password? The email link is not working.', 'Asia', 'AG1003'),
                          ('I received a faulty router, can I get it replaced?', 'North America', 'AG1004');
                      
                      Copy

                      Le suivi des modifications est nécessaire pour créer le service de recherche cortex. Si vous envisagez d’utiliser un rôle qui n’est pas propriétaire de cette table pour créer le service de recherche, exécutez l’instruction suivante pour activer le suivi des modifications sur la table :

                      ALTER TABLE support_transcripts SET
                        CHANGE_TRACKING = TRUE;
                      
                      Copy

                      Pour plus de détails sur l’activation du suivi des modifications, consultez Activer le suivi des modifications.

                      Créer le service¶

                      Vous pouvez créer un Cortex Search Service avec une seule requête SQL ou depuis le Studio AI & ML de Snowflake. Lorsque vous créez un Cortex Search Service, Snowflake effectue des transformations sur vos données sources pour les préparer à une diffusion à faible latence. Les sections suivantes montrent comment créer un service en utilisant à la fois SQL et dans le Studio AI & ML de Snowflake dans Snowsight.

                      Note

                      Lorsque vous créez un service de recherche, l’index de recherche est créé dans le cadre du processus de création. Cela signifie que l’instruction CREATE CORTEX SEARCH SERVICE peut prendre plus de temps à compléter pour des ensembles de données plus volumineux.

                      Utiliser SQL¶

                      L’exemple suivant montre comment créer un Cortex Search Service avec CREATE CORTEX SEARCH SERVICE sur l’exemple d’ensemble de données de transcription du support client créé dans la section précédente.

                      CREATE OR REPLACE CORTEX SEARCH SERVICE transcript_search_service
                        ON transcript_text
                        ATTRIBUTES region
                        WAREHOUSE = cortex_search_wh
                        TARGET_LAG = '1 day'
                        EMBEDDING_MODEL = 'snowflake-arctic-embed-l-v2.0'
                        AS (
                          SELECT
                              transcript_text,
                              region,
                              agent_id
                          FROM support_transcripts
                      );
                      
                      Copy

                      Cette commande déclenche la création du service de recherche pour vos données. Dans cet exemple :

                      • Les requêtes adressées au service rechercheront des correspondances dans la colonne transcript_text.

                      • Le paramètre TARGET_LAG indique que le Cortex Search Service vérifiera les mises à jour de la table de base support_transcripts environ une fois par jour.

                      • Les colonnes region et agent_id seront indexées afin qu’elles puissent être renvoyées avec les résultats des requêtes sur la colonne transcript_text.

                      • La colonne region sera disponible en tant que colonne de filtre lors de l’interrogation de la colonne transcript_text.

                      • L’entrepôt cortex_search_wh sera utilisé pour matérialiser les résultats de la requête spécifiée initialement et à chaque fois que la table de base est modifiée.

                      Note

                      • En fonction de la taille de l’entrepôt spécifié dans la requête et du nombre de lignes de votre table, l’exécution de cette commande CREATE peut prendre plusieurs heures.

                      • Snowflake recommande d’utiliser un entrepôt dédié dont la taille ne dépasse pas la taille MEDIUM pour chaque service.

                      • Les colonnes du champ ATTRIBUTES doivent être incluses dans la requête source, soit via une énumération explicite, soit via un caractère générique, ( * ) .

                      Utiliser Snowsight¶

                      Suivez ces étapes pour créer un Cortex Search Service dans Snowsight :

                      1. Connectez-vous à Snowsight.

                      2. Choisissez un rôle auquel est accordé le rôle SNOWFLAKE.CORTEX_USER de base de données.

                      3. Dans le menu de navigation, sélectionnez AI & ML » Studio.

                      4. Sélectionnez + Create dans la boîte Create a Cortex Search Service.

                      5. Sélectionnez un rôle et un entrepôt. Le rôle doit se voir attribué le rôle de base de données SNOWFLAKE.CORTEX_USER. L’entrepôt est utilisé pour matérialiser les résultats de la requête source lorsque le service est créé et actualisé.

                      6. Sélectionnez une base de données et un schéma dans lesquels le service est défini.

                      7. Saisissez un nom pour votre service, puis sélectionnez Let’s go.

                      8. Sélectionnez la table ou la vue contenant les données textuelles à indexer pour la recherche, puis sélectionnez Next. Pour cet exemple, sélectionnez la table support_transcripts.

                        Note

                        Si vous souhaitez spécifier plusieurs sources de données ou effectuer des transformations lors de la définition de votre service, utilisez SQL.

                      9. Sélectionnez les colonnes que vous souhaitez inclure dans les résultats de la recherche, transcript_text, region, et agent_id, puis sélectionnez Next.

                      10. Sélectionnez la colonne qui sera recherchée, transcript_text, puis sélectionnez Next.

                      11. Si vous souhaitez pouvoir filtrer vos résultats de recherche en fonction d’une ou plusieurs colonnes particulières, sélectionnez ces colonnes, puis sélectionnez Next. Si vous n’avez besoin d’aucun filtre, sélectionnez Skip this option. Pour cet exemple, vous pouvez ignorer cette étape.

                      12. Définissez votre latence cible, qui correspond au temps pendant lequel le contenu de votre service doit être en retard par rapport aux mises à jour des données de base, puis sélectionnez Create search service.

                      L’étape finale confirme que votre service a été créé et affiche le nom du service et sa source de données.

                      Note

                      Lorsque vous créez le service à partir de Snowsight, le nom du service est entre guillemets. Pour plus de détails sur ce que cela signifie lors du référencement du service dans SQL, consultez Identificateurs entre guillemets doubles.

                      Accorder des autorisations d’utilisation¶

                      Une fois le service et l’index créés, vous pouvez accorder l’utilisation du service, de sa base de données et de son schéma à d’autres rôles tels que customer_support.

                      GRANT USAGE ON DATABASE cortex_search_db TO ROLE customer_support;
                      GRANT USAGE ON SCHEMA services TO ROLE customer_support;
                      
                      GRANT USAGE ON CORTEX SEARCH SERVICE transcript_search_service TO ROLE customer_support;
                      
                      Copy

                      Prévisualiser le service¶

                      Pour confirmer que le service est correctement renseigné avec les données, vous pouvez prévisualiser le service via la fonction SEARCH_PREVIEW depuis un environnement SQL :

                      SELECT PARSE_JSON(
                        SNOWFLAKE.CORTEX.SEARCH_PREVIEW(
                            'cortex_search_db.services.transcript_search_service',
                            '{
                              "query": "internet issues",
                              "columns":[
                                  "transcript_text",
                                  "region"
                              ],
                              "filter": {"@eq": {"region": "North America"} },
                              "limit":1
                            }'
                        )
                      )['results'] as results;
                      
                      Copy

                      Exemple de réponse de requête réussie :

                      [
                        {
                        "transcript_text" : "My internet has been down since yesterday, can you help?",
                        "region" : "North America"
                        }
                      ]
                      
                      Copy

                      Cette réponse confirme que le service est rempli de données et fournit des résultats raisonnables pour la requête donnée.

                      Vous pouvez également utiliser la fonction de table CORTEX_SEARCH_DATA_SCAN pour inspecter le contenu du service.

                      SELECT
                        *
                      FROM
                        TABLE (
                          CORTEX_SEARCH_DATA_SCAN (
                            SERVICE_NAME => 'transcript_search_service'
                          )
                        );
                      
                      Copy
                      + ---------------------------------------------------------- + --------------- + -------- + ------------------------------ +
                      |                      transcript_text                       |     region      | agent_id | _GENERATED_EMBEDDINGS_MY_MODEL |
                      | ---------------------------------------------------------- | --------------- | -------- | ------------------------------ |
                      | 'My internet has been down since yesterday, can you help?' | 'North America' | 'AG1001' | [0.1, 0.2, 0.3, 0.4]           |
                      | 'I was overcharged for my last bill, need an explanation.' | 'Europe'        | 'AG1002' | [0.1, 0.2, 0.3, 0.4]           |
                      + ---------------------------------------------------------- + --------------- + -------- + ------------------------------ +
                      

                      Interrogez le service depuis votre application¶

                      Une fois que vous avez créé le service de recherche, accordé son utilisation à votre rôle et l’avez prévisualisé, vous pouvez désormais l’interroger à partir de votre application à l’aide de l”API Python.

                      Le code suivant montre l’utilisation de l’API Python pour récupérer le ticket d’assistance le plus pertinent pour une requête concernant internet issues, filtré pour renvoyer des résultats dans la région North America :

                      from snowflake.core import Root
                      from snowflake.snowpark import Session
                      
                      CONNECTION_PARAMETERS = {"..."}
                      
                      session = Session.builder.configs(CONNECTION_PARAMETERS).create()
                      root = Root(session)
                      
                      transcript_search_service = (root
                        .databases["cortex_search_db"]
                        .schemas["services"]
                        .cortex_search_services["transcript_search_service"]
                      )
                      
                      resp = transcript_search_service.search(
                        query="internet issues",
                        columns=["transcript_text", "region"],
                        filter={"@eq": {"region": "North America"} },
                        limit=1
                      )
                      print(resp.to_json())
                      
                      Copy

                      Exemple de réponse de requête réussie :

                      {
                        "results": [
                          {
                            "transcript_text": "My internet has been down since yesterday, can you help?",
                            "region": "North America"
                          }
                        ],
                        "request_id": "5d8eaa5a-800c-493c-a561-134c712945ba"
                      }
                      
                      Copy

                      Les Cortex Search Services renvoient toutes les colonnes spécifiées dans le champ columns de votre requête.

                      Privilèges requis¶

                      • Pour créer un Cortex Search Service, votre rôle doit avoir le rôle de base de données CORTEX_USER pour les fonctions LLM Cortex. Pour plus d’informations sur l’octroi et la révocation de ce rôle, consultez Privilèges requis pour les fonctions Cortex LLM.

                      • Pour interroger un Cortex Search Service, le rôle de l’utilisateur effectuant la requête doit disposer des privilèges USAGE sur le service lui-même, ainsi que sur la base de données et le schéma dans lesquels le service réside. Consultez Exigences en matière de contrôle d’accès à Cortex Search.

                      • Pour suspendre ou reprendre un Cortex Search Service à l’aide de la commande ALTER, le rôle de l’utilisateur qui interroge doit avoir le privilège OPERATE sur le service. Voir ALTER CORTEX SEARCH SERVICE.

                      Important

                      Les services Cortex Search Service effectuent des recherches avec les droits du propriétaire et suivent le même modèle de sécurité que les autres objets Snowflake qui s’exécutent avec les droits du propriétaire. Pour plus d’informations, voir Exigences en matière de contrôle d’accès à Cortex Search

                      Comprendre la qualité de Cortex Search¶

                      Cortex Search s’appuie sur un ensemble de modèles de récupération et de classement pour vous offrir un niveau élevé de qualité de recherche avec peu ou pas de réglage requis. Sous le capot, Cortex Search adopte une approche « hybride » pour récupérer et classer les documents. Chaque requête de recherche utilise :

                      • Recherche vectorielle pour récupérer des documents sémantiquement similaires.

                      • Recherche par mot-clé pour récupérer des documents lexicalement similaires.

                      • Reclassement sémantique pour reclasser les documents les plus pertinents dans le jeu de résultats.

                      Cette approche de recherche hybride, couplée à une étape de reclassement sémantique, permet d’obtenir une qualité de recherche élevée sur une large gamme d’ensembles de données et de requêtes.

                      Modèles de représentation vectorielle de Cortex Search¶

                      Cortex Search permet aux utilisateurs de sélectionner un modèle d’intégration hébergé qui sera exploité dans la zone de préparation de récupération de la recherche vectorielle. Les modèles d’intégration suivants sont disponibles dans Cortex Search.

                      Important

                      La tarification du modèle varie. La tarification du modèle canonique est disponible dans le Tableau de consommation du service Snowflake. Si un prix indiqué ci-dessous diffère du prix indiqué pour le modèle dans le Tableau de consommation du service Snowflake, le Tableau de consommation du service Snowflake prévaut.

                      Nom du modèle

                      Dimensions de la sortie

                      Taille de la fenêtre contextuelle (jetons)

                      Prise en charge des langages

                      Coût du crédit pour 1 million de jetons

                      Description

                      snowflake-arctic-embed-m-v1.5 (par défaut)

                      768

                      512

                      Anglais uniquement

                      0,03

                      Le modèle d’intégration le plus pratique de Snowflake, en anglais uniquement. Ce modèle open-source de 110 millions de paramètres permet d’obtenir les temps d’indexation les plus rapides parmi les modèles disponibles dans Cortex Search. Pour plus d’informations, consultez le billet de blog Arctic Embed 1.5 et la carte modèle Arctic Embed 1.5.

                      snowflake-arctic-embed-l-v2.0

                      1024

                      512

                      Multilingue

                      0,05

                      Modèle d’intégration multilingue économique de Snowflake avec une fenêtre contextuelle de 512 jetons. Ce modèle open-source de 568 millions de paramètres produit une haute qualité sur les ensembles de données anglais et non anglais. Pour plus d’informations, consultez l’article de blog Arctic Embed 2 et la Carte du modèle Arctic Embed 2.

                      snowflake-arctic-embed-l-v2.0-8k

                      1024

                      8192

                      Multilingue

                      0,05

                      Modèle d’intégration multilingue économique de Snowflake, avec une fenêtre contextuelle augmentée de 8 000 jetons. Ce modèle open-source de 568 millions de paramètres produit une haute qualité sur les ensembles de données anglais et non anglais.

                      voyage-multilingual-2

                      1024

                      512

                      Multilingue

                      0,07

                      Le modèle d’intégration multilingue de Voyage. Ce modèle permet d’obtenir une qualité élevée sur les jeux de données anglais ou non. Pour plus d’informations, consultez le billet de blog Voyage Multilingual 2

                      Certains modèles de représentation vectorielle ne sont disponibles que dans certaines régions du Cloud pour Cortex Search. Pour obtenir la liste des disponibilités par modèle et par région, voir Disponibilité régionale Cortex Search.

                      Chaque modèle présente des caractéristiques différentes en matière de performance, de coût, de taille de la fenêtre contextuelle et de qualité. Examinez attentivement les spécifications du modèle afin de déterminer le modèle le mieux adapté à votre charge de travail spécifique. Reportez-vous au Tableau de consommation du service Snowflake pour une vue la plus précise du coût de chaque modèle en crédits par million de jetons.

                      Jetons, fenêtres contextuelles du modèle et division de texte¶

                      Un jeton est une séquence de caractères et constitue la plus petite unité de texte pouvant être traitée par un modèle de langage de grande taille. À titre approximatif, un jeton équivaut à environ 3/4 d’un mot anglais, soit environ 4 caractères. Pour calculer le nombre exact de jetons dans une chaîne, vous pouvez utiliser la fonction Cortex COUNT_TOKENS. Par exemple, le calcul des jetons d’une chaîne à intégrer avec le modèle snowflake-arctic-embed-m-v1.5 :

                      SELECT SNOWFLAKE.CORTEX.COUNT_TOKENS('snowflake-arctic-embed-m', '<input_text>') as token_count
                      
                      Copy

                      Chaque modèle d’intégration vectorielle prend en charge une fenêtre contextuelle de taille fixe pour les entrées de texte, indiquée dans le tableau des modèles d’intégration précédent. Lors de l’indexation et de la mise à disposition, lorsque le nombre de jetons d’une valeur dans la colonne de recherche dépasse la taille de la fenêtre contextuelle, Cortex Search tronque la chaîne à la taille de la fenêtre contextuelle avant de l’intégrer dans l’espace vectoriel pour la recherche sémantique. Cependant, Cortex Search utilise le corps entier du texte pour la récupération basée sur des mots-clés.

                      Snowflake fournit des fonctions intégrées pour aider à diviser le texte en morceaux plus petits. Pour plus d’informations, voir SPLIT_TEXT_RECURSIVE_CHARACTER.

                      Pour des résultats de recherche optimaux avec Cortex Search, Snowflake recommande de diviser le texte de votre colonne de recherche en morceaux ne dépassant pas 512 jetons (environ 385 mots anglais). Bien qu’il existe aujourd’hui des modèles d’intégration à contexte plus long, tels que snowflake-arctic-embed-l-v2.0-8k, la recherche montre qu”une taille de morceau plus petite entraîne généralement une meilleure qualité de la récupération et de la réponse du LLM en aval. Avec des morceaux plus petits, la récupération peut être plus précise pour une requête donnée et, dans une génération augmentée de récupération (RAG), le LLM en aval reçoit des morceaux de texte plus pertinents pour la requête.

                      Actualise¶

                      Le contenu diffusé dans un Cortex Search Service est basé sur les résultats d’une requête spécifique. Lorsque les données sous-jacentes à un Cortex Search Service changent, le service est mis à jour pour refléter ces modifications. Ces mises à jour sont appelées actualisations. Ce processus est automatisé et consiste à analyser la requête qui sous-tend la table.

                      Les Cortex Search Services ont les mêmes propriétés d’actualisation que les tables dynamiques. Consultez la rubrique Comprendre l’initialisation et l’actualisation des tables dynamiques pour comprendre les caractéristiques d’actualisation d’un Cortex Search Service.

                      La requête source d’un Cortex Search Service doit être candidate à l’actualisation incrémentielle de la table dynamique. Pour plus de détails sur ces exigences, consultez Prise en charge de l’actualisation incrémentielle. Cette restriction est conçue pour empêcher tout coût incontrôlable indésirable associé au calcul d’intégration vectorielle. Pour plus d’informations sur les constructions qui ne sont pas prises en charge pour l’actualisation incrémentielle de la table dynamique, consultez Requêtes prises en charge pour les tables dynamiques.

                      Clés primaires¶

                      Logo Snowflake en noir (sans texte) Fonctionnalité en avant-première — En accès libre

                      Disponible pour tous les comptes.

                      Une clé principale d’un Cortex Search Service est un ensemble facultatif de colonnes qui identifient de manière unique chaque ligne de la requête source (c’est-à-dire que une seule ligne possède cette combinaison exacte de valeurs dans les colonnes désignées). Pour être utilisées avec les Cortex Search Services, les colonnes de clé principale doivent être de type de données TEXT.

                      Une clé principale peut être spécifiée lors de la création du service comme suit :

                      CREATE OR REPLACE CORTEX SEARCH SERVICE transcript_search_service
                        ON transcript_text
                        PRIMARY KEY (region, agent_id)
                        WAREHOUSE = cortex_search_wh
                        TARGET_LAG = '1 day'
                        AS (
                          SELECT
                              transcript_text, region, agent_id
                          FROM support_transcripts
                      );
                      
                      Copy

                      Les colonnes de clé principale des services existants peuvent être modifiées avec ALTER CORTEX SEARCH SERVICE ... SET PRIMARY KEY (...). Pour une syntaxe détaillée, voir ALTER CORTEX SEARCH SERVICE.

                      Les services avec des clés principales peuvent utiliser un chemin d’actualisation optimisé lorsque les données sous-jacentes du service changent. Ce chemin optimisé peut être suivi si le nombre de changements depuis la dernière actualisation est faible et si la dernière actualisation a eu lieu au cours de la semaine précédente, et peut entraîner des réductions importantes du coût et de la latence d’une actualisation.

                      Les requêtes adressées à des services possédant des clés principales peuvent également utiliser l”opérateur de filtre ``@primarykey` <label-cortex-search-query-filter-syntax>`.

                      Important

                      L’ensemble des valeurs de colonne de clé principale doit être unique pour chaque ligne de la requête source. Les doublons sont ignorés dans l’index de recherche résultant.

                      Suspension de l’indexation et de la mise à disposition¶

                      De la même manière que les tables dynamiques, les Cortex Search Services suspendent automatiquement leur état d’indexation lorsqu’ils rencontrent cinq échecs d’actualisation consécutifs liés à la requête source. Si vous rencontrez cette défaillance pour votre service, vous pouvez voir l’erreur SQL lors de l’utilisation du DESCRIBE CORTEX SEARCH SERVICE ou du Vue CORTEX_SEARCH_SERVICES. La sortie des deux inclut les colonnes suivantes :

                      • La colonne INDEXING_STATE aura la valeur de SUSPENDED.

                      • La colonne INDEXING_ERROR contiendra l’erreur SQL spécifique rencontrée dans la requête source.

                      Une fois le problème racine résolu, vous pouvez reprendre le service avec ALTER CORTEX SEARCH SERVICE <name> RESUME INDEXING. Pour une syntaxe détaillée, voir ALTER CORTEX SEARCH SERVICE.

                      Considérations relatives aux clients¶

                      Un Cortex Search Service entraîne des coûts de la manière suivante :

                      Catégorie

                      Description

                      Calcul de l’entrepôt virtuel

                      Un Cortex Search Service nécessite un entrepôt virtuel pour actualiser le service : pour exécuter des requêtes sur les objets de base lorsqu’ils sont initialisés et actualisés, y compris l’orchestration des tâches d’intégration de texte et la création de l’index de recherche. Ces opérations utilisent des ressources de calcul, qui consomment des crédits. Si aucun changement n’est identifié lors d’une actualisation, les crédits de l’entrepôt virtuel ne sont pas consommés puisqu’il n’y a pas de nouvelles données à actualiser.

                      Calcul des jetons EMBED_TEXT

                      Un Cortex Search Service intègre automatiquement chaque ligne de texte dans la colonne de recherche spécifiée dans le paramètre ON dans l’espace vectoriel pour permettre une recherche sémantique, ce qui entraîne un coût de crédit par jeton intégré. Cela implique d’appeler EMBED_TEXT_768 ou EMBED_TEXT_1024 pour convertir chaque document en une série de nombres qui en encodent le sens. Les intégrations sont calculées à chaque fois qu’une ligne est insérée ou mise à jour. Les intégrations sont traitées de manière incrémentielle lors de l’évaluation de la requête source, de sorte que le coût d’intégration n’est engagé que pour les documents ajoutés ou modifiés. Voir Intégrations vectorielles pour plus d’informations sur les coûts de représentation vectorielle.

                      Calcul de service

                      Un Cortex Search Service utilise un calcul de service multi-locataire, séparé d’un entrepôt virtuel fourni par l’utilisateur, pour établir un service à faible latence et à haut débit. Le coût de calcul pour cette composante est calculé par GB par mois (GB/mo) de données indexées non compressées, les données indexées étant les données fournies par l’utilisateur dans la requête source de Cortex Search, plus les intégrations vectorielles calculées pour le compte de l’utilisateur. Vous supportez ces coûts tant que le service est disponible pour répondre aux requêtes, même si aucune requête n’est servie au cours d’une période donnée. Pour connaître le taux de crédit du service Cortex Search par GB/mo de données indexées, consultez la Snowflake Service Consumption Table.

                      Stockage

                      Les Cortex Search Services matérialisent la requête source dans une table stockée dans votre compte. Cette table est transformée en structures de données optimisées pour un service à faible latence, également stockées dans votre compte. Le stockage pour la table et les structures de données intermédiaires est basé sur un tarif forfaitaire par téraoctet (TB).

                      Calcul des services Cloud

                      Les Cortex Search Services utilisent le calcul Cloud Services pour identifier les changements dans les objets de base sous-jacents et déterminer si l’entrepôt virtuel doit être invoqué. Le coût de calcul des services Cloud est soumis à la contrainte selon laquelle Snowflake ne facture que si le coût quotidien des services Cloud est supérieur à 10 % du coût quotidien de l’entrepôt pour le compte.

                      Pour connaître les meilleures pratiques en matière de gestion des coûts d’un Cortex Search Service, voir Comprendre les coûts de Cortex Search Services.

                      Pour visualiser les coûts de consommation liés aux services AI pour chaque service Cortex Search Service de votre compte, agrégés quotidiennement, consultez la vue CORTEX_SEARCH_DAILY_USAGE_HISTORY

                      Limitations connues¶

                      L’utilisation de Cortex Search est soumise aux limitations suivantes :

                      • Taille de la table de base : Le résultat de la requête matérialisée dans le service de recherche doit avoir une taille inférieure à 100 millions de lignes pour maintenir une performance de service optimale. Si le résultat matérialisé de votre requête comporte plus de 100 millions de lignes, la requête de création échoue avec une erreur.

                        Note

                        Pour augmenter les limites de mise à l’échelle des lignes sur un Cortex Search Service au-dessus de 100 millions, veuillez contacter votre équipe de compte Snowflake.

                      • Constructions de requête : les requêtes sources du Cortex Search Service doivent respecter les mêmes restrictions de requête que les tables dynamiques. Veuillez consulter le Limites des tables dynamiques pour plus de détails.

                      • Réplication et clonage : les Cortex Search Services ne prennent pas en charge la réplication ou le clonage. La prise en charge de ces fonctionnalités sera disponible dans une future version.

                      • Immuabilité de la table : Pendant leur exécution, vos Cortex Search Services nécessitent que les tables auxquelles ils accèdent ne soient pas modifiées ou supprimées. Pour mettre à jour en toute sécurité les tables utilisées par un Cortex Search Service, arrêtez le service avant d’effectuer vos modifications.

                      Important

                      Pour chaque Cortex Search que vous créez, deux entités de table dynamique apparaissent dans l”UI de supervision Snowsight pour tables dynamiques. Ces deux entités sont au format _CORTEX_SEARCH_SOURCE_* et _CORTEX_SEARCH_REFRESH_*. Ces entités apparaissent également dans les vues du schéma d’informations des tables dynamiques, mais n’apparaissent pas dans les commandes SHOW/DESC des tables dynamiques. La sélection de l’une de ces entités dans l’UI Snowsight produit un message Dynamic Table not found. Il s’agit d’un comportement attendu. Les entités liées à Cortex Search seront supprimées de la surveillance de l’UI des tables dynamiques de Snowsight dans les futures versions du produit.

                      Disponibilité régionale¶

                      La prise en charge de cette fonctionnalité est disponible pour les comptes dans les régions Snowflake suivantes. La disponibilité de modèles d’intégration vectorielle spécifiques dans une région est indiquée par une coche.

                      Fournisseur Cloud
                      Region
                      snowflake-arctic-embed-m-v1.5
                      snowflake-arctic-embed-l-v2.0
                      snowflake-arctic-embed-l-v2.0-8k
                      voyage-multilingual-2
                      AWS
                      US Ouest 2 (Oregon)

                      ✔

                      ✔

                      ✔

                      ✔

                      AWS
                      US Est 2 (Ohio)

                      ✔

                      ✔

                      ✔

                      AWS
                      US East 1 (N. du Nord)

                      ✔

                      ✔

                      ✔

                      ✔

                      AWS
                      US East (Commercial Gov - N. Virginia)

                      ✔

                      ✔

                      ✔

                      ✔

                      AWS
                      Canada (Centre)

                      ✔

                      ✔

                      ✔

                      AWS
                      Amérique du Sud (São Paulo)

                      ✔

                      ✔

                      ✔

                      AWS
                      Europe (Irlande)

                      ✔

                      ✔

                      ✔

                      AWS
                      Europe (Londres)

                      ✔

                      ✔

                      ✔

                      AWS
                      Europe Central 1 (Francfort)

                      ✔

                      ✔

                      ✔

                      ✔

                      AWS
                      Europe (Stockholm)

                      ✔

                      ✔

                      ✔

                      AWS
                      Asie-Pacifique (Tokyo)

                      ✔

                      ✔

                      ✔

                      ✔

                      AWS
                      Asie Pacifique (Mumbai)

                      ✔

                      ✔

                      ✔

                      AWS
                      Asie-Pacifique (Sydney)

                      ✔

                      ✔

                      ✔

                      AWS
                      Asie-Pacifique (Jakarta)

                      ✔

                      ✔

                      ✔

                      AWS
                      Asie-Pacifique (Seoul)

                      ✔

                      ✔

                      ✔

                      Azure
                      Est US 2 (Virginie)

                      ✔

                      ✔

                      ✔

                      Azure
                      Ouest US 2 (Washington)

                      ✔

                      ✔

                      ✔

                      Azure
                      Sud-Central US (Texas)

                      ✔

                      ✔

                      ✔

                      Azure
                      UK Sud (Londres)

                      ✔

                      ✔

                      ✔

                      Azure
                      Europe du Nord (Irlande)

                      ✔

                      ✔

                      ✔

                      Azure
                      Europe de l’Ouest (Pays-Bas)

                      ✔

                      ✔

                      ✔

                      ✔

                      Azure
                      Suisse Nord (Zurich)

                      ✔

                      ✔

                      ✔

                      Azure
                      Inde centrale (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 3 (Francfort)

                      ✔

                      ✔

                      ✔

                      GCP
                      Europe Ouest 4 (Pays-Bas)

                      ✔

                      ✔

                      ✔

                      GCP
                      Moyen-Orient central 2 (Dammam)

                      ✔

                      ✔

                      ✔

                      GCP
                      US Central 1 (Iowa)

                      ✔

                      ✔

                      ✔

                      GCP
                      US East 4 (Virginie du Nord)

                      ✔

                      ✔

                      ✔

                      Note

                      Vous pouvez spécifier le paramètre d’inférence interrégionale dans l’une des régions ci-dessus pour accéder aux modèles qui ne sont pas directement pris en charge dans votre région par défaut.

                      Cortex Search est disponible dans les régions suivantes uniquement en utilisant l’inférence interrégionale. Pour utiliser Cortex Search avec l’inférence interrégionale, utilisez le paramètre d’inférence interrégionale.

                      • AWS Europe (Paris)

                      • AWS Europe (Zurich)

                      • AWS Asie-Pacifique (Singapour)

                      • AWS Asie-Pacifique (Osaka)

                      • Azure Canada Central (Toronto)

                      • Azure Central US (Iowa)

                      • Azure UAE Nord (Dubaï)

                      Note

                      Lors de l’utilisation de l’inférence interrégionale, la latence des requêtes entre les régions dépend de l’infrastructure du fournisseur Cloud et du statut du réseau. Snowflake vous recommande de tester votre cas d’utilisation spécifique avec l’inférence interrégionale activée.

                      Avis juridiques¶

                      La classification des données d’entrées et de sorties est présentée dans la table suivante.

                      Classification des données d’entrée

                      Classification des données de sortie

                      Désignation

                      Usage Data

                      Customer Data

                      Les fonctions généralement disponibles sont des fonctions AI couvertes. Les fonctions d’aperçu sont les fonctions AI d’aperçu. [1]

                      [1]

                      Représente le terme défini dans les conditions et la politique d’utilisation acceptable AI.

                      Pour plus d’informations, reportez-vous à Snowflake AI et ML.

                      Cette page a-t-elle été utile ?

                      Visitez Snowflake
                      Rejoindre la conversation
                      Développer avec Snowflake
                      Partagez vos commentaires
                      Lisez les dernières nouvelles sur notre blog
                      Obtenir votre certification Snowflake
                      Politique de confidentialitéConditions du siteCookies Settings© 2025 Snowflake, Inc. Tous droits réservés.
                      1. Vue d’ensemble
                      2. Quand utiliser Cortex Search
                      3. Exemple
                      4. Privilèges requis
                      5. Comprendre la qualité de Cortex Search
                      6. Actualise
                      7. Suspension de l’indexation et de la mise à disposition
                      8. Considérations relatives aux clients
                      9. Limitations connues
                      10. Disponibilité régionale
                      11. Avis juridiques
                      1. ALTER CORTEX SEARCH SERVICE
                      2. CREATE CORTEX SEARCH SERVICE
                      3. DESCRIBE CORTEX SEARCH SERVICE
                      4. DROP CORTEX SEARCH SERVICE
                      5. SHOW CORTEX SEARCH SERVICES
                      Langage: Français
                      • English
                      • Français
                      • Deutsch
                      • 日本語
                      • 한국어
                      • Português