OpenAI
Cette page a été traduite automatiquement. Afficher l’article original en anglais.

Configurer le modèle d’application Snowflake dans ChatGPT

Découvrez comment les administrateurs d’un espace de travail ChatGPT et les utilisateurs de ChatGPT Plus ou Pro peuvent connecter ChatGPT à un serveur MCP géré par Snowflake.

Mise à jour : 9 hours ago

Utilisez ce guide si vous administrez un espace de travail ChatGPT ou utilisez ChatGPT Plus ou Pro et souhaitez connecter ChatGPT à Snowflake au moyen d’un serveur MCP géré par Snowflake.

La majeure partie de la configuration se fait dans Snowflake. Une fois Snowflake prêt, établissez la connexion au modèle Snowflake dans ChatGPT, puis activez le plugiciel Snowflake qui utilise ce modèle.

  • OAuth intégré : Lorsque cette option est offerte pour votre compte Snowflake et dans ChatGPT, utilisez l’application partenaire ChatGPT activée par un administrateur Snowflake. Connectez-vous à Snowflake en utilisant l’authentification unique (SSO) de votre organisation, si elle est configurée. Vous n’avez pas besoin de saisir un ID client ou un secret client dans ChatGPT. Suivez la section OAuth intégré ci-dessous.

  • Client OAuth personnalisé : Utilisez cette méthode si votre organisation exige son propre client OAuth ou si OAuth intégré n’est pas disponible. Suivez la section Client OAuth personnalisé ci-dessous.

Les deux méthodes OAuth nécessitent la configuration commune du serveur MCP, les autorisations sur les objets sous-jacents et l’accès réseau décrits ci-dessous. Effectuez la configuration commune jusqu’à la section Saisir les détails du serveur Snowflake dans ChatGPT inclusivement avant de configurer OAuth.

Ce que vous configurez

Vous créez un serveur MCP géré par Snowflake qui sert de point de terminaison du connecteur pour ChatGPT. Le serveur MCP définit :

  • Les actions que ChatGPT peut utiliser.

  • Les données ou objets Snowflake auxquels ces outils peuvent accéder.

  • Le rôle Snowflake utilisé par chaque utilisateur pour accorder l’autorisation.

  • La base de données, le schéma et le nom du serveur MCP Snowflake qui identifient le point de terminaison.

Vous configurez ensuite Snowflake - Modèle officiel dans ChatGPT avec l’URL complète du serveur MCP géré. L’écran de configuration du modèle peut présenter l’URL sous forme de quatre champs distincts :

  • Préfixe d’hôte Snowflake.

  • Base de données.

  • Schéma.

  • Nom du serveur MCP.

ChatGPT peut uniquement découvrir et utiliser les outils exposés par le serveur MCP et autorisés par le rôle Snowflake avec lequel l’utilisateur accorde l’autorisation.

Avant de commencer

Vous avez besoin des éléments suivants :

  • Un accès administrateur ou propriétaire à un espace de travail ChatGPT, ou un accès à ChatGPT Plus ou Pro.

  • Un accès Snowflake permettant de créer des objets serveur MCP et d’accorder des autorisations.

  • La base de données et le schéma Snowflake qui hébergeront le serveur MCP.

  • Une décision sur ce que ChatGPT sera autorisé à utiliser, par exemple Cortex Search, Cortex Analyst, SQL en lecture seule ou une procédure ou fonction précise.

  • Un rôle Snowflake doté des privilèges minimaux, que les utilisateurs emploieront pour autoriser l’application.

  • Le préfixe d’hôte du compte Snowflake, y compris tout suffixe de région ou de nuage.

Si votre compte Snowflake limite l’accès au moyen d’une politique réseau ou d’une liste d’adresses IP autorisées, demandez à un administrateur Snowflake d’autoriser les connexions entrantes depuis les plages d’adresses IP de sortie des connecteurs ChatGPT actuelles. Cette liste est dynamique et doit être tenue à jour.

Valeurs à préparer

  • Préfixe d’hôte Snowflake : tout ce qui précède .snowflakecomputing.com dans l’URL du compte Snowflake.

  • Base de données : la base de données contenant le serveur MCP.

  • Schéma : le schéma contenant le serveur MCP.

  • Nom du serveur MCP : le nom de l’objet serveur MCP Snowflake.

  • URL complète du serveur MCP géré, si l’écran de configuration de ChatGPT demande une URL.

  • Rôle Snowflake : le rôle que les utilisateurs doivent utiliser pour autoriser l’application.

  • Liste des outils : les objets et actions Snowflake que vous voulez que ChatGPT utilise.

Décider de ce que ChatGPT peut faire

Choisissez uniquement les capacités que vous souhaitez exposer. Les options courantes comprennent :

  • La recherche avec Cortex Search pour trouver des réponses dans les données ou le contenu Snowflake indexés.

  • Les questions-réponses avec Cortex Analyst au moyen d’une vue sémantique approuvée.

  • SQL en lecture seule pour un accès contrôlé aux requêtes.

  • Un agent Snowflake, une procédure stockée ou une UDF pour un flux de travail précis.

Si vous activez SQL, gardez-le en lecture seule, à moins que votre organisation ait examiné et approuvé l’accès en écriture.

Ouvrir une feuille de calcul Snowflake

  1. Connectez-vous à l’application Snowflake.

  2. Passez à un rôle qui peut créer le serveur MCP et accorder l’accès.

  3. Accédez à Espaces de travail.

    Snowflake navigation menu showing Workspaces selected during MCP server setup.
  4. Créez un espace de travail avec un fichier SQL.

    Snowflake workspace with a SQL file open for MCP server setup.
  5. Définissez le contexte de l’espace de travail sur la base de données et le schéma où le serveur MCP sera créé.

    Snowflake worksheet context picker showing the role, warehouse, database, and schema.

Créer le serveur MCP Snowflake

Dans Snowflake, connectez-vous avec un rôle qui peut créer le serveur MCP et accorder l’accès. Ouvrez une feuille de calcul dans la base de données et le schéma où le serveur MCP doit être créé.

Exécutez une instruction comme celle de l’exemple suivant. Remplacez les noms par ceux de votre base de données, de votre schéma, de vos services, de vos vues, de votre entrepôt et de votre serveur Snowflake.

CREATE MCP SERVER CHATGPT_SNOWFLAKE_MCP
FROM SPECIFICATION $$
tools:
- name: "support-search"
type: "CORTEX_SEARCH_SERVICE_QUERY"
identifier: "CHATGPT_APPS.TOOLS.SUPPORT_SEARCH_SERVICE"
title: "Support Search"
description: "Search support content for relevant customer issues."
- name: "revenue-analyst"
type: "CORTEX_ANALYST_MESSAGE"
identifier: "CHATGPT_APPS.TOOLS.REVENUE_SEMANTIC_VIEW"
title: "Revenue Analyst"
description: "Answer revenue questions using the approved semantic view."
- name: "sql-readonly"
type: "SYSTEM_EXECUTE_SQL"
title: "Read-only SQL"
description: "Run read-only SQL queries against approved Snowflake data."
config:
read_only: true
query_timeout: 600
warehouse: "CHATGPT_WH"
$$;

Snowflake result confirming that the MCP server was successfully created.

Les noms d’outils et les objets Snowflake dans cette instruction sont des exemples :

  • support-search expose le service Cortex Search spécifié.

  • revenue-analyst expose la vue sémantique spécifiée. Ajoutez des outils pour d’autres vues au besoin.

  • sql-readonly expose SQL en lecture seule avec l’entrepôt spécifié.

Utilisez des noms d’outils stables et descriptifs pour que ChatGPT puisse choisir le bon outil. La création du serveur MCP n’accorde pas automatiquement l’accès aux objets Snowflake sous-jacents.

Pour d’autres options de spécification, consultez : Créer un serveur MCP géré par Snowflake.

Accorder les bonnes autorisations Snowflake

Choisissez le rôle Snowflake avec lequel les utilisateurs accorderont l’autorisation, puis donnez à ce rôle l’accès aux éléments suivants :

  1. La base de données et le schéma.

  2. Le serveur MCP.

  3. Chaque objet sous-jacent utilisé par les outils, comme un service de recherche, une vue sémantique ou un entrepôt.

Exemple :

GRANT USAGE ON DATABASE CHATGPT_APPS TO ROLE CHATGPT_CONNECTOR_ROLE;
GRANT USAGE ON SCHEMA CHATGPT_APPS.TOOLS TO ROLE CHATGPT_CONNECTOR_ROLE;
GRANT USAGE ON MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP TO ROLE CHATGPT_CONNECTOR_ROLE;

GRANT USAGE ON CORTEX SEARCH SERVICE CHATGPT_APPS.TOOLS.SUPPORT_SEARCH_SERVICE TO ROLE CHATGPT_CONNECTOR_ROLE;
GRANT SELECT ON SEMANTIC VIEW CHATGPT_APPS.TOOLS.REVENUE_SEMANTIC_VIEW TO ROLE CHATGPT_CONNECTOR_ROLE;
GRANT USAGE ON WAREHOUSE CHATGPT_WH TO ROLE CHATGPT_CONNECTOR_ROLE;

Si le serveur MCP expose une UDF, une procédure stockée ou un agent Cortex, accordez aussi les autorisations requises pour cet objet.

Vérifier que Snowflake est prêt

Exécutez :

SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;

Exécutez ensuite :

DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;

Confirmez les points suivants :

  • Le serveur existe dans la base de données et le schéma prévus.

  • La liste des outils correspond à ce que vous aviez prévu.

  • L’identifier de chaque outil pointe vers le bon objet Snowflake.

  • Le rôle utilisé pour la connexion dispose du privilège USAGE sur le serveur MCP.

  • Le rôle utilisé pour la connexion dispose des autorisations nécessaires sur chaque objet sous-jacent.

Saisir les détails du serveur Snowflake dans ChatGPT

  1. Dans ChatGPT, passez au compte ou à l’espace de travail où l’application doit être disponible.

  2. Accédez à Paramètres > Plugiciels pour une configuration personnelle ou à Paramètres de l’espace de travail > Plugiciels en tant qu’administrateur pour une configuration d’espace de travail.

  3. Recherchez Snowflake.

  4. Activez Snowflake - Modèle officiel.

  5. Ouvrez Snowflake - Modèle officiel, saisissez un nom de connexion clair, puis sélectionnez Connecter.

  6. Saisissez l’URL complète du serveur MCP géré :

https://<snowflake_host_prefix>.snowflakecomputing.com/api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server}

Exemple :

https://myorg-myaccount.azure.snowflakecomputing.com/api/v2/databases/CHATGPT_APPS/schemas/TOOLS/mcp-servers/CHATGPT_SNOWFLAKE_MCP

ChatGPT Snowflake Template connection form with name, managed MCP server URL, and OAuth settings.

Si l’écran de configuration présente la configuration Snowflake sous forme de champs distincts, utilisez les mêmes valeurs que dans l’URL :

Préfixe d’hôte Snowflake

Utilisez tout ce qui précède .snowflakecomputing.com dans l’URL de votre compte Snowflake, y compris tout suffixe de région ou de nuage.

Par exemple, si l’URL du compte commence par :

https://myorg-myaccount.azure.snowflakecomputing.com

Le préfixe d’hôte est :

myorg-myaccount.azure

Base de données

Saisissez la base de données contenant le serveur MCP, par exemple :

CHATGPT_APPS

Schéma

Saisissez le schéma contenant le serveur MCP, par exemple :

TOOLS

Nom du serveur MCP

Saisissez le nom de l’objet serveur MCP Snowflake, par exemple :

CHATGPT_SNOWFLAKE_MCP

Configurer OAuth

Choisissez la méthode OAuth offerte pour votre compte qui répond aux exigences de votre organisation. Les deux méthodes utilisent la configuration commune du serveur MCP ci-dessus ainsi que les tests de connexion et les contrôles d’accès ci-dessous.

Pour les deux méthodes OAuth, lorsque vous utilisez session:role:all, Snowflake utilise le rôle par défaut de chaque utilisateur. Le rôle par défaut doit être permis par la liste des rôles autorisés de l’intégration OAuth, si elle est configurée, et ne doit pas être bloqué. Le fait de disposer d’un autre rôle approuvé ne le sélectionne pas automatiquement.

OAuth intégré

Avant de continuer, suivez les sections communes ci-dessus pour créer le serveur MCP, accorder les autorisations, vérifier le serveur et saisir ses détails dans ChatGPT. Cette étape est obligatoire même si vous avez accédé directement à cette section.

Utilisez cette méthode uniquement si l’application partenaire ChatGPT est offerte pour votre compte Snowflake et si OAuth intégré est disponible dans la fenêtre de configuration de ChatGPT.

  1. Demandez à un administrateur Snowflake d’activer l’intégration partenaire ChatGPT dans le même compte Snowflake que celui qui héberge le serveur MCP. Réutilisez une intégration partenaire ChatGPT existante et activée.

  2. Dans la fenêtre de configuration de ChatGPT, utilisez OAuth intégré. Vous n’avez pas besoin de saisir un ID client ou un secret client, ni d’enregistrer une URL de rappel.

  3. Poursuivez avec la section Connecter et gérer Snowflake ci-dessous pour vous connecter, donner votre consentement et configurer l’accès. Suivez ensuite la section Tester l’application, y compris les tests avec des membres autorisés qui ne sont pas administrateurs.

Le comportement du rôle par défaut, de la liste des rôles autorisés et des rôles bloqués décrit ci-dessus s’applique aussi à cette méthode.

Client OAuth personnalisé

Avant de continuer, suivez les sections communes ci-dessus pour créer le serveur MCP, accorder les autorisations, vérifier le serveur et saisir ses détails dans ChatGPT. Cette étape est obligatoire même si vous avez accédé directement à cette section.

Pour un client OAuth personnalisé, vous avez besoin d’un ID client et d’un secret client fournis par Snowflake. Le comportement du rôle par défaut, de la liste des rôles autorisés et des rôles bloqués décrit ci-dessus s’applique aussi à cette méthode.

  1. Dans la fenêtre de configuration de ChatGPT, sélectionnez Paramètres OAuth avancés > Client OAuth défini par l’utilisateur, puis copiez l’URL de rappel exacte affichée dans ChatGPT.

  2. Créez une intégration de sécurité OAuth personnalisée avec OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' et OAUTH_REDIRECT_URI défini sur cette URL de rappel exacte.

  3. Exécutez l’instruction suivante dans Snowflake en utilisant le nom de l’intégration en majuscules :

    SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('YOUR_INTEGRATION_NAME');

  4. À partir du résultat JSON, collez oauth_client_id dans ID client OAuth et oauth_client_secret dans Secret client OAuth dans ChatGPT.

  5. Définissez Méthode d’authentification du point de terminaison de jeton sur client_secret_basic.

Après avoir saisi les identifiants du client personnalisé, poursuivez avec les sections Connecter et gérer Snowflake et Tester l’application ci-dessous.

Connecter et gérer Snowflake

  1. Pour les deux méthodes OAuth, dans la même fenêtre de configuration de ChatGPT, sélectionnez Continuer, connectez-vous à Snowflake et autorisez la connexion. Vous pouvez utiliser l’authentification unique (SSO) de votre organisation si elle est configurée.

  2. Pour une configuration d’espace de travail, configurez la politique d’installation du plugiciel et l’accès par rôle ou par groupe pour les membres qui doivent l’utiliser. Vérifiez que Snowflake et Snowflake - Modèle officiel sont tous deux activés.

  3. Les administrateurs de l’espace de travail sont responsables de la configuration de l’Accès des utilisateurs pour les rôles qui doivent utiliser Snowflake.

  4. Les administrateurs de l’espace de travail sont responsables de l’examen du Contrôle des actions pour les outils exposés.

  5. Les administrateurs de l’espace de travail sont responsables de l’examen des Autorisations de l’application pour choisir quand ChatGPT demande l’accord des membres avant d’utiliser l’application.

Ces autorisations d’application s’appliquent aux conversations ChatGPT. Les agents d’espace de travail utilisent des contrôles propres à chaque agent, définis par son créateur, pour déterminer quelles actions d’application sont disponibles et quand les utilisateurs finaux doivent les approuver. Pour le comportement des agents, consultez : Agents d’espace de travail ChatGPT pour Enterprise et Business.

Tester l’application

  1. Ouvrez une conversation, sélectionnez Snowflake, puis testez la connexion.

  2. Confirmez que ChatGPT découvre les outils que vous avez configurés.

  3. Exécutez d’abord une action de lecture à faible risque, comme une recherche ou une requête en lecture seule sur des données approuvées.

  4. Confirmez que les autorisations Snowflake empêchent tout accès au-delà du rôle et des objets approuvés.

  5. Pour une configuration d’espace de travail, effectuez des tests avec des membres autorisés non administrateurs ayant différents rôles Snowflake par défaut. Une connexion réussie en tant qu’administrateur ne confirme pas que tous les membres peuvent se connecter.

Pour les administrateurs de l’espace de travail, activer uniquement Snowflake ne suffit pas. Si Snowflake - Modèle officiel n’a pas été activé et connecté, le plugiciel peut apparaître désactivé pour les membres.

URL du serveur MCP et comportement OAuth

ChatGPT se connecte à l’URL complète du serveur MCP géré par Snowflake :

https://<snowflake_host_prefix>.snowflakecomputing.com/api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server}

ChatGPT utilise le préfixe d’hôte Snowflake de cette URL pour résoudre les points de terminaison OAuth Snowflake suivants :

  • Autorisation : https://<snowflake_host_prefix>.snowflakecomputing.com/oauth/authorize

  • Jeton : https://<snowflake_host_prefix>.snowflakecomputing.com/oauth/token-request

Ne collez pas une URL Snowsight, l’URL racine du compte Snowflake seule ou une URL comportant des segments de chemin supplémentaires. L’URL MCP doit inclure /api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server} et correspondre exactement à vos objets Snowflake.

Dépannage

Snowflake est activé pour un administrateur, mais désactivé pour un membre

  • Confirmez que Snowflake et Snowflake - Modèle officiel sont tous deux activés dans Paramètres de l’espace de travail > Plugiciels.

  • Ouvrez Snowflake - Modèle officiel et suivez le processus Connecter jusqu’au bout. Activer le modèle sans le connecter ne suffit pas.

  • Ouvrez Snowflake et confirmez que le modèle y apparaît comme application requise.

  • Confirmez que le rôle ou le groupe du membre concerné est autorisé par la politique d’installation du plugiciel.

Serveur MCP introuvable

  • Vérifiez de nouveau l’URL complète du serveur MCP, ou les quatre champs du modèle si votre écran de configuration les demande.

  • Confirmez que le serveur MCP existe exactement dans cette base de données et ce schéma.

Aucun outil n’apparaît dans ChatGPT

  • Confirmez que la spécification du serveur MCP comprend des outils.

  • Confirmez que le rôle dispose du privilège USAGE sur le serveur MCP.

Un outil apparaît, mais son utilisation échoue

  • Confirmez que le rôle dispose de l’autorisation requise sur l’objet Snowflake sous-jacent, comme le service de recherche, la vue sémantique, l’entrepôt, la procédure ou l’UDF.

L’outil SQL échoue

  • Confirmez que le nom de l’entrepôt est correct et que l’entrepôt est en cours d’exécution.

  • Confirmez que le rôle dispose du privilège USAGE sur l’entrepôt.

  • Confirmez que read_only: true est défini si vous aviez prévu un accès en lecture seule.

Le rôle ALL demandé a été explicitement bloqué

Demandez à votre administrateur Snowflake de comparer votre rôle par défaut aux rôles autorisés et bloqués de l’intégration OAuth. Le fait de disposer d’un autre rôle autorisé ne le sélectionne pas automatiquement. S’il y a lieu, remplacez le rôle par défaut par un rôle approuvé et reconnectez-vous. La modification de votre rôle par défaut touche aussi vos sessions Snowflake en dehors de ChatGPT.

L’autorisation échoue

  • Confirmez que l’utilisateur peut se connecter à Snowflake.

  • Lorsque vous utilisez session:role:all, confirmez que le rôle par défaut de l’utilisateur est permis par l’intégration OAuth.

  • Confirmez que la configuration utilise le flux OAuth MCP géré par Snowflake.

  • Si vous utilisez un client OAuth personnalisé, confirmez que l’ID client et le Secret client correspondent à l’intégration OAuth Snowflake et que son URI de redirection correspond exactement à l’URL de rappel affichée dans ChatGPT.

    Si vous utilisez OAuth intégré, demandez à un administrateur Snowflake de vérifier que l’intégration partenaire ChatGPT est disponible et activée dans le compte qui héberge le serveur MCP.

La politique réseau ou la liste d’adresses IP autorisées de Snowflake bloque le connecteur

  • Demandez à un administrateur Snowflake de mettre à jour la politique réseau ou les règles d’accès de Snowflake.

  • Autorisez les connexions entrantes depuis les plages d’adresses IP de sortie des connecteurs ChatGPT actuelles.

  • Configurez cette liste d’autorisation dans Snowflake. Elle est distincte de la liste d’adresses IP autorisées de l’espace de travail ChatGPT.

  • Automatisez les mises à jour à partir du fichier JSON publié lorsque c’est possible, car les plages peuvent changer.

Problème de connexion lié au nom d’hôte

Utilisez le bon préfixe d’hôte Snowflake. Les noms d’hôte Snowflake contenant des traits de soulignement peuvent causer des problèmes; privilégiez les traits d’union.

Références

Cet article vous a-t-il été utile?