1. مقدمة
يشكّل هذا الدرس التطبيقي حول الترميز جزءًا من سلسلة مؤلّفة من جزأين تستكشف كيفية إنشاء وكيل ذكاء اصطناعي توليدي يراعي الحوكمة.
(يمكنك قراءة الجزء الأول من هذه السلسلة الذي يتناول كيفية إنشاء أساس البيانات من خلال تطبيق "جوانب Dataplex" على جداول BigQuery واختبار القواعد محليًا باستخدام واجهة سطر الأوامر في Gemini. 👉 قراءة الجزء 1)
ومع ذلك، فإنّ الاختبار في واجهة سطر أوامر محلية هو مجرد البداية. لتوفير هذه الميزة لشركتك بأكملها، تحتاج إلى أمان مركزي، واتصالات موحّدة بأدوات الذكاء الاصطناعي، وإطار عمل مناسب للتطبيقات لتنظيم منطق الوكيل وتوفير واجهة محادثة مألوفة.
في هذا الجزء الثاني، ستتغلّب على هذه التحديات وتوسّع نطاق تطبيقك ليصبح جاهزًا للإصدار. ستنشر قواعد الحوكمة في خادم MCP مركزي مستضاف على Cloud Run. بعد ذلك، ستستخدم مجموعة أدوات تطوير الوكيل (ADK) من Google لإنشاء تطبيق الوكيل الفعلي وربطه بأدوات MCP، مع واجهة مستخدم ويب احترافية.

المتطلبات الأساسية
- مشروع Google Cloud تم تفعيل الفوترة فيه
- فهم أساسي لخدمة Cloud Run وحسابات الخدمة في "إدارة الهوية وإمكانية الوصول" ولغة Python
- مجموعات بيانات BigQuery وDataplex Aspects التي تم إنشاؤها في الجزء 1 (لا داعي للقلق إذا حذفتها، فقد أدرجنا نصًا برمجيًا سريعًا أدناه لإعادة إنشائها).
ما ستتعلمه
- كيفية استخدام بروتوكول سياق النموذج (MCP) لتوحيد طريقة تفاعل وكلاء الذكاء الاصطناعي مع بيانات Google Cloud
- كيفية نشر خادم MCP آمن على Cloud Run
- كيفية إنشاء وكيل مستند إلى الذكاء الاصطناعي باستخدام "حزمة تطوير الوكلاء" (ADK) وربطه بخادم MCP الخلفي
- كيفية تشغيل واجهة مستخدم المطوّر المضمّنة في "حزمة تطوير التطبيقات" للتفاعل مع الوكيل الخاضع للإدارة
المتطلبات
- الوصول إلى Google Cloud Shell
المفاهيم الأساسية
- بروتوكول سياق النموذج (MCP): يمكنك اعتبار MCP بمثابة "كابل USB-C عالمي" لوكلاء الذكاء الاصطناعي. بدلاً من كتابة رمز مخصّص لدمج واجهة برمجة التطبيقات مع كل نموذج من نماذج الذكاء الاصطناعي، توفّر "منصّة الذكاء الاصطناعي المركزي" طريقة عادية لربط الذكاء الاصطناعي بشكل آمن بأدوات بيانات مؤسستك (مثل Dataplex وBigQuery).
- حزمة تطوير البرامج للوكلاء (ADK): هي إطار عمل مرن ومفتوح المصدر من Google مصمّم لتبسيط عملية تطوير وكلاء الذكاء الاصطناعي من البداية إلى النهاية. تطبِّق هذه الأداة مبادئ هندسة البرامج على عملية إنشاء الوكلاء، ما يتيح لك تنسيق الأدوات المعقّدة وإدارة الحالة وتشغيل واجهة مستخدم مدمجة للمطوّرين بسهولة من أجل الاختبار والتوزيع.
2. الإعداد والمتطلبات
بدء Cloud Shell
على الرغم من إمكانية تشغيل Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس العملي Google Cloud Shell، وهي بيئة سطر أوامر تعمل في السحابة الإلكترونية.
من Google Cloud Console، انقر على رمز Cloud Shell في شريط الأدوات أعلى يسار الصفحة:

لن يستغرق توفير البيئة والاتصال بها سوى بضع لحظات. عند الانتهاء، من المفترض أن يظهر لك ما يلي:

يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. توفّر هذه الخدمة دليلًا منزليًا ثابتًا بسعة 5 غيغابايت، وتعمل على Google Cloud، ما يؤدي إلى تحسين أداء الشبكة والمصادقة بشكل كبير. يمكن إكمال جميع المهام في هذا الدرس العملي ضمن المتصفّح. لست بحاجة إلى تثبيت أي تطبيق.
إعداد البيئة
افتح Cloud Shell واضبط متغيرات مشروعك لضمان استهداف جميع الأوامر للبنية الأساسية الصحيحة.
export PROJECT_ID=$(gcloud config get-value project)
gcloud config set project $PROJECT_ID
export REGION="us-central1"
نقطة التحقّق: هل تريد استئناف عملية التثبيت أو إعادة إنشائها؟
بما أنّ هذا هو الجزء 2، يحتاج الوكيل إلى البيانات المحكومة من الجزء 1 ليعمل. يُرجى اختيار مسارك:
المسار (أ): انتهيتُ للتو من الجزء 1 وما زالت الموارد قيد التشغيل.
رائع! انتقِل إلى دليل العمل وستكون جاهزًا للمتابعة.
cd ~/devrel-demos/data-analytics/governance-context
المسار "ب": لقد تخطّيتُ الجزء 1 أو حذفتُ المراجع (تم التنظيف).
لا مشكلة. لقد وفّرنا أدناه كتلة أوامر "المسار السريع". سيؤدي ذلك إلى إعادة إنشاء مستودع بيانات BigQuery تلقائيًا وتطبيق البيانات الوصفية لإدارة Dataplex تمامًا كما فعلنا في الجزء 1.
# 1. Clone the repo and navigate to the working directory
git clone --depth 1 --filter=blob:none --sparse https://github.com/GoogleCloudPlatform/devrel-demos.git
cd devrel-demos
git sparse-checkout set data-analytics/governance-context
cd data-analytics/governance-context
# 2. Rebuild the messy data lake with Terraform
cd terraform
terraform init
terraform apply -var="project_id=${PROJECT_ID}" -var="region=${REGION}" -auto-approve
# 3. Generate and apply Dataplex Aspects (Governance rules)
cd ..
chmod +x ./generate_payloads.sh ./apply_governance.sh
./generate_payloads.sh
./apply_governance.sh
3- التوسّع باستخدام MCP: إنشاء مستوى التحكّم في البيانات
حتى الآن، اختبرت منطق الحوكمة بنجاح باستخدام Gemini CLI. هذه الطريقة ممتازة لإنشاء نماذج أولية بسرعة، ولكنّها تعمل على جهازك باستخدام بيانات اعتماد المستخدم الشخصية.
في بيئة مؤسسة حقيقية، تحتاج إلى مستوى تحكّم مركزي في البيانات. لإنشاء هذا التطبيق، سنستخدم مجموعة أدوات الذكاء الاصطناعي التوليدي لقواعد البيانات، وهو مشروع رسمي مفتوح المصدر من Google. توفر مجموعة الأدوات هذه خادم MCP مُنشأ مسبقًا ومصمّمًا خصيصًا لربط وكلاء الذكاء الاصطناعي بشكل آمن بقواعد بيانات Google Cloud وخدمات البيانات الوصفية، مثل Dataplex.
من خلال نشر مجموعة الأدوات هذه كخادم MCP على Cloud Run، نحقّق ما يلي:
- الهوية المركزية: يعمل الوكيل كحساب خدمة محدود، وليس كحساب المستخدم الشخصي.
- التوحيد: يمكن لأي عميل (ADK أو Gemini أو التطبيقات المخصّصة) "الاتصال" بهذا الخادم باستخدام بروتوكول MCP العادي.
- نطاق التحكّم (أقل امتياز): لا نمنح النموذج اللغوي الكبير إذن وصول مفتوحًا إلى BigQuery. نفرض عليه التنقّل عبر فهرس البيانات الوصفية في Dataplex أولاً.
ضبط تعريف الأداة (tools.yaml)
تتطلّب "مجموعة أدوات الذكاء الاصطناعي التوليدي" ملف إعداد تعريفيًا، tools.yaml. يحدّد هذا الملف sources (مكان الاتصال) وtools (الإجراءات المسموح للذكاء الاصطناعي بتنفيذها).
- انتقِل إلى دليل الخادم وأدرِج رقم تعريف مشروعك في ملف الإعداد:
cd ~/devrel-demos/data-analytics/governance-context/mcp_server
envsubst < tools.yaml > tools.tmp && mv tools.tmp tools.yaml
cat tools.yaml
يجب أن يبدو مطابقًا للمقتطف التالي. تأكَّد من أنّ حقل المشروع يتطابق الآن مع معرّف مشروع Google Cloud الفعلي.
sources:
dataplex:
kind: dataplex
project: YOUR-PROJECT-ID
tools:
search_entries:
kind: dataplex-search-entries
source: dataplex
description: Search for entries in Dataplex Catalog.
lookup_entry:
kind: dataplex-lookup-entry
source: dataplex
description: Retrieve a specific entry from Dataplex Catalog.
search_aspect_types:
kind: dataplex-search-aspect-types
source: dataplex
description: Find aspect types relevant to a query.
toolsets:
dataplex-toolset:
- search_entries
- lookup_entry
- search_aspect_types
من خلال تحديد هذه الأدوات الثلاث، يمكننا فرض أن يكون الذكاء الاصطناعي "للقراءة فقط" و "يخضع للحوكمة أولاً".
تأمين عملية الإعداد (Secret Manager)
في بنية المؤسسة، يجب ألا يتم تضمين ملفات الإعداد مباشرةً في صور الحاويات. سنخزّن tools.yaml بشكل آمن في Secret Manager من Google Cloud.
gcloud services enable secretmanager.googleapis.com
gcloud secrets create dataplex-tools-config --data-file=tools.yaml
تنفيذ مبدأ "الوصول بأدنى صلاحيات" (إدارة الهوية وإمكانية الوصول)
بعد ذلك، ننشئ حساب خدمة مخصّصًا لخادم MCP الخاص بـ "مجموعة أدوات الذكاء الاصطناعي التوليدي". لن يكون لدى هذه الهوية سوى الأذونات المطلوبة تمامًا لقراءة فهرس Dataplex والوصول إلى بيانات BigQuery.
export MCP_SA=mcp-sa
gcloud iam service-accounts create ${MCP_SA} \
--display-name="Service Account for Dataplex MCP"
export MCP_SERVICE_ACCOUNT="${MCP_SA}@${PROJECT_ID}.iam.gserviceaccount.com"
# Allow the server to read its own config from Secret Manager
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$MCP_SERVICE_ACCOUNT" \
--role="roles/secretmanager.secretAccessor"
# Allow the server to read Dataplex Metadata and BigQuery Data
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$MCP_SERVICE_ACCOUNT" \
--role="roles/dataplex.catalogViewer"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$MCP_SERVICE_ACCOUNT" \
--role="roles/bigquery.dataViewer"
نشر خادم MCP على Cloud Run
الآن، ننشر "مجموعة أدوات الذكاء الاصطناعي التوليدي". نستخدم صورة الحاوية المُنشأة مسبقًا من Google (database-toolbox/toolbox) ونحمّل إعداداتنا من Secret Manager (--set-secrets) في وقت التشغيل.
export IMAGE=us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest
gcloud run deploy governance-mcp \
--image=$IMAGE \
--service-account $MCP_SERVICE_ACCOUNT \
--region=$REGION \
--no-allow-unauthenticated \
--set-secrets="/app/tools.yaml=dataplex-tools-config:latest" \
--args="--tools-file=/app/tools.yaml","--address=0.0.0.0","--port=8080"
لقد أنشأت الآن واجهة برمجة تطبيقات خاضعة للحوكمة. بدلاً من منح واجهة GenAI الأمامية إذن الوصول المباشر إلى قاعدة البيانات، سيتم ربطها بعنوان URL هذا على Cloud Run. يمكن للوكيل الاطّلاع على ما تسمح له "أداة صندوق الأدوات" بالاطّلاع عليه فقط.
4. إنشاء الخلفية البرمجية للوكيل باستخدام ADK
لقد أنشأت "مستوى تحكّم آمنًا ومُدارًا في البيانات" (MCP) يعمل على Cloud Run. يحتاج وكيل الذكاء الاصطناعي الآن إلى إطار عمل لتنظيم منطق عمله، مثل معالجة مدخلات المستخدمين وتحديد وقت طلب خادم MCP وتنسيق الإخراج.
بدلاً من كتابة كل هذه التعليمات البرمجية النموذجية من البداية، سنستخدم "حزمة تطوير الوكيل" (ADK) من Google. مجموعة تطوير البرامج (ADK) هي إطار عمل يعتمد على الترميز، ويغلف تلقائيًا منطق الوكيل في خادم خلفي FastAPI. بالإضافة إلى ذلك، تتضمّن واجهة مستخدم مدمجة للمطوّرين، ما يتيح لك تصوُّر عملية الاستدلال التي يجريها الوكيل وعمليات استدعاء الأدوات على الفور بدون إنشاء واجهة أمامية مخصّصة أولاً.
فحص منطق الوكيل (agent.py)
قبل ضبط البنية الأساسية، لنلقِ نظرة على جوهر هذا التطبيق.
انتقِل إلى الدليل واعرض محتوى agent.py. هذا الملف هو "العقل" لعملية نشر حزمة ADK.
cd ~/devrel-demos/data-analytics/governance-context/mcp_server
cat agent.py
انظر إلى بنية الرمز. تنفّذ هذه الدالة ثلاث وظائف مهمة بأقل قدر من الرموز النموذجية:
- عملية التكامل مع MCPToolset: بدلاً من كتابة برامج HTTP مخصّصة للتفاعل مع أدوات Dataplex، تستخدم حزمة ADK
MCPToolset(server_url=mcp_url). يسترد هذا الإجراء بشكل ديناميكي تعريفtools.yamlمن خادم MCP الذي تم نشره ويترجمه إلى طلبات وظائف أصلية للنموذج اللغوي الكبير. - تعليمات النظام: تحتوي المَعلمة
instructionsعلى قواعد الحوكمة الصارمة (المنطق نفسه الذي استخدمناه في واجهة سطر الأوامرGEMINI.md). وهي تأمر النموذج بشكل صريح بتنفيذ حلقة الاستدلال من المرحلة 1 (البحث عن البيانات الوصفية) إلى المرحلة 2 (طلب البيانات). - تنسيق الوكلاء: يربط الصف
Agent(...)نموذج Gemini وطلب النظام وأدوات MCP معًا. عند نشر ADK، يحوّل هذا العنصر تلقائيًا إلى نقطة نهاية قابلة للتوسيع في FastAPI.
تقسيم المسؤوليات: ضبط هوية الواجهة الأمامية
لتشغيل هذا الرمز بأمان، يجب أن نُعلم الوكيل بمكان خادم MCP. سننشئ عنوان URL بشكل ديناميكي ونحفظه في ملف .env سيقرأه ADK في وقت التشغيل.
سننشئ أيضًا هوية منفصلة (dataplex-agent-sa) لهذا التطبيق المخصّص للمستخدمين. يضمن فصل المهام هذا أن يكون لدى وكيل الواجهة الأمامية أذونات مختلفة عن خادم إدارة الخلفية.
نفِّذ الأوامر التالية لضبط البيئة والهوية:
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
export MCP_SERVER_URL=https://governance-mcp-${PROJECT_NUMBER}.${REGION}.run.app/mcp
export AGENT_SA=dataplex-agent-sa
export AGENT_SERVICE_ACCOUNT="${AGENT_SA}@${PROJECT_ID}.iam.gserviceaccount.com"
gcloud iam service-accounts create ${AGENT_SA} \
--display-name="Service Account for Dataplex Agent "
ضبط متغيرات وقت التشغيل
يعتمد إطار عمل ADK على متغيرات البيئة لفهم سياقه. يجب ضبط رقم تعريف المشروع والمنطقة بشكلٍ صريح وتفعيل استخدام Vertex AI. ونضيفها إلى ملف .env نفسه.
echo MCP_SERVER_URL=$MCP_SERVER_URL > .env
echo GOOGLE_GENAI_USE_VERTEXAI=1 >> .env
echo GOOGLE_CLOUD_PROJECT=$PROJECT_ID >> .env
echo GOOGLE_CLOUD_LOCATION=$REGION >> .env
منح الأذونات
على الرغم من أنّ الوكيل يفوّض عمليات التحقّق من الحوكمة إلى خادم MCP، إلا أنّه لا يزال بحاجة إلى أذونات أساسية للعمل. نمنح دورَين بالضبط:
- مستخدم Vertex AI: لاستدعاء نموذج Gemini من أجل إنشاء ردود بلغة طبيعية
- Cloud Run Invoker: لاستدعاء واجهة برمجة التطبيقات لخادم MCP بشكل آمن لا يمكنه الوصول مباشرةً إلى BigQuery أو Dataplex.
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$AGENT_SERVICE_ACCOUNT" \
--role="roles/aiplatform.user"
gcloud run services add-iam-policy-binding governance-mcp \
--region=$REGION \
--member="serviceAccount:$AGENT_SERVICE_ACCOUNT" \
--role="roles/run.invoker"
النشر على Cloud Run
وأخيرًا، ننشر حزمة التطبيق الكاملة على Cloud Run.
نستخدم uvx لتشغيل أداة ADK بدون تثبيت التبعيات يدويًا. تعمل الأوامر أدناه على تجميع منطق agent.py، وإنشاء صورة حاوية، وإدخال حساب الخدمة، وتشغيل خادم FastAPI. من خلال إضافة العلامة --with_ui، يتم أيضًا تجميع "ملعب ADK على الويب" لتصحيح الأخطاء.
ينشئ هذا الأمر الحاوية وينشرها. قد يستغرق إكمال هذه العملية بين دقيقة واحدة و3 دقائق.
uvx --from google-adk \
adk deploy cloud_run \
--project=$PROJECT_ID \
--region=$REGION \
--service_name=dataplex-agent \
--with_ui \
. \
-- \
--service-account=$AGENT_SERVICE_ACCOUNT \
--allow-unauthenticated
بعد اكتمال هذا الأمر، سيتم عرض عنوان URL للخدمة (e.g., https://dataplex-agent-xyz.run.app). انقر على هذا الرابط لفتح واجهة GenAI Chat المُدارة بالكامل.

مسار التصميم المتكامل
لقد أكملت الآن النظام. عندما يتفاعل المستخدم مع واجهة مستخدم حزمة تطوير التطبيقات، يحدث التسلسل التالي:
- يُرسِل المستخدم طلبًا في وكيل "حزمة تطوير التطبيقات" (واجهة مستخدم المطوّرين).
- يعالج وكيل حزمة تطوير التطبيقات (agent.py) الإدخال ويطلب نموذج Gemini.
- يحدّد Gemini أنّه بحاجة إلى سياق ويطلب من خادم MCP تنفيذ أدوات Dataplex.
- يفرض خادم MCP قواعد إدارة Dataplex ويعرض البيانات الوصفية.
- يُنشئ Gemini الإجابة الموثوقة استنادًا إلى البيانات الوصفية ويعرضها للمستخدم.
5- اختبار Enterprise Agent
بعد أن أصبح وكيلك متاحًا، لنراجع سيناريوهات الحوكمة التي تم اختبارها سابقًا باستخدام واجهة سطر الأوامر. تظلّ طريقة العمل كما هي، ولكنّك تتفاعل الآن مع "ملعب الويب" الذي تم نشره في ADK، والذي يعرض الحالة الداخلية وعمليات تنفيذ الأدوات.
- التنسيق: يتلقّى ADK Agent (الذي يعمل على Cloud Run) النص.
- توجيه الطلب إلى الأداة المناسبة: يدرك Gemini أنّ سؤالك يتطلّب سياق بيانات، لذا يوجّه الطلب إلى خادم MCP.
- فحص الحوكمة: يطلب خادم MCP (الذي يعمل على مثيل Cloud Run منفصل) من Dataplex أنواع Aspect Types محدّدة.
- التلخيص: يتم إرجاع البيانات الوصفية ذات الصلة إلى Gemini لإنشاء الإجابة النهائية.
التحقّق من منطق إدارة الأصول
افتح عنوان URL للخدمة الذي أنشأته في الخطوة السابقة (e.g., https://dataplex-agent-xyz.run.app) في المتصفّح. ألصِق الطلب التالي:
"My dashboard needs to show what's happening right now with our ad spend. I can't wait for the overnight load. What do you recommend?"
مراقبة عملية الاستدلال التي يتّبعها الوكيل في واجهة مستخدم المطوّر:
- التعرّف على النية: يحلّل الوكيل عبارتَي "الآن" و"لا يمكنني الانتظار حتى الصباح".
- البحث عن البيانات الوصفية: يستدعي أداة MCP
search_aspect_types. يبحث عن مواد عرض البيانات التي تم ضبطupdate_frequencyAspect فيها على REALTIME أو STREAMING، بدلاً من DAILY أو MONTHLY. - الاختيار: يحدّد أنّ الجدول
mkt_realtime_campaign_performanceيستوفي هذه المعايير، في حين أنّ الجدولfin_monthly_closing_internal(على الرغم من جودته العالية) بطيء جدًا بالنسبة إلى طلبك. - الرد: يقترح الوكيل استخدام الجدول في الوقت الفعلي.

سبب أهمية ذلك:
بدون بيانات وصفية خاصة بإدارة البيانات، من المرجّح أن تقترح نماذج اللغات الكبيرة الجدول fin_monthly_closing_internal ببساطة لأنّه يتضمّن عمودًا باسم "ad_spend"، مع تجاهل حقيقة أنّ البيانات قديمة منذ 24 ساعة. منع سياق البيانات الوصفية حدوث خطأ في النشاط التجاري.
يمكنك أيضًا اختبار طلب "اجتماع مجلس الإدارة" لمعرفة كيف ينتقل الوكيل إلى جداول مختلفة استنادًا إلى جانب "فئة منتج البيانات":
"We are preparing the deck for an internal Board of Directors meeting next week. I need the numbers to be absolutely finalized, trustworthy, and kept strictly confidential. Which table is safe to use?"
6. تَنظيم
لتجنُّب تحمّل رسوم في حسابك على Google Cloud مقابل الموارد المستخدَمة في هذا الدرس العملي، اتّبِع الخطوات التالية لإيقاف جميع البنية الأساسية التي تم إنشاؤها في الجزء 1 والجزء 2.
تدمير مستودع البيانات (Terraform)
استخدِم Terraform لإزالة جداول BigQuery ومجموعات البيانات وتعريفات Dataplex Aspect.
cd ~/devrel-demos/data-analytics/governance-context/terraform
terraform destroy -var="project_id=${PROJECT_ID}" -var="region=${REGION}" -auto-approve
حذف خدمات Cloud Run
أزِل موارد الحوسبة لإيقاف أي فوترة نشطة للحاويات قيد التشغيل.
gcloud run services delete governance-mcp --region=$REGION --quiet
gcloud run services delete dataplex-agent --region=$REGION --quiet
تنظيف عناصر الإنشاء ومساحة التخزين المؤقت
عند نشر وكيل ADK باستخدام uvx، أنشأ النظام تلقائيًا صورة حاوية وحمّل رمز المصدر إلى حزمة Cloud Storage مؤقتة. تبقى هذه العناصر حتى بعد حذف خدمة Cloud Run، وستتحمّل تكاليف تخزين مستمرة.
أزِل مستودع Artifact Registry وحزمة التخزين المؤقت في Cloud Storage:
# Delete the repository used for the agent build
gcloud artifacts repositories delete cloud-run-source-deploy \
--location=$REGION \
--quiet
# Delete the staging bucket created by Cloud Run source deploy
gcloud storage rm --recursive gs://run-sources-${PROJECT_ID}-${REGION}
حذف الهوية والأذونات والأسرار
أزِل عمليات ربط سياسات إدارة الهوية وإمكانية الوصول أولاً لمنع بقاء إدخالات "حجر الأساس" (السجلّات غير المرتبطة) في صفحة "إدارة الهوية وإمكانية الوصول" الخاصة بمشروعك. بعد ذلك، احذف حسابات الخدمة ورموز إعدادات الأمان.
# Remove IAM roles granted to the MCP Service Account
gcloud projects remove-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$MCP_SERVICE_ACCOUNT" \
--role="roles/secretmanager.secretAccessor" --quiet
gcloud projects remove-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$MCP_SERVICE_ACCOUNT" \
--role="roles/dataplex.catalogViewer" --quiet
gcloud projects remove-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$MCP_SERVICE_ACCOUNT" \
--role="roles/bigquery.dataViewer" --quiet
# Remove IAM roles granted to the Agent Service Account
gcloud projects remove-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$AGENT_SERVICE_ACCOUNT" \
--role="roles/aiplatform.user" --quiet
# Delete the Service Accounts
gcloud iam service-accounts delete $MCP_SERVICE_ACCOUNT --quiet
gcloud iam service-accounts delete $AGENT_SERVICE_ACCOUNT --quiet
# Delete the Secret Manager entry
gcloud secrets delete dataplex-tools-config --quiet
إزالة الإعدادات المحلية
أخيرًا، نظِّف ملفات الإعدادات المحلية ومتغيّرات البيئة في Cloud Shell.
# Uninstall the Gemini CLI extension (installed in Part 1)
gemini extensions uninstall dataplex
# Remove local repository files and unset variables
cd ~
rm -rf ~/devrel-demos
unset MCP_SERVER_URL
unset MCP_SERVICE_ACCOUNT
unset AGENT_SERVICE_ACCOUNT
7. تهانينا!
لقد نشرت بنجاح وكيل GenAI متكاملاً ومراعيًا للحوكمة.
في هذا الدرس التطبيقي المكوّن من جزأين، انتقلت إلى ما هو أبعد من هندسة الطلبات البسيطة لتنفيذ بنية قوية وجاهزة للإنتاج. من خلال التعامل مع إدارة البيانات كشرط أساسي للذكاء الاصطناعي التوليدي، وضعت طريقة منهجية لمنع النموذج من استرداد بيانات غير معتمَدة أو من إنتاج معلومات غير صحيحة.
الخلاصات الرئيسية
- الذكاء الاصطناعي الحتمي من خلال البيانات الوصفية: بدلاً من الاعتماد على النموذج اللغوي الكبير لتخمين الجدول الصحيح استنادًا إلى أسماء الأعمدة، فرضت حلقة استدلال صارمة باستخدام "مجموعة أدوات الذكاء الاصطناعي التوليدي لقواعد البيانات". من خلال عرض ثلاث أدوات Dataplex فقط بشكل صريح (
search_aspect_typesوsearch_entriesوlookup_entry)، أجبرت النموذج على التحقّق من شهادات البيانات قبل إنشاء الإجابات. - البنية غير المرتبطة (MCP): من خلال نشر خادم Model Context Protocol (MCP) على Cloud Run، تمكّنت من تجريد قواعد إدارة البيانات إلى واجهة برمجة تطبيقات مركزية وموحّدة. لا يحتاج وكيل الواجهة الأمامية إلى تضمين منطق قاعدة البيانات، بل يحتاج فقط إلى التواصل عبر معيار MCP. وهذا يعني أنّه يمكنك ربط أي نموذج أو عميل مستقبلي للذكاء الاصطناعي بالخادم الخلفي المُدار نفسه.
- فصل المهام: طبّقت مبدأ الحدّ الأدنى من الأذونات المميّزة من خلال عزل هويات إدارة الهوية وإمكانية الوصول (IAM). يعمل وكيل ADK المخصّص للمستخدمين بأذونات محدودة لاستدعاء النماذج وتوجيه طلبات البيانات من واجهة برمجة التطبيقات، بينما يتعامل خادم MCP الخلفي بشكل آمن مع طلبات البحث في فهرس Dataplex واسترجاع البيانات من BigQuery.
- تنسيق الوكلاء باستخدام البرمجة أولاً: استخدمت "حزمة تطوير الوكلاء" (ADK) من Google لتضمين منطق وكيل Python على الفور في خادم FastAPI خلفي قابل للتوسيع، وذلك باستخدام واجهة المستخدم المضمّنة للمطوّرين من أجل عرض عمليات تنفيذ الأداة الداخلية للوكيل وتصحيح أخطائها.
الخطوات التالية
- الدرس التطبيقي حول أساسيات إدارة البيانات في Dataplex: يمكنك إتقان أساسيات إدارة البيانات في Dataplex قبل إضافة طبقة الذكاء الاصطناعي.
- مستندات أدوات Dataplex: يمكنك استكشاف المستندات الرسمية لأدوات Dataplex والإضافات المُنشأة مسبقًا والمستخدَمة في هذا المختبر.
- كيفية البدء باستخدام إضافات Gemini CLI: تعرَّف على كيفية إنشاء إضافات مخصّصة لمنح وكلاء الذكاء الاصطناعي التوليدي المزيد من الإمكانات.
- نظرة تفصيلية على MCP: يمكنك الاطّلاع على مواصفات MCP الرسمية للتعرّف على كيفية إنشاء خوادم مخصّصة لواجهات برمجة التطبيقات الداخلية في مؤسستك.