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

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

- بعد تفعيل Cloud Assist، يمكنك اختباره من خلال توجيه طلب أو طلبَين. تظهر بعض نماذج الطلبات، ولكن يمكنك تجربة طلب مثل
What is Cloud Run?

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

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

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

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

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

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

4. تحدَّث إلى Gemini
سنبدأ بالتعرّف على كيفية التحدّث إلى Gemini. اعرض Gemini Code Assist Chat في اللوحة اليمنى كما هو موضّح سابقًا.
بعد إجراء ذلك، يمكنك التحدّث إلى 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?
5. شرح الرمز البرمجي
لمساعدتك في زيادة إنتاجيتك وتقليل التبديل بين السياقات، يقدّم Gemini Code Assist إجراءات ذكية مستندة إلى الذكاء الاصطناعي مباشرةً في أداة تعديل الرموز. عند اختيار الرمز البرمجي في أداة تعديل الرموز، يمكنك عرض قائمة بالإجراءات ذات الصلة بسياقك واختيار أحدها.
يمكنك استخدام Gemini Code Assist لمساعدتك في فهم أجزاء من الرمز البرمجي للتطبيق. ارجِع إلى التطبيق الذي أنشأناه في خطوة سابقة، ويمكنك استخدام Gemini Code Assist لشرح الملفات والرموز البرمجية المتوفّرة في بيئة تطوير متكاملة.
- إذا لم تكن الملفات مرئية، انقر على المستكشف (
) في شريط أنشطة بيئة تطوير متكاملة. - في جزء "المستكشف" (Explorer)، اختَر Dockerfile.
- يمكنك اختيار أي جزء من محتويات الملف، والنقر على المصباح (
)، ثم النقر على Gemini: Explain this. على سبيل المثال، اختَر السطر الذي يبدأ بـ ENTRYPOINT، وانقر على المصباح (
)، ثم انقر على Gemini: Explain this. ينشئ Gemini شرحًا باللغة الطبيعية حول القسم المحدّد من Dockerfile الذي تحتاج إلى مزيد من المعلومات عنه. يردّ Gemini بتفاصيل حول تعليمة ENTRYPOINT. ستعرف أنّه باستخدام هذه التعليمات، سيشغّل Docker ملف app.pyعند تشغيل الحاوية. - لعرض محتويات ملف
app.py، انقر على المستكشف (Explorer) (
) في شريط الأنشطة، ثم اختَر app.py. - في تعريف الدالة hello() ، يمكنك اختيار الأسطر التي تريد الحصول على مزيد من المعلومات عنها. بعد ذلك، انقر على المصباح (
)، ثم انقر على Gemini : Explain this. في مثالنا، اخترنا سطرَي الرمز البرمجي التاليَين ثم فعّلنا الإجراء 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 على اليسار، وأدخِل الطلب Explain this. سيشرح هذا الإجراء الجزء المحدّد فقط من الملف. يشبه هذا الإجراء النقر على المصباح(
) ثم النقر على Gemini: Explain this.
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. تظهر أدناه لقطة شاشة نموذجية. قد يختلف الرمز البرمجي المقدَّم لك عن الرمز البرمجي الموضّح أدناه. إذا تم إنشاء طرق إضافية، يمكنك حذفها بعد قبول الرمز البرمجي.

(اختياري) إليك بعض الاقتراحات الأخرى التي يمكنك تجربتها لإنشاء الرموز البرمجية:
- يمكنك أيضًا استخدام ميزة محادثة Gemini لطرح الطلب نفسه والحصول على الردّ في نافذة المحادثة. تعرض واجهة المحادثة بعد ذلك خيارات لنسخ الرمز البرمجي أو إدراجه في الملف الحالي.
- جرِّب طلباتك الخاصة للرمز البرمجي النموذجي الذي تريده. في ما يلي بعض الاقتراحات (بافتراض أنّك في أحد ملفات 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أو قد تكون دالة مختلفة في حالتك. يمكنك البدء بكتابة اسم الدالة وسيساعدك إكمال الرمز البرمجي في إنهاء العبارة. - عليك تقديم 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.
لمشاهدة الرمز البرمجي أثناء العمل، علينا تشغيل جلسة طرفية جديدة من بيئة تطوير Cloud Shell المتكاملة من خلال رمز القائمة في أعلى يسار الصفحة. انقر على رمز القائمة ثم على الوحدة الطرفية (Terminal) ← وحدة طرفية جديدة (New Terminal) كما هو موضّح أدناه:

في الجلسة الطرفية، ثبِّت تبعيات Python من خلال الأمر التالي:
pip3 install -r requirements.txt
أخيرًا، يمكنك تشغيل ملف utils.py من خلال الأمر التالي:
python utils.py
من المفترض أن يعرض هذا الإجراء الكائنات الثنائية الكبيرة المتوفّرة في حزمة Google Cloud Storage العلنية. من المفترض أن يظهر لك كائنان ثنائيان كبيران في الناتج (file1.txt وfile2.txt).
تحديد المشاكل وحلّها
إذا تلقّيت خطأ في "الوصول" (access) أثناء عرض العناصر في الحزمة العلنية أعلاه، يمكنك اختيار إنشاء حزمة Google Cloud Storage الخاصة بك واستخدامها بدلاً من gemini-codeassist-bucket. يوضّح لك القسم التالي كيفية إجراء ذلك.
(اختياري) إنشاء حزمة Cloud Storage الخاصة بك
لنستعين بـ Gemini لتزويدنا بأوامر لإنشاء حزمة وجعلها متاحة للجميع وتحميل نماذج كائنات إليها.
ابدأ بالطلب التالي: "What is the gcloud command to create a public bucket in Google Cloud Storage?"
من المفترض أن يقدّم لك هذا الإجراء أمر gcloud لإنشاء حزمة. يظهر أدناه الأمر الدقيق:
gcloud storage buckets create gs://<BUCKET_NAME>
اختَر اسمًا فريدًا لـ <BUCKET_NAME> ونفِّذ الأمر في الوحدة الطرفية.
بعد إنشاء حزمة، نريد أن تكون متاحة للجميع. لنطلب من Gemini الأمر اللازم لإجراء ذلك باستخدام الطلب التالي: "How do I make a google cloud storage bucket publicly accessible?"
من المفترض أن يقدّم لك هذا الإجراء أمر 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.