OpenAI
Halaman ini diterjemahkan oleh mesin. Lihat artikel asli dalam bahasa Inggris.

Siapkan templat aplikasi Snowflake di ChatGPT

Pelajari cara admin workspace ChatGPT serta pengguna ChatGPT Plus atau ChatGPT Pro menghubungkan ChatGPT ke server MCP yang dikelola Snowflake.

Diperbarui: 13 hours ago

Gunakan panduan ini jika Anda adalah admin workspace ChatGPT atau pengguna ChatGPT Plus atau Pro yang ingin menghubungkan ChatGPT ke Snowflake melalui server MCP yang dikelola Snowflake.

Sebagian besar penyiapan dilakukan di Snowflake. Setelah Snowflake siap, selesaikan koneksi templat Snowflake di ChatGPT, lalu aktifkan plugin Snowflake yang menggunakan templat tersebut.

  • Oauth bawaan: Jika tersedia untuk akun Snowflake Anda dan di ChatGPT, gunakan aplikasi mitra ChatGPT yang diaktifkan oleh admin Snowflake. Masuk ke Snowflake menggunakan SSO organisasi Anda jika sudah dikonfigurasi. Anda tidak perlu memasukkan ID klien atau secret klien di ChatGPT. Ikuti bagian Oauth bawaan di bawah.

  • Klien Oauth kustom: Gunakan opsi ini jika organisasi Anda mewajibkan klien Oauth sendiri atau Oauth bawaan tidak tersedia. Ikuti bagian Klien Oauth kustom di bawah.

Kedua opsi Oauth memerlukan penyiapan server MCP, izin objek yang mendasarinya, dan akses jaringan yang sama, seperti dijelaskan di bawah. Selesaikan penyiapan bersama hingga bagian Masukkan detail server Snowflake di ChatGPT sebelum mengonfigurasi Oauth.

Apa yang akan Anda siapkan

Anda akan membuat server MCP yang dikelola Snowflake untuk bertindak sebagai endpoint konektor bagi ChatGPT. Server MCP menentukan:

  • Tindakan yang dapat digunakan ChatGPT.

  • Data atau objek Snowflake yang dapat diakses oleh alat tersebut.

  • Peran Snowflake yang digunakan setiap pengguna saat memberikan otorisasi.

  • Database, skema, dan nama server MCP Snowflake yang mengidentifikasi endpoint.

Anda kemudian mengonfigurasi Snowflake - Templat Resmi di ChatGPT dengan URL lengkap server MCP terkelola. Layar penyiapan templat mungkin menampilkan URL sebagai empat kolom terpisah:

  • Prefiks host Snowflake.

  • Database.

  • Skema.

  • Nama server MCP.

ChatGPT hanya dapat menemukan dan menggunakan alat yang disediakan oleh server MCP dan diizinkan oleh peran Snowflake yang digunakan pengguna saat memberikan otorisasi.

Sebelum memulai

Anda memerlukan:

  • Akses admin atau pemilik workspace ChatGPT, atau akses ChatGPT Plus atau Pro.

  • Akses Snowflake yang dapat membuat objek server MCP dan memberikan izin.

  • Database dan skema Snowflake tempat server MCP akan berada.

  • Keputusan tentang kemampuan yang akan diizinkan untuk ChatGPT, seperti Cortex Search, Cortex Analyst, SQL hanya-baca, atau prosedur maupun fungsi tertentu.

  • Peran Snowflake dengan hak akses minimum yang akan digunakan pengguna saat mengotorisasi aplikasi.

  • Prefiks host akun Snowflake, termasuk sufiks wilayah atau cloud jika ada.

Jika akun Snowflake Anda membatasi akses melalui kebijakan jaringan atau daftar IP yang diizinkan, minta admin Snowflake untuk mengizinkan koneksi masuk dari rentang IP keluar konektor ChatGPT yang berlaku saat ini. Daftar ini bersifat dinamis dan harus terus diperbarui.

Nilai yang perlu disiapkan

  • Prefiks host Snowflake: semua bagian sebelum .snowflakecomputing.com dalam URL akun Snowflake.

  • Database: database yang berisi server MCP.

  • Skema: skema yang berisi server MCP.

  • Nama server MCP: nama objek server MCP Snowflake.

  • URL lengkap server MCP terkelola, jika layar penyiapan ChatGPT meminta URL.

  • Peran Snowflake: peran yang harus digunakan pengguna saat mengotorisasi aplikasi.

  • Daftar alat: objek dan tindakan Snowflake yang ingin Anda sediakan untuk digunakan ChatGPT.

Tentukan apa yang dapat dilakukan ChatGPT

Pilih hanya kemampuan yang ingin Anda sediakan. Opsi yang umum digunakan meliputi:

  • Pencarian dengan Cortex Search untuk menemukan jawaban dalam data atau konten Snowflake yang terindeks.

  • Tanya jawab dengan Cortex Analyst melalui tampilan semantik yang disetujui.

  • SQL hanya-baca untuk akses kueri yang terkontrol.

  • Agen Snowflake, prosedur tersimpan, atau UDF untuk alur kerja tertentu.

Jika Anda mengaktifkan SQL, tetap gunakan mode hanya-baca kecuali organisasi Anda telah meninjau dan menyetujui akses tulis.

Buka lembar kerja Snowflake

  1. Masuk ke aplikasi Snowflake.

  2. Beralih ke peran yang dapat membuat server MCP dan memberikan akses.

  3. Buka Workspace.

    Snowflake navigation menu showing Workspaces selected during MCP server setup.
  4. Buat workspace dengan file SQL.

    Snowflake workspace with a SQL file open for MCP server setup.
  5. Atur konteks workspace ke database dan skema tempat server MCP akan dibuat.

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

Buat server MCP Snowflake

Di Snowflake, masuk dengan peran yang dapat membuat server MCP dan memberikan akses. Buka lembar kerja di database dan skema tempat server MCP akan dibuat.

Jalankan pernyataan seperti contoh berikut. Ganti nama-nama tersebut dengan nama database, skema, layanan, tampilan, warehouse, dan server Snowflake Anda sendiri.

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.

Nama alat dan objek Snowflake dalam pernyataan ini merupakan contoh:

  • support-search menyediakan akses ke layanan Cortex Search yang ditentukan.

  • revenue-analyst menyediakan akses ke tampilan semantik yang ditentukan. Tambahkan alat untuk tampilan lain sesuai kebutuhan.

  • sql-readonly menyediakan SQL hanya-baca dengan warehouse yang ditentukan.

Gunakan nama alat yang konsisten dan deskriptif agar ChatGPT dapat memilih alat yang tepat. Membuat server MCP tidak otomatis memberikan akses ke objek Snowflake yang mendasarinya.

Untuk opsi spesifikasi tambahan, lihat: Membuat server MCP yang dikelola Snowflake.

Berikan izin Snowflake yang tepat

Pilih peran Snowflake yang akan digunakan pengguna saat memberikan otorisasi, lalu berikan akses kepada peran tersebut ke:

  1. Database dan skema.

  2. Server MCP.

  3. Setiap objek yang digunakan oleh alat, seperti layanan pencarian, tampilan semantik, atau warehouse.

Contoh:

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;

Jika server MCP menyediakan akses ke UDF, prosedur tersimpan, atau Agen Cortex, berikan juga izin yang diperlukan untuk objek tersebut.

Pastikan Snowflake sudah siap

Jalankan:

SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;

Lalu jalankan:

DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;

Pastikan:

  • Server berada di database dan skema yang diharapkan.

  • Daftar alat sesuai dengan yang Anda inginkan.

  • identifier setiap alat mengarah ke objek Snowflake yang benar.

  • Peran yang digunakan untuk terhubung memiliki izin USAGE pada server MCP.

  • Peran yang digunakan untuk terhubung memiliki izin yang diperlukan pada setiap objek yang mendasarinya.

Masukkan detail server Snowflake di ChatGPT

  1. Di ChatGPT, beralihlah ke akun atau workspace tempat aplikasi akan tersedia.

  2. Buka Pengaturan > Plugin untuk penyiapan pribadi, atau sebagai admin workspace, buka Pengaturan workspace > Plugin untuk penyiapan workspace.

  3. Cari Snowflake.

  4. Aktifkan Snowflake - Templat Resmi.

  5. Buka Snowflake - Templat Resmi, masukkan nama koneksi yang jelas, lalu pilih Hubungkan.

  6. Masukkan URL lengkap server MCP terkelola:

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

Contoh:

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.

Jika layar penyiapan menampilkan konfigurasi Snowflake dalam kolom terpisah, gunakan nilai yang sama dari URL tersebut:

Prefiks host Snowflake

Gunakan semua bagian sebelum .snowflakecomputing.com dalam URL akun Snowflake Anda, termasuk sufiks wilayah atau cloud jika ada.

Misalnya, jika URL akun diawali dengan:

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

Prefiks host-nya adalah:

myorg-myaccount.azure

Database

Masukkan database yang berisi server MCP, misalnya:

CHATGPT_APPS

Skema

Masukkan skema yang berisi server MCP, misalnya:

TOOLS

Nama server MCP

Masukkan nama objek server MCP Snowflake, misalnya:

CHATGPT_SNOWFLAKE_MCP

Konfigurasikan Oauth

Pilih opsi Oauth yang tersedia untuk akun Anda dan memenuhi persyaratan organisasi Anda. Kedua opsi menggunakan penyiapan server MCP yang sama di atas, serta pengujian koneksi dan kontrol akses di bawah.

Untuk kedua opsi Oauth, saat Anda menggunakan session:role:all, Snowflake menggunakan peran default setiap pengguna. Peran default harus tercakup dalam daftar peran yang diizinkan oleh integrasi Oauth, jika daftar tersebut dikonfigurasi, dan tidak boleh diblokir. Memiliki peran lain yang disetujui tidak membuat peran tersebut dipilih secara otomatis.

Oauth bawaan

Sebelum melanjutkan, selesaikan bagian penyiapan bersama di atas untuk membuat server MCP, memberikan izin, memverifikasi server, dan memasukkan detailnya di ChatGPT. Langkah ini wajib dilakukan meskipun Anda langsung membuka bagian ini.

Gunakan opsi ini hanya jika aplikasi mitra ChatGPT tersedia untuk akun Snowflake Anda dan Oauth bawaan tersedia di dialog penyiapan ChatGPT.

  1. Minta admin Snowflake untuk mengaktifkan integrasi mitra ChatGPT di akun Snowflake yang sama dengan tempat server MCP berada. Gunakan kembali integrasi mitra ChatGPT yang sudah diaktifkan.

  2. Di dialog penyiapan ChatGPT, gunakan Oauth bawaan. Anda tidak perlu memasukkan ID klien atau secret klien, maupun mendaftarkan URL callback.

  3. Lanjutkan ke bagian Hubungkan dan kelola Snowflake di bawah untuk masuk, memberikan persetujuan, dan mengonfigurasi akses. Kemudian selesaikan bagian Uji aplikasi, termasuk pengujian dengan anggota non-admin yang diizinkan.

Ketentuan tentang peran default, daftar peran yang diizinkan, dan peran yang diblokir di atas juga berlaku untuk opsi ini.

Klien Oauth kustom

Sebelum melanjutkan, selesaikan bagian penyiapan bersama di atas untuk membuat server MCP, memberikan izin, memverifikasi server, dan memasukkan detailnya di ChatGPT. Langkah ini wajib dilakukan meskipun Anda langsung membuka bagian ini.

Untuk klien Oauth kustom, Anda memerlukan ID klien dan secret klien dari Snowflake. Ketentuan tentang peran default, daftar peran yang diizinkan, dan peran yang diblokir di atas juga berlaku untuk opsi ini.

  1. Di dialog penyiapan ChatGPT, pilih Pengaturan Oauth lanjutan > Klien Oauth yang Ditentukan Pengguna, lalu salin URL Callback persis seperti yang ditampilkan di ChatGPT.

  2. Buat integrasi keamanan Oauth kustom dengan OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' dan atur OAUTH_REDIRECT_URI ke URL callback yang sama persis.

  3. Jalankan pernyataan berikut di Snowflake dengan nama integrasi dalam huruf kapital:

    SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('YOUR_INTEGRATION_NAME');

  4. Dari hasil JSON, tempelkan oauth_client_id ke ID klien Oauth dan oauth_client_secret ke Secret klien Oauth di ChatGPT.

  5. Atur Metode autentikasi endpoint token ke client_secret_basic.

Setelah memasukkan kredensial klien kustom, lanjutkan ke bagian Hubungkan dan kelola Snowflake serta Uji aplikasi di bawah.

Hubungkan dan kelola Snowflake

  1. Untuk kedua opsi Oauth, di dialog penyiapan ChatGPT yang sama, pilih Lanjutkan, masuk ke Snowflake, lalu otorisasi koneksi. Anda dapat menggunakan SSO organisasi Anda jika sudah dikonfigurasi.

  2. Untuk penyiapan workspace, konfigurasikan kebijakan pemasangan plugin serta akses peran atau grup bagi anggota yang akan menggunakannya. Pastikan Snowflake dan Snowflake - Templat Resmi sama-sama diaktifkan.

  3. Admin workspace bertanggung jawab mengonfigurasi Akses pengguna untuk peran yang akan menggunakan Snowflake.

  4. Admin workspace bertanggung jawab meninjau Kontrol tindakan untuk alat yang disediakan.

  5. Admin workspace bertanggung jawab meninjau Izin aplikasi untuk menentukan kapan ChatGPT meminta persetujuan anggota sebelum menggunakan aplikasi.

Izin aplikasi ini berlaku untuk percakapan ChatGPT. Agen Workspace menggunakan kontrol per agen yang ditetapkan oleh pembuatnya untuk menentukan tindakan aplikasi yang tersedia dan kapan pengguna akhir diminta menyetujuinya. Untuk perilaku agen, lihat: Agen Workspace ChatGPT untuk Enterprise dan Business.

Uji aplikasi

  1. Buka obrolan, pilih Snowflake, lalu uji koneksinya.

  2. Pastikan ChatGPT menemukan alat yang Anda konfigurasikan.

  3. Jalankan tindakan baca berisiko rendah terlebih dahulu, seperti pencarian atau kueri hanya-baca pada data yang disetujui.

  4. Pastikan izin Snowflake mencegah akses di luar peran dan objek yang disetujui.

  5. Untuk penyiapan workspace, lakukan pengujian dengan anggota non-admin yang diizinkan dan memiliki peran default Snowflake yang berbeda. Keberhasilan koneksi admin tidak menjamin bahwa setiap anggota dapat terhubung.

Bagi admin workspace, mengaktifkan Snowflake saja tidak cukup. Jika Snowflake - Templat Resmi belum diaktifkan dan dihubungkan, plugin mungkin terlihat nonaktif bagi anggota.

URL server MCP dan cara kerja Oauth

ChatGPT terhubung ke URL lengkap server MCP yang dikelola Snowflake:

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

ChatGPT menggunakan prefiks host Snowflake dari URL tersebut untuk menentukan endpoint Oauth Snowflake berikut:

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

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

Jangan tempelkan URL Snowsight, URL dasar akun Snowflake saja, atau URL dengan segmen jalur tambahan. URL MCP harus menyertakan /api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server} dan cocok persis dengan objek Snowflake Anda.

Pemecahan masalah

Snowflake aktif untuk admin tetapi nonaktif untuk anggota

  • Pastikan Snowflake dan Snowflake - Templat Resmi sama-sama diaktifkan di Pengaturan workspace > Plugin.

  • Buka Snowflake - Templat Resmi dan selesaikan alur Hubungkan. Mengaktifkan templat tanpa menghubungkannya tidak cukup.

  • Buka Snowflake dan pastikan templat muncul sebagai aplikasi yang diperlukan.

  • Pastikan peran atau grup anggota yang mengalami masalah diizinkan oleh kebijakan pemasangan plugin.

Server MCP tidak ditemukan

  • Periksa kembali URL lengkap server MCP, atau keempat kolom templat jika layar penyiapan Anda memintanya.

  • Pastikan server MCP berada di database dan skema yang persis sama.

Tidak ada alat yang muncul di ChatGPT

  • Pastikan spesifikasi server MCP menyertakan alat.

  • Pastikan peran memiliki izin USAGE pada server MCP.

Alat muncul tetapi gagal saat digunakan

  • Pastikan peran memiliki izin yang diperlukan pada objek Snowflake yang mendasarinya, seperti layanan pencarian, tampilan semantik, warehouse, prosedur, atau UDF.

Alat SQL gagal

  • Pastikan nama warehouse benar dan warehouse sedang berjalan.

  • Pastikan peran memiliki izin USAGE pada warehouse.

  • Pastikan read_only: true sudah diatur jika Anda menginginkan akses hanya-baca.

Peran ALL yang diminta telah diblokir secara eksplisit

Minta admin Snowflake Anda membandingkan peran default Anda dengan peran yang diizinkan dan diblokir oleh integrasi Oauth. Memiliki peran lain yang diizinkan tidak membuat peran tersebut dipilih secara otomatis. Jika sesuai, ubah peran default ke peran yang disetujui dan hubungkan kembali. Mengubah peran default juga memengaruhi sesi Snowflake Anda di luar ChatGPT.

Otorisasi gagal

  • Pastikan pengguna dapat masuk ke Snowflake.

  • Saat menggunakan session:role:all, pastikan peran default pengguna diizinkan oleh integrasi Oauth.

  • Pastikan penyiapan menggunakan alur Oauth MCP yang dikelola Snowflake.

  • Jika Anda menggunakan klien Oauth kustom, pastikan ID Klien dan Secret Klien cocok dengan integrasi Oauth Snowflake, dan URI pengalihannya cocok persis dengan URL Callback yang ditampilkan di ChatGPT.

    Jika Anda menggunakan Oauth bawaan, minta admin Snowflake memeriksa apakah integrasi mitra ChatGPT tersedia dan diaktifkan di akun tempat server MCP berada.

Kebijakan jaringan atau daftar IP yang diizinkan di Snowflake memblokir konektor

  • Minta admin Snowflake memperbarui kebijakan jaringan atau aturan akses Snowflake.

  • Izinkan koneksi masuk dari rentang IP keluar konektor ChatGPT yang berlaku saat ini.

  • Konfigurasikan daftar IP yang diizinkan ini di Snowflake. Daftar ini terpisah dari daftar IP yang diizinkan untuk workspace ChatGPT.

  • Jika memungkinkan, otomatisasikan pembaruan dari JSON yang dipublikasikan karena rentang IP dapat berubah.

Masalah koneksi nama host

Gunakan prefiks host Snowflake yang benar. Nama host Snowflake dengan garis bawah dapat menimbulkan masalah; sebaiknya gunakan tanda hubung.

Referensi

Apakah artikel ini membantu?