1. مقدمة
في هذا الدرس التطبيقي، ستستخدم Gemini Code Assist، وهو أداة تعاون مستندة إلى الذكاء الاصطناعي في Google Cloud. ستتعرّف على كيفية استخدام Gemini Chat والمساعدة في كتابة الرموز البرمجية مباشرةً لإنشاء الرموز البرمجية وفهمها وتنفيذ مهام أخرى متعلّقة بالترميز بمساعدة الذكاء الاصطناعي.
المهام التي ستنفذها...
- ستستخدِم بيئة التطوير المتكاملة في Cloud Shell لتنزيل نموذج رمز حالي لتطبيق ويب.
- ستستخدم Gemini Chat في بيئة التطوير المتكاملة Cloud Shell لطرح أسئلة عامة حول Google Cloud.
- ستستخدم ميزة "المساعدة في كتابة الرموز البرمجية المضمّنة" في Gemini Code Assist في بيئة تطوير متكاملة (IDE) في Cloud Shell لإنشاء الرموز البرمجية وتلخيصها وإكمالها.
ما ستتعلمه...
- كيفية استخدام Gemini Code Assist في العديد من مهام المطوّرين، مثل إنشاء الرموز البرمجية وإكمالها وتلخيصها
- كيفية استخدام Cloud Assist للتعرّف على Google Cloud
المتطلبات...
- متصفّح الويب Chrome
- حساب Gmail
- مشروع على السحابة الإلكترونية تم تفعيل الفوترة فيه
- تفعيل Gemini Code Assist لمشروعك على Google Cloud
هذا المختبر مخصّص للمطوّرين من جميع المستويات، بما في ذلك المبتدئين. على الرغم من أنّ التطبيق النموذجي مكتوب بلغة Python، ليس عليك أن تكون على دراية ببرمجة Python لفهم ما يحدث. سنركّز على التعرّف على إمكانات Gemini Code Assist للمطوّرين.
2. الإعداد
يغطّي هذا القسم كل ما عليك فعله لبدء هذا الدرس التطبيقي.
تفعيل Cloud Assist في مشروع Google Cloud
سنفعّل الآن Cloud Assist في مشروع Google Cloud. يُرجى اتّباع الخطوات التالية:
- انتقِل إلى https://console.cloud.google.com وتأكَّد من أنّك اخترت مشروع Google Cloud الذي تخطّط لاستخدامه في هذا المختبر. انقر على رمز "فتح Gemini" الذي يظهر في أعلى يسار الصفحة.

- ستفتح نافذة محادثة Cloud Assist على يسار وحدة التحكّم. انقر على الزر "تفعيل" كما هو موضّح أدناه. إذا لم يظهر لك الزر تفعيل وظهرت بدلاً من ذلك واجهة Chat، من المحتمل أنّك فعّلت Cloud Assist للمشروع من قبل ويمكنك الانتقال مباشرةً إلى الخطوة التالية.

- بعد تفعيلها، يمكنك تجربة ميزة "المساعدة المستندة إلى السحابة الإلكترونية" من خلال طرح طلب أو طلبَين. يتم عرض بعض طلبات البحث النموذجية، ولكن يمكنك تجربة طلب بحث مثل
What is Cloud Run?

سيجيب Cloud Assist عن سؤالك. يمكنك النقر على رمز
في أعلى يسار الصفحة لإغلاق نافذة محادثة Cloud Assist.
تفعيل Gemini Code Assist في بيئة تطوير متكاملة (IDE) في Cloud Shell
سنستخدم بيئة تطوير متكاملة (IDE) في Cloud Shell، وهي بيئة تطوير مُدارة بالكامل تستند إلى Code OSS، لبقية الدرس التطبيقي حول الترميز. علينا تفعيل ميزة "مساعد الترميز" وضبطها في بيئة التطوير المتكاملة (IDE) في Cloud Shell، وفي ما يلي الخطوات:
- انتقِل إلى ide.cloud.google.com. قد يستغرق ظهور بيئة التطوير المتكاملة بعض الوقت، لذا يُرجى الانتظار.
- انقر على الزر رمز السحابة الإلكترونية - تسجيل الدخول في شريط الحالة أسفل الصفحة كما هو موضّح. امنح المصادقة للمكوّن الإضافي حسب التعليمات. إذا ظهرت لك الرسالة "Cloud Code - no project" في شريط الحالة، اختَرها ثم اختَر مشروع Google Cloud المحدّد من قائمة المشاريع التي تخطّط للعمل عليها.

- انقر على زر Gemini في أسفل يسار الصفحة كما هو موضّح، واختَر مشروع على السحابة الإلكترونية الصحيح لآخر مرة. إذا طُلب منك تفعيل Gemini for Google Cloud API، يُرجى إجراء ذلك والمتابعة.
- بعد اختيار مشروعك على Google Cloud، تأكَّد من إمكانية رؤيته في رسالة حالة Cloud Code في شريط الحالة، ومن تفعيل Code Assist على يسار شريط الحالة كما هو موضّح أدناه:

أصبح Gemini Code Assist جاهزًا للاستخدام.
اختياري: إذا لم يظهر لك Gemini في شريط الحالة في أسفل يسار الشاشة، عليك تفعيل Gemini في Cloud Code. قبل إجراء ذلك، تأكَّد من تفعيل Gemini في بيئة التطوير المتكاملة (IDE) من خلال الانتقال إلى إضافة Cloud Code → الإعدادات ثم إدخال النص Gemini كما هو موضّح أدناه. تأكَّد من وضع علامة في مربّع الاختيار. عليك إعادة تحميل بيئة التطوير المتكاملة (IDE). سيؤدي ذلك إلى تفعيل Gemini في Cloud Code، وسيظهر رمز Gemini في شريط الحالة في بيئة التطوير المتكاملة (IDE).

3- إنشاء تطبيق العيّنة
سننشئ تطبيقًا نموذجيًا (تطبيق Python Flask) سنستخدمه لاستكشاف ميزات Gemini Code Assist.
يُرجى اتّباع الخطوات التالية:
- انقر على اسم مشروع Google Cloud في شريط الحالة أدناه.

- ستظهر قائمة بالخيارات. انقر على تطبيق جديد من القائمة أدناه.

- اختَر تطبيق Cloud Run.
- اختَر نموذج تطبيق Python (Flask): Cloud Run.
- احفظ التطبيق الجديد في المكان المفضّل لديك.
- يؤكّد إشعار أنّه تم إنشاء تطبيقك، ويتم فتح نافذة جديدة مع تحميل تطبيقك كما هو موضّح أدناه. يتم فتح ملف
README.md. يمكنك إغلاق طريقة العرض هذه الآن.

4. تحدَّث إلى Gemini
سنبدأ بالتعرّف على كيفية الدردشة مع Gemini. يتوفّر Gemini كمساعد للدردشة ضمن بيئة التطوير المتكاملة في Cloud Shell كجزء من إضافة Cloud Code في VS Code. يمكنك إظهارها من خلال النقر على زر Gemini في شريط التنقّل الأيمن. ابحث عن رمز Gemini
في شريط أدوات التنقّل الأيمن وانقر عليه.
سيؤدي ذلك إلى فتح لوحة Chat: Gemini داخل بيئة التطوير المتكاملة في Cloud Shell، ويمكنك الدردشة مع Gemini للحصول على مساعدة بشأن Google Cloud.

لنستخدم لوحة محادثة Gemini لإدخال طلب وعرض الردّ من Gemini. أدخِل الطلب التالي:
What is Cloud Run?
من المفترض أن يردّ Gemini بتفاصيل حول Cloud Run. الطلبات هي أسئلة أو عبارات تصف المساعدة التي تحتاج إليها. يمكن أن تتضمّن الطلبات سياقًا من الرمز البرمجي الحالي الذي تحلّله Google Cloud لتقديم ردود أكثر فائدة أو اكتمالاً. لمزيد من المعلومات حول كتابة الطلبات لإنشاء ردود جيدة، يُرجى الاطّلاع على مقالة كتابة طلبات أفضل في "Gemini في Google Cloud".
جرِّب الطلبات النموذجية التالية أو أي طلبات أخرى من اختيارك لطرح أسئلة حول Google Cloud:
What is the difference between Cloud Run and Cloud Functions?What services are available on Google Cloud to run containerized workloads?What are the best practices to optimize costs while working with Google Cloud Storage?
لاحظ رمز سلة المهملات في أعلى الصفحة، فهو يتيح لك إعادة ضبط سياق سجلّ محادثات Code Assist. يُرجى العِلم أيضًا أنّ هذه المحادثة مرتبطة بسياق الملفات التي تعمل عليها في بيئة التطوير المتكاملة.
5- شرح الرمز البرمجي
لمساعدتك في زيادة إنتاجيتك وتقليل الحاجة إلى تبديل السياق، يوفّر لك Gemini Code Assist إجراءات ذكية مستندة إلى الذكاء الاصطناعي مباشرةً في أداة تعديل الرموز. عند اختيار الرمز في أداة تعديل الرموز، يمكنك الاطّلاع على قائمة بالإجراءات ذات الصلة بسياقك واختيار أحدها.
يمكنك استخدام Gemini Code Assist لمساعدتك في فهم أجزاء من الرمز البرمجي للتطبيق. ارجع إلى التطبيق الذي أنشأناه في خطوة سابقة، ويمكنك استخدام Gemini Code Assist لشرح الملفات والرموز البرمجية المتوفّرة في بيئة التطوير المتكاملة.
- إذا لم تكن الملفات مرئية، انقر على المستكشف (
) في شريط أنشطة بيئة التطوير المتكاملة (IDE). - في لوحة "المستكشف"، اختَر Dockerfile.
- يمكنك اختيار أي جزء من محتوى الملف، والنقر على المصباح (
)، ثم النقر على Gemini: شرح هذا. على سبيل المثال، اختَر السطر الذي يبدأ بـ ENTRYPOINT، وانقر على المصباح (
)، ثم انقر على Gemini: Explain this. ينشئ Gemini شرحًا باللغة الطبيعية حول القسم المحدّد من Dockerfile الذي تحتاج إلى مزيد من المعلومات عنه. يردّ Gemini بتفاصيل حول التعليمات ENTRYPOINT. تدرك أنّه باستخدام هذه التعليمات، سيشغّل Docker الملف app.pyعند تشغيل الحاوية. - لعرض محتوى ملف
app.py، انقر على المستكشف (
) في شريط الأنشطة، ثم اختَر app.py. - في تعريف الدالة hello()، يمكنك اختيار الأسطر التي تريد الحصول على مزيد من المعلومات عنها. بعد ذلك، انقر على رمز المصباح (
)، ثم على Gemini : شرح هذا. في مثالنا، اخترنا سطرَي الرمز البرمجي التاليين ثم نفّذنا الإجراء Gemini: Explain this.

- يردّ Gemini بتفسير مفصّل لمتغيرَي بيئة Cloud Run هذين (
K_SERVICE, K_REVISION) وكيفية استخدامهما في الرمز البرمجي للتطبيق. يُرجى العِلم أنّ Gemini، بفضل معرفته بـ Google Cloud وخدمات مثل Cloud Run، لم يكتفِ بشرح رمز Python، بل قدّم أيضًا سياقًا لمعنى هذه المتغيرات في Cloud Run.
جرِّب الطرق الإضافية التالية للحصول على شرح للرمز:
- اترك الملف app.py مفتوحًا حاليًا في بيئة التطوير المتكاملة. انتقِل إلى لوحة محادثة Gemini في شريط التنقّل الأيمن في VS Code وأدخِل الطلب Explain this file (شرح هذا الملف). سيتم أخذ الملف بأكمله في الاعتبار وشرحه لك.
- يمكنك أيضًا اختيار أي جزء من الملف ثم استخدام لوحة محادثة Gemini على اليمين وإدخال الطلب اشرح هذا. سيشرح هذا الخيار الجزء المحدّد من الملف فقط. يشبه ذلك النقر على المصباح(
) ثم على Gemini: اشرح لي هذا المحتوى. - يمكنك أيضًا تحديد جزء من النص والنقر على Gemini: الإجراءات الذكية من أعلى يسار IDE كما هو موضّح أدناه للحصول على قائمة بالإجراءات التي يمكن تنفيذها على النص المحدّد. سيكون أحد الخيارات هو الإجراء توضيح هذا:

6. إنشاء رمز باستخدام الطلبات
يوضّح لك هذا القسم كيفية استخدام Gemini Code Assist لإنشاء رمز برمجي من التعليقات.
لنجرّب هذه الميزات. يُرجى اتّباع الخطوات التالية:
- أنشئ ملفًا جديدًا باسم
utils.py. - في ملف الرمز الجديد، أدخِل
# Function to print a list of blobs in a Google Cloud Storage bucketفي سطر جديد، ثم اضغط علىEnter(في Windows وLinux) أوReturn(في MacOS). قد يحاول Gemini إنشاء رمز أثناء الكتابة، ولكن لا تقبله. سنفعّل عملية إنشاء الرمز البرمجي تحديدًا في الخطوة التالية. - لتفعيل ميزة إنشاء الرموز البرمجية، اضغط على
Control+Enter(في Windows وLinux) أوControl+Return(في MacOS). بجانب نص الطلب في ملف Python، ينشئ Gemini Code Assist الرمز البرمجي على شكل نص شبحي. سيقدّم لك اقتراحًا واحدًا أو أكثر للرمز مع شريط أدوات يمكنك من خلاله الانتقال من اقتراح رمز إلى آخر (في حال توفّر اقتراحات متعددة). يمكنك حتى قبول أي من اقتراحات الرموز البرمجية من خلال شريط الأدوات. في حال عدم ظهور شريط الأدوات أو اختفائه، مرِّر مؤشر الماوس فوق الرمز الذي تم إنشاؤه ليظهر مرة أخرى. - اختياري: لقبول الرمز الذي تم إنشاؤه، اضغط على
Tab. في حال توفّر اقتراحات متعددة، يمكنك الضغط علىTabعدة مرات للانتقال من مقتطف رمز مقترَح إلى آخر.
سيؤدي ذلك إلى إدراج الرمز الذي قبلته في ملف utils.py. في ما يلي نموذج لقطة شاشة. قد يختلف الرمز الذي يتم تقديمه لك عن الرمز الموضّح أدناه. إذا تم إنشاء طرق إضافية، يمكنك حذفها بعد قبول الرمز.

قد تلاحظ أو لا تلاحظ خطوطًا متعرجة في الرمز. إذا كان الأمر كذلك، فهذا هو الاقتباس من الرمز البرمجي على أرض الواقع. إذا مرّرت مؤشر الماوس فوق أي من الأسطر، سيتم عرض معلومات تحديد مصدر الرمز ومعلومات أخرى ذات صلة بالترخيص. في ما يلي مثال:

يمكنك بعد ذلك اختيار تجاهل تحذير الاقتباس من خلال النقر على Quick Fix .... سيؤدي ذلك إلى عرض اقتراح Quick Fix، ويظهر نموذج منه أدناه:

يمكنك اختيار تجاهل تحذير الاقتباس إذا كنت موافقًا على قبول ترخيص الرمز.
(اختياري) إليك بعض الاقتراحات الأخرى لتجربتها في ما يخص إنشاء الرموز البرمجية:
- يمكنك أيضًا استخدام ميزة محادثة Gemini لطرح الطلب نفسه والحصول على الردّ في نافذة المحادثة. تعرض واجهة Chat بعد ذلك خيارات لنسخ الرمز أو إدراجه في الملف الحالي.
- جرِّب توجيه طلباتك الخاصة للحصول على رمز نموذجي تريده. في ما يلي بعض الاقتراحات (بافتراض أنّك في أحد ملفات Python) أو يمكنك الاختيار من بعض الطلبات أدناه:
- كتابة رمز Python البرمجي لنشر رسالة على Google Cloud Pub/Sub
- اكتب رمزًا برمجيًا بلغة Python لتهيئة عميل BigQuery
- كتابة رمز Python البرمجي لربط تطبيقي بـ Cloud SQL
7. الحصول على اقتراحات مضمّنة للرموز البرمجية أثناء كتابتها
أثناء كتابة الرمز البرمجي، يقدّم Gemini Code Assist اقتراحات مضمّنة للرمز البرمجي يمكنك قبولها أو تجاهلها. لتجربة هذه الميزة، سنعدّل الملف utils.py الذي أنشأناه في القسم السابق :
- افتح ملف
utils.pyكالملف الحالي في بيئة التطوير المتكاملة في Cloud Shell. - أحد الإجراءات التي يمكننا اتّخاذها هو تقديم عبارات
importالصحيحة، إذا لم تكن مضمّنة في الرمز البرمجي الذي تم إنشاؤه. - ابدأ بكتابة الكلمة
import، وسيظهر لك اقتراح من Gemini Code Assist على شكل نص شبحي. لقبول اقتراح الرمز البرمجي من Gemini Code Assist، اضغط علىTab. بخلاف ذلك، لتجاهل الاقتراح، اضغط علىEscأو واصِل كتابة الرمز. في لقطة الشاشة النموذجية أدناه، يُقترح استيراد الفئةstorageلأنّها مستخدَمة في الرمز. اضغط علىTabلقبول اقتراح الرمز. يُقترَح أيضًا استخدام عبارةimport os، ولكن بما أنّها غير ضرورية، يمكننا إزالتها.

- انتقِل إلى نهاية ملف
utils.pyوأضِف السطر لاستدعاء الدالة، إذا لم يتم توفيره. في هذه الحالة، تكون الدالةprint_blobs. يمكنك البدء في كتابة اسم الدالة وسيساعدك إكمال الرمز البرمجي في إنهاء العبارة. - عليك تقديم اسم الحزمة، ويمكنك استخدام اسم الحزمة العامة التالي :
gemini-codeassist-bucket.يظهر أدناه نموذج لطلب استدعاء الدالة. يُرجى العِلم أنّه قد تظهر اختلافات طفيفة من حيث أسماء الدوال وما إلى ذلك.
print_blobs(bucket_name="gemini-codeassist-bucket")
(اختياري) تشغيل رمز نموذجي
بما أنّنا كتبنا رمزًا برمجيًا لإدراج الكائنات الثنائية الكبيرة في حزمة Google Cloud Storage، علينا تثبيت مكتبة google-cloud-storage Python.
انتقِل إلى ملف requirements.txt وأضِف سطرًا جديدًا مع تبعية google-cloud-storage كما هو موضّح أدناه. يظهر أدناه نموذج لملف requirements.txt.
Flask==2.3.3 requests==2.31.0 debugpy # Required for debugging. google-cloud-storage
احفظ ملف requirements.txt.
لرؤية الرمز أثناء التنفيذ، علينا بدء جلسة "وحدة طرفية" جديدة من بيئة التطوير المتكاملة في Cloud Shell من خلال رمز القائمة في أعلى يمين الصفحة. انقر على رمز القائمة، ثمّ على Terminal → New Terminal كما هو موضّح أدناه:

في جلسة "الوحدة الطرفية"، ثبِّت تبعيات Python باستخدام الأمر التالي:
pip3 install -r requirements.txt
أخيرًا، يمكنك تشغيل ملف utils.py باستخدام الأمر التالي:
python utils.py
من المفترض أن يؤدي ذلك إلى عرض الكائنات الثنائية الكبيرة المتوفّرة في حزمة Google Cloud Storage العامة. من المفترض أن تظهر لك نقطتان ثنائيتان في النتائج (file1.txt وfile2.txt).
تحديد المشاكل وحلّها
في حال تلقّيت خطأ "تعذّر الوصول" أثناء عرض العناصر في الحزمة العامة أعلاه، يمكنك اختيار إنشاء حزمة Google Cloud Storage الخاصة بك واستخدامها بدلاً من gemini-codeassist-bucket. يوضّح لك القسم التالي كيفية إجراء ذلك.
(اختياري) إنشاء حزمة خاصة بك على Cloud Storage
لنستعين بـ Gemini لتقديم الأوامر اللازمة لإنشاء حزمة وجعلها متاحة للجميع وتحميل عيّنات من العناصر إلى الحزمة.
ابدأ بالطلب التالي: "ما هو أمر gcloud لإنشاء حزمة عامة في Google Cloud Storage؟"
من المفترض أن يوفّر لك ذلك أمر gcloud لإنشاء حزمة. يظهر الأمر الدقيق أدناه:
gcloud storage buckets create gs://<BUCKET_NAME>
اختَر اسمًا فريدًا <BUCKET_NAME> ونفِّذ الأمر في الوحدة الطرفية.
بعد إنشاء حزمة، نريد أن تكون متاحة للجميع. لنطلب من Gemini تنفيذ ذلك باستخدام الطلب التالي: "كيف يمكنني إتاحة الوصول إلى حزمة Google Cloud Storage بشكل علني؟"
من المفترض أن يوفّر لك ذلك أمر gcloud لإتاحة الوصول إلى التطبيق للجميع. يجب أن تكون الاستجابة على النحو التالي:
gcloud storage buckets add-iam-policy-binding gs://<BUCKET_NAME> --member=allUsers --role=roles/storage.objectViewer
استبدِل <BUCKET_NAME> باسم الحزمة الذي استخدمته سابقًا ونفِّذ الأمر.
أخيرًا، نريد تحميل بعض الملفات النموذجية إلى الحزمة. نفِّذ الأوامر التالية في الوحدة الطرفية (تذكَّر استبدال المتغيّر <BUCKET_NAME> باسم الحزمة).
touch f1.txt touch f2.txt gcloud storage cp f1.txt gs://<BUCKET_NAME> gcloud storage cp f2.txt gs://<BUCKET_NAME>
يمكنك الآن تنفيذ ملف utils.py باستخدام <BUCKET_NAME> بدلاً من gemini-codeassist-bucket.
تنظيف
إذا أنشأت حزمة Google Cloud Storage خاصة بك، ننصحك بشدة بحذفها لتجنُّب أي رسوم ومخاطر أمنية محتملة.
يمكنك حذف الحزمة باستخدام الأمر الموضّح أدناه:
gcloud storage buckets delete gs://<BUCKET_NAME>
8. تهانينا!
تهانينا، لقد عملت بنجاح مع Gemini Code Assist على مشروع نموذجي لفهم كيفية المساعدة في إنشاء الرموز البرمجية وإكمالها وتلخيصها، بالإضافة إلى مساعدتك في الحصول على إجابات عن أسئلة حول Google Cloud.