كيفية استخدام Gemini لاستكشاف تطبيق حالي وتحسينه

1- نظرة عامة

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

ما سوف تتعلمه

يهدف هذا التمرين إلى توضيح كيفية استخدام Gemini من خلال تطبيق حالي. ستتعلم في هذا التمرين المعملي كيفية القيام بما يلي:

الإعداد - إنشاء مشروع جديد

وفقًا لسياسات مؤسستك، قد لا تتمكن من نشر هذا الحلّ بشكل صحيح.

اقتراح: استخدِم حسابًا تمتلك فيه أذونات كاملة (مثل الحساب الشخصي) بدلاً من حساب شركة أو مؤسسة تعليمية

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

  1. الانتقال إلى Google Cloud Console
  2. انقر على القائمة المنسدلة للمشروع الحالي.
  3. انقر على مشروع جديدزر مشروع جديد.
  4. أضِف اسم مشروع وانقر على إنشاء
    • اقتراح: استخدِم اسم مشروع فريدًا بحيث يكون Project name وProject ID متطابقَين مع إنشاء نموذج مشروع.

‫2. نشر حل Jump Start Solution

حلول Jump Start Solutions هي نماذج حلول معدّة مسبقًا من Google Cloud. يستخدم هذا البرنامج حلول Jump Start Solution لتوضيح الطريقة التي يمكن أن يساعد بها Gemini في تحسين تطبيق متوفّر مسبقًا.

  1. الانتقال إلى صفحة تفاصيل Jump Start Solution لمعالجة الصور باستخدام نماذج تعلُّم الآلة أو الذكاء الاصطناعي (AI)
    • انقر على قائمة الهامبرغر
    • في القائمة الفرعية المنتجات والحلول، انقر على حلول البدء السريعالانتقال السريع إلى خطوات التنقّل في الحلول.
    • انقر على معالجة الصور المستنِدة إلى الذكاء الاصطناعي/تعلُّم الآلة على Cloud Functionsالتنقّل في Jump Start Solution لمعالجة الصور باستخدام تعلُّم الآلة باستخدام الذكاء الاصطناعي (AI).
  2. انقر على DEPLOY
      .
    • إذا لم يتم تفعيل الفوترة في مشروعك، فعِّل الفوترة.
    • أكِّد اسم المشروع وانقر على متابعة.
    • اختَر us-central1 (Iowa) كمنطقة.
    • إذا طُلب منك إدخال بيانات أخرى، اقبل الإعدادات التلقائية.
    • انقر على نشر.
    • يمكن أن يستغرق ذلك مدة تصل إلى 15 دقيقة.
    • لا تحتاج إلى إجراء أي تغييرات، ولكن يمكنك استكشاف نشر حلول Jump Start Solution.

تحديد المشاكل وحلّها

  1. المشكلة: هل ترى رسالة خطأ نصها Partial deployment.؟
    • الحل: يعني هذا أنّه من الأفضل حذف عملية النشر والبدء من جديد. من المفترض أن يظهر الزرّ حذف النشر. انقر على هذا الزر ثم أعِد نشر حلول Jump Start Solution.

3- تفعيل Gemini

إعداد بيئة تعديل الرموز البرمجية وتفعيل Gemini

  1. الانتقال إلى محرِّر Cloud Shell
    • الرجوع إلى Google Cloud Console
    • اكتب Cloud Shell Editor في شريط البحث وانقر على محرِّر Cloud Shell من القائمة المنسدلة. خطوات فتح محرِّر Cloud Shell
    • انقر على تجربة المحرّر الجديد إذا كنت تستخدم "المحرِّر القديم".
      • ملاحظة: إذا لم يظهر لك زر تجربة المحرّر الجديد، من المرجح أنّك تستخدم المحرّر الجديد حاليًا. سيعمل "المحرّر القديم"، ولكن ستبدو طرق العرض مختلفة قليلاً.
    • انقر على الرمز "فتح في نافذة جديدة" رمز الفتح في نافذة جديدةخطوات الفتح في نافذة جديدة.
  2. سجِّل الدخول أو فوِّض حسابك إذا طُلب منك ذلك.
    • استنادًا إلى إعداداتك، قد يُطلب منك تفويض حسابك عدة مرات أثناء هذا التمرين المعملي، وعند مطالبتك بتحديد الإذن في كل مرة، قد يُطلب منك ذلك.
  3. انقر على الزر Cloud Code - تسجيل الدخول في شريط مدى التقدّم السفلي كما هو موضَّح. عليك تفويض المكوّن الإضافي وفقًا للتعليمات. زر تسجيل الدخول لرمز السحابة الإلكترونية
  4. انقر على اختيار مشروع على Google Cloud إذا طُلب منك ذلك، ثم اختَر المشروع الذي تستخدمه انقر على "اختيار مشروع على Google Cloud"..
  5. تفعيل Gemini
    • انقر على رمز السحابة الإلكترونية شعار Cloud Code
        .
      • ملاحظة: قد يتطلّب ذلك خطوة أو خطوتَين، وذلك حسب حجم الشاشة. فتح رمز السحابة الإلكترونية
    • انقر على تغيير الإعدادات في قسم المساعدة والملاحظات.
    • النوع Gemini: Enable
    • ضَع علامة في مربّع الاختيار (إذا لم يسبق لك وضع علامة عليه) تفعيل إعداد Duet في "محرِّر Cloud Shell"
    • أعِد تحميل بيئة التطوير المتكاملة (IDE).
    • يؤدي ذلك إلى تفعيل Gemini في Cloud Code، ويظهر شريط حالة Gemini في بيئة التطوير المتكاملة (IDE). ويتوفّر شريط الحالة في Gemini.
  6. انقر على زرّ Gemini في أسفل يسار الشاشة كما هو موضّح واختَر مشروع Google Cloud الصحيح. اختيار مشروع Gemini
    • إذا ظهرت لك رسالة خطأ Gemini has not been enabled for your selected project. انقر على تفعيل Gemini APIاختيار مشروع Gemini.
  7. تأكَّد من أنّه بإمكانك الاطّلاع على مشروع Google Cloud الصحيح على اليمين (سيظهر اسم مشروعك) وGemini مفعَّل على يسار الصفحة، في شريط الحالة كما هو موضّح أدناه: عرض طريقة عرض Gemini الصحيحة عند تفعيلها

‫4. تنزيل رمز دالة Cloud

ما عليك سوى تنزيل الرمز واستخدام Gemini للحصول على مزيد من المعلومات حول حلول Jump Start Solutions والرمز الذي نشرته.

  1. إذا كنت قد انتقلت إلى مكان آخر، انقر على رمز السحابة الإلكترونية شعار Cloud Code.
  2. انقر على Cloud Functions
      .
    • إذا ظهر لك الزر اختيار مشروع، انقر عليه واختَر المشروع الذي تعمل معه.
    • انقر على الدالة annotate-http.
    • انقر على الرمز التنزيل إلى مساحة عمل جديدة رمز التنزيلرمز التنزيل في لوحة ترميز السحابة الإلكترونية.
  3. استخدِم annotate-http-1 كاسم مساحة العمل (يجب أن يكون الاسم التلقائي) وانقر على حسنًا.
  4. فتح ملف main.py
    • انقر على رمز المستكشف (Explorer) رمز تنقّل المستكشف
    • انقر على ملف main.py لفتحه فتح "مستكشف الملفات" من خلال النقر على شعار Gemini.
  5. النقر على رمز Gemini Chat شعار Gemini
    • ملاحظة: قد يتطلّب ذلك خطوة أو خطوتَين، وذلك حسب حجم الشاشة. فتح Gemini
  6. جرِّب طرح سؤال على Gemini. أدخل طلبًا، مثل:
    • What is a Jump Start Solution in Google Cloud?
    • Explain this code.

إعادة ضبط Gemini Chat

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

إعادة ضبط مجلّد مهملات محادثات ثنائية

5- استدعاء نقطة نهاية Cloud Function الحالية

استكشف الرمز واستدعِ نقطة النهاية التي نشرتها في Jump Start Solution.

  1. أدخِل الطلب:
    • مهم استبدل my-project-with-duet في الطلب التالي برقم تعريف مشروعك.
    • The region is us-central1 and the project id is my-project-with-duet. Write a curl post for the /annotate-http/annotate Cloud Function endpoint that performs label detection on the default eiffel tower image.
    • من المفترض أن تتلقّى ردًا يتضمّن الأمر curl على النحو التالي:
      curl -X POST \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      ...
      
    • انسخ أمر curl هذا لاستخدامه في الخطوة التالية.
  2. اختبار الأمر في وحدة طرفية جديدة
    • انقر على قائمة الهامبرغر
    • انقر على Terminal.
    • انقر على محطة جديدةخطوات فتح الوحدة الطرفية الجديدة لمحرِّر Cloud Shell.
    • الصق أمر curl من الخطوة السابقة في الوحدة الطرفية واضغط على Enter لتشغيل الأمر.
    • من المفترض أن يصلك ردّ يبدأ على النحو التالي:
      {
          "labelAnnotations": [
          {
          "mid": "/m/0csby",
          "description": "Cloud",
          "score": 0.97885925,
          "topicality": 0.97885925,
      ...
      
  3. (اختياري) يمكنك إجراء ذلك باستخدام صورة أخرى من الإنترنت المتاح للجميع، وذلك من خلال إرسال طلب إلى Duet باستخدام عبارة مثل:
    • Do the same thing with the image https://storage.googleapis.com/cloud-samples-data/vision/eiffel_tower.jpg

تحديد المشاكل وحلّها

ملاحظة حول عدم التحديدية: يُرجى العلم أنّ Gemini والمنتجات الأخرى المستندة إلى النماذج اللغوية الكبيرة (LLM) ليست حاسمة، ما يعني أنّه قد تحصل على نتائج مختلفة من خلال الإدخال نفسه. حتى إذا اتبعت الخطوات بشكل مثالي، قد لا تحصل على أوامر تعمل. من المفترض أن تساعد خطوات تحديد المشاكل وحلّها هذه في معالجة هذه المشاكل.

يجب أن يبدو الأمر curl الذي تم إنشاؤه على النحو التالي:

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{
  "image_uri": "gs://cloud-samples-data/vision/eiffel_tower.jpg",
  "features": "LABEL_DETECTION"
}' \
    "https://us-central1-my-project-with-duet.cloudfunctions.net/annotate-http/annotate"

يستخدم Gemini الصورة TEST_IMAGE في ملف "main.py"، وهي صورة لبرج إيفل.

إذا لم يعمل الأمر curl لديك، فيما يلي بعض الأشياء التي يجب التحقق منها:

  1. المشكلة: هل تتضمن نقطة نهاية عنوان URL .a.run.app؟
    • الحل: قد يعتقد Duet أنك بصدد النشر على Cloud Run. استبدِل my-project-with-duet برقم تعريف مشروعك في https://us-central1-my-project-with-duet.cloudfunctions.net/annotate-http/annotate للحصول على نقطة نهاية Cloud Functions الصحيحة واستخدِمها في الأمر curl.
  2. المشكلة: هل تتضمن نقطة نهاية عنوان URL my-project-with-duet؟
    • الحل: استبدِل my-project-with-duet برقم تعريف مشروعك.
  3. المشكلة: هل نقطة نهاية عنوان URL لا تفتقد us-central1؟
    • الحل: تأكد من أن عنوان URL يبدأ بـ us-central1 مثل: https://us-central1-my-project-with-duet.cloudfunctions.net/annotate-http/annotate برقم تعريف مشروعك.
  4. المشكلة: بناءً على الطلب المستخدَم، ستبدو نقطة النهاية التي تم إنشاؤها أحيانًا بالشكل cloudfunctions.net/annotate-http أو cloudfunctions.net/annotate. هل تفتقد نقطة نهاية عنوان URL إلى /annotate-http/annotate في النهاية؟
    • الحل: التأكد من انتهاء نقطة نهاية عنوان URL بالمسار الكامل لتطبيق واجهة برمجة التطبيقات cloudfunctions.net/annotate-http/annotate
  5. المشكلة: طلب cURL يعمل، ولكنه لا يحصل على الكثير من المعلومات. هل يتضمن الطلب ميزات؟
    • الحل: هذه ليست مشكلة كبيرة. في حال المتابعة بدون تغيير أي إعدادات، سيستمرّ التمرين المعملي في العمل. إذا أردت استرداد المزيد من المعلومات، يمكنك أن تطلب من Duet إضافة ميزات إلى طلب cURL.
  6. المشكلة: تبدو الإجابات غير صحيحة أو يبدو أنها تفتقر إلى السياق الخاص بالرمز البرمجي. هل تستخدم Gemini Chat في محرّر Cloud Shell؟
    • الحل: حاوِل فتح ملف main.py وتمييز الرمز المرتبط بطلبك أثناء استخدام Gemini Chat ضمن "محرِّر Cloud Shell". يمتلك "مساعد Gemini" في Google Cloud سياقًا مختلفًا، ما يؤدي إلى تقديم إجابات مختلفة.
  7. المشكلة: لا تزال الإجابة على المطالبة غير صحيحة تمامًا.
    • الحل: جرِّب طلبًا مختلفًا تمنح Gemini فيه توجيهات إضافية حول ما تريد أن يقدّمه. تأكَّد من استبدال my-project-with-duet برقم تعريف مشروعك. إليك مثال:
      Give me the curl command for:
      
      1- Cloud Function running in us-central1 and project my-project-with-duet
      2- HTTP POST to the following endpoint: /annotate-http/annotate endpoint
      3- JSON in the body: { "image_uri": "gs://cloud-samples-data/vision/eiffel_tower.jpg", "features": "LABEL_DETECTION" }
      
  8. المشكلة: بعد كل خطوات استكشاف الأخطاء وإصلاحها هذه، لا يزال الجهاز لا يعمل.
    • الحل: بسبب طبيعة النماذج اللغوية الكبيرة (LLM) غير المحدِّدة، من المحتمل أن يكون Duet هو إنشاء ردّ لن يعمل. وفي هذه الحالة، انسخ الأمر curl المثال أعلاه وجرِّب تشغيله في الوحدة الطرفية. تأكَّد من استبدال my-project-with-duet برقم تعريف مشروعك.

6. إنشاء عميل تطبيق ويب لواجهة برمجة التطبيقات

استخدِم Gemini لإنشاء ملف index.html يطلب نقطة نهاية وظيفة السحابة الإلكترونية في Jump Start Solution. بعد ذلك، يمكنك نشر ملف index.html إلى استضافة Firebase للاطّلاع على الرمز أثناء تشغيله.

  1. إنشاء الرمز من جانب العميل
    • في مربّع محادثة Gemini، أدخِل الطلب:
      • Write an index.html file that takes two inputs: a text input for the image_uri and a dropdown for the features. It should make a post request and display the raw json result to the DOM. The fetch call should use the full url beginning with https. The default image_uri should be gs://cloud-samples-data/vision/eiffel_tower.jpg.
    • انسخ الملف index.html الذي تم إنشاؤه في الردّ.
      • ملاحظة: ستحتاج إلى هذا الرمز لاحقًا، لذا احفظه في مكان ما إذا كنت قلقًا من احتمال فقدانه.
    • أغلِق "main.py".
  2. إنشاء دليل frontend جديد
    • يمكنك توجيه طلبات إلى Gemini، مثل:
      • What are the console commands to create and navigate to a new frontend directory?
    • من المفترض أن تظهر لك نتائج مثل mkdir frontend وcd frontend.
    • يمكنك استخدام الوحدة الطرفية في Cloud Shell لتأكيد أنك لا تزال في الدليل annotate-http-1 وتنفيذ هذه الأوامر:
      • cd ~/annotate-http-1
      • mkdir frontend
      • cd frontend
  3. تأكَّد من تسجيل الدخول إلى المشروع الصحيح في الوحدة الطرفية في Cloud Shell
      .
    • يمكنك توجيه طلبات إلى Gemini، مثل:
      • What is the gcloud command to set my project?
    • من المفترض أن تظهر لك نتيجة مثل gcloud config set project my-project-with-duet
      • تأكَّد من صحة رقم تعريف المشروع، ثم شغِّل الأمر في الوحدة الطرفية في Cloud Shell.
  4. تفعيل
      Firebase
    • في علامة تبويب جديدة (اترك محرر Cloud Shell الحالي مفتوحًا)، انتقِل إلى https://console.firebase.google.com/
    • انقر على إضافة مشروع.
    • اكتب رقم تعريف مشروعك وانتظر حتى يظهر في القائمة المنسدلة.
    • انقر على رقم تعريف المشروع.
    • انقر على متابعة.
    • انقر على تأكيد الخطة.
    • انقر على متابعة.
    • ألغِ اختيار تفعيل "إحصاءات Google" لهذا المشروع
        .
      • تنصح منصة Firebase باستخدام "إحصاءات Google"، لكن لن يتم استخدامها في هذا التطبيق.
    • انقر على متابعة.
    • إغلاق علامة التبويب هذه والرجوع إلى محرِّر Cloud Shell
    • ملاحظة: هذه الخطوات مطلوبة فقط للمستخدمين الذين لم يسبق لهم استخدام Firebase، ولكن هذه الخطوات تتيح للجميع اتّباع المسار نفسه. وفي حال إجراء ذلك مجددًا في المستقبل، يمكنك تخطّي هذه الخطوة.
  5. تسجيل الدخول إلى Firebase في Cloud Shell
    • في الوحدة الطرفية لمحرِّر Cloud Shell، شغِّل الأمر firebase login --no-localhost.
    • انتقل إلى عنوان URL المقدم
      • انقر على نعم، لقد نفّذتُ هذا الأمر للتو.
      • انقر على نعم، هذا هو رقم تعريف جلستي.
      • انقر على نسخ.
    • الرجوع إلى الوحدة الطرفية لمحرِّر Cloud Shell
    • ألصِق القيمة المنسوخة في الوحدة الطرفية في المكان الذي تظهر فيه عبارة: Enter authorization code:
    • اضغط على Enter.
  6. نشر موقع إلكتروني جديد إلى استضافة Firebase
    • إعداد مشروع Firebase جديد
      • يمكنك توجيه طلبات إلى Gemini، مثل:
        • What are the commands to initialize and deploy a new firebase application?
      • من المفترض أن تظهر لك نتائج مثل firebase init وfirebase deploy مع تعليمات.
      • قد يوصي Gemini باتّباع عدة طرق لإجراء ذلك حسب إعداداتك المفضّلة، لذلك ننصحك باتّباع الخطوات التالية:
        • firebase init
          • السهم المتجه للأسفل حتى Hosting: Configure files for Firebase Hosting and (optionally) set up GitHub Action deploys
            • اضغط على شريط Space.
            • اضغط على Enter.
          • السهم المتجه للأسفل حتى Use an existing project
            • اضغط على Enter.
          • إذا ظهرت لك قائمة بالمشاريع، انتقِل باستخدام السهم المتّجه للأسفل إلى المشروع الذي تستخدمه حاليًا
              .
            • اضغط على Enter.
          • إذا طُلب منك Please input the ID of the Google Cloud Project you would like to add Firebase:
            • اكتب رقم تعريف مشروع مشروعك.
            • اضغط على Enter.
          • لإدخال جميع الطلبات المتبقية، يُرجى الضغط على Enter.
        • firebase deploy
  7. إعادة نشر تطبيقك من خلال استدعاء نقطة نهاية Cloud Functions API
    • من المفترض أن تنشئ الأوامر السابقة دليل public يحتوي على ملف index.html داخل الدليل frontend الذي أنشأته سابقًا. ملف ~/annotate-http-1/frontend/public/index.html هو المكان الذي يجب إجراء التغييرات القليلة التالية فيه.
    • افتح ملف index.html.
      • انقر على رمز المستكشف (Explorer) رمز تنقّل المستكشف
      • انقر على المجلد frontend.
      • انقر على المجلد public.
      • انقر على الملف index.html الانتقال إلى ملف index.html
    • عليك إفراغ ملف index.html الحالي.
    • ألصِق الرمز الذي نسخته سابقًا في ملف index.html.
    • شغِّل firebase deploy لنشر التطبيق الجديد.
    • يمكنك الانتقال إلى عنوان URL لاستضافة Firebase لمعرفة ما إذا كان يعمل أم لا.
      • ملاحظة: ستحتاج على الأرجح إلى إجراء تحديث تام للموقع الإلكتروني للاطّلاع على التحديثات.

تحديد المشاكل وحلّها

من المفترض أن يظهر ملف index.html على النحو التالي:

<!DOCTYPE html>
<html>
<head>
<title>Vision API Annotate Image</title>
</head>
<body>
<h1>Vision API Annotate Image</h1>
<form id="annotate-form" action="https://us-central1-my-project-with-duet.cloudfunctions.net/annotate-http/annotate" method="POST">
    <label for="image-uri">Image URI:</label>
    <input type="text" id="image-uri" name="image_uri" value="gs://cloud-samples-data/vision/eiffel_tower.jpg">
    <br>
    <label for="features">Features:</label>
    <select id="features" name="features">
    <option value="LABEL_DETECTION">LABEL_DETECTION</option>
    <option value="TEXT_DETECTION">TEXT_DETECTION</option>
    <option value="IMAGE_PROPERTIES">IMAGE_PROPERTIES</option>
    </select>
    <br>
    <input type="submit" value="Annotate">
</form>

<div id="result"></div>

<script>
    const form = document.getElementById('annotate-form');

    form.addEventListener('submit', (event) => {
    event.preventDefault();

    const imageUri = document.getElementById('image-uri').value;
    const features = document.getElementById('features').value;

    const data = {
        image_uri: imageUri,
        features: features,
    };

    fetch('https://us-central1-my-project-with-duet.cloudfunctions.net/annotate-http/annotate', {
        method: 'POST',
        headers: {
        'Content-Type': 'application/json',
        },
        body: JSON.stringify(data),
    })
        .then((response) => response.json())
        .then((result) => {
        const resultElement = document.getElementById('result');
        resultElement.innerHTML = JSON.stringify(result, null, 2);
        });
    });
</script>
</body>
</html>

إذا كان الموقع الإلكتروني لا يعمل لديك، إليك بعض الأشياء التي يجب التحقق منها:

  1. المشكلة: 404 (لم يتم العثور على الصفحة) هل يحتوي عنوان URL المستخدَم في طريقة fetch على my-project-with-duet؟
    • الحل: استبدِل my-project-with-duet برقم تعريف مشروعك.
  2. المشكلة: 404 (لم يتم العثور على الصفحة) هل عنوان URL المستخدَم في طريقة fetch ينقصه عنوان URL الكامل؟
    • الحل: تأكَّد من تضمين عنوان URL الكامل في طريقة fetch. من المفترض أن يبدو الأمر مثل https://us-central1-my-project-with-duet.cloudfunctions.net/annotate-http/annotate
  3. المشكلة: لا تزال الإجابة على المطالبة غير صحيحة تمامًا.
    • الحل: جرِّب طلبًا مختلفًا تمنح Gemini فيه توجيهات إضافية حول ما تريد أن يقدّمه. تأكَّد من استبدال my-project-with-duet برقم تعريف مشروعك. وفي ما يلي مثال لذلك:
      • Write an index.html file that takes two inputs: a text input for the image_uri and a dropdown for the features. It should make a post request and display the raw json result to the DOM. The fetch call should use https://us-central1-my-project-with-duet.cloudfunctions.net/annotate-http/annotate. The default image_uri should be gs://cloud-samples-data/vision/eiffel_tower.jpg.
  4. المشكلة: هل تم نشر موقعك، ولكنه لا يعمل؟
    • الحل: بسبب طبيعة النماذج اللغوية الكبيرة (LLM) غير المحدِّدة، من المحتمل أن يكون Duet هو إنشاء ردّ لن يعمل. إذا حدث ذلك، انسخ المثال index.html أعلاه وجرِّب إعادة نشره باستخدام firebase deploy. تأكَّد من استبدال my-project-with-duet برقم تعريف مشروعك.

7. (اختياري) فتح الاستكشاف

  1. بإمكانك استخدام Gemini ومساعد التحرير لإضافة أنماط CSS إلى تطبيقك وإعادة نشر التطبيق فور الانتهاء. إذا كنت تبحث عن أفكار ملهمة، إليك مثال على طلب يمكنك تجربتها:
    • Make this index.html file use material design.صورة موقع إلكتروني مع تصميم متعدد الأبعاد
  2. أشياء أخرى يمكن تجربتها:
    • يجب أن يعمل الموقع الإلكتروني الذي تم إنشاؤه مع أي صورة عامة في http. استخدِم Duet لعرض الصورة على الصفحة.

8. (اختياري) حذف المشروع

إذا أردت تجنُّب تحصيل رسوم منك مقابل الموارد التي أنشأتها اليوم، يمكنك أن تسأل Duet عن طريقة تنفيذ ذلك.

  1. أدخِل الطلب:
    • How can I delete my project?
    • من المفترض أن تظهر لك نتيجة مثل gcloud projects delete my-project-with-duet.
    • مهم استبدل my-project-with-duet في الأمر السابق برقم تعريف مشروعك.
  2. شغِّل الأمر gcloud projects delete لإزالة جميع الموارد التي أنشأتها اليوم.