OpenAI
Aquesta pàgina s'ha traduït automàticament. Mostra l'article original en anglès.

Configurar la plantilla d’aplicació Snowflake a ChatGPT

Descobriu com connectar ChatGPT a un servidor MCP gestionat per Snowflake si administreu un espai de treball de ChatGPT o feu servir ChatGPT Plus o ChatGPT Pro.

Actualització: 3 days ago

Seguiu aquesta guia si administreu un espai de treball de ChatGPT o feu servir ChatGPT Plus o ChatGPT Pro i voleu connectar ChatGPT a Snowflake mitjançant un servidor MCP gestionat per Snowflake.

La major part de la configuració es fa a Snowflake. Quan Snowflake estigui a punt, completeu a ChatGPT la connexió de la plantilla de Snowflake i, després, activeu el connector de Snowflake que utilitza aquesta plantilla.

Què configurareu

Creareu un servidor MCP gestionat per Snowflake que actuarà com a punt final del connector de ChatGPT. El servidor MCP defineix:

  • Quines accions pot utilitzar ChatGPT.

  • A quines dades o objectes de Snowflake poden accedir aquestes eines.

  • Amb quin rol de Snowflake autoritza l'accés cada usuari.

  • Quina base de dades, quin esquema i quin nom de servidor MCP de Snowflake identifiquen el punt final.

A continuació, configureu Snowflake - Plantilla oficial a ChatGPT amb l'URL complet del servidor MCP gestionat. És possible que la pantalla de configuració de la plantilla mostri l'URL en quatre camps separats:

  • Prefix de l'amfitrió de Snowflake.

  • Base de dades.

  • Esquema.

  • Nom del servidor MCP.

ChatGPT només pot detectar i utilitzar les eines exposades pel servidor MCP i permeses pel rol de Snowflake amb què l'usuari autoritza l'accés.

Abans de començar

Necessiteu:

  • Accés d'administrador o propietari d'un espai de treball de ChatGPT, o accés a ChatGPT Plus o ChatGPT Pro.

  • Accés a Snowflake que permeti crear objectes de servidor MCP i concedir permisos.

  • La base de dades i l'esquema de Snowflake on residirà el servidor MCP.

  • Una decisió sobre què es permetrà fer a ChatGPT, com ara utilitzar Cortex Search, Cortex Analyst, SQL de només lectura o un procediment o una funció específics.

  • Un rol de Snowflake amb privilegis mínims que els usuaris faran servir per autoritzar l'aplicació.

  • El prefix de l'amfitrió del compte de Snowflake, inclòs qualsevol sufix de regió o núvol.

Si el compte de Snowflake restringeix l'accés mitjançant una política de xarxa o una llista d'IP permeses, demaneu a un administrador de Snowflake que permeti les connexions entrants des dels intervals actuals d'IP de sortida del connector de ChatGPT. La llista és dinàmica i cal mantenir-la actualitzada.

Valors que cal preparar

  • Prefix de l'amfitrió de Snowflake: tot el que hi ha abans de .snowflakecomputing.com a l'URL del compte de Snowflake.

  • Base de dades: la base de dades que conté el servidor MCP.

  • Esquema: l'esquema que conté el servidor MCP.

  • Nom del servidor MCP: el nom de l'objecte de servidor MCP de Snowflake.

  • URL complet del servidor MCP gestionat, si la pantalla de configuració de ChatGPT demana un URL.

  • Rol de Snowflake: el rol que els usuaris han de fer servir per autoritzar l'aplicació.

  • Llista d'eines: els objectes i les accions de Snowflake que voleu que utilitzi ChatGPT.

Decidiu què pot fer ChatGPT

Seleccioneu només les capacitats que vulgueu exposar. Les opcions habituals inclouen:

  • Cerques amb Cortex Search per trobar respostes en dades o contingut indexats de Snowflake.

  • Preguntes i respostes amb Cortex Analyst mitjançant una vista semàntica aprovada.

  • SQL de només lectura per controlar l'accés a les consultes.

  • Un agent de Snowflake, un procediment emmagatzemat o una UDF per a un flux de treball específic.

Si activeu SQL, manteniu-lo en mode de només lectura tret que l'organització hagi revisat i aprovat l'accés d'escriptura.

Obriu un full de treball de Snowflake

  1. Inicieu la sessió a l'aplicació Snowflake.

  2. Canvieu a un rol que pugui crear el servidor MCP i concedir-hi accés.

  3. Aneu a Espais de treball.

    Snowflake navigation menu showing Workspaces selected during MCP server setup.
  4. Creeu un espai de treball amb un fitxer SQL.

    Snowflake workspace with a SQL file open for MCP server setup.
  5. Definiu com a context de l'espai de treball la base de dades i l'esquema on es crearà el servidor MCP.

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

Creeu el servidor MCP de Snowflake

A Snowflake, inicieu la sessió amb un rol que pugui crear el servidor MCP i concedir-hi accés. Obriu un full de treball a la base de dades i l'esquema on s'ha de crear el servidor MCP.

Executeu una instrucció com la de l'exemple següent. Substituïu els noms pels de la vostra base de dades, esquema, serveis, vistes, magatzem i servidor de 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.

Els noms de les eines i els objectes de Snowflake d'aquesta instrucció són exemples:

  • support-search exposa el servei de Cortex Search especificat.

  • revenue-analyst exposa la vista semàntica especificada. Afegiu eines per a altres vistes segons calgui.

  • sql-readonly exposa SQL de només lectura amb el magatzem especificat.

Feu servir noms d'eines estables i descriptius perquè ChatGPT pugui triar l'eina adequada. La creació del servidor MCP no concedeix automàticament accés als objectes subjacents de Snowflake.

Per consultar altres opcions d'especificació, vegeu: Crear un servidor MCP gestionat per Snowflake.

Concediu els permisos de Snowflake adequats

Trieu el rol de Snowflake amb què els usuaris autoritzaran l'accés i concediu-li accés a:

  1. La base de dades i l'esquema.

  2. El servidor MCP.

  3. Tots els objectes subjacents que utilitzen les eines, com ara un servei de cerca, una vista semàntica o un magatzem.

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 el servidor MCP exposa una UDF, un procediment emmagatzemat o un agent de Cortex, concediu també els permisos necessaris per a aquest objecte.

Comproveu que Snowflake estigui a punt

Executeu:

SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;

A continuació, executeu:

DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;

Confirmeu que:

  • El servidor existeix a la base de dades i l'esquema previstos.

  • La llista d'eines és la que volíeu.

  • L'identifier de cada eina apunta a l'objecte de Snowflake correcte.

  • El rol que es connecta té el permís USAGE al servidor MCP.

  • El rol que es connecta té els permisos necessaris per a cada objecte subjacent.

Introduïu a ChatGPT les dades del servidor de Snowflake

  1. A ChatGPT, canvieu al compte o a l'espai de treball on voleu que estigui disponible l'aplicació.

  2. Obriu Configuració. Per configurar-ho per a tot l'espai de treball, obriu Configuració de l'espai de treball com a administrador.

  3. Aneu a Connectors.

  4. Cerqueu Snowflake.

  5. Activeu Snowflake - Plantilla oficial.

  6. Obriu Snowflake - Plantilla oficial, introduïu un nom de connexió clar i seleccioneu Connecta.

  7. Introduïu l'URL complet del servidor MCP gestionat:

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 la pantalla de configuració mostra la configuració de Snowflake en camps separats, feu servir els mateixos valors de l'URL:

Prefix de l'amfitrió de Snowflake

Feu servir tot el que hi ha abans de .snowflakecomputing.com a l'URL del compte de Snowflake, inclòs qualsevol sufix de regió o núvol.

Per exemple, si l'URL del compte comença per:

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

El prefix de l'amfitrió és:

myorg-myaccount.azure

Base de dades

Introduïu la base de dades que conté el servidor MCP, com ara:

CHATGPT_APPS

Esquema

Introduïu l'esquema que conté el servidor MCP, com ara:

TOOLS

Nom del servidor MCP

Introduïu el nom de l'objecte de servidor MCP de Snowflake, com ara:

CHATGPT_SNOWFLAKE_MCP

Configureu el client OAuth

Per connectar-vos, necessiteu un ID de client i un secret de client de Snowflake.

Quan feu servir session:role:all, Snowflake utilitza el rol predeterminat de cada usuari. El rol predeterminat ha d'estar permès per la llista de rols permesos de la integració OAuth, si se n'ha configurat una, i no pot estar bloquejat. Disposar d'un altre rol aprovat no fa que se seleccioni automàticament.

  1. Al quadre de configuració de ChatGPT, obriu Configuració avançada d'OAuth, seleccioneu Client OAuth definit per l'usuari i copieu l'URL de retorn que mostra ChatGPT.

  2. Creeu una integració de seguretat OAuth personalitzada amb OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' i definiu OAUTH_REDIRECT_URI amb aquest URL de retorn exacte.

  3. Executeu la instrucció següent a Snowflake amb el nom de la integració en majúscules:

    SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('YOUR_INTEGRATION_NAME');

  4. Del resultat JSON, enganxeu oauth_client_id a ID de client OAuth i oauth_client_secret a Secret de client OAuth a ChatGPT.

  5. Definiu Mètode d'autenticació del punt final de segments com a client_secret_basic.

Connecteu i gestioneu Snowflake

  1. Al mateix quadre de configuració de ChatGPT, seleccioneu Continua, inicieu la sessió a Snowflake i autoritzeu la connexió.

  2. Per configurar un espai de treball, definiu la política d'instal·lació del connector i l'accés per rols o grups dels membres que l'han d'utilitzar. Comproveu que tant Snowflake com Snowflake - Plantilla oficial estiguin activats.

  3. Els administradors de l'espai de treball són responsables de configurar l'Accés dels usuaris per als rols que han d'utilitzar Snowflake.

  4. Els administradors de l'espai de treball són responsables de revisar el Control d'accions de les eines exposades.

  5. Els administradors de l'espai de treball són responsables de revisar els Permisos de l'aplicació per decidir quan ChatGPT demana permís als membres abans d'utilitzar-la.

Aquests permisos de l'aplicació s'apliquen a les converses de ChatGPT. Els agents de l'espai de treball utilitzen els controls específics de cada agent, definits pel seu creador, per determinar quines accions de l'aplicació estan disponibles i quan se'n demana l'aprovació als usuaris finals. Per obtenir informació sobre el comportament dels agents, vegeu: Agents d'espai de treball de ChatGPT per a Enterprise i Business.

Proveu l'aplicació

  1. Obriu un xat, seleccioneu Snowflake i proveu la connexió.

  2. Confirmeu que ChatGPT detecta les eines que heu configurat.

  3. Executeu primer una acció de lectura de risc baix, com ara una cerca o una consulta de només lectura en dades aprovades.

  4. Confirmeu que els permisos de Snowflake impedeixen accedir a rols i objectes no aprovats.

  5. En una configuració d'espai de treball, feu proves amb membres permesos que no siguin administradors i que tinguin rols predeterminats de Snowflake diferents. Que un administrador es connecti correctament no confirma que tots els membres s'hi puguin connectar.

Per als administradors d'espais de treball, no n'hi ha prou d'activar només Snowflake. Si Snowflake - Plantilla oficial no s'ha activat i connectat, és possible que el connector aparegui desactivat per als membres.

Comportament de l'URL del servidor MCP i d'OAuth

ChatGPT es connecta a l'URL complet del servidor MCP gestionat per Snowflake:

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

ChatGPT utilitza el prefix de l'amfitrió de Snowflake d'aquest URL per resoldre els punts finals OAuth de Snowflake següents:

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

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

No enganxeu un URL de Snowsight, només l'URL arrel del compte de Snowflake ni un URL amb segments de camí addicionals. L'URL MCP ha d'incloure /api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server} i coincidir exactament amb els objectes de Snowflake.

Resolució de problemes

Snowflake està activat per a un administrador, però desactivat per a un membre

  • Confirmeu que tant Snowflake com Snowflake - Plantilla oficial estiguin activats a Configuració de l'espai de treball > Connectors.

  • Obriu Snowflake - Plantilla oficial i completeu el procés de Connexió. No n'hi ha prou d'activar la plantilla sense connectar-la.

  • Obriu Snowflake i confirmeu que la plantilla aparegui com a aplicació necessària.

  • Confirmeu que la política d'instal·lació del connector permeti el rol o el grup del membre afectat.

No s'ha trobat el servidor MCP

  • Torneu a comprovar l'URL complet del servidor MCP o els quatre camps de la plantilla si la pantalla de configuració els demana.

  • Confirmeu que el servidor MCP existeixi exactament en aquesta base de dades i aquest esquema.

No apareix cap eina a ChatGPT

  • Confirmeu que l'especificació del servidor MCP inclogui eines.

  • Confirmeu que el rol tingui el permís USAGE al servidor MCP.

Apareix una eina, però falla quan s'utilitza

  • Confirmeu que el rol tingui el permís necessari per a l'objecte subjacent de Snowflake, com ara el servei de cerca, la vista semàntica, el magatzem, el procediment o la UDF.

L'eina SQL falla

  • Confirmeu que el nom del magatzem sigui correcte i que el magatzem estigui en execució.

  • Confirmeu que el rol tingui el permís USAGE al magatzem.

  • Confirmeu que s'hagi definit read_only: true si volíeu un accés de només lectura.

El rol ALL sol·licitat s'ha bloquejat explícitament

Demaneu a l'administrador de Snowflake que compari el vostre rol predeterminat amb els rols permesos i bloquejats de la integració OAuth. Disposar d'un altre rol permès no fa que se seleccioni automàticament. Si escau, canvieu el rol predeterminat per un rol aprovat i torneu-vos a connectar. Canviar el rol predeterminat també afecta les sessions de Snowflake fora de ChatGPT.

L'autorització falla

  • Confirmeu que l'usuari pugui iniciar la sessió a Snowflake.

  • Quan feu servir session:role:all, confirmeu que la integració OAuth permeti el rol predeterminat de l'usuari.

  • Confirmeu que la configuració utilitzi el flux OAuth d'MCP gestionat per Snowflake.

  • Confirmeu que l'ID de client i el secret de client coincideixin amb la integració OAuth de Snowflake i que el seu URI de redirecció coincideixi amb l'URL de retorn que mostra ChatGPT.

La política de xarxa o la llista d'IP permeses de Snowflake bloqueja el connector

  • Demaneu a un administrador de Snowflake que actualitzi la política de xarxa o les regles d'accés de Snowflake.

  • Permeteu les connexions entrants des dels intervals actuals d'IP de sortida del connector de ChatGPT.

  • Configureu aquesta llista de permesos a Snowflake. És independent de la llista d'IP permeses de l'espai de treball de ChatGPT.

  • Sempre que sigui possible, automatitzeu les actualitzacions a partir del JSON publicat, ja que els intervals poden canviar.

Problema de connexió amb el nom d'amfitrió

Feu servir el prefix d'amfitrió correcte de Snowflake. Els noms d'amfitrió de Snowflake amb guions baixos poden causar problemes; és preferible utilitzar guionets.

Referències

T'ha estat útil aquest article?