نحوه استفاده از Gemini برای کاوش و بهبود یک برنامه موجود

۱. مرور کلی

این Codelab نحوه استفاده از Gemini برای ساخت یک برنامه کلاینت بر روی یک API backend موجود را نشان می‌دهد.

آنچه یاد خواهید گرفت

این آزمایش برای نشان دادن استفاده از Gemini با یک برنامه موجود در نظر گرفته شده است. در این آزمایش، شما یاد خواهید گرفت که چگونه موارد زیر را انجام دهید:

تنظیمات - ایجاد یک پروژه جدید

بسته به سیاست‌های سازمان شما، ممکن است نتوانید این راهکار را به درستی پیاده‌سازی کنید.

توصیه: به جای حساب شرکتی یا مدرسه، از حسابی استفاده کنید که مجوزهای کامل (مانند حساب شخصی) را داشته باشد.

توجه: اگر اخیراً پروژه‌ای ایجاد کرده‌اید که در آن مجوزهای کامل دارید و از قبل API Gemini را در آن پروژه فعال کرده‌اید، می‌توانید به استفاده از آن پروژه ادامه دهید و از این مرحله صرف نظر کنید. به عنوان مثال، اگر اخیراً یک آزمایشگاه کد Gemini دیگر را تکمیل کرده‌اید، می‌توانید از این مرحله صرف نظر کنید.

  1. به کنسول ابری گوگل بروید
  2. روی منوی کشویی پروژه فعلی کلیک کنید.
  3. روی پروژه جدید کلیک کنید دکمه پروژه جدید
  4. یک نام پروژه اضافه کنید و روی CREATE کلیک کنید
    • توصیه: از یک نام پروژه منحصر به فرد استفاده کنید تا Project name و Project ID یکسان باشند. فرم ایجاد پروژه

۲. راهکار Jump Start را مستقر کنید

راهکارهای Jump Start، قالب‌های راهکار از پیش ساخته شده از Google Cloud هستند. این آزمایشگاه از یک راهکار Jump Start برای نشان دادن چگونگی کمک Gemini به بهبود یک برنامه از پیش موجود استفاده می‌کند.

  1. به صفحه جزئیات راه‌حل شروع پردازش تصویر هوش مصنوعی/یادگیری ماشین بروید
    • روی منوی همبرگری کلیک کنید
    • در زیرمنوی محصولات و راهکارها ، روی «راهکارهای شروع سریع» کلیک کنید مراحل ناوبری راهکارهای شروع سریع
    • روی پردازش تصویر AI/ML در توابع ابری کلیک کنید شروع ناوبری راه‌حل پردازش تصویر هوش مصنوعی و یادگیری ماشین
  2. روی استقرار کلیک کنید
    • اگر پروژه شما قابلیت پرداخت صورتحساب را فعال نکرده است، آن را فعال کنید .
    • نام پروژه را تأیید کنید و روی ادامه کلیک کنید
    • us-central1 (Iowa) را به عنوان منطقه انتخاب کنید.
    • اگر از شما ورودی دیگری خواسته شد، پیش‌فرض‌ها را بپذیرید.
    • روی استقرار کلیک کنید.
    • این می‌تواند تا ۱۵ دقیقه طول بکشد.
    • نیازی به ایجاد هیچ تغییری نیست، اما می‌توانید پیاده‌سازی Jump Start Solution را بررسی کنید.

عیب‌یابی

  1. مشکل: آیا خطایی با عنوان Partial deployment. مشاهده می‌کنید؟
    • راه حل: متأسفانه، این بدان معناست که احتمالاً باید استقرار را حذف کرده و از نو شروع کنید. باید دکمه‌ای با عنوان DELETE DEPLOYMENT وجود داشته باشد. روی آن دکمه کلیک کنید و سپس Jump Start Solution را دوباره مستقر کنید.

۳. فعال کردن جمینی

محیط ویرایش کد خود را تنظیم کنید و Gemini را فعال کنید

  1. به ویرایشگر Cloud Shell بروید
    • بازگشت به کنسول ابری گوگل
    • Cloud Shell Editor در نوار جستجو تایپ کنید و از منوی کشویی روی Cloud Shell Editor کلیک کنید. مراحل باز کردن ویرایشگر Cloud Shell
    • اگر از ویرایشگر قدیمی استفاده می‌کنید ، روی «امتحان ویرایشگر جدید» کلیک کنید.
      • نکته: اگر دکمه‌ی «ویرایشگر جدید را امتحان کنید» را نمی‌بینید، احتمالاً از قبل از ویرایشگر جدید استفاده می‌کنید. ویرایشگر قدیمی کار خواهد کرد، اما نماها کمی متفاوت خواهند بود.
    • روی نماد باز کردن در پنجره جدید کلیک کنید نماد باز کردن در پنجره جدیدمراحل باز شدن در پنجره جدید
  2. در صورت درخواست، وارد حساب کاربری خود شوید یا آن را تأیید کنید.
    • بسته به تنظیمات شما، ممکن است در طول این آزمایش چندین بار از شما خواسته شود که حساب خود را تأیید کنید، در صورت درخواست، هر بار تأیید را انتخاب کنید.
  3. مطابق شکل، روی دکمه‌ی Cloud Code - Sign in در نوار وضعیت پایین کلیک کنید. افزونه را طبق دستورالعمل تأیید کنید. دکمه ورود برای کد ابری
  4. در صورت درخواست، روی «انتخاب یک پروژه Google Cloud» کلیک کنید و سپس پروژه‌ای را که استفاده می‌کنید انتخاب کنید. روی انتخاب یک پروژه ابری گوگل کلیک کنید
  5. فعال کردن جمینی
    • روی کد ابری کلیک کنید لوگوی کد ابری
      • توجه: بسته به اندازه صفحه نمایش شما، ممکن است یک یا دو مرحله طول بکشد. کد ابری باز
    • در بخش «راهنما و بازخورد» روی «تغییر تنظیمات» کلیک کنید
    • نوع Gemini: Enable
    • کادر انتخاب را علامت بزنید (اگر قبلاً انتخاب نشده است) فعال کردن تنظیمات Duet در ویرایشگر Cloud Shell
    • IDE خود را دوباره بارگذاری کنید.
    • این کار Gemini را در Cloud Code فعال می‌کند و نوار وضعیت Gemini در IDE شما ظاهر می‌شود. نوار وضعیت Gemini در دسترس است.
  6. همانطور که نشان داده شده است، روی دکمه Gemini در گوشه پایین سمت راست کلیک کنید و پروژه صحیح Google Cloud را انتخاب کنید. پروژه جمینی را انتخاب کنید
    • اگر خطایی مبنی Gemini has not been enabled for your selected project مشاهده کردید، روی Enable Gemini API کلیک کنید. پروژه جمینی را انتخاب کنید
  7. تأیید کنید که می‌توانید پروژه صحیح Google Cloud را در سمت چپ (نام پروژه خود را خواهید دید) و Gemini فعال را در سمت راست، در نوار وضعیت، مطابق شکل زیر، مشاهده کنید: نمای صحیح Gemini هنگام فعال بودن

۴. کد تابع ابری را دانلود کنید

کد را دانلود کنید و از Gemini برای کسب اطلاعات بیشتر در مورد Jump Start Solutions و کدی که مستقر کرده‌اید، استفاده کنید.

  1. اگر از مسیر اصلی خارج شده‌اید، روی Cloud Code کلیک کنید. لوگوی کد ابری
  2. روی عملکردهای ابری کلیک کنید
    • اگر دکمه‌ی «انتخاب پروژه» را دیدید، روی آن کلیک کنید و پروژه‌ای را که با آن کار می‌کنید انتخاب کنید.
    • روی تابع annotate-http کلیک کنید
    • روی نماد «دانلود به فضای کاری جدید» کلیک کنید آیکون دانلودآیکون دانلود در پنل کد ابری
  3. از annotate-http-1 به عنوان نام فضای کاری استفاده کنید (باید پیش‌فرض باشد) و روی تأیید کلیک کنید.
  4. فایل main.py را باز کنید
    • روی آیکون اکسپلورر کلیک کنید آیکون ناوبری اکسپلورر
    • برای باز کردن فایل main.py روی آن کلیک کنید. با کلیک روی لوگوی Gemini، فایل اکسپلورر را باز کنید
  5. روی آیکون چت جمینی کلیک کنید لوگوی جمینی
    • توجه: بسته به اندازه صفحه نمایش شما، ممکن است یک یا دو مرحله طول بکشد. باز کردن جمینی
  6. سعی کنید از Gemini یک سوال بپرسید. یک سوال مانند این بنویسید:
    • What is a Jump Start Solution in Google Cloud?
    • Explain this code.

تنظیم مجدد چت جمینی

پیام‌ها روی پیام‌های بعدی تأثیر می‌گذارند. برای مثال، اگر در شناسه پروژه یا منطقه اشتباه تایپی داشته باشید، آن خطاها در پیام‌ها و پاسخ‌های بعدی نیز ادامه پیدا می‌کنند که می‌تواند تأثیر منفی بر تجربه شما داشته باشد. اگر اشتباه تایپی داشته‌اید یا به هر دلیل دیگری می‌خواهید تاریخچه را پاک کنید، می‌توانید از نماد سطل زباله برای تنظیم مجدد چت استفاده کنید.

تنظیم مجدد سطل زباله چت دونفره می‌تواند برجسته شود

۵. فراخوانی نقطه پایانی تابع ابری موجود

کد را بررسی کنید و با نقطه پایانی که در 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. دستور را در یک ترمینال جدید امتحان کنید
    • روی منوی همبرگری کلیک کنید
    • روی ترمینال کلیک کنید
    • روی ترمینال جدید کلیک کنید مراحل باز کردن ترمینال ویرایشگر 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. مشکل: بسته به prompt مورد استفاده، گاهی اوقات endpoint تولید شده به صورت cloudfunctions.net/annotate-http یا cloudfunctions.net/annotate خواهد بود. آیا endpoint URL در انتها /annotate-http/annotate وجود ندارد؟
    • راه حل: مطمئن شوید که نقطه پایانی URL با مسیر کامل برنامه API به پایان می‌رسد cloudfunctions.net/annotate-http/annotate
  5. مشکل: درخواست cURL کار می‌کند، اما اطلاعات زیادی دریافت نمی‌کند. آیا این درخواست شامل ویژگی‌ها می‌شود؟
    • راه حل: این مشکل بزرگی نیست. اگر بدون تغییر چیزی ادامه دهید، بقیه‌ی آزمایشگاه همچنان کار خواهد کرد. اگر می‌خواهید اطلاعات بیشتری دریافت کنید، می‌توانید از Duet بخواهید ویژگی‌هایی را به درخواست cURL اضافه کند.
  6. مشکل: پاسخ‌ها نادرست به نظر می‌رسند یا فاقد زمینه‌ی خاص کد هستند. آیا از چت جمینی در ویرایشگر Cloud Shell استفاده می‌کنید؟
    • راه حل: سعی کنید فایل main.py را باز کنید و هنگام استفاده از Gemini Chat در Cloud Shell Editor، کد مربوط به اعلان خود را هایلایت کنید. دستیار 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 را با شناسه پروژه خود جایگزین کنید.

۶. یک کلاینت اپلیکیشن وب برای API بسازید

از Gemini برای تولید یک فایل index.html که نقطه پایانی Jump Start Solution Cloud Function را فراخوانی می‌کند، استفاده کنید. سپس فایل index.html را در Firebase Hosting مستقر کنید تا کد را در عمل مشاهده کنید.

  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. فعال کردن فایربیس
    • در یک برگه جدید (ویرایشگر Cloud Shell فعلی خود را باز بگذارید)، به https://console.firebase.google.com/ مراجعه کنید.
    • روی افزودن پروژه کلیک کنید
    • شناسه پروژه خود را تایپ کنید و منتظر بمانید تا در منوی کشویی ظاهر شود.
    • روی شناسه پروژه خود کلیک کنید
    • روی ادامه کلیک کنید
    • روی تأیید طرح کلیک کنید
    • روی ادامه کلیک کنید
    • لغو انتخاب فعال کردن گوگل آنالیتیکس برای این پروژه
      • فایربیس استفاده از گوگل آنالیتیکس را توصیه می‌کند، اما در این برنامه از آن استفاده نخواهد شد.
    • روی ادامه کلیک کنید
    • این برگه را ببندید و به ویرایشگر Cloud Shell برگردید
    • توجه: این مراحل فقط برای کاربرانی که قبلاً از Firebase استفاده نکرده‌اند لازم است، اما این به همه اجازه می‌دهد تا همین مسیر را دنبال کنند. اگر در آینده دوباره این کار را انجام دهید، می‌توانید از این مرحله صرف نظر کنید.
  5. وارد فایربیس در کلود شل شوید
    • در ترمینال ویرایشگر پوسته ابری، دستور firebase login --no-localhost را اجرا کنید.
    • به آدرس اینترنتی ارائه شده مراجعه کنید
      • روی بله، من همین الان این دستور را اجرا کردم کلیک کنید
      • روی بله، این شناسه جلسه من است کلیک کنید
      • روی کپی کلیک کنید
    • به ترمینال ویرایشگر Cloud Shell برگردید
    • مقدار کپی شده را در ترمینال، جایی که می‌گوید: Enter authorization code: جایگذاری کنید.
    • Enter را فشار دهید
  6. یک وب‌سایت جدید را در Firebase Hosting مستقر کنید
    • یک پروژه جدید فایربیس را مقداردهی اولیه کنید
      • می‌توانید از 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 را باز کنید.
      • روی آیکون اکسپلورر کلیک کنید آیکون ناوبری اکسپلورر
      • روی پوشه frontend کلیک کنید
      • روی پوشه public کلیک کنید
      • روی فایل index.html کلیک کنید پیمایش به فایل index.html
    • فایل index.html موجود را خالی کنید.
    • کدی را که قبلاً کپی کرده‌اید در فایل index.html قرار دهید.
    • برای استقرار برنامه جدید firebase deploy اجرا کنید.
    • برای دیدن اینکه آیا کار می‌کند، به آدرس اینترنتی میزبانی فایربیس مراجعه کنید!
      • توجه: برای مشاهده به‌روزرسانی‌ها، احتمالاً باید وب‌سایت را به‌طور کامل به‌روزرسانی کنید.

عیب‌یابی

فایل 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. مشکل: ۴۰۴ (یافت نشد) آیا URL استفاده شده در متد fetch شامل my-project-with-duet می‌شود؟
    • راه حل: به جای my-project-with-duet ، شناسه پروژه خود را قرار دهید.
  2. مشکل: ۴۰۴ (یافت نشد) آیا آدرس اینترنتی استفاده شده در متد fetch آدرس اینترنتی کامل را ندارد؟
    • راه حل: حتماً آدرس کامل 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 را با شناسه پروژه خود جایگزین کنید.

۷. (اختیاری) کاوش آزاد

  1. از Gemini و دستیار ویرایشگر برای اضافه کردن استایل‌های CSS به برنامه خود استفاده کنید و پس از اتمام کار، برنامه را دوباره مستقر کنید! اگر به دنبال الهام هستید، در اینجا یک نمونه از اعلان وجود دارد که می‌توانید امتحان کنید:
    • Make this index.html file use material design. تصویر سایت طراحی شده با متریال دیزاین
  2. موارد دیگر برای امتحان کردن:
    • وب‌سایت تولید شده باید با هر تصویر عمومی http کار کند. برای نمایش تصویر در صفحه، با Duet کار کنید.

۸. (اختیاری) پروژه را حذف کنید

اگر می‌خواهید از پرداخت هزینه برای منابعی که امروز ایجاد کرده‌اید، اجتناب کنید، می‌توانید از Duet بپرسید که چگونه این کار را انجام دهد.

  1. دستور را وارد کنید:
    • How can I delete my project?
    • شما باید نتیجه‌ای مانند gcloud projects delete my-project-with-duet ببینید.
    • مهم: my-project-with-duet در دستور قبلی را با شناسه پروژه خود جایگزین کنید.
  2. دستور gcloud projects delete را اجرا کنید تا تمام منابعی که امروز ایجاد کرده‌اید حذف شوند.