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: 4 hours ago

Utilize este guia se for administrador de um espaço de trabalho do ChatGPT ou utilizador do ChatGPT Plus ou Pro e quiser ligar o ChatGPT ao Snowflake através de um servidor MCP gerido pelo Snowflake.

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

  • OAuth integrado: quando estiver disponível para a sua conta Snowflake e no ChatGPT, utilize a aplicação de parceiro ChatGPT ativada por um administrador do Snowflake. Inicie sessão no Snowflake, utilizando o SSO da sua organização, se estiver configurado. Não precisa de introduzir um ID de cliente nem um segredo de cliente no ChatGPT. Siga as instruções da secção OAuth integrado abaixo.

  • Cliente OAuth personalizado: utilize esta opção se a sua organização exigir um cliente OAuth próprio ou se o OAuth integrado não estiver disponível. Siga as instruções da secção Cliente OAuth personalizado abaixo.

Ambas as opções de OAuth exigem a configuração comum do servidor MCP, as permissões dos objetos subjacentes e o acesso à rede descritos abaixo. Conclua a configuração comum até à secção Introduzir os detalhes do servidor Snowflake no ChatGPT, inclusive, antes de configurar o OAuth.

O que vai configurar

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

  • Que ações o ChatGPT pode utilizar.

  • A que dados ou objetos do Snowflake essas ferramentas podem aceder.

  • Que função do Snowflake cada utilizador usa para conceder autorização.

  • Que base de dados, schema e nome do servidor MCP do Snowflake 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 Snowflake.

  • Base de dados.

  • Schema.

  • Nome do servidor MCP.

O ChatGPT só pode detetar e utilizar ferramentas disponibilizadas pelo servidor MCP e permitidas pela função do Snowflake que o utilizador usa para conceder autorização.

Antes de começar

Precisa de:

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

  • Acesso ao Snowflake com permissões para criar objetos de servidor MCP e conceder permissões.

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

  • Uma decisão sobre o que o ChatGPT 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 do Snowflake com os privilégios mínimos necessários, 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 nuvem.

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

Valores a preparar

  • Prefixo do anfitrião Snowflake: tudo o que precede .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 do Snowflake.

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

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

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

Decidir o que o ChatGPT pode fazer

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

  • Pesquisa com o Cortex Search para encontrar respostas em dados ou conteúdos indexados do 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 do Snowflake, um procedimento armazenado ou uma UDF para um fluxo de trabalho específico.

Se ativar o SQL, mantenha-o em modo só de leitura, a menos que a sua organização tenha analisado e aprovado o acesso de escrita.

Abrir uma folha de trabalho do Snowflake

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

  2. Mude para uma função que permita 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 do Snowflake

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

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

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

Conceder as permissões adequadas no Snowflake

Escolha a função do Snowflake que os utilizadores usarão para conceder 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 warehouse.

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 o Snowflake está pronto

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 que pretendia.

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

  • A função usada na ligação tem a permissão USAGE no servidor MCP.

  • A função usada na 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 deverá estar disponível.

  2. Aceda a Definições > Plugins para uma configuração pessoal ou, como administrador do espaço de trabalho, a Definições do espaço de trabalho > Plugins para configurar um espaço de trabalho.

  3. Pesquise Snowflake.

  4. Ative o Snowflake - Modelo oficial.

  5. Abra o Snowflake - Modelo oficial, introduza um nome claro para a ligação e selecione Ligar.

  6. 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 do Snowflake em campos separados, utilize os mesmos valores do URL:

Prefixo do anfitrião Snowflake

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

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, como:

CHATGPT_APPS

Schema

Introduza o schema que contém o servidor MCP, como:

TOOLS

Nome do servidor MCP

Introduza o nome do objeto de servidor MCP do Snowflake, como:

CHATGPT_SNOWFLAKE_MCP

Configurar o OAuth

Escolha a opção de OAuth que está disponível para a sua conta e que cumpre os requisitos da sua organização. Ambas as opções utilizam a configuração comum do servidor MCP descrita acima e os testes de ligação e controlos de acesso indicados abaixo.

Em qualquer uma das opções de OAuth, ao utilizar session:role:all, o Snowflake usa a função predefinida de cada utilizador. A função predefinida tem de constar da lista de funções permitidas da integração OAuth, se esta estiver configurada, e não pode estar bloqueada. Ter outra função aprovada não faz com que esta seja selecionada automaticamente.

OAuth integrado

Antes de continuar, conclua as secções comuns acima para criar o servidor MCP, conceder permissões, verificar o servidor e introduzir os respetivos detalhes no ChatGPT. Estes passos são obrigatórios, mesmo que tenha acedido diretamente a esta secção.

Utilize esta opção apenas quando a aplicação de parceiro ChatGPT estiver disponível para a sua conta Snowflake e o OAuth integrado estiver disponível na janela de configuração do ChatGPT.

  1. Peça a um administrador do Snowflake que ative a integração de parceiro ChatGPT na mesma conta Snowflake que aloja o servidor MCP. Reutilize uma integração de parceiro ChatGPT existente e já ativada.

  2. Na janela de configuração do ChatGPT, utilize o OAuth integrado. Não precisa de introduzir um ID de cliente ou um segredo de cliente, nem de registar um URL de retorno.

  3. Continue na secção Ligar e gerir o Snowflake abaixo para iniciar sessão, dar consentimento e configurar o acesso. Em seguida, conclua a secção Testar a aplicação, incluindo os testes com membros autorizados sem privilégios de administrador.

O comportamento descrito acima relativamente à função predefinida, à lista de funções permitidas e às funções bloqueadas também se aplica a esta opção.

Cliente OAuth personalizado

Antes de continuar, conclua as secções comuns acima para criar o servidor MCP, conceder permissões, verificar o servidor e introduzir os respetivos detalhes no ChatGPT. Estes passos são obrigatórios, mesmo que tenha acedido diretamente a esta secção.

Para um cliente OAuth personalizado, precisa de um ID de cliente e de um segredo de cliente do Snowflake. O comportamento descrito acima relativamente à função predefinida, à lista de funções permitidas e às funções bloqueadas também se aplica a esta opção.

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

  2. Crie uma integração de segurança OAuth personalizada com OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' e OAUTH_REDIRECT_URI definido exatamente para esse URL de retorno.

  3. Execute a seguinte instrução no 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 de cliente OAuth no ChatGPT.

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

Após introduzir as credenciais do cliente personalizado, continue nas secções Ligar e gerir o Snowflake e Testar a aplicação abaixo.

Ligar e gerir o Snowflake

  1. Em qualquer uma das opções de OAuth, na mesma janela de configuração do ChatGPT, selecione Continuar, inicie sessão no Snowflake e autorize a ligação. Pode utilizar o SSO da sua organização, se estiver configurado.

  2. Para configurar um espaço de trabalho, defina 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 tanto o Snowflake como o Snowflake - Modelo oficial estão 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 o 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 de cada agente, definidos pelo respetivo criador, para determinar que ações da aplicação estão disponíveis e quando é pedida a aprovação dos utilizadores finais. Para saber mais sobre o comportamento dos agentes, consulte: Agentes do 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. Execute primeiro uma ação de leitura de baixo risco, como uma pesquisa ou uma consulta só de leitura sobre dados aprovados.

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

  5. Se estiver a configurar um espaço de trabalho, teste com membros autorizados sem privilégios de administrador que tenham diferentes funções predefinidas do Snowflake. Uma ligação bem-sucedida de um administrador não confirma que todos os membros conseguem 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 para os membros.

URL do servidor MCP e comportamento do OAuth

O ChatGPT liga-se ao URL completo do servidor MCP gerido pelo Snowflake:

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

O ChatGPT utiliza o prefixo do anfitrião Snowflake desse URL para determinar estes endpoints OAuth do 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 raiz da conta Snowflake ou 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 do Snowflake.

Resolução de problemas

O Snowflake está ativado para um administrador, mas desativado para um membro

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

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

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

  • 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

  • Verifique novamente 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 a permissão 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 do Snowflake, como o serviço de pesquisa, a vista semântica, o warehouse, o procedimento ou a UDF.

A ferramenta SQL falha

  • Confirme que o nome do warehouse está correto e que o warehouse está em execução.

  • Confirme que a função tem a permissão USAGE no warehouse.

  • Confirme que read_only: true está definido, se pretendia acesso só de leitura.

A função ALL solicitada foi explicitamente bloqueada

Peça ao seu administrador do Snowflake que compare a sua função predefinida com as funções permitidas e bloqueadas da integração OAuth. Ter 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. A alteração da sua função predefinida também afeta as suas sessões do Snowflake fora do ChatGPT.

A autorização falha

  • Confirme que o utilizador consegue iniciar sessão no 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 pelo Snowflake.

  • Se utilizar um cliente OAuth personalizado, confirme que o ID de cliente e o Segredo de cliente correspondem à integração OAuth do Snowflake e que o respetivo URI de redirecionamento corresponde exatamente ao URL de retorno apresentado no ChatGPT.

    Se utilizar o OAuth integrado, peça a um administrador do Snowflake que verifique se a integração de parceiro ChatGPT está disponível e ativada na conta que aloja o servidor MCP.

A política de rede ou a lista de IP permitidos do Snowflake bloqueia o conector

  • Peça a um administrador do Snowflake que atualize a política de rede ou as regras de acesso do Snowflake.

  • Permita ligações de entrada a partir dos atuais intervalos de IP de saída dos conectores do ChatGPT.

  • Configure esta lista de IP permitidos no Snowflake. É independente da lista de IP permitidos do espaço de trabalho do ChatGPT.

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

Problema de ligação relacionado com o nome do anfitrião

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

Referências

Este artigo foi útil?