OpenAI
Esta página foi traduzida automaticamente. Ver o artigo original em inglês.

Configurar o modelo de app Snowflake no ChatGPT

Saiba como os administradores de espaços de trabalho do ChatGPT e os utilizadores do ChatGPT Plus ou Pro podem ligar o ChatGPT a um servidor MCP gerido pela Snowflake.

Atualizado: 23 hours ago

Use este guia se for administrador de um espaço de trabalho do ChatGPT ou utilizador do ChatGPT Plus ou Pro e pretender ligar o ChatGPT à Snowflake através de um servidor MCP gerido pela Snowflake.

A maior parte da configuração é feita na Snowflake. Quando a Snowflake estiver pronta, conclua a ligação do modelo da Snowflake no ChatGPT e, em seguida, ative o plugin da Snowflake que utiliza esse modelo.

O que vai configurar

Vai criar um servidor MCP gerido pela Snowflake que funciona como endpoint do conector para o ChatGPT. O servidor MCP define:

  • As ações que o ChatGPT pode utilizar.

  • Os dados ou objetos da Snowflake a que essas ferramentas podem aceder.

  • A função da Snowflake com que cada utilizador concede autorização.

  • A base de dados, o schema e o nome do servidor MCP da Snowflake que identificam o endpoint.

Em seguida, configure o Snowflake - Modelo oficial no ChatGPT com o URL completo do servidor MCP gerido. O ecrã de configuração do modelo pode apresentar o URL em quatro campos separados:

  • Prefixo do anfitrião da Snowflake.

  • Base de dados.

  • Schema.

  • Nome do servidor MCP.

O ChatGPT só pode detetar e utilizar as ferramentas disponibilizadas pelo servidor MCP e permitidas pela função da Snowflake com que o utilizador concede autorização.

Antes de começar

É necessário:

  • Acesso de administrador ou proprietário de um espaço de trabalho do ChatGPT, ou acesso ao ChatGPT Plus ou Pro.

  • Acesso à Snowflake que permita criar objetos de servidor MCP e conceder permissões.

  • A base de dados e o schema da Snowflake onde ficará o servidor MCP.

  • Uma decisão sobre o que o ChatGPT deve poder fazer, como utilizar o Cortex Search, o Cortex Analyst, SQL só de leitura ou um procedimento ou função específicos.

  • Uma função da Snowflake com privilégios mínimos, que os utilizadores usarão ao autorizar a aplicação.

  • O prefixo do anfitrião da conta Snowflake, incluindo qualquer sufixo de região ou de cloud.

Se a sua conta Snowflake restringir o acesso através de uma política de rede ou lista de endereços IP permitidos, peça a um administrador da Snowflake que permita ligações de entrada provenientes dos atuais intervalos de IP de saída do conector do ChatGPT. A lista é dinâmica e deve ser mantida atualizada.

Valores a preparar

  • Prefixo do anfitrião da Snowflake: tudo o que aparece antes de .snowflakecomputing.com no URL da conta Snowflake.

  • Base de dados: a base de dados que contém o servidor MCP.

  • Schema: o schema que contém o servidor MCP.

  • Nome do servidor MCP: o nome do objeto de servidor MCP da Snowflake.

  • URL completo do servidor MCP gerido, caso o ecrã de configuração do ChatGPT solicite um URL.

  • Função da Snowflake: a função que os utilizadores devem usar ao autorizar a aplicação.

  • Lista de ferramentas: os objetos e as ações da Snowflake que pretende que o ChatGPT utilize.

Decidir o que o ChatGPT pode fazer

Escolha apenas as capacidades que pretende disponibilizar. As opções comuns incluem:

  • Pesquisa com o Cortex Search para encontrar respostas em dados ou conteúdos indexados da Snowflake.

  • Perguntas e respostas com o Cortex Analyst através de uma vista semântica aprovada.

  • SQL só de leitura para acesso controlado a consultas.

  • Um agente da Snowflake, um procedimento armazenado ou uma UDF para um fluxo de trabalho específico.

Se ativar o SQL, mantenha-o só de leitura, salvo se a sua organização tiver analisado e aprovado o acesso de escrita.

Abrir uma folha de trabalho da Snowflake

  1. Inicie sessão na aplicação Snowflake.

  2. Mude para uma função que possa criar o servidor MCP e conceder acesso.

  3. Aceda a Espaços de trabalho.

    Snowflake navigation menu showing Workspaces selected during MCP server setup.
  4. Crie um espaço de trabalho com um ficheiro SQL.

    Snowflake workspace with a SQL file open for MCP server setup.
  5. Defina o contexto do espaço de trabalho para a base de dados e o schema onde será criado o servidor MCP.

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

Criar o servidor MCP da Snowflake

Na Snowflake, inicie sessão com uma função que possa criar o servidor MCP e conceder acesso. Abra uma folha de trabalho na base de dados e no schema onde o servidor MCP deve ser criado.

Execute uma instrução como a do exemplo seguinte. Substitua os nomes pelos nomes da sua base de dados, schema, serviços, vistas, armazém e servidor da 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.

Os nomes das ferramentas e os objetos da Snowflake nesta instrução são exemplos:

  • support-search disponibiliza o serviço Cortex Search especificado.

  • revenue-analyst disponibiliza a vista semântica especificada. Adicione ferramentas para outras vistas, conforme necessário.

  • sql-readonly disponibiliza SQL só de leitura com o armazém especificado.

Utilize nomes de ferramentas estáveis e descritivos para que o ChatGPT possa escolher a ferramenta certa. A criação do servidor MCP não concede automaticamente acesso aos objetos subjacentes da Snowflake.

Para conhecer outras opções de especificação, consulte: Criar um servidor MCP gerido pela Snowflake.

Conceder as permissões certas da Snowflake

Escolha a função da Snowflake com que os utilizadores concederão autorização e, em seguida, conceda a essa função acesso a:

  1. A base de dados e o schema.

  2. O servidor MCP.

  3. Todos os objetos subjacentes utilizados pelas ferramentas, como um serviço de pesquisa, uma vista semântica ou um armazém.

Exemplo:

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 o servidor MCP disponibilizar uma UDF, um procedimento armazenado ou um agente Cortex, conceda também as permissões necessárias para esse objeto.

Verificar se a Snowflake está pronta

Execute:

SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;

Em seguida, execute:

DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;

Confirme que:

  • O servidor existe na base de dados e no schema esperados.

  • A lista de ferramentas corresponde ao pretendido.

  • O identifier de cada ferramenta aponta para o objeto correto da Snowflake.

  • A função utilizada para estabelecer a ligação tem USAGE no servidor MCP.

  • A função utilizada para estabelecer a ligação tem as permissões necessárias em cada objeto subjacente.

Introduzir os detalhes do servidor Snowflake no ChatGPT

  1. No ChatGPT, mude para a conta ou o espaço de trabalho onde a aplicação deve ficar disponível.

  2. Abra as Definições. Para configurar todo o espaço de trabalho, abra as Definições do espaço de trabalho como administrador desse espaço.

  3. Aceda a Plugins.

  4. Pesquise Snowflake.

  5. Ative o Snowflake - Modelo oficial.

  6. Abra o Snowflake - Modelo oficial, introduza um nome de ligação claro e selecione Ligar.

  7. Introduza o URL completo do servidor MCP gerido:

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

Exemplo:

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 o ecrã de configuração apresentar a configuração da Snowflake em campos separados, utilize os mesmos valores do URL:

Prefixo do anfitrião da Snowflake

Utilize tudo o que aparece antes de .snowflakecomputing.com no URL da sua conta Snowflake, incluindo qualquer sufixo de região ou de cloud.

Por exemplo, se o URL da conta começar por:

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

O prefixo do anfitrião é:

myorg-myaccount.azure

Base de dados

Introduza a base de dados que contém o servidor MCP, por exemplo:

CHATGPT_APPS

Schema

Introduza o schema que contém o servidor MCP, por exemplo:

TOOLS

Nome do servidor MCP

Introduza o nome do objeto de servidor MCP da Snowflake, por exemplo:

CHATGPT_SNOWFLAKE_MCP

Configurar o cliente OAuth

Para estabelecer a ligação, precisa de um ID de cliente e de um segredo do cliente da Snowflake.

Quando utiliza session:role:all, a Snowflake utiliza a função predefinida de cada utilizador. A função predefinida tem de ser permitida pela lista de funções autorizadas da integração OAuth, caso esteja configurada, e não pode estar bloqueada. A existência de outra função aprovada não faz com que esta seja selecionada automaticamente.

  1. Na janela de configuração do ChatGPT, abra as Definições avançadas de OAuth, selecione Cliente OAuth definido pelo utilizador e copie o URL de chamada de retorno apresentado no ChatGPT.

  2. Crie uma integração de segurança OAuth personalizada com OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' e defina OAUTH_REDIRECT_URI como esse URL exato de chamada de retorno.

  3. Execute a instrução seguinte na Snowflake, utilizando o nome da integração em maiúsculas:

    SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('YOUR_INTEGRATION_NAME');

  4. A partir do resultado JSON, cole oauth_client_id em ID de cliente OAuth e oauth_client_secret em Segredo do cliente OAuth no ChatGPT.

  5. Defina o Método de autenticação do endpoint de tokens como client_secret_basic.

Ligar e gerir a Snowflake

  1. Na mesma janela de configuração do ChatGPT, selecione Continuar, inicie sessão na Snowflake e autorize a ligação.

  2. Para uma configuração de espaço de trabalho, configure a política de instalação do plugin e o acesso por função ou grupo para os membros que o devem utilizar. Verifique se Snowflake e Snowflake - Modelo oficial estão ambos ativados.

  3. Os administradores do espaço de trabalho são responsáveis por configurar o Acesso dos utilizadores para as funções que devem utilizar a Snowflake.

  4. Os administradores do espaço de trabalho são responsáveis por rever o Controlo de ações das ferramentas disponibilizadas.

  5. Os administradores do espaço de trabalho são responsáveis por rever as Permissões da aplicação para escolher quando o ChatGPT pede autorização aos membros antes de utilizar a aplicação.

Estas permissões da aplicação aplicam-se às conversas do ChatGPT. Os agentes do espaço de trabalho utilizam controlos específicos por agente, definidos pelo respetivo criador, para determinar que ações da aplicação estão disponíveis e quando é solicitada a aprovação dos utilizadores finais. Para saber mais sobre o comportamento dos agentes, consulte: Agentes de espaço de trabalho do ChatGPT para Enterprise e Business.

Testar a aplicação

  1. Abra uma conversa, selecione Snowflake e teste a ligação.

  2. Confirme que o ChatGPT deteta as ferramentas que configurou.

  3. Comece por executar uma ação de leitura de baixo risco, como uma pesquisa ou uma consulta só de leitura em dados aprovados.

  4. Confirme que as permissões da Snowflake impedem o acesso fora da função e dos objetos aprovados.

  5. Numa configuração de espaço de trabalho, teste com membros autorizados que não sejam administradores e que tenham diferentes funções predefinidas da Snowflake. Uma ligação bem-sucedida de um administrador não confirma que todos os membros consigam estabelecer ligação.

Para os administradores do espaço de trabalho, não basta ativar apenas o Snowflake. Se o Snowflake - Modelo oficial não tiver sido ativado e ligado, o plugin pode aparecer desativado aos membros.

URL do servidor MCP e comportamento do OAuth

O ChatGPT estabelece ligação ao URL completo do servidor MCP gerido pela Snowflake:

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

O ChatGPT utiliza o prefixo do anfitrião da Snowflake desse URL para resolver os seguintes endpoints OAuth da Snowflake:

  • Autorização: https://<snowflake_host_prefix>.snowflakecomputing.com/oauth/authorize

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

Não cole um URL do Snowsight, apenas o URL de raiz da conta Snowflake nem um URL com segmentos de caminho adicionais. O URL do MCP tem de incluir /api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server} e corresponder exatamente aos seus objetos da Snowflake.

Resolução de problemas

A Snowflake está ativada para um administrador, mas desativada para um membro

  • Confirme que Snowflake e Snowflake - Modelo oficial estão ambos ativados em Definições do espaço de trabalho > Plugins.

  • Abra o Snowflake - Modelo oficial e conclua o respetivo processo de Ligação. Não basta ativar o modelo sem o ligar.

  • Abra o Snowflake e confirme que o modelo aparece como aplicação necessária.

  • Confirme que a função ou o grupo do membro afetado é permitido pela política de instalação do plugin.

Servidor MCP não encontrado

  • Volte a verificar o URL completo do servidor MCP ou os quatro campos do modelo, caso o ecrã de configuração os solicite.

  • Confirme que o servidor MCP existe exatamente nessa base de dados e nesse schema.

Não aparecem ferramentas no ChatGPT

  • Confirme que a especificação do servidor MCP inclui ferramentas.

  • Confirme que a função tem USAGE no servidor MCP.

Uma ferramenta aparece, mas falha quando é utilizada

  • Confirme que a função tem a permissão necessária no objeto subjacente da Snowflake, como o serviço de pesquisa, a vista semântica, o armazém, o procedimento ou a UDF.

A ferramenta SQL falha

  • Confirme que o nome do armazém está correto e que este está em execução.

  • Confirme que a função tem USAGE no armazém.

  • Confirme que read_only: true está definido caso pretenda acesso só de leitura.

A função ALL solicitada foi explicitamente bloqueada

Peça ao administrador da Snowflake para comparar a sua função predefinida com as funções permitidas e bloqueadas da integração OAuth. A existência de outra função permitida não faz com que esta seja selecionada automaticamente. Se for adequado, altere a função predefinida para uma função aprovada e volte a estabelecer a ligação. Alterar a sua função predefinida também afeta as sessões da Snowflake fora do ChatGPT.

Falha na autorização

  • Confirme que o utilizador consegue iniciar sessão na Snowflake.

  • Ao utilizar session:role:all, confirme que a função predefinida do utilizador é permitida pela integração OAuth.

  • Confirme que a configuração utiliza o fluxo OAuth do MCP gerido pela Snowflake.

  • Confirme que o ID de cliente e o segredo do cliente correspondem à integração OAuth da Snowflake e que o respetivo URI de redirecionamento corresponde ao URL de chamada de retorno apresentado no ChatGPT.

A política de rede ou a lista de endereços IP permitidos da Snowflake bloqueia o conector

  • Peça a um administrador da Snowflake para atualizar a política de rede ou as regras de acesso da Snowflake.

  • Permita ligações de entrada provenientes dos atuais intervalos de IP de saída do conector do ChatGPT.

  • Configure esta lista de permissões na Snowflake. É independente da lista de endereços IP permitidos do espaço de trabalho do ChatGPT.

  • Sempre que possível, automatize as atualizações a partir do JSON publicado, porque os intervalos podem mudar.

Problema de ligação ao nome do anfitrião

Utilize o prefixo correto do anfitrião da Snowflake. Os nomes de anfitrião da Snowflake com carateres de sublinhado podem causar problemas; prefira hífenes.

Referências

Este artigo foi útil?