OpenAI
هذه الصفحة مترجمة باستخدام الترجمة الآلية. تفضل بالاطّلاع على المقال الأصلي بالإنجليزية.

إعداد قالب تطبيق Snowflake في ChatGPT

تعرّف على كيفية ربط ChatGPT بخادم MCP مُدار من Snowflake، سواء كنت مشرف مساحة عمل مشتركة في ChatGPT أو مستخدمًا لـ ChatGPT Plus أو ChatGPT Pro.

تم التحديث: yesterday

استخدم هذا الدليل إذا كنت مشرف مساحة عمل مشتركة في ChatGPT أو مستخدمًا لـ ChatGPT Plus أو ChatGPT Pro وتريد ربط ChatGPT بـ Snowflake عبر خادم MCP مُدار من Snowflake.

تُجرى معظم خطوات الإعداد في Snowflake. بعد تجهيز Snowflake، أكمل اتصال قالب Snowflake في ChatGPT، ثم فعّل المكوّن الإضافي لـ Snowflake الذي يستخدم ذلك القالب.

ما الذي ستُعدّه؟

ستنشئ خادم MCP مُدارًا من Snowflake ليكون نقطة نهاية الموصّل لـ ChatGPT. يحدّد خادم MCP ما يلي:

  • الإجراءات التي يمكن لـ ChatGPT استخدامها.

  • بيانات Snowflake أو عناصره التي يمكن لتلك الأدوات الوصول إليها.

  • دور Snowflake الذي يستخدمه كل مستخدم عند منح الإذن.

  • قاعدة بيانات Snowflake والمخطط واسم خادم MCP التي تعرّف نقطة النهاية.

بعد ذلك، اضبط Snowflake - القالب الرسمي في ChatGPT باستخدام عنوان URL الكامل لخادم MCP المُدار. قد تعرض شاشة إعداد القالب عنوان URL في أربعة حقول منفصلة:

  • بادئة مضيف Snowflake.

  • قاعدة البيانات.

  • المخطط.

  • اسم خادم MCP.

لا يمكن لـ ChatGPT اكتشاف واستخدام سوى الأدوات التي يتيحها خادم MCP ويسمح بها دور Snowflake الذي يستخدمه المستخدم عند منح الإذن.

قبل البدء

ستحتاج إلى:

  • صلاحيات مشرف أو مالك مساحة عمل مشتركة في ChatGPT، أو اشتراك ChatGPT Plus أو ChatGPT 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، فامنح أيضًا الأذونات المطلوبة لذلك العنصر.

التحقق من جاهزية Snowflake

نفّذ:

SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;

ثم نفّذ:

DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;

تأكّد مما يلي:

  • وجود الخادم في قاعدة البيانات والمخطط المتوقعين.

  • تطابق قائمة الأدوات مع ما حددته.

  • إشارة identifier لكل أداة إلى عنصر Snowflake الصحيح.

  • امتلاك الدور المستخدم للاتصال إذن USAGE على خادم MCP.

  • امتلاك الدور المستخدم للاتصال الأذونات اللازمة لكل عنصر أساسي.

إدخال تفاصيل خادم Snowflake في ChatGPT

  1. في ChatGPT، انتقل إلى الحساب أو مساحة العمل المشتركة التي تريد إتاحة التطبيق فيها.

  2. افتح الإعدادات. للإعداد على مستوى مساحة العمل المشتركة، افتح إعدادات مساحة العمل بصفتك مشرفًا عليها.

  3. انتقل إلى المكوّنات الإضافية.

  4. ابحث عن Snowflake.

  5. فعّل Snowflake - القالب الرسمي.

  6. افتح Snowflake - القالب الرسمي، وأدخل اسمًا واضحًا للاتصال، ثم اختر اتصال.

  7. أدخل عنوان 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

تحتاج إلى معرّف العميل وسر العميل من Snowflake للاتصال.

عند استخدام session:role:all، يستخدم Snowflake الدور الافتراضي لكل مستخدم. يجب أن تسمح قائمة الأدوار في تكامل OAuth بالدور الافتراضي، إن كانت مُعدّة، وألّا يكون الدور محظورًا. لا يؤدي وجود دور آخر معتمد إلى اختياره تلقائيًا.

  1. في نافذة إعداد ChatGPT، افتح إعدادات OAuth المتقدمة، واختر عميل OAuth يحدده المستخدم، ثم انسخ عنوان URL لمعاودة الاتصال الظاهر في ChatGPT.

  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 وإدارته

  1. في نافذة إعداد ChatGPT نفسها، اختر متابعة، وسجّل الدخول إلى Snowflake، ثم امنح الاتصال الإذن.

  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 يتضمن مقاطع مسار إضافية. يجب أن يتضمن عنوان 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 في Snowflake، ومن تطابق عنوان URI لإعادة التوجيه مع عنوان URL لمعاودة الاتصال الظاهر في ChatGPT.

سياسة شبكة Snowflake أو قائمة سماح عناوين IP تحظر الموصّل

  • اطلب من مشرف Snowflake تحديث سياسة شبكة Snowflake أو قواعد الوصول.

  • اسمح بالاتصالات الواردة من نطاقات عناوين IP الحالية لخروج موصّل ChatGPT.

  • اضبط قائمة السماح هذه في Snowflake. وهي منفصلة عن قائمة سماح عناوين IP لمساحة عمل ChatGPT.

  • أتمت تحديثات ملف JSON المنشور متى أمكن، لأن النطاقات قد تتغير.

مشكلة في الاتصال باسم المضيف

استخدم بادئة مضيف Snowflake الصحيحة. قد تسبب أسماء مضيفي Snowflake التي تتضمن شرطات سفلية مشكلات؛ لذا يُفضّل استخدام الشرطات.

المراجع

هل كانت هذه المقالة مفيدة؟