جولة في Gemini Code Assist (المعروف سابقًا باسم Duet AI) للمطوّرين

1. مقدمة

في هذا الدرس التطبيقي، ستستخدم Gemini Code Assist (المعروف سابقًا باسم Duet AI for Developers)، وهو متعاون مستند إلى الذكاء الاصطناعي في Google Cloud. ستتعرّف على كيفية استخدام Gemini Chat والمساعدة في استخدام الرموز المضمَّنة لإنشاء الرموز وفهمها وغير ذلك.

الإجراءات التي ستنفّذها

  • ستستخدم بيئة التطوير المتكاملة في Cloud Shell لتنزيل نموذج رمز حالي لتطبيق ويب.
  • ستستخدم Gemini Chat في بيئة Cloud Shell IDE لطرح أسئلة عامة حول Google Cloud.
  • في بيئة IDE لإنشاء الرموز البرمجية وتلخيصها وإكمالها، يجب استخدام مساعدة الرموز المضمّنة في Gemini Code Assist في بيئة IDE.

المعلومات التي ستطّلع عليها:

  • كيفية استخدام Gemini Code Assist في العديد من مهام المطوّرين، مثل إنشاء الرموز البرمجية وإكمالها وتلخيص الرموز البرمجية
  • كيفية استخدام "Gemini في Cloud" للتعرّف على Google Cloud.

المتطلبات...

  • متصفح الويب Chrome
  • حساب Gmail
  • مشروع على Google Cloud تم تفعيل الفوترة فيه
  • تم تفعيل Gemini Code Assist لمشروعك على السحابة الإلكترونية

يستهدف هذا التمرين المعملي المطوّرين من جميع المستويات، بما في ذلك المبتدئين. على الرغم من أن نموذج التطبيق بلغة بايثون، فأنت لست بحاجة إلى أن تكون على دراية ببرمجة بايثون لفهم ما يحدث. سينصب تركيزنا على التعرّف على إمكانات Gemini Code Assist للمطوّرين.

2. ضبط إعدادات الجهاز

يتناول هذا القسم كل الإجراءات المطلوبة للبدء في هذا التمرين.

تفعيل "Gemini في Cloud" في مشروع Google Cloud

سنفعّل الآن "Gemini في Cloud" في مشروع Google Cloud. يُرجى اتّباع الخطوات التالية:

  1. يُرجى زيارة https://console.cloud.google.com والتأكّد من اختيار مشروع Google Cloud الذي تريد استخدامه في هذا الدرس التطبيقي. انقر على رمز "فتح Gemini" الذي يظهر في أعلى يسار الشاشة.

28f084ec1e159938.png

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

e8df9adc4ea43a37.png

  1. بعد تفعيلها، يمكنك اختبار Gemini for Cloud من خلال طرح سؤال أو طلبَين عليه. يتم عرض بعض نماذج طلبات البحث، ولكن يمكنك تجربة طلب مثل What is Cloud Run?.

9859ea86a8310cb.png

سيقدّم لك "Gemini في Cloud" الإجابة عن سؤالك. يمكنك النقر على رمز f68286b2b2ea5c0a.png في أعلى يسار الصفحة لإغلاق نافذة المحادثة على "Gemini في Cloud".

تفعيل Gemini Code Assist في بيئة Cloud Shell IDE

سنستخدم Cloud Shell IDE، وهي بيئة تطوير مستنِدة إلى Code OSS مُدار بالكامل، في بقية الدرس التطبيقي حول الترميز. نحتاج إلى تفعيل أداة Code Assist وضبطها في بيئة تطوير البرامج (IDE) في Cloud Shell، وتتوفّر الخطوات أدناه:

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

6f5ce865fc7a3ef5.png

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

709e6c8248ac7d88.png

Gemini Code Assist جاهز للاستخدام

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

228c9c9c6b956c8e.png

3- إنشاء نموذج تطبيق

سننشئ نموذجًا لتطبيق (تطبيق Python Flask) نستخدمه لاستكشاف ميزات Gemini Code Assist.

اتبع الخطوات التالية:

  1. انقر على اسم مشروع Google Cloud في شريط الحالة أدناه.

f151759c156c124e.png

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

91ea9836f38b7f74.png

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

aaa3725b17ce27cf.png

4. التحدّث إلى Gemini

سنبدأ بتعلّم كيفية الدردشة مع Gemini. يتوفّر Gemini كمساعد محادثة في Cloud Shell IDE كجزء من إضافة Cloud Code في VS Code. يمكنك إبراز هذه المعلومات من خلال النقر على زر Gemini في شريط التنقّل الأيمن. ابحث عن رمز Gemini a489f98a34898727.png في شريط أدوات التنقّل الأيمن وانقر عليه.

سيؤدي هذا الإجراء إلى ظهور لوحة Chat: GeminiI في بيئة IDE عبر Cloud Shell، ويمكنك الدردشة مع Gemini للحصول على المساعدة في Google Cloud.

14ad103efaa0ddaa.png

لنستخدم لوحة المحادثة في 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).

  1. إذا لم تكن الملفات مرئية، انقر على Explorer ( قائمة مستكشف Code OSS) في شريط نشاط IDE.
  2. في جزء "Explorer" (المستكشف)، حدد Dockerfile.
  3. يمكنك اختيار أي جزء من محتوى الملف، والنقر على المصباح ( مصباح Code OSS Duet AI)، ثم النقر على Gemini: شرح هذا النص. على سبيل المثال، اختَر الخط الذي يبدأ بـ ENTRYPOINT، وانقر على المصباح ( مصباح Code OSS Duet AI)، ثم انقر على Gemini: شرح هذا. ينشئ Gemini شرحًا بلغة طبيعية للقسم المحدّد الذي تحتاج إلى مزيد من المعلومات عنه في الملف الشامل. يردّ Gemini مع تضمين تفاصيل حول تعليمات ENTRYPOINT. ستتعلّم أنّ Docker من خلال هذه التعليمات سيشغِّل ملف app.py عند إطلاق الحاوية.
  4. للاطّلاع على محتوى ملف app.py، انقر على المستكشف ( قائمة مستكشف Code OSS) في شريط الأنشطة، ثم اختَر app.py.
  5. في تعريف الدالة hello()، يمكنك اختيار الأسطر التي تريد الحصول على مزيد من المعلومات عنها. بعد ذلك، انقر على المصباح ( مصباح Code OSS Duet AI)، ثم على Gemini : شرح هذا النص. في المثال الذي عرضناه، اخترنا السطرَين التاليَين من الرمز، ثم نفّذنا الإجراء Gemini: شرح هذا.

14d9c56af016b65d.png

  1. يردّ Gemini بشرح تفصيلي لمتغيّرَي بيئة Cloud Run هذين (K_SERVICE, K_REVISION) وطريقة استخدامهما في رمز التطبيق. يُرجى العِلم أنّ Gemini بمعرفته بخدمة Google Cloud والخدمات مثل Cloud Run لم تكتفِ بشرح رموز Python البرمجية فحسب، بل قدّم أيضًا سياقًا لما تعنيه هذه المتغيّرات في Cloud Run.

جرِّب الطرق الإضافية التالية للحصول على شرح للرمز:

  1. احتفِظ بـ app.py باعتباره الملف المفتوح حاليًا في بيئة التطوير المتكاملة (IDE). انتقِل إلى لوحة محادثات Gemini في شريط التنقّل الأيمن في VS Code وأدخِل الطلب شرح هذا الملف. سيؤدي ذلك إلى أخذ الملف بأكمله في الاعتبار وشرحه لك.
  2. يمكنك أيضًا اختيار أي جزء من الملف ثم استخدام لوحة محادثات Gemini على يمين الصفحة، ثم إدخال الطلب شرح هذا. سيشرح هذا الجزء المحدد فقط من الملف. يشبه ذلك النقر على المصباح( مصباح Code OSS Duet AI) ثم النقر على Gemini: شرح هذا النص.
  3. يمكنك أيضًا اختيار جزء من النص والنقر على Gemini: الإجراءات الذكية من أعلى يسار الشاشة في بيئة التطوير المتكاملة كما هو موضّح أدناه للحصول على قائمة بالإجراءات التي يمكن تنفيذها على النص المحدّد. سيكون أحد هذه الخيارات الإجراء شرح هذا:

adeb72acd708174.png

6- إنشاء رمز باستخدام الطلبات

يعرض لك هذا القسم كيفية استخدام Gemini Code Assist لإنشاء رموز برمجية من التعليقات.

لنجرب هذه الميزات. يُرجى اتّباع الخطوات التالية:

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

سيؤدي هذا إلى إدراج الرمز الذي قبلته في ملف utils.py. وفي ما يلي نموذج للقطة شاشة. قد يختلف الرمز الذي تم تقديمه إليك عن الرمز الوارد أدناه. وإذا تم إنشاء طرق إضافية، يمكنك حذف هذه الطرق بعد قبول الرمز.

d6d7915885c5e74b.png

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

c7473cadcf15d887.png

يمكنك بعد ذلك اختيار تجاهل تحذير الاقتباس من خلال النقر على الإصلاح السريع .... وسيؤدّي ذلك إلى عرض الخيار "إصلاح سريع" مقترح، وسيتمّ عرض عيّنة منها أدناه:

10f4672830954c90.png

يمكنك اختيار تجاهل تحذير الاقتباس إذا كنت توافق على قبول ترخيص الرمز.

(اختياري) في ما يلي بعض الاقتراحات الأخرى التي يمكنك تجربتها لإنشاء الرموز:

  1. يمكنك أيضًا استخدام ميزة المحادثة مع Gemini لطرح الطلب نفسه والحصول على الردّ في نافذة المحادثة. بعد ذلك، تعرض واجهة Chat خيارات لنسخ الرمز أو إدراجه في الملف الحالي.
  2. جرِّب طلباتك الخاصة بشأن نموذج الرمز الذي تريده. في ما يلي بعض الاقتراحات (على افتراض أنّك في أحد ملفات python): أو اختَر أحد الطلبات الواردة أدناه:
  • كتابة رمز Python لنشر رسالة في Google Cloud Pub/Sub
  • كتابة رمز Python لإعداد عميل BigQuery
  • كتابة رمز Python لربط تطبيقي بخدمة Cloud SQL

7. الحصول على اقتراحات الرموز المضمَّنة أثناء الترميز

أثناء كتابة الرمز البرمجي، يقدّم Gemini Code Assist اقتراحات بشأن رموز مضمَّنة يمكنك قبولها أو تجاهلها. لتجربة هذه الميزة، سنُعدّل ملف utils.py الذي أنشأناه في القسم السابق :

  1. افتح ملف utils.py كملف حالي في بيئة التطوير المتكاملة في Cloud Shell.
  2. أحد الإجراءات التي يمكننا اتّخاذها هو تقديم عبارات import الصحيحة، إذا لم تكن مضمَّنة في الرمز الذي تم إنشاؤه.
  3. ابدأ بكتابة الكلمة import، ومن المفترض أن يظهر لك Gemini Code Assist الذي يقترح رمزًا برمجيًا على شكل نص مفرغ. لقبول اقتراح الرمز من Gemini Code Assist، اضغط على Tab. في الحالات الأخرى، لتجاهل الاقتراح، اضغط على Esc أو تابِع كتابة الرمز. في نموذج الشاشة أدناه، تقترح الأداة استيراد الفئة storage لأنّها قيد الاستخدام في الرمز البرمجي. اضغط على Tab لقبول اقتراح الرمز. يتم أيضًا اقتراح عبارة import os، ولكن يمكننا إزالتها لأنّها غير ضرورية.

cb3dfff74172959d.png

  1. انتقِل إلى نهاية ملف utils.py وأضِف السطر لاستدعاء الدالة، إذا لم يتم توفيرها. في الحالة هنا، هي الدالة print_blobs. يمكنك فقط البدء في كتابة اسم الدالة واكتمال التعليمة البرمجية سيساعدك في إنهاء العبارة.
  2. يجب تقديم bucket_name ويمكنك استخدام اسم الحزمة العلنية التالي : gemini-codeassist-bucket.يظهر أدناه نموذج استدعاء الدالة. يُرجى العلم أنّه قد يكون هناك اختلافات طفيفة في أسماء الدوال وما إلى ذلك.

print_blobs(bucket_name="gemini-codeassist-bucket")

(اختياري) شغِّل نموذج الرمز

بما أنّنا كتبنا رموزًا لسرد الكائنات الثنائية الكبيرة في حزمة Google Cloud Storage، سنحتاج إلى تثبيت مكتبة Python في google-cloud-storage.

انتقِل إلى ملف requirements.txt وأضِف سطرًا جديدًا بتبعية google-cloud-storage كما هو موضّح أدناه. في ما يلي نموذج ملف requirements.txt.

Flask==2.3.3
requests==2.31.0
debugpy # Required for debugging.
google-cloud-storage

احفظ ملف requirements.txt.

لرؤية الرمز قيد التشغيل، سنحتاج إلى بدء جلسة طرفية جديدة من بيئة التطوير المتكاملة (IDE) في Cloud Shell من خلال رمز القائمة في أعلى يمين الصفحة. انقر على أيقونة القائمة ثم Terminal ← جديدة كما هو موضح أدناه:

289173c68f1addb5.png

في جلسة الوحدة الطرفية، ثبّت اعتماديات 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 متاحة للجميع؟"

من المفترض أن يؤدي ذلك إلى تقديم الأمر 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.

المستندات المرجعية