گشتی در Gemini Code Assist Standard and Enterprise برای توسعه دهندگان در Google Cloud Shell Editor

۱. مقدمه

در این آزمایشگاه، شما از Gemini Code Assist، یک همکار مبتنی بر هوش مصنوعی در Google Cloud، استفاده خواهید کرد. شما با نحوه استفاده از Gemini Chat و کمک درون خطی کد برای تولید کد، درک کد و سایر وظایف کدنویسی با کمک هوش مصنوعی آشنا خواهید شد.

کاری که انجام خواهی داد...

  • شما از Cloud Shell IDE برای دانلود یک الگوی کد موجود برای یک برنامه وب استفاده خواهید کرد.
  • شما از Gemini Chat در Cloud Shell IDE برای پرسیدن سوالات عمومی در مورد Google Cloud استفاده خواهید کرد.
  • شما از ابزار کمکی کد درون‌خطی Gemini Code Assist در Cloud Shell IDE برای تولید، خلاصه‌سازی و تکمیل کد استفاده خواهید کرد.

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

  • نحوه استفاده از Gemini Code Assist برای چندین کار توسعه‌دهنده مانند تولید کد، تکمیل کد و خلاصه‌سازی کد.
  • نحوه استفاده از Cloud Assist برای یادگیری در مورد Google Cloud.

آنچه نیاز خواهید داشت...

  • مرورگر وب کروم
  • یک حساب جیمیل
  • یک پروژه ابری با قابلیت پرداخت صورتحساب
  • Gemini Code Assist برای پروژه ابری شما فعال شده است

این آزمایشگاه برای توسعه‌دهندگان در تمام سطوح، از جمله مبتدیان، در نظر گرفته شده است. اگرچه برنامه نمونه به زبان پایتون است، اما برای درک آنچه اتفاق می‌افتد نیازی به آشنایی با برنامه‌نویسی پایتون ندارید. تمرکز ما بر آشنایی با قابلیت‌های Gemini Code Assist برای توسعه‌دهندگان خواهد بود.

۲. راه‌اندازی

این بخش شامل تمام مواردی است که برای شروع کار با این آزمایشگاه باید انجام دهید.

فعال کردن Cloud Assist در پروژه ابری گوگل

اکنون Cloud Assist را در پروژه Google Cloud خود فعال خواهیم کرد. مراحل زیر را دنبال کنید:

  1. به آدرس https://console.cloud.google.com مراجعه کنید و مطمئن شوید که پروژه ابری گوگل (Google Cloud Project) مورد نظر خود را برای این آزمایشگاه انتخاب کرده‌اید. روی آیکون Open Gemini که در بالا سمت راست می‌بینید کلیک کنید.

28f084ec1e159938.png

  1. پنجره چت Cloud Assist در سمت راست کنسول باز می‌شود. مطابق شکل زیر، روی دکمه Enable کلیک کنید. اگر دکمه Enable را نمی‌بینید و به جای آن رابط چت را می‌بینید، احتمالاً Cloud Assist را برای پروژه فعال کرده‌اید و می‌توانید مستقیماً به مرحله بعدی بروید.

3d9ae68104b49a5b.png

  1. پس از فعال شدن، می‌توانید با پرسیدن یک یا دو سوال، Cloud Assist را امتحان کنید. چند نمونه سوال نمایش داده می‌شود، اما می‌توانید چیزی شبیه به What is Cloud Run? را امتحان کنید.

۲۷۸۳۵a۴۴c۷b۷f۷c.png

Cloud Assist به سوال شما پاسخ خواهد داد. می‌توانید روی آن کلیک کنید f68286b2b2ea5c0a.png برای بستن پنجره چت Cloud Assist، روی نماد در گوشه بالا سمت راست کلیک کنید.

فعال کردن دستیار کد Gemini در Cloud Shell IDE

ما برای ادامه‌ی آزمایشگاه کد از Cloud Shell IDE، یک محیط توسعه‌ی کاملاً مدیریت‌شده مبتنی بر Code OSS ، استفاده خواهیم کرد. باید Code Assist را در Cloud Shell IDE فعال و پیکربندی کنیم و مراحل آن در زیر آمده است:

  1. به ide.cloud.google.com مراجعه کنید. ممکن است نمایش IDE کمی طول بکشد، بنابراین لطفاً صبور باشید.
  2. همانطور که نشان داده شده است، روی دکمه Cloud Code - Sign in در نوار وضعیت پایین کلیک کنید. افزونه را طبق دستورالعمل تأیید کنید. اگر عبارت "Cloud Code - بدون پروژه" را در نوار وضعیت مشاهده کردید، آن را انتخاب کنید و سپس پروژه خاص Google Cloud را از لیست پروژه‌هایی که قصد دارید با آنها کار کنید، انتخاب کنید.

609d1645201cc7a3.png

  1. همانطور که نشان داده شده است، روی دکمه Gemini در گوشه پایین سمت راست کلیک کنید و برای آخرین بار پروژه صحیح Google Cloud را انتخاب کنید. اگر از شما خواسته شد که Gemini را برای Google Cloud API فعال کنید، لطفاً این کار را انجام دهید و به مرحله بعد بروید.
  2. پس از انتخاب پروژه گوگل کلود خود، مطمئن شوید که می‌توانید آن را در پیام وضعیت Cloud Code در نوار وضعیت مشاهده کنید و همچنین Code Assist را در سمت راست، در نوار وضعیت، مطابق شکل زیر فعال کرده باشید:

۳۶۵a09ae0c4b1ac6.png

دستیار کد Gemini آماده استفاده است!

اختیاری: اگر Gemini را در نوار وضعیت در پایین سمت راست نمی‌بینید، باید Gemini را در Cloud Code فعال کنید. قبل از انجام این کار، با رفتن به Cloud Code Extension → Settings و وارد کردن متن Gemini مطابق شکل زیر، مطمئن شوید که Gemini در IDE فعال شده است. مطمئن شوید که کادر انتخاب انتخاب شده است. باید IDE خود را دوباره بارگذاری کنید. این کار Gemini را در Cloud Code فعال می‌کند و نماد Gemini در نوار وضعیت در IDE شما ظاهر می‌شود.

3741f07b73a939c8.png

۳. ایجاد برنامه نمونه

ما یک برنامه نمونه (یک برنامه پایتون فلاسک) ایجاد خواهیم کرد که از آن برای بررسی ویژگی‌های Gemini Code Assist استفاده خواهیم کرد.

این مراحل را دنبال کنید:

  1. روی نام پروژه Google Cloud در نوار وضعیت زیر کلیک کنید.

d3652354efac576d.png

  1. لیستی از گزینه‌ها ظاهر می‌شود. از لیست زیر روی «درخواست جدید» کلیک کنید.

91ea9836f38b7f74.png

  1. برنامه Cloud Run را انتخاب کنید.
  2. الگوی برنامه Python (Flask): Cloud Run را انتخاب کنید.
  3. برنامه جدید را در محل دلخواه خود ذخیره کنید.
  4. یک اعلان تأیید می‌کند که برنامه شما ایجاد شده است و یک پنجره جدید با برنامه شما مطابق شکل زیر باز می‌شود. یک فایل README.md باز می‌شود. فعلاً می‌توانید آن نما را ببندید.

aaa3725b17ce27cf.png

۴. با جمینی چت کنید

ما قصد داریم با یادگیری نحوه چت با Gemini شروع کنیم. Gemini به عنوان دستیار چت در Cloud Shell IDE به عنوان بخشی از افزونه Cloud Code در VS Code در دسترس است. می‌توانید با کلیک بر روی دکمه Gemini در نوار ناوبری سمت چپ، آن را اجرا کنید. به دنبال آیکون Gemini بگردید. a489f98a34898727.png در نوار ابزار ناوبری سمت چپ و روی آن کلیک کنید.

این کار باعث نمایش پنجره Chat: Gemini در Cloud Shell IDE می‌شود و می‌توانید با Gemini چت کنید و در مورد Google Cloud کمک بگیرید.

41bbcb85e89f4ff4.png

بیایید از پنجره چت Gemini برای وارد کردن یک اعلان و مشاهده پاسخ از Gemini استفاده کنیم. اعلان زیر را وارد کنید:

What is Cloud Run? 

Gemini باید جزئیات مربوط به Cloud Run را ارائه دهد. Prompts سوالات یا جملاتی هستند که کمکی را که نیاز دارید توصیف می‌کنند. Prompts می‌توانند شامل زمینه‌ای از کد موجود باشند که Google Cloud آن را تجزیه و تحلیل می‌کند تا پاسخ‌های مفیدتر یا کامل‌تری ارائه دهد. برای اطلاعات بیشتر در مورد نوشتن Prompts برای تولید پاسخ‌های خوب، به بخش «نوشتن Prompts بهتر برای 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 است. همچنین توجه داشته باشید که این تعامل چت وابسته به فایل(هایی) است که در IDE روی آنها کار می‌کنید.

۵. توضیح کد

برای کمک به افزایش بهره‌وری شما و در عین حال به حداقل رساندن تغییر زمینه، Gemini Code Assist اقدامات هوشمند مبتنی بر هوش مصنوعی را مستقیماً در ویرایشگر کد شما ارائه می‌دهد. وقتی کد خود را در ویرایشگر کد خود انتخاب می‌کنید، می‌توانید لیستی از اقدامات مرتبط با زمینه خود را مشاهده و انتخاب کنید.

شما می‌توانید از Gemini Code Assist برای کمک به درک بخش‌هایی از کد برنامه استفاده کنید. به برنامه‌ای که در مرحله قبل ایجاد کردیم برگردید و می‌توانید از Gemini Code Assist برای توضیح فایل‌ها و کدهای موجود در IDE خود استفاده کنید.

  1. اگر فایل‌ها قابل مشاهده نیستند، در نوار فعالیت IDE، روی Explorer (کلیک کنید) منوی کاوشگر کد OSS ).
  2. در پنل Explorer، گزینه Dockerfile را انتخاب کنید.
  3. شما می‌توانید هر بخشی از محتوای فایل را انتخاب کنید، روی لامپ کلیک کنید ( لامپ هوش مصنوعی Code OSS Duet ) و سپس روی Gemini کلیک کنید: این را توضیح دهید . برای مثال، خطی را که با ENTRYPOINT شروع می‌شود انتخاب کنید، روی لامپ ( لامپ هوش مصنوعی Code OSS Duet ) و سپس روی Gemini کلیک کنید: این را توضیح دهید . Gemini توضیحی به زبان طبیعی در مورد بخش خاصی از Dockerfile که به اطلاعات بیشتری در مورد آن نیاز دارید، تولید می‌کند. Gemini با جزئیاتی در مورد دستورالعمل ENTRYPOINT پاسخ می‌دهد. شما متوجه می‌شوید که با این دستورالعمل، Docker هنگام راه‌اندازی کانتینر، فایل app.py را اجرا خواهد کرد.
  4. برای مشاهده محتوای فایل app.py ، در نوار فعالیت، روی Explorer (کلیک کنید) منوی کاوشگر کد OSS ) و سپس app.py را انتخاب کنید.
  5. در تعریف تابع hello() ، می‌توانید خطوطی را که می‌خواهید اطلاعات بیشتری در مورد آنها دریافت کنید، انتخاب کنید. سپس روی لامپ () کلیک کنید. لامپ هوش مصنوعی Code OSS Duet ) ، سپس روی Gemini کلیک کنید: توضیح این مورد . در مثال ما، دو خط کد زیر را انتخاب کردیم و سپس Gemini را فعال کردیم: توضیح این عمل.

۱۴d9c56af016b65d.png

  1. Gemini با توضیح مفصلی در مورد این دو متغیر محیطی Cloud Run ( K_SERVICE, K_REVISION ) و نحوه استفاده آنها در کد برنامه پاسخ می‌دهد. توجه داشته باشید که Gemini با دانش خود از Google Cloud و سرویس‌هایی مانند Cloud Run، نه تنها کد پایتون را توضیح داده، بلکه زمینه معنای این متغیرها را در Cloud Run نیز ارائه داده است.

روش‌های اضافی زیر را برای دریافت توضیح کد امتحان کنید:

  1. فایل app.py را به عنوان فایل باز فعلی در IDE نگه دارید. به پنل چت Gemini در نوار ناوبری سمت چپ در VS Code بروید و عبارت Explain this file را وارد کنید. این دستور کل فایل را بررسی کرده و آن را برای شما توضیح می‌دهد.
  2. همچنین می‌توانید هر بخشی از فایل را انتخاب کنید و سپس از طریق پنل چت Gemini در سمت چپ، عبارت Explain this را وارد کنید. این کار فقط بخش انتخاب شده از فایل را توضیح می‌دهد. این کار مشابه کلیک کردن روی لامپ () است. لامپ هوش مصنوعی Code OSS Duet ) و سپس کلیک روی Gemini: این را توضیح دهید.
  3. همچنین می‌توانید بخشی از متن را انتخاب کنید و مانند تصویر زیر، روی Gemini: Smart Actions از بالا سمت راست IDE کلیک کنید تا فهرستی از اقداماتی که می‌توان روی متن انتخاب شده انجام داد، نمایش داده شود. یکی از این گزینه‌ها Explain this action خواهد بود:

fb4d25c7d9240f14.png

۶. تولید کد با اعلان‌ها

این بخش به شما نشان می‌دهد که چگونه از Gemini Code Assist برای تولید کد از نظرات استفاده کنید.

بیایید این ویژگی‌ها را امتحان کنیم. مراحل زیر را دنبال کنید:

  1. یک فایل جدید با نام utils.py ایجاد کنید.
  2. در فایل کد جدید خود، در یک خط جدید، # Function to print a list of blobs in a Google Cloud Storage bucket وارد کنید و سپس Enter (برای ویندوز و لینوکس) یا Return (برای مک او اس) را فشار دهید. جمینی ممکن است سعی کند همزمان با تایپ شما کد تولید کند، اما شما آن را نمی‌پذیرید. ما به طور خاص تولید کد را در مرحله بعدی آغاز خواهیم کرد.
  3. برای شروع تولید کد، Control+Enter (برای ویندوز و لینوکس) یا Control+Return (برای مک او اس) را فشار دهید. در کنار متن درخواست شما در فایل پایتون، Gemini Code Assist کد را به شکل متن سایه‌دار تولید می‌کند. این ابزار یک یا چند پیشنهاد برای کد به همراه یک نوار ابزار به شما ارائه می‌دهد که از طریق آن می‌توانید از یک پیشنهاد کد به پیشنهاد کد دیگر (در صورت وجود چندین پیشنهاد) بروید. حتی می‌توانید هر یک از پیشنهادهای کد را از طریق نوار ابزار بپذیرید . در صورتی که نمی‌توانید نوار ابزار را ببینید یا ناپدید می‌شود، ماوس را روی کد تولید شده نگه دارید تا دوباره ظاهر شود.
  4. اختیاری: برای پذیرش کد تولید شده، Tab را فشار دهید. در صورتی که چندین پیشنهاد وجود دارد، می‌توانید چندین بار Tab فشار دهید تا از یک قطعه کد پیشنهادی به قطعه کد بعدی بروید.

این کدی را که پذیرفته‌اید در فایل utils.py وارد می‌کند. یک تصویر نمونه در زیر نشان داده شده است. کدی که به شما ارائه می‌شود ممکن است با کد نشان داده شده در زیر متفاوت باشد. اگر متدهای اضافی ایجاد شدند، می‌توانید پس از پذیرش کد، آن متدها را حذف کنید.

d6d7915885c5e74b.png

ممکن است متوجه خطوط کج و معوج در کد شوید یا نشوید. اگر متوجه شدید، این همان استناد به کد در عمل است. اگر ماوس را روی هر یک از خطوط نگه دارید، انتساب کد و سایر اطلاعات مرتبط با مجوز نمایش داده می‌شود. مثالی در زیر نشان داده شده است:

c7473cadcf15d887.png

سپس می‌توانید با کلیک بر روی «رفع سریع...» هشدار ارجاع را نادیده بگیرید. با این کار، «رفع سریع» پیشنهادی نمایش داده می‌شود که نمونه‌ای از آن در زیر نشان داده شده است:

10f4672830954c90.png

اگر با پذیرش مجوز کد مشکلی ندارید، می‌توانید گزینه‌ی «نادیده گرفتن هشدار استناد» را انتخاب کنید.

(اختیاری) در اینجا چند پیشنهاد دیگر برای تولید کد ارائه شده است:

  1. همچنین می‌توانید از ویژگی چت Gemini برای پرسیدن همان سوال و دریافت پاسخ در پنجره چت استفاده کنید. سپس رابط چت گزینه‌هایی را برای کپی کردن کد یا قرار دادن در فایل فعلی نمایش می‌دهد.
  2. دستورالعمل‌های خودتان را برای نمونه کدی که می‌خواهید امتحان کنید. چند پیشنهاد در زیر ارائه شده است (با فرض اینکه در یکی از فایل‌های پایتون هستید): یا از بین برخی از دستورالعمل‌های ارائه شده در زیر انتخاب کنید:
  • نوشتن کد پایتون برای انتشار پیام در Google Cloud Pub/Sub
  • نوشتن کد پایتون برای مقداردهی اولیه کلاینت BigQuery
  • نوشتن کد پایتون برای اتصال برنامه به Cloud SQL

۷. هنگام کدنویسی، پیشنهادهای درون‌خطی کد دریافت کنید

هنگام نوشتن کد، Gemini Code Assist پیشنهادهایی برای کد درون‌خطی ارائه می‌دهد که می‌توانید آنها را بپذیرید یا نادیده بگیرید. برای امتحان کردن این ویژگی، فایل utils.py را که در بخش قبلی ایجاد کردیم، تغییر خواهیم داد:

  1. فایل utils.py را به عنوان فایل فعلی در Cloud Shell IDE باز کنید.
  2. یکی از کارهایی که می‌توانیم انجام دهیم این است که اگر دستورات import صحیح در کد تولید شده وجود ندارند، آنها را ارائه دهیم.
  3. شروع به تایپ کلمه import و باید Gemini Code Assist کدی را به شکل متن سایه‌دار پیشنهاد دهد. برای پذیرش پیشنهاد کد از Gemini Code Assist، Tab را فشار دهید. در غیر این صورت، برای نادیده گرفتن پیشنهاد، Esc را فشار دهید یا به نوشتن کد خود ادامه دهید. در صفحه نمونه زیر، پیشنهاد می‌شود کلاس storage را وارد کنید زیرا در کد استفاده می‌شود. برای پذیرش پیشنهاد کد، Tab را فشار دهید. همچنین عبارت import os پیشنهاد شده است، اما از آنجایی که نیازی به آن نیست، می‌توانیم آن را حذف کنیم.

cb3dfff74172959d.png

  1. به انتهای فایل utils.py بروید و اگر خط فراخوانی تابع ارائه نشده است، آن را اضافه کنید. در اینجا، منظور تابع print_blobs است. می‌توانید فقط نام تابع را تایپ کنید و code complete به شما کمک می‌کند تا عبارت را کامل کنید.
  2. شما باید bucket_name را وارد کنید و می‌توانید از نام عمومی bucket زیر استفاده کنید: gemini-codeassist-bucket . نمونه فراخوانی تابع در زیر نشان داده شده است. لطفاً توجه داشته باشید که ممکن است تفاوت‌های جزئی از نظر نام توابع و غیره مشاهده کنید.

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

(اختیاری) کد نمونه را اجرا کنید

از آنجایی که ما کدی برای فهرست کردن حباب‌ها در یک سطل ذخیره‌سازی ابری گوگل نوشتیم، باید کتابخانه پایتون 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 IDE راه‌اندازی کنیم. روی آیکون منو کلیک کنید و سپس مطابق شکل زیر ، ترمینال → ترمینال جدید را انتخاب کنید :

289173c68f1addb5.png

در بخش ترمینال، وابستگی‌های پایتون را از طریق دستور زیر نصب کنید:

pip3 install -r requirements.txt

در نهایت، می‌توانید فایل utils.py را از طریق دستور زیر اجرا کنید:

python utils.py

این باید حباب‌هایی را که در مخزن ذخیره‌سازی ابری عمومی گوگل وجود دارند نمایش دهد. در حالت ایده‌آل، باید ۲ حباب را در خروجی ( file1.txt و file2.txt ) مشاهده کنید.

عیب‌یابی

در صورتی که هنگام نمایش اشیاء در سطل عمومی فوق، خطای "دسترسی" دریافت کردید، می‌توانید سطل ذخیره‌سازی ابری گوگل خود را ایجاد کنید و به جای gemini-codeassist-bucket از آن استفاده کنید. بخش بعدی نحوه انجام این کار را به شما نشان می‌دهد.

(اختیاری) مخزن ذخیره‌سازی ابری خودتان را ایجاد کنید

بیایید از Gemini کمک بگیریم تا دستوراتی برای ایجاد یک سطل، در دسترس عموم قرار دادن آن و آپلود اشیاء نمونه در سطل به ما ارائه دهد.

با این سوال شروع کنید: «دستور gcloud برای ایجاد یک سطل عمومی در فضای ذخیره‌سازی ابری گوگل چیست؟»

این باید یک دستور gcloud برای ایجاد یک bucket به شما ارائه دهد. دستور دقیق در زیر نشان داده شده است:

gcloud storage buckets create gs://<BUCKET_NAME>

یک نام منحصر به فرد برای <BUCKET_NAME> انتخاب کنید و دستور را در ترمینال اجرا کنید.

حالا که یک سطل ایجاد کرده‌ایم، می‌خواهیم سطل به صورت عمومی قابل دسترسی باشد. بیایید با استفاده از دستور زیر از Gemini بخواهیم که این کار را انجام دهد: "چگونه می‌توانم یک سطل ذخیره‌سازی ابری گوگل را به صورت عمومی قابل دسترسی کنم؟"

این باید یک دستور 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 اجرا کنید.

پاکسازی

اگر سطل ذخیره‌سازی ابری گوگل خود را ایجاد کرده‌اید، اکیداً توصیه می‌کنیم سطل را حذف کنید تا از هرگونه هزینه و خطرات امنیتی احتمالی جلوگیری شود.

می‌توانید با دستور زیر، سطل را حذف کنید:

gcloud storage buckets delete gs://<BUCKET_NAME>

۸. تبریک می‌گویم!

تبریک می‌گویم - شما با موفقیت با Gemini Code Assist روی یک پروژه نمونه کار کردید تا بفهمید که چگونه می‌تواند در تولید کد، تکمیل کد، خلاصه‌سازی کد به شما کمک کند و در یافتن پاسخ سوالات مربوط به Google Cloud به شما کمک کند.

اسناد مرجع