OpenAI
Эта страница была переведена машинным переводом. Открыть оригинальную статью на английском.

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

Узнайте, как администраторы рабочей области могут настроить шаблон приложения Snowflake в ChatGPT с помощью MCP-сервера, управляемого Snowflake.

Обновлено: 10 days ago

Используйте это руководство, если вы администратор рабочей области ChatGPT и настраиваете шаблон приложения Snowflake для своей организации. Шаблон — это не готовое приложение, которым пользуются участники. Это процесс настройки, который создает черновик приложения для конкретной рабочей области после того, как вы предоставите необходимую конфигурацию Snowflake.

Для Snowflake большая часть настройки выполняется в Snowflake. Вы создаете MCP-сервер, управляемый Snowflake, предоставляете нужной роли доступ к MCP-серверу и его базовым объектам, а затем вводите URL управляемого MCP-сервера или его составные поля в процессе настройки шаблона ChatGPT. После того как ChatGPT создаст черновик приложения, вы сможете опубликовать его и управлять им, как другими приложениями рабочей области.

Что вы настраиваете

Вы создаете приложение Snowflake для конкретной рабочей области в ChatGPT. Приложение подключается к MCP-серверу, управляемому Snowflake, который определяет:

  • Какие действия может использовать ChatGPT, называемые инструментами.

  • К каким данным или объектам Snowflake эти инструменты могут получать доступ.

  • С какой ролью Snowflake пользователи должны проходить авторизацию.

  • Какая база данных, схема и имя MCP-сервера Snowflake идентифицируют конечную точку коннектора.

ChatGPT может обнаруживать и использовать только инструменты, предоставленные MCP-сервером и разрешенные ролью Snowflake, с которой пользователь проходит авторизацию.

Перед началом

Вам потребуется:

  • Доступ администратора или владельца рабочей области ChatGPT.

  • Доступ к Snowflake, позволяющий создавать объекты MCP-сервера и предоставлять разрешения.

  • База данных и схема Snowflake, где будет размещен MCP-сервер.

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

  • Роль Snowflake с минимально необходимыми привилегиями, которую пользователи будут использовать при авторизации приложения.

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

Значения для подготовки

  • Префикс хоста 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, оставьте его только для чтения, если ваша организация не проверила и не одобрила доступ на запись.

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

В Snowflake войдите с ролью, которая может создавать MCP-сервер и предоставлять доступ. Откройте worksheet в базе данных и схеме, где должен быть создан MCP-сервер.

Создайте MCP-сервер, в котором перечислены только инструменты, которые должен использовать ChatGPT. Замените имена объектов собственными именами базы данных, схемы, сервисов, представлений, warehouse и сервера 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: "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"
$$;

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

Предоставьте нужные разрешения Snowflake

Выберите роль Snowflake, с которой пользователи будут проходить авторизацию, затем предоставьте этой роли доступ к базе данных, схеме, MCP-серверу и каждому базовому объекту, используемому инструментами.

Пример:

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 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;

Проверьте:

  • Сервер существует в ожидаемой базе данных и схеме.

  • Список инструментов соответствует задуманному.

  • Каждый идентификатор инструмента указывает на правильный объект Snowflake.

  • Подключающаяся роль имеет USAGE для MCP-сервера.

  • Подключающаяся роль имеет необходимые разрешения для каждого базового объекта.

Начните настройку шаблона в ChatGPT

  1. В ChatGPT переключитесь на рабочую область, где приложение должно быть доступно.

  2. Откройте Настройки рабочей области > Приложения.

  3. Выберите Каталог.

  4. Найдите Snowflake.

  5. Выберите шаблон приложения Snowflake и начните настройку.

  6. Введите понятное имя и описание приложения, например Snowflake или Snowflake - Analytics.

  7. Введите сведения об управляемом MCP-сервере, запрошенные в процессе настройки.

Если экран настройки запрашивает полный URL управляемого MCP-сервера, используйте этот формат:

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

Если экран настройки запрашивает отдельные поля, используйте те же значения из этого URL:

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

  • База данных.

  • Схема.

  • Имя MCP-сервера.

Создайте и опубликуйте черновик приложения

  1. Сохраните настройку шаблона Snowflake в ChatGPT.

  2. Создайте черновик приложения.

  3. Проверьте сведения черновика приложения, настройки аутентификации и доступные действия.

  4. Опубликуйте черновик приложения, когда он будет готов.

  5. Убедитесь, что приложение отображается в Настройки рабочей области > Приложения > Включено.

  6. Настройте Доступ пользователей для ролей, которые должны его использовать.

  7. Проверьте Управление действиями для предоставленных инструментов.

  8. Проверьте Разрешения приложения, чтобы выбрать, когда ChatGPT будет спрашивать участников перед использованием приложения.

Эти разрешения приложения применяются к беседам ChatGPT. Агенты рабочей области используют элементы управления для каждого агента, заданные его создателем, чтобы определять, какие действия приложения доступны и когда конечных пользователей просят их одобрить. О поведении агентов см.: Агенты рабочей области ChatGPT для Enterprise и Business.

Протестируйте приложение

  1. Запустите процесс подключения из ChatGPT от имени разрешенного тестового пользователя.

  2. Войдите в Snowflake и выберите нужную роль, если появится запрос.

  3. Убедитесь, что ChatGPT обнаруживает ожидаемые инструменты с MCP-сервера.

  4. Сначала выполните действие чтения с низким риском, например поиск или запрос только для чтения к утвержденным данным.

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

URL MCP-сервера и поведение OAuth

ChatGPT подключается к полному URL MCP-сервера, управляемого Snowflake. ChatGPT использует префикс хоста Snowflake из этого URL для определения конечных точек Snowflake OAuth.

Не вставляйте URL Snowsight, корневой URL учетной записи Snowflake сам по себе или любой URL с дополнительными сегментами пути. URL MCP должен включать путь к базе данных, схеме и MCP-серверу и должен точно соответствовать вашим объектам Snowflake.

Устранение неполадок

  • MCP-сервер не найден: повторно проверьте полный URL MCP-сервера или отдельные поля префикса хоста, базы данных, схемы и сервера.

  • В ChatGPT не отображаются инструменты: убедитесь, что спецификация MCP-сервера включает инструменты и что роль имеет USAGE для MCP-сервера.

  • Инструмент отображается, но при использовании выдает ошибку: убедитесь, что роль имеет нужное разрешение для базового объекта Snowflake.

  • Инструмент SQL выдает ошибку: убедитесь, что имя warehouse указано правильно, warehouse доступен, роль имеет для него USAGE, а read_only имеет значение true, если вы планировали доступ только для чтения.

  • Авторизация не выполняется: убедитесь, что пользователь может войти в Snowflake и использовать нужную роль.

  • Проблема с подключением к имени хоста: используйте правильный префикс хоста Snowflake. Имена хостов Snowflake с символами подчеркивания могут вызывать проблемы; предпочтительнее дефисы.

Была ли эта статья полезной?