OpenAI
Questa pagina è stata tradotta automaticamente. Visualizza l'articolo originale in inglese.

Configurare il modello di app Snowflake in ChatGPT

Scopri come gli amministratori di un'area di lavoro ChatGPT e gli utenti ChatGPT Plus o ChatGPT Pro possono collegare ChatGPT a un server MCP gestito da Snowflake.

Aggiornato: 2 days ago

Usa questa guida se amministri un'area di lavoro ChatGPT o utilizzi ChatGPT Plus o ChatGPT Pro e vuoi collegare ChatGPT a Snowflake tramite un server MCP gestito da Snowflake.

La maggior parte della configurazione avviene in Snowflake. Quando Snowflake è pronto, completa in ChatGPT la connessione al modello Snowflake, quindi abilita il plugin Snowflake che usa tale modello.

Cosa stai configurando

Stai creando un server MCP gestito da Snowflake che funge da endpoint del connettore per ChatGPT. Il server MCP definisce:

  • Le azioni che ChatGPT può usare.

  • I dati o gli oggetti Snowflake a cui tali strumenti possono accedere.

  • Il ruolo Snowflake con cui ciascun utente concede l'autorizzazione.

  • Il database, lo schema e il nome del server MCP Snowflake che identificano l'endpoint.

Configura quindi Snowflake - Modello ufficiale in ChatGPT con l'URL completo del server MCP gestito. La schermata di configurazione del modello può mostrare l'URL in quattro campi distinti:

  • Prefisso host Snowflake.

  • Database.

  • Schema.

  • Nome del server MCP.

ChatGPT può rilevare e usare soltanto gli strumenti esposti dal server MCP e consentiti dal ruolo Snowflake con cui l'utente concede l'autorizzazione.

Prima di iniziare

Ti occorrono:

  • Accesso come amministratore o proprietario di un'area di lavoro ChatGPT oppure accesso a ChatGPT Plus o ChatGPT Pro.

  • Un accesso a Snowflake che consenta di creare oggetti server MCP e concedere autorizzazioni.

  • Il database e lo schema Snowflake in cui risiederà il server MCP.

  • Una decisione sulle operazioni da consentire a ChatGPT, ad esempio Cortex Search, Cortex Analyst, SQL in sola lettura oppure una procedura o funzione specifica.

  • Un ruolo Snowflake con privilegi minimi che gli utenti utilizzeranno per autorizzare l'app.

  • Il prefisso host dell'account Snowflake, incluso l'eventuale suffisso della regione o del cloud.

Se il tuo account Snowflake limita l'accesso tramite criteri di rete o un elenco di indirizzi IP consentiti, chiedi a un amministratore Snowflake di consentire le connessioni in entrata dagli attuali intervalli IP in uscita del connettore ChatGPT. L'elenco è dinamico e deve essere mantenuto aggiornato.

Valori da preparare

  • Prefisso host Snowflake: tutto ciò che precede .snowflakecomputing.com nell'URL dell'account Snowflake.

  • Database: il database che contiene il server MCP.

  • Schema: lo schema che contiene il server MCP.

  • Nome del server MCP: il nome dell'oggetto server MCP Snowflake.

  • URL completo del server MCP gestito, se la schermata di configurazione di ChatGPT richiede un URL.

  • Ruolo Snowflake: il ruolo che gli utenti devono usare per autorizzare l'app.

  • Elenco degli strumenti: gli oggetti e le azioni Snowflake che vuoi far usare a ChatGPT.

Decidi cosa può fare ChatGPT

Seleziona soltanto le funzionalità che vuoi esporre. Le opzioni più comuni includono:

  • Ricerca con Cortex Search per trovare risposte nei dati o nei contenuti Snowflake indicizzati.

  • Domande e risposte con Cortex Analyst tramite una vista semantica approvata.

  • SQL in sola lettura per un accesso controllato alle query.

  • Un agente Snowflake, una stored procedure o una UDF per un flusso di lavoro specifico.

Se abiliti SQL, mantienilo in sola lettura, a meno che la tua organizzazione non abbia esaminato e approvato l'accesso in scrittura.

Apri un foglio di lavoro Snowflake

  1. Accedi all'app Snowflake.

  2. Passa a un ruolo che possa creare il server MCP e concedere l'accesso.

  3. Vai ad Aree di lavoro.

    Snowflake navigation menu showing Workspaces selected during MCP server setup.
  4. Crea un'area di lavoro con un file SQL.

    Snowflake workspace with a SQL file open for MCP server setup.
  5. Imposta come contesto dell'area di lavoro il database e lo schema in cui verrà creato il server MCP.

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

Crea il server MCP Snowflake

In Snowflake, accedi con un ruolo che possa creare il server MCP e concedere l'accesso. Apri un foglio di lavoro nel database e nello schema in cui deve essere creato il server MCP.

Esegui un'istruzione come quella dell'esempio seguente. Sostituisci i nomi con quelli del tuo database, schema, servizi, viste, warehouse e server 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.

I nomi degli strumenti e gli oggetti Snowflake in questa istruzione sono esempi:

  • support-search espone il servizio Cortex Search specificato.

  • revenue-analyst espone la vista semantica specificata. Aggiungi strumenti per altre viste, se necessario.

  • sql-readonly espone SQL in sola lettura con il warehouse specificato.

Usa nomi stabili e descrittivi per consentire a ChatGPT di scegliere lo strumento giusto. La creazione del server MCP non concede automaticamente l'accesso agli oggetti Snowflake sottostanti.

Per altre opzioni della specifica, consulta: Creare un server MCP gestito da Snowflake.

Concedi le autorizzazioni Snowflake corrette

Scegli il ruolo Snowflake con cui gli utenti concederanno l'autorizzazione, quindi assegna a tale ruolo l'accesso a:

  1. Il database e lo schema.

  2. Il server MCP.

  3. Ogni oggetto sottostante usato dagli strumenti, ad esempio un servizio di ricerca, una vista semantica o un warehouse.

Esempio:

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;

Se il server MCP espone una UDF, una stored procedure o un agente Cortex, concedi anche le autorizzazioni richieste per tale oggetto.

Verifica che Snowflake sia pronto

Esegui:

SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;

Quindi esegui:

DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;

Verifica che:

  • Il server esista nel database e nello schema previsti.

  • L'elenco degli strumenti corrisponda a quello previsto.

  • L'identifier di ogni strumento punti all'oggetto Snowflake corretto.

  • Il ruolo usato per la connessione disponga di USAGE sul server MCP.

  • Il ruolo usato per la connessione disponga delle autorizzazioni necessarie per ogni oggetto sottostante.

Inserisci i dettagli del server Snowflake in ChatGPT

  1. In ChatGPT, passa all'account o all'area di lavoro in cui deve essere disponibile l'app.

  2. Apri Impostazioni. Per configurare l'intera area di lavoro, apri Impostazioni dell'area di lavoro come amministratore dell'area di lavoro.

  3. Vai a Plugin.

  4. Cerca Snowflake.

  5. Abilita Snowflake - Modello ufficiale.

  6. Apri Snowflake - Modello ufficiale, inserisci un nome chiaro per la connessione e seleziona Connetti.

  7. Inserisci l'URL completo del server MCP gestito:

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

Esempio:

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.

Se la schermata di configurazione mostra la configurazione Snowflake in campi distinti, usa gli stessi valori dell'URL:

Prefisso host Snowflake

Usa tutto ciò che precede .snowflakecomputing.com nell'URL del tuo account Snowflake, incluso l'eventuale suffisso della regione o del cloud.

Ad esempio, se l'URL dell'account inizia con:

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

Il prefisso host è:

myorg-myaccount.azure

Database

Inserisci il database che contiene il server MCP, ad esempio:

CHATGPT_APPS

Schema

Inserisci lo schema che contiene il server MCP, ad esempio:

TOOLS

Nome del server MCP

Inserisci il nome dell'oggetto server MCP Snowflake, ad esempio:

CHATGPT_SNOWFLAKE_MCP

Configura il client OAuth

Per connetterti, ti occorrono un ID client e un segreto client forniti da Snowflake.

Quando usi session:role:all, Snowflake utilizza il ruolo predefinito di ciascun utente. Il ruolo predefinito deve essere consentito dall'elenco dei ruoli autorizzati dell'integrazione OAuth, se configurato, e non deve essere bloccato. La presenza di un altro ruolo approvato non ne comporta la selezione automatica.

  1. Nella finestra di configurazione di ChatGPT, apri Impostazioni OAuth avanzate, seleziona Client OAuth definito dall'utente e copia l'URL di callback visualizzato in ChatGPT.

  2. Crea un'integrazione di sicurezza OAuth personalizzata con OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' e imposta OAUTH_REDIRECT_URI esattamente su tale URL di callback.

  3. Esegui l'istruzione seguente in Snowflake, usando il nome dell'integrazione in maiuscolo:

    SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('YOUR_INTEGRATION_NAME');

  4. Dal risultato JSON, incolla oauth_client_id in ID client OAuth e oauth_client_secret in Segreto client OAuth in ChatGPT.

  5. Imposta Metodo di autenticazione dell'endpoint token su client_secret_basic.

Connetti e gestisci Snowflake

  1. Nella stessa finestra di configurazione di ChatGPT, seleziona Continua, accedi a Snowflake e autorizza la connessione.

  2. Per configurare un'area di lavoro, imposta i criteri di installazione del plugin e l'accesso per ruoli o gruppi per i membri che dovranno usarlo. Verifica che siano abilitati sia Snowflake sia Snowflake - Modello ufficiale.

  3. Gli amministratori dell'area di lavoro devono configurare Accesso utenti per i ruoli che devono usare Snowflake.

  4. Gli amministratori dell'area di lavoro devono verificare Controllo delle azioni per gli strumenti esposti.

  5. Gli amministratori dell'area di lavoro devono verificare Autorizzazioni dell'app per scegliere quando ChatGPT deve chiedere conferma ai membri prima di usare l'app.

Queste autorizzazioni dell'app si applicano alle conversazioni di ChatGPT. Gli agenti dell'area di lavoro usano i controlli specifici per agente impostati dal rispettivo autore per stabilire quali azioni dell'app sono disponibili e quando chiedere l'approvazione agli utenti finali. Per il comportamento degli agenti, consulta: Agenti dell'area di lavoro ChatGPT per Enterprise e Business.

Testa l'app

  1. Apri una chat, seleziona Snowflake e testa la connessione.

  2. Verifica che ChatGPT rilevi gli strumenti configurati.

  3. Esegui prima un'azione di lettura a basso rischio, ad esempio una ricerca o una query in sola lettura sui dati approvati.

  4. Verifica che le autorizzazioni Snowflake impediscano l'accesso al di fuori del ruolo e degli oggetti approvati.

  5. Per la configurazione di un'area di lavoro, esegui il test con membri non amministratori autorizzati che abbiano ruoli Snowflake predefiniti diversi. La connessione riuscita di un amministratore non garantisce che ogni membro possa connettersi.

Per gli amministratori dell'area di lavoro, non è sufficiente abilitare soltanto Snowflake. Se Snowflake - Modello ufficiale non è stato abilitato e connesso, il plugin potrebbe apparire disabilitato ai membri.

URL del server MCP e comportamento OAuth

ChatGPT si connette all'URL completo del server MCP gestito da Snowflake:

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

ChatGPT usa il prefisso host Snowflake presente nell'URL per risolvere i seguenti endpoint OAuth Snowflake:

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

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

Non incollare un URL Snowsight, il solo URL radice dell'account Snowflake o un URL con segmenti di percorso aggiuntivi. L'URL MCP deve includere /api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server} e corrispondere esattamente agli oggetti Snowflake.

Risoluzione dei problemi

Snowflake è abilitato per un amministratore ma disabilitato per un membro

  • Verifica che sia Snowflake sia Snowflake - Modello ufficiale siano abilitati in Impostazioni dell'area di lavoro > Plugin.

  • Apri Snowflake - Modello ufficiale e completa la procedura Connetti. Non è sufficiente abilitare il modello senza connetterlo.

  • Apri Snowflake e verifica che il modello sia indicato come app richiesta.

  • Verifica che il ruolo o il gruppo del membro interessato sia consentito dai criteri di installazione del plugin.

Server MCP non trovato

  • Ricontrolla l'URL completo del server MCP oppure i quattro campi del modello, se richiesti dalla schermata di configurazione.

  • Verifica che il server MCP esista esattamente nel database e nello schema indicati.

In ChatGPT non appare alcuno strumento

  • Verifica che la specifica del server MCP includa strumenti.

  • Verifica che il ruolo disponga di USAGE sul server MCP.

Uno strumento appare ma non funziona quando viene usato

  • Verifica che il ruolo disponga dell'autorizzazione richiesta per l'oggetto Snowflake sottostante, ad esempio il servizio di ricerca, la vista semantica, il warehouse, la procedura o la UDF.

Lo strumento SQL non funziona

  • Verifica che il nome del warehouse sia corretto e che il warehouse sia in esecuzione.

  • Verifica che il ruolo disponga di USAGE sul warehouse.

  • Se intendevi consentire l'accesso in sola lettura, verifica che sia impostato read_only: true.

Il ruolo ALL richiesto è stato bloccato esplicitamente

Chiedi all'amministratore Snowflake di confrontare il tuo ruolo predefinito con i ruoli consentiti e bloccati dell'integrazione OAuth. La presenza di un altro ruolo consentito non ne comporta la selezione automatica. Se opportuno, imposta come predefinito un ruolo approvato e riconnettiti. La modifica del ruolo predefinito influisce anche sulle sessioni Snowflake esterne a ChatGPT.

Autorizzazione non riuscita

  • Verifica che l'utente possa accedere a Snowflake.

  • Quando usi session:role:all, verifica che il ruolo predefinito dell'utente sia consentito dall'integrazione OAuth.

  • Verifica che la configurazione usi il flusso OAuth MCP gestito da Snowflake.

  • Verifica che l'ID client e il segreto client corrispondano all'integrazione OAuth Snowflake e che il relativo URI di reindirizzamento corrisponda all'URL di callback mostrato in ChatGPT.

I criteri di rete o l'elenco di indirizzi IP consentiti di Snowflake bloccano il connettore

  • Chiedi a un amministratore Snowflake di aggiornare i criteri di rete o le regole di accesso di Snowflake.

  • Consenti le connessioni in entrata dagli attuali intervalli IP in uscita del connettore ChatGPT.

  • Configura questo elenco di indirizzi consentiti in Snowflake. È distinto dall'elenco di indirizzi IP consentiti dell'area di lavoro ChatGPT.

  • Quando possibile, automatizza gli aggiornamenti dal JSON pubblicato, perché gli intervalli possono cambiare.

Problema di connessione al nome host

Usa il prefisso host Snowflake corretto. I nomi host Snowflake con caratteri di sottolineatura possono causare problemi; preferisci i trattini.

Riferimenti

Questo articolo è stato utile?