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: yesterday

Usa questa guida se sei un amministratore di un'area di lavoro ChatGPT o un utente ChatGPT Plus o 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 la connessione del modello Snowflake in ChatGPT, quindi abilita il plugin Snowflake che usa quel modello.

  • OAuth integrato: quando è disponibile per il tuo account Snowflake e in ChatGPT, usa l'applicazione partner ChatGPT abilitata da un amministratore Snowflake. Accedi a Snowflake usando l'SSO della tua organizzazione, se configurato. Non è necessario inserire un ID client o un segreto client in ChatGPT. Segui le istruzioni nella sezione OAuth integrato qui sotto.

  • Client OAuth personalizzato: usa questa opzione se la tua organizzazione richiede un proprio client OAuth o se OAuth integrato non è disponibile. Segui le istruzioni nella sezione Client OAuth personalizzato qui sotto.

Entrambe le opzioni OAuth richiedono la configurazione comune del server MCP, le autorizzazioni per gli oggetti sottostanti e l'accesso di rete descritti di seguito. Prima di configurare OAuth, completa la configurazione comune fino alla sezione Inserisci i dettagli del server Snowflake in ChatGPT inclusa.

Cosa stai configurando

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

  • Quali azioni può usare ChatGPT.

  • A quali dati o oggetti Snowflake possono accedere questi strumenti.

  • Quale ruolo Snowflake usa ciascun utente per autorizzare la connessione.

  • Quali database, schema e nome del server MCP di Snowflake identificano l'endpoint.

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

  • Prefisso host Snowflake.

  • Database.

  • Schema.

  • Nome del server MCP.

ChatGPT può rilevare e usare solo gli strumenti esposti dal server MCP e consentiti dal ruolo Snowflake usato dall'utente per autorizzare la connessione.

Prima di iniziare

Ti servono:

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

  • Accesso a Snowflake con la possibilità di creare oggetti server MCP e concedere autorizzazioni.

  • Il database e lo schema Snowflake che ospiteranno il server MCP.

  • Una scelta delle funzionalità da consentire a ChatGPT, ad esempio Cortex Search, Cortex Analyst, SQL in sola lettura o una procedura o funzione specifica.

  • Un ruolo Snowflake con i privilegi minimi necessari, che gli utenti useranno per autorizzare l'app.

  • Il prefisso host dell'account Snowflake, incluso qualsiasi suffisso relativo alla regione o al cloud.

Se il tuo account Snowflake limita l'accesso tramite una policy di rete o un elenco di IP consentiti, chiedi a un amministratore Snowflake di consentire le connessioni in entrata dagli attuali intervalli IP in uscita dei connettori ChatGPT. L'elenco è dinamico e va 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 di 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 solo le funzionalità che vuoi esporre. Le opzioni più comuni includono:

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

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

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

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

Se abiliti SQL, mantieni la modalità di 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 il contesto dell'area di lavoro sul database e sullo schema in cui verrà creato il server MCP.

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

Crea il server MCP di Snowflake

Accedi a Snowflake 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 secondo necessità.

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

Usa nomi stabili e descrittivi per gli strumenti, così ChatGPT potrà scegliere quello giusto. La creazione del server MCP non concede automaticamente l'accesso agli oggetti Snowflake sottostanti.

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

Concedi le autorizzazioni Snowflake appropriate

Scegli il ruolo Snowflake che gli utenti useranno per autorizzare la connessione, quindi concedi a quel 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 le autorizzazioni necessarie anche per quell'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 desiderato.

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

  • Il ruolo usato per la connessione disponga del privilegio 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 l'app deve essere disponibile.

  2. Vai a Impostazioni > Plugin per una configurazione personale oppure, come amministratore, a Impostazioni dell'area di lavoro > Plugin per configurare un'area di lavoro.

  3. Cerca Snowflake.

  4. Abilita Snowflake - Modello ufficiale.

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

  6. 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 separati, usa gli stessi valori dell'URL:

Prefisso host Snowflake

Usa tutto ciò che precede .snowflakecomputing.com nell'URL del tuo account Snowflake, incluso qualsiasi suffisso relativo alla regione o al 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 di Snowflake, ad esempio:

CHATGPT_SNOWFLAKE_MCP

Configura OAuth

Scegli l'opzione OAuth disponibile per il tuo account che soddisfa i requisiti della tua organizzazione. Entrambe le opzioni usano la configurazione comune del server MCP descritta sopra e i test di connessione e i controlli di accesso descritti di seguito.

Con entrambe le opzioni OAuth, quando usi session:role:all, Snowflake usa il ruolo predefinito di ciascun utente. Il ruolo predefinito deve essere consentito dall'elenco dei ruoli ammessi dell'integrazione OAuth, se configurato, e non deve essere bloccato. La disponibilità di un altro ruolo approvato non ne comporta la selezione automatica.

OAuth integrato

Prima di continuare, completa le sezioni comuni riportate sopra per creare il server MCP, concedere le autorizzazioni, verificare il server e inserirne i dettagli in ChatGPT. Questo passaggio è necessario anche se hai aperto direttamente questa sezione.

Usa questa opzione solo quando l'applicazione partner ChatGPT è disponibile per il tuo account Snowflake e OAuth integrato è disponibile nella finestra di configurazione di ChatGPT.

  1. Chiedi a un amministratore Snowflake di abilitare l'integrazione partner ChatGPT nello stesso account Snowflake che ospita il server MCP. Riutilizza un'integrazione partner ChatGPT esistente e già abilitata.

  2. Nella finestra di configurazione di ChatGPT, usa OAuth integrato. Non è necessario inserire un ID client o un segreto client, né registrare un URL di callback.

  3. Prosegui con la sezione Connetti e gestisci Snowflake qui sotto per accedere, fornire il consenso e configurare l'accesso. Completa poi la sezione Testa l'app, inclusi i test con membri autorizzati che non sono amministratori.

Il comportamento descritto sopra per il ruolo predefinito, l'elenco dei ruoli consentiti e i ruoli bloccati si applica anche a questa opzione.

Client OAuth personalizzato

Prima di continuare, completa le sezioni comuni riportate sopra per creare il server MCP, concedere le autorizzazioni, verificare il server e inserirne i dettagli in ChatGPT. Questo passaggio è necessario anche se hai aperto direttamente questa sezione.

Per un client OAuth personalizzato, servono un ID client e un segreto client forniti da Snowflake. Il comportamento descritto sopra per il ruolo predefinito, l'elenco dei ruoli consentiti e i ruoli bloccati si applica anche a questa opzione.

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

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

  3. Esegui la seguente istruzione 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.

Dopo aver inserito le credenziali del client personalizzato, prosegui con le sezioni Connetti e gestisci Snowflake e Testa l'app qui sotto.

Connetti e gestisci Snowflake

  1. Per entrambe le opzioni OAuth, nella stessa finestra di configurazione di ChatGPT, seleziona Continua, accedi a Snowflake e autorizza la connessione. Puoi usare l'SSO della tua organizzazione, se configurato.

  2. Se configuri un'area di lavoro, imposta la policy di installazione dei plugin e l'accesso in base al ruolo o al gruppo per i membri che devono usarli. Verifica che siano abilitati sia Snowflake sia Snowflake - Modello ufficiale.

  3. Gli amministratori dell'area di lavoro sono responsabili della configurazione di Accesso utenti per i ruoli che devono usare Snowflake.

  4. Gli amministratori dell'area di lavoro sono responsabili della verifica di Controllo delle azioni per gli strumenti esposti.

  5. Gli amministratori dell'area di lavoro sono responsabili della verifica di Autorizzazioni dell'app per scegliere quando ChatGPT chiede 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 controlli specifici per ciascun agente, impostati da chi lo crea, per determinare quali azioni delle app sono disponibili e quando viene chiesto agli utenti finali di approvarle. 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 che hai configurato.

  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. Se configuri un'area di lavoro, esegui test con membri autorizzati che non sono amministratori e che hanno ruoli Snowflake predefiniti diversi. Il fatto che un amministratore riesca a connettersi non garantisce che tutti i membri possano farlo.

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

URL del server MCP e comportamento di 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 di quell'URL per determinare questi endpoint OAuth di Snowflake:

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

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

Non incollare un URL di 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 ai tuoi 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 compaia come app richiesta.

  • Verifica che la policy di installazione dei plugin consenta l'accesso al ruolo o al gruppo del membro interessato.

Server MCP non trovato

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

  • Verifica che il server MCP esista esattamente in quel database e in quello schema.

In ChatGPT non compaiono strumenti

  • Verifica che la specifica del server MCP includa degli strumenti.

  • Verifica che il ruolo disponga del privilegio USAGE sul server MCP.

Uno strumento compare ma genera un errore quando viene usato

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

Lo strumento SQL genera un errore

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

  • Verifica che il ruolo disponga del privilegio USAGE sul warehouse.

  • Verifica che sia impostato read_only: true se vuoi consentire solo l'accesso in lettura.

Il ruolo ALL richiesto è stato esplicitamente bloccato

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

L'autorizzazione non riesce

  • 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 per MCP gestito da Snowflake.

  • Se usi un client OAuth personalizzato, verifica che l'ID client e il Segreto client corrispondano all'integrazione OAuth di Snowflake e che il relativo URI di reindirizzamento corrisponda esattamente all'URL di callback mostrato in ChatGPT.

    Se usi OAuth integrato, chiedi a un amministratore Snowflake di verificare che l'integrazione partner ChatGPT sia disponibile e abilitata nell'account che ospita il server MCP.

La policy di rete o l'elenco di IP consentiti di Snowflake blocca il connettore

  • Chiedi a un amministratore Snowflake di aggiornare la policy di rete o le regole di accesso di Snowflake.

  • Consenti le connessioni in entrata dagli attuali intervalli IP in uscita dei connettori ChatGPT.

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

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

Problema di connessione legato al nome host

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

Riferimenti

Questo articolo è stato utile?