OpenAI
Тази страница е машинно преведена. Вижте оригиналната статия на английски език.

Настройване на шаблона за приложение Snowflake в ChatGPT

Научете как администраторите на работни пространства в ChatGPT и потребителите на ChatGPT Plus или ChatGPT Pro могат да свържат ChatGPT с управляван от Snowflake MCP сървър.

Актуализирано: 9 days ago

Използвайте това ръководство, ако сте администратор на работно пространство в ChatGPT или потребител на ChatGPT Plus или Pro и искате да свържете ChatGPT със Snowflake чрез MCP сървър, управляван от Snowflake.

Повечето настройки се извършват в Snowflake. След като Snowflake е готов, завършете свързването на шаблона на Snowflake в ChatGPT, след което активирайте плъгина Snowflake, който използва този шаблон.

  • Вграден OAuth: Когато е налично за вашия акаунт в Snowflake и в ChatGPT, използвайте партньорското приложение ChatGPT, активирано от администратор на Snowflake. Влезте в Snowflake чрез SSO на вашата организация, ако е конфигурирано. Не е необходимо да въвеждате идентификатор или таен ключ на клиента в ChatGPT. Следвайте инструкциите в раздела „Вграден OAuth“ по-долу.

  • Персонализиран OAuth клиент: Използвайте този вариант, ако организацията ви изисква собствен OAuth клиент или вграденият OAuth не е наличен. Следвайте инструкциите в раздела „Персонализиран OAuth клиент“ по-долу.

И двата варианта на OAuth изискват описаните по-долу общи настройки на MCP сървъра, разрешения за използваните обекти и мрежов достъп. Преди да конфигурирате OAuth, изпълнете общите стъпки за настройка до раздела „Въведете данните за сървъра на Snowflake в ChatGPT“ включително.

Какво настройвате

Създавате MCP сървър, управляван от Snowflake, който служи като крайна точка на конектора за ChatGPT. MCP сървърът определя:

  • Кои действия може да използва ChatGPT.

  • До кои данни или обекти в Snowflake имат достъп тези инструменти.

  • С коя роля в Snowflake всеки потребител извършва упълномощаването.

  • Кои база данни, схема и име на MCP сървър в Snowflake идентифицират крайната точка.

След това конфигурирате Snowflake – Официален шаблон в ChatGPT с пълния URL адрес на управлявания MCP сървър. Екранът за настройка на шаблона може да показва URL адреса като четири отделни полета:

  • Префикс на хоста на Snowflake.

  • База данни.

  • Схема.

  • Име на MCP сървъра.

ChatGPT може да открива и използва само инструменти, предоставени от MCP сървъра и разрешени от ролята в Snowflake, с която потребителят извършва упълномощаването.

Преди да започнете

Необходими са ви:

  • Достъп като администратор или собственик на работно пространство в ChatGPT или достъп до ChatGPT Plus или Pro.

  • Достъп до Snowflake с права за създаване на обекти от тип MCP сървър и предоставяне на разрешения.

  • Базата данни и схемата в Snowflake, в които ще се намира MCP сървърът.

  • Решение какво да бъде разрешено на ChatGPT да използва, например Cortex Search, Cortex Analyst, SQL само за четене или конкретна процедура или функция.

  • Роля в Snowflake с минимално необходимите права, която потребителите ще използват при упълномощаване на приложението.

  • Префиксът на хоста на акаунта в Snowflake, включително суфикс за региона или облачната платформа, ако има такъв.

Ако акаунтът ви в Snowflake ограничава достъпа чрез мрежова политика или списък с разрешени IP адреси, помолете администратор на Snowflake да разреши входящи връзки от текущите диапазони от изходящи IP адреси на конекторите на ChatGPT. Списъкът се променя и трябва да се поддържа актуален.

Стойности, които да подготвите

  • Префикс на хоста на Snowflake: всичко преди .snowflakecomputing.com в URL адреса на акаунта в Snowflake.

  • База данни: базата данни, която съдържа MCP сървъра.

  • Схема: схемата, която съдържа MCP сървъра.

  • Име на MCP сървъра: името на обекта от тип MCP сървър в Snowflake.

  • Пълният URL адрес на управлявания MCP сървър, ако екранът за настройка в ChatGPT изисква URL адрес.

  • Роля в Snowflake: ролята, която потребителите трябва да използват при упълномощаване на приложението.

  • Списък с инструменти: обектите и действията в Snowflake, които искате ChatGPT да използва.

Решете какво може да прави ChatGPT

Изберете само възможностите, които искате да предоставите. Често използваните опции включват:

  • Търсене с Cortex Search за намиране на отговори в индексирани данни или съдържание в Snowflake.

  • Въпроси и отговори с Cortex Analyst чрез одобрен семантичен изглед.

  • SQL само за четене за контролиран достъп чрез заявки.

  • Агент на Snowflake, съхранена процедура или UDF за конкретен работен процес.

Ако активирате SQL, ограничете го само до четене, освен ако организацията ви не е прегледала и одобрила достъп за запис.

Отворете работен лист в Snowflake

  1. Влезте в приложението Snowflake.

  2. Превключете към роля, която позволява създаване на MCP сървър и предоставяне на достъп.

  3. Отидете в Работни пространства.

    Snowflake navigation menu showing Workspaces selected during MCP server setup.
  4. Създайте работно пространство със SQL файл.

    Snowflake workspace with a SQL file open for MCP server setup.
  5. Задайте като контекст на работното пространство базата данни и схемата, в които ще бъде създаден MCP сървърът.

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

Създайте MCP сървъра в Snowflake

Влезте в Snowflake с роля, която позволява създаване на MCP сървър и предоставяне на достъп. Отворете работен лист в базата данни и схемата, където трябва да бъде създаден MCP сървърът.

Изпълнете команда като тази в следния пример. Заменете имената с тези на вашата база данни, схема, услуги, изгледи, виртуален склад и сървър в 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.

Имената на инструментите и обектите на Snowflake в тази команда са примерни:

  • support-search предоставя достъп до посочената услуга Cortex Search.

  • revenue-analyst предоставя достъп до посочения семантичен изглед. При нужда добавете инструменти за други изгледи.

  • sql-readonly предоставя SQL достъп само за четене чрез посочения виртуален склад.

Използвайте постоянни, описателни имена за инструментите, за да може ChatGPT да избере правилния инструмент. Създаването на MCP сървъра не предоставя автоматично достъп до използваните обекти в Snowflake.

За допълнителни опции за спецификацията вижте: Създаване на MCP сървър, управляван от Snowflake.

Предоставете правилните разрешения в Snowflake

Изберете ролята в Snowflake, с която потребителите ще извършват упълномощаването, след което ѝ предоставете достъп до:

  1. Базата данни и схемата.

  2. MCP сървъра.

  3. Всеки обект, използван от инструментите, например услуга за търсене, семантичен изглед или виртуален склад.

Пример:

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;

Ако MCP сървърът предоставя достъп до UDF, съхранена процедура или Cortex Agent, предоставете необходимите разрешения и за този обект.

Проверете дали Snowflake е готов

Изпълнете:

SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;

След това изпълнете:

DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;

Проверете дали:

  • Сървърът съществува в очакваната база данни и схема.

  • Списъкът с инструменти е този, който сте предвидили.

  • Полето identifier на всеки инструмент сочи към правилния обект в Snowflake.

  • Ролята, използвана за свързване, има разрешение USAGE за MCP сървъра.

  • Ролята, използвана за свързване, има необходимите разрешения за всеки използван обект.

Въведете данните за сървъра на Snowflake в ChatGPT

За настройка на работно пространство отворете admin.openai.com, изберете желаното работно пространство в ChatGPT и отворете „Плъгини“. За навигацията в работното пространство и достъпа до приложения от предишни версии вижте Администраторски контроли, сигурност и съответствие за плъгини и приложения.

  1. В ChatGPT превключете към акаунта или работното пространство, в което приложението трябва да е достъпно.

  2. Отидете в Настройки > Плъгини за лична настройка или в Администраторска конзола > Плъгини, ако сте администратор и настройвате работно пространство.

  3. Потърсете Snowflake.

  4. Активирайте Snowflake – Официален шаблон.

  5. Отворете Snowflake – Официален шаблон, въведете ясно име за връзката и изберете Свързване.

  6. Въведете пълния URL адрес на управлявания MCP сървър:

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

Пример:

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.

Ако екранът за настройка показва конфигурацията на Snowflake като отделни полета, използвайте същите стойности от URL адреса:

Префикс на хоста на Snowflake

Използвайте всичко преди .snowflakecomputing.com в URL адреса на акаунта си в Snowflake, включително суфикс за региона или облачната платформа, ако има такъв.

Например, ако URL адресът на акаунта започва с:

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

Префиксът на хоста е:

myorg-myaccount.azure

База данни

Въведете базата данни, която съдържа MCP сървъра, например:

CHATGPT_APPS

Схема

Въведете схемата, която съдържа MCP сървъра, например:

TOOLS

Име на MCP сървъра

Въведете името на обекта от тип MCP сървър в Snowflake, например:

CHATGPT_SNOWFLAKE_MCP

Конфигурирайте OAuth

Изберете варианта на OAuth, който е наличен за акаунта ви и отговаря на изискванията на вашата организация. И двата варианта използват общите настройки на MCP сървъра по-горе и тестовете на връзката и контролите за достъп по-долу.

И при двата варианта на OAuth, когато използвате session:role:all, Snowflake използва ролята по подразбиране на всеки потребител. Ролята по подразбиране трябва да е разрешена в списъка с разрешени роли на OAuth интеграцията, ако такъв е конфигуриран, и не трябва да е блокирана. Наличието на друга одобрена роля не води до автоматичния ѝ избор.

Вграден OAuth

Преди да продължите, изпълнете стъпките в общите раздели по-горе, за да създадете MCP сървъра, да предоставите разрешения, да проверите сървъра и да въведете данните му в ChatGPT. Това е задължително, дори ако сте отворили директно този раздел.

Използвайте този вариант само когато партньорското приложение ChatGPT е налично за акаунта ви в Snowflake и вграденият OAuth е наличен в диалоговия прозорец за настройка в ChatGPT.

  1. Помолете администратор на Snowflake да активира партньорската интеграция с ChatGPT в същия акаунт в Snowflake, който хоства MCP сървъра. Използвайте повторно съществуваща активирана партньорска интеграция с ChatGPT.

  2. В диалоговия прозорец за настройка в ChatGPT използвайте вградения OAuth. Не е необходимо да въвеждате идентификатор или таен ключ на клиента, нито да регистрирате URL адрес за обратно извикване.

  3. Продължете с раздела „Свържете и управлявайте Snowflake“ по-долу, за да влезете, да дадете съгласие и да конфигурирате достъпа. След това изпълнете стъпките в „Тествайте приложението“, включително тестове с членове с разрешен достъп, които не са администратори.

Описаното по-горе поведение за ролята по подразбиране, списъка с разрешени роли и блокираните роли важи и за този вариант.

Персонализиран OAuth клиент

Преди да продължите, изпълнете стъпките в общите раздели по-горе, за да създадете MCP сървъра, да предоставите разрешения, да проверите сървъра и да въведете данните му в ChatGPT. Това е задължително, дори ако сте отворили директно този раздел.

За персонализиран OAuth клиент са ви необходими идентификатор и таен ключ на клиента от Snowflake. Описаното по-горе поведение за ролята по подразбиране, списъка с разрешени роли и блокираните роли важи и за този вариант.

  1. В диалоговия прозорец за настройка в ChatGPT изберете Разширени настройки на OAuth > Дефиниран от потребителя OAuth клиент и копирайте точно показания в ChatGPT URL адрес за обратно извикване.

  2. Създайте персонализирана интеграция за сигурност с OAuth с OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' и задайте за OAUTH_REDIRECT_URI точно този URL адрес за обратно извикване.

  3. Изпълнете следната команда в Snowflake, като използвате името на интеграцията с главни букви:

    SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('YOUR_INTEGRATION_NAME');

  4. От JSON резултата поставете стойността на oauth_client_id в Идентификатор на OAuth клиента, а тази на oauth_client_secret — в Таен ключ на OAuth клиента в ChatGPT.

  5. Задайте client_secret_basic за Метод за удостоверяване на крайната точка за токени.

След като въведете идентификационните данни на персонализирания клиент, продължете с разделите „Свържете и управлявайте Snowflake“ и „Тествайте приложението“ по-долу.

Свържете и управлявайте Snowflake

  1. И при двата варианта на OAuth изберете Продължаване в същия диалогов прозорец за настройка в ChatGPT, влезте в Snowflake и упълномощете връзката. Можете да използвате SSO на вашата организация, ако е конфигурирано.

  2. При настройка на работно пространство конфигурирайте правилата за инсталиране на плъгини и достъпа по роля или група за членовете, които трябва да го използват. Проверете дали са активирани както Snowflake, така и Snowflake – Официален шаблон.

  3. Администраторите на работното пространство отговарят за конфигурирането на Потребителски достъп за ролите, които трябва да използват Snowflake.

  4. Администраторите на работното пространство отговарят за прегледа на Контрол на действията за предоставените инструменти.

  5. Администраторите на работното пространство отговарят за прегледа на Разрешения на приложението, за да изберат кога ChatGPT да иска съгласие от членовете, преди да използва приложението.

Тези разрешения на приложението се прилагат за разговорите в ChatGPT. Агентите в работното пространство използват индивидуални настройки, зададени от създателя на всеки Агент, за да определят кои действия на приложенията са достъпни и кога крайните потребители трябва да ги одобрят. За поведението на Агентите вижте: Агенти в работното пространство на ChatGPT за Enterprise и Business.

Тествайте приложението

  1. Отворете чат, изберете Snowflake и тествайте връзката.

  2. Проверете дали ChatGPT открива инструментите, които сте конфигурирали.

  3. Първо изпълнете действие за четене с нисък риск, например търсене или заявка само за четене в одобрени данни.

  4. Проверете дали разрешенията в Snowflake предотвратяват достъп извън одобрената роля и обекти.

  5. При настройка на работно пространство тествайте с членове с разрешен достъп, които не са администратори и имат различни роли по подразбиране в Snowflake. Успешното свързване на администратор не потвърждава, че всеки член може да се свърже.

За администраторите на работни пространства не е достатъчно да активират само Snowflake. Ако Snowflake – Официален шаблон не е активиран и свързан, плъгинът може да се показва като деактивиран за членовете.

URL адрес на MCP сървъра и работа на OAuth

ChatGPT се свързва чрез пълния URL адрес на MCP сървъра, управляван от Snowflake:

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

ChatGPT използва префикса на хоста на Snowflake от този URL адрес, за да определи следните крайни точки за OAuth в Snowflake:

  • Упълномощаване: https://<snowflake_host_prefix>.snowflakecomputing.com/oauth/authorize

  • Токен: https://<snowflake_host_prefix>.snowflakecomputing.com/oauth/token-request

Не поставяйте URL адрес на Snowsight, само основния URL адрес на акаунта в Snowflake или URL адрес с допълнителни сегменти в пътя. URL адресът на MCP трябва да включва /api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server} и да съответства точно на вашите обекти в Snowflake.

Отстраняване на неизправности

Snowflake е активиран за администратор, но е деактивиран за член

  • Проверете дали както Snowflake, така и Snowflake – Официален шаблон са активирани в Администраторска конзола > Плъгини.

  • Отворете Snowflake – Официален шаблон и завършете процеса Свързване. Само активирането на шаблона без свързване не е достатъчно.

  • Отворете Snowflake и проверете дали шаблонът е показан като необходимо за него приложение.

  • Проверете дали ролята или групата на засегнатия член е разрешена от правилата за инсталиране на плъгини.

MCP сървърът не е намерен

  • Проверете отново пълния URL адрес на MCP сървъра или четирите полета на шаблона, ако екранът за настройка ги изисква.

  • Проверете дали MCP сървърът съществува точно в тази база данни и схема.

В ChatGPT не се показват инструменти

  • Проверете дали спецификацията на MCP сървъра включва инструменти.

  • Проверете дали ролята има разрешение USAGE за MCP сървъра.

Инструментът се показва, но не работи при използване

  • Проверете дали ролята има необходимото разрешение за използвания обект в Snowflake, например услуга за търсене, семантичен изглед, виртуален склад, процедура или UDF.

SQL инструментът не работи

  • Проверете дали името на виртуалния склад е правилно и дали складът работи.

  • Проверете дали ролята има разрешение USAGE за виртуалния склад.

  • Проверете дали е зададено read_only: true, ако искате достъп само за четене.

Заявената роля ALL е изрично блокирана

Помолете администратора на Snowflake да сравни ролята ви по подразбиране с разрешените и блокираните роли в OAuth интеграцията. Наличието на друга разрешена роля не води до автоматичния ѝ избор. Ако е подходящо, сменете ролята по подразбиране с одобрена роля и се свържете отново. Промяната на ролята по подразбиране засяга и сесиите ви в Snowflake извън ChatGPT.

Неуспешно упълномощаване

  • Проверете дали потребителят може да влезе в Snowflake.

  • Когато използвате session:role:all, проверете дали ролята по подразбиране на потребителя е разрешена от OAuth интеграцията.

  • Проверете дали настройката използва OAuth процеса за MCP, управляван от Snowflake.

  • Ако използвате персонализиран OAuth клиент, проверете дали Идентификатор на клиента и Таен ключ на клиента съответстват на OAuth интеграцията в Snowflake и дали нейният URI за пренасочване съвпада точно с URL адрес за обратно извикване, показан в ChatGPT.

    Ако използвате вграден OAuth, помолете администратор на Snowflake да провери дали партньорската интеграция с ChatGPT е налична и активирана в акаунта, който хоства MCP сървъра.

Мрежовата политика или списъкът с разрешени IP адреси в Snowflake блокира конектора

  • Помолете администратор на Snowflake да актуализира мрежовата политика или правилата за достъп в Snowflake.

  • Разрешете входящи връзки от текущите диапазони от изходящи IP адреси на конекторите на ChatGPT.

  • Конфигурирайте този списък с разрешени адреси в Snowflake. Той е отделен от списъка с разрешени IP адреси на работното пространство в ChatGPT.

  • По възможност автоматизирайте актуализациите от публикувания JSON, тъй като диапазоните могат да се променят.

Проблем с връзката заради името на хоста

Използвайте правилния префикс на хоста на Snowflake. Имената на хостове в Snowflake с долни черти могат да причинят проблеми; за предпочитане са тирета.

Беше ли Ви полезна тази статия?