OpenAI
Ta strona została przetłumaczona maszynowo. Wyświetl oryginalny artykuł w języku angielskim.

Skonfiguruj szablon aplikacji Snowflake w ChatGPT

Dowiedz się, jak administratorzy przestrzeni roboczej ChatGPT oraz użytkownicy ChatGPT Plus lub Pro mogą połączyć ChatGPT z serwerem MCP zarządzanym przez Snowflake.

Zaktualizowano: 7 days ago

Skorzystaj z tego przewodnika, jeśli jesteś administratorem przestrzeni roboczej ChatGPT albo użytkownikiem ChatGPT Plus lub Pro i chcesz połączyć ChatGPT ze Snowflake przez serwer MCP zarządzany przez Snowflake.

Większość konfiguracji odbywa się w Snowflake. Gdy Snowflake będzie gotowy, skonfiguruj w ChatGPT połączenie z szablonu Snowflake, a następnie włącz korzystającą z niego wtyczkę Snowflake.

Co konfigurujesz

Tworzysz zarządzany przez Snowflake serwer MCP, który pełni funkcję punktu końcowego łącznika dla ChatGPT. Serwer MCP określa:

  • Z jakich działań może korzystać ChatGPT.

  • Do jakich danych lub obiektów Snowflake mogą uzyskiwać dostęp te narzędzia.

  • Przy użyciu której roli Snowflake uwierzytelnia się każdy użytkownik.

  • Które nazwy bazy danych, schematu i serwera MCP w Snowflake identyfikują punkt końcowy.

Następnie konfigurujesz w ChatGPT Snowflake — oficjalny szablon, używając pełnego adresu URL zarządzanego serwera MCP. Na ekranie konfiguracji szablonu adres URL może być podzielony na cztery pola:

  • Prefiks hosta Snowflake.

  • Baza danych.

  • Schemat.

  • Nazwa serwera MCP.

ChatGPT może wykrywać i używać wyłącznie narzędzi udostępnionych przez serwer MCP oraz dozwolonych przez rolę Snowflake, przy użyciu której uwierzytelnia się użytkownik.

Zanim zaczniesz

Potrzebujesz:

  • Dostępu administratora lub właściciela przestrzeni roboczej ChatGPT albo dostępu do ChatGPT Plus lub Pro.

  • Dostępu do Snowflake umożliwiającego tworzenie obiektów serwera MCP i nadawanie uprawnień.

  • Bazy danych i schematu Snowflake, w których znajdzie się serwer MCP.

  • Decyzji, jakie działania będą dozwolone w ChatGPT, na przykład Cortex Search, Cortex Analyst, SQL tylko do odczytu albo określona procedura lub funkcja.

  • Roli Snowflake z minimalnymi niezbędnymi uprawnieniami, której użytkownicy będą używać podczas autoryzowania aplikacji.

  • Prefiksu hosta konta Snowflake wraz z sufiksem regionu lub chmury.

Jeśli dostęp do konta Snowflake jest ograniczony przez zasady sieciowe lub listę dozwolonych adresów IP, poproś administratora Snowflake o zezwolenie na połączenia przychodzące z aktualnych zakresów wychodzących adresów IP łącznika ChatGPT. Lista jest dynamiczna i należy ją regularnie aktualizować.

Wartości do przygotowania

  • Prefiks hosta Snowflake: wszystko przed .snowflakecomputing.com w adresie URL konta Snowflake.

  • Baza danych: baza zawierająca serwer MCP.

  • Schemat: schemat zawierający serwer MCP.

  • Nazwa serwera MCP: nazwa obiektu serwera MCP w Snowflake.

  • Pełny adres URL zarządzanego serwera MCP, jeśli ekran konfiguracji ChatGPT wymaga podania adresu URL.

  • Rola Snowflake: rola, której użytkownicy powinni używać podczas autoryzowania aplikacji.

  • Lista narzędzi: obiekty i działania Snowflake, z których ma korzystać ChatGPT.

Określ, co może robić ChatGPT

Wybierz tylko te funkcje, które chcesz udostępnić. Typowe opcje to:

  • Wyszukiwanie za pomocą Cortex Search odpowiedzi w zindeksowanych danych lub treściach Snowflake.

  • Pytania i odpowiedzi za pomocą Cortex Analyst poprzez zatwierdzony widok semantyczny.

  • SQL tylko do odczytu, zapewniający kontrolowany dostęp do zapytań.

  • Agent Snowflake, procedura składowana lub funkcja UDF do określonego przepływu pracy.

Jeśli włączysz SQL, pozostaw dostęp tylko do odczytu, chyba że organizacja sprawdziła i zatwierdziła dostęp do zapisu.

Otwórz arkusz Snowflake

  1. Zaloguj się w aplikacji Snowflake.

  2. Przełącz się na rolę, która może utworzyć serwer MCP i przyznać dostęp.

  3. Przejdź do sekcji Przestrzenie robocze.

    Snowflake navigation menu showing Workspaces selected during MCP server setup.
  4. Utwórz przestrzeń roboczą z plikiem SQL.

    Snowflake workspace with a SQL file open for MCP server setup.
  5. Ustaw kontekst przestrzeni roboczej na bazę danych i schemat, w których zostanie utworzony serwer MCP.

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

Utwórz serwer MCP w Snowflake

Zaloguj się w Snowflake przy użyciu roli, która może utworzyć serwer MCP i przyznać dostęp. Otwórz arkusz w bazie danych i schemacie, w których ma zostać utworzony serwer MCP.

Uruchom instrukcję podobną do poniższego przykładu. Zastąp nazwy własnymi nazwami bazy danych, schematu, usług, widoków, magazynu i serwera w 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.

Nazwy narzędzi i obiektów Snowflake w tej instrukcji są przykładami:

  • support-search udostępnia wskazaną usługę Cortex Search.

  • revenue-analyst udostępnia wskazany widok semantyczny. W razie potrzeby dodaj narzędzia dla innych widoków.

  • sql-readonly udostępnia SQL tylko do odczytu ze wskazanym magazynem.

Używaj stałych, opisowych nazw narzędzi, aby ChatGPT mógł wybrać właściwe narzędzie. Utworzenie serwera MCP nie powoduje automatycznego przyznania dostępu do bazowych obiektów Snowflake.

Więcej opcji specyfikacji opisano w artykule: Tworzenie serwera MCP zarządzanego przez Snowflake.

Nadaj odpowiednie uprawnienia Snowflake

Wybierz rolę Snowflake, przy użyciu której użytkownicy będą się uwierzytelniać, a następnie przyznaj jej dostęp do:

  1. Bazy danych i schematu.

  2. Serwera MCP.

  3. Wszystkich bazowych obiektów używanych przez narzędzia, takich jak usługa wyszukiwania, widok semantyczny lub magazyn.

Przykład:

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;

Jeśli serwer MCP udostępnia funkcję UDF, procedurę składowaną lub agenta Cortex, nadaj także uprawnienia wymagane dla tego obiektu.

Sprawdź gotowość Snowflake

Uruchom:

SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;

Następnie uruchom:

DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;

Potwierdź, że:

  • Serwer istnieje w oczekiwanej bazie danych i schemacie.

  • Lista narzędzi jest zgodna z zamierzeniami.

  • Pole identifier każdego narzędzia wskazuje właściwy obiekt Snowflake.

  • Rola używana do połączenia ma uprawnienie USAGE do serwera MCP.

  • Rola używana do połączenia ma wymagane uprawnienia do każdego obiektu bazowego.

Wprowadź dane serwera Snowflake w ChatGPT

  1. W ChatGPT przełącz się na konto lub przestrzeń roboczą, w której aplikacja ma być dostępna.

  2. Otwórz Ustawienia. Aby skonfigurować aplikację dla całej przestrzeni roboczej, otwórz jako administrator Ustawienia przestrzeni roboczej.

  3. Przejdź do sekcji Wtyczki.

  4. Wyszukaj Snowflake.

  5. Włącz Snowflake — oficjalny szablon.

  6. Otwórz Snowflake — oficjalny szablon, wpisz zrozumiałą nazwę połączenia i wybierz Połącz.

  7. Wprowadź pełny adres URL zarządzanego serwera MCP:

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

Przykład:

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.

Jeśli konfiguracja Snowflake jest na ekranie podzielona na osobne pola, użyj tych samych wartości co w adresie URL:

Prefiks hosta Snowflake

Użyj wszystkiego, co znajduje się przed .snowflakecomputing.com w adresie URL konta Snowflake, w tym sufiksu regionu lub chmury.

Jeśli na przykład adres URL konta zaczyna się od:

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

Prefiks hosta to:

myorg-myaccount.azure

Baza danych

Wprowadź nazwę bazy danych zawierającej serwer MCP, na przykład:

CHATGPT_APPS

Schemat

Wprowadź nazwę schematu zawierającego serwer MCP, na przykład:

TOOLS

Nazwa serwera MCP

Wprowadź nazwę obiektu serwera MCP w Snowflake, na przykład:

CHATGPT_SNOWFLAKE_MCP

Skonfiguruj klienta OAuth

Do połączenia potrzebujesz identyfikatora klienta i klucza tajnego klienta ze Snowflake.

Gdy używasz session:role:all, Snowflake korzysta z domyślnej roli każdego użytkownika. Domyślna rola musi być dozwolona przez listę dozwolonych ról integracji OAuth, jeśli ją skonfigurowano, i nie może być zablokowana. Posiadanie innej zatwierdzonej roli nie powoduje jej automatycznego wybrania.

  1. W oknie konfiguracji ChatGPT otwórz Zaawansowane ustawienia OAuth, wybierz Klient OAuth zdefiniowany przez użytkownika i skopiuj Adres URL wywołania zwrotnego wyświetlany w ChatGPT.

  2. Utwórz niestandardową integrację zabezpieczeń OAuth z ustawieniem OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' i wartością OAUTH_REDIRECT_URI równą dokładnie temu adresowi URL wywołania zwrotnego.

  3. Uruchom poniższą instrukcję w Snowflake, wpisując nazwę integracji wielkimi literami:

    SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('YOUR_INTEGRATION_NAME');

  4. Z wyniku JSON wklej oauth_client_id w polu Identyfikator klienta OAuth, a oauth_client_secret w polu Klucz tajny klienta OAuth w ChatGPT.

  5. Ustaw Metodę uwierzytelniania w punkcie końcowym tokenu na client_secret_basic.

Połącz Snowflake i zarządzaj nim

  1. W tym samym oknie konfiguracji ChatGPT wybierz Kontynuuj, zaloguj się w Snowflake i autoryzuj połączenie.

  2. W przypadku konfiguracji przestrzeni roboczej określ zasady instalowania wtyczki oraz dostęp dla ról lub grup członków, którzy mają z niej korzystać. Sprawdź, czy włączone są zarówno Snowflake, jak i Snowflake — oficjalny szablon.

  3. Administratorzy przestrzeni roboczej odpowiadają za skonfigurowanie opcji Dostęp użytkowników dla ról, które mają korzystać ze Snowflake.

  4. Administratorzy przestrzeni roboczej odpowiadają za sprawdzenie ustawienia Kontrola działań dla udostępnionych narzędzi.

  5. Administratorzy przestrzeni roboczej odpowiadają za sprawdzenie ustawienia Uprawnienia aplikacji i określenie, kiedy ChatGPT ma pytać członków o zgodę przed użyciem aplikacji.

Te uprawnienia aplikacji dotyczą rozmów w ChatGPT. Agenci przestrzeni roboczej korzystają z ustawionych przez ich twórcę mechanizmów kontroli poszczególnych agentów, aby określić dostępne działania aplikacji i sytuacje, w których użytkownik końcowy jest proszony o ich zatwierdzenie. Informacje o działaniu agentów znajdziesz w artykule: Agenci przestrzeni roboczej ChatGPT dla planów Enterprise i Business.

Przetestuj aplikację

  1. Otwórz czat, wybierz Snowflake i przetestuj połączenie.

  2. Sprawdź, czy ChatGPT wykrywa skonfigurowane narzędzia.

  3. Najpierw wykonaj działanie odczytu o niskim ryzyku, na przykład wyszukiwanie lub zapytanie tylko do odczytu dotyczące zatwierdzonych danych.

  4. Sprawdź, czy uprawnienia Snowflake uniemożliwiają dostęp poza zatwierdzoną rolą i obiektami.

  5. W przypadku konfiguracji przestrzeni roboczej przeprowadź test z uprawnionymi członkami niebędącymi administratorami, którzy mają różne domyślne role Snowflake. Udane połączenie administratora nie oznacza, że każdy członek może się połączyć.

Administratorom przestrzeni roboczej nie wystarczy włączenie samej opcji Snowflake. Jeśli Snowflake — oficjalny szablon nie został włączony i połączony, wtyczka może być wyświetlana członkom jako wyłączona.

Adres URL serwera MCP i działanie OAuth

ChatGPT łączy się z pełnym adresem URL serwera MCP zarządzanego przez Snowflake:

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

ChatGPT używa prefiksu hosta Snowflake z tego adresu URL do ustalenia następujących punktów końcowych OAuth Snowflake:

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

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

Nie wklejaj adresu URL Snowsight, samego głównego adresu URL konta Snowflake ani adresu URL z dodatkowymi segmentami ścieżki. Adres URL MCP musi zawierać /api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server} i dokładnie odpowiadać obiektom Snowflake.

Rozwiązywanie problemów

Snowflake jest włączony dla administratora, ale wyłączony dla członka

  • Sprawdź, czy zarówno Snowflake, jak i Snowflake — oficjalny szablon są włączone w sekcji Ustawienia przestrzeni roboczej > Wtyczki.

  • Otwórz Snowflake — oficjalny szablon i ukończ proces Połącz. Samo włączenie szablonu bez jego połączenia nie wystarczy.

  • Otwórz Snowflake i sprawdź, czy szablon jest wyświetlany jako wymagana aplikacja.

  • Sprawdź, czy zasady instalowania wtyczki zezwalają na rolę lub grupę członka, którego dotyczy problem.

Nie znaleziono serwera MCP

  • Sprawdź ponownie pełny adres URL serwera MCP lub cztery pola szablonu, jeśli wymaga ich ekran konfiguracji.

  • Sprawdź, czy serwer MCP istnieje dokładnie w tej bazie danych i tym schemacie.

W ChatGPT nie są wyświetlane żadne narzędzia

  • Sprawdź, czy specyfikacja serwera MCP zawiera narzędzia.

  • Sprawdź, czy rola ma uprawnienie USAGE do serwera MCP.

Narzędzie jest widoczne, ale podczas używania występuje błąd

  • Sprawdź, czy rola ma wymagane uprawnienie do bazowego obiektu Snowflake, takiego jak usługa wyszukiwania, widok semantyczny, magazyn, procedura lub funkcja UDF.

Narzędzie SQL nie działa

  • Sprawdź, czy nazwa magazynu jest poprawna i czy magazyn jest uruchomiony.

  • Sprawdź, czy rola ma uprawnienie USAGE do magazynu.

  • Jeśli zamierzony był dostęp tylko do odczytu, sprawdź, czy ustawiono read_only: true.

Żądana rola ALL została jawnie zablokowana

Poproś administratora Snowflake o porównanie Twojej domyślnej roli z dozwolonymi i zablokowanymi rolami integracji OAuth. Posiadanie innej dozwolonej roli nie powoduje jej automatycznego wybrania. W razie potrzeby zmień domyślną rolę na zatwierdzoną i połącz się ponownie. Zmiana domyślnej roli wpływa również na sesje Snowflake poza ChatGPT.

Autoryzacja nie powiodła się

  • Sprawdź, czy użytkownik może zalogować się w Snowflake.

  • Podczas korzystania z session:role:all sprawdź, czy domyślna rola użytkownika jest dozwolona przez integrację OAuth.

  • Sprawdź, czy konfiguracja używa przepływu OAuth MCP zarządzanego przez Snowflake.

  • Sprawdź, czy identyfikator klienta i klucz tajny klienta odpowiadają integracji OAuth Snowflake, a jej identyfikator URI przekierowania jest zgodny z Adresem URL wywołania zwrotnego wyświetlanym w ChatGPT.

Zasady sieciowe lub lista dozwolonych adresów IP Snowflake blokują łącznik

  • Poproś administratora Snowflake o zaktualizowanie zasad sieciowych lub reguł dostępu Snowflake.

  • Zezwól na połączenia przychodzące z aktualnych zakresów wychodzących adresów IP łącznika ChatGPT.

  • Skonfiguruj tę listę dozwolonych adresów w Snowflake. Jest ona niezależna od listy dozwolonych adresów IP przestrzeni roboczej ChatGPT.

  • W miarę możliwości automatyzuj aktualizacje na podstawie opublikowanego pliku JSON, ponieważ zakresy mogą się zmieniać.

Problem z połączeniem z nazwą hosta

Użyj poprawnego prefiksu hosta Snowflake. Nazwy hostów Snowflake z podkreśleniami mogą powodować problemy; używaj łączników.

Materiały referencyjne

Czy ten artykuł był pomocny?