درباره این codelab
1. نمای کلی
در این آزمایشگاه، خط لوله Bitbucket را راهاندازی کرده و آن را با Gemini ادغام میکنید تا مراحل بررسی کد را خودکار کنید.
آنچه خواهید آموخت
در این آزمایشگاه با نحوه انجام کارهای زیر آشنا می شوید:
- چگونه مراحل اتوماسیون بررسی کد GenAI را در Bitbucket اضافه کنیم
- نحوه اجرای devai cli به صورت محلی برای خودکارسازی بررسی کد
پیش نیازها
- این آزمایشگاه آشنایی با محیط های Cloud Console و Cloud Shell را فرض می کند.
2. راه اندازی و الزامات
راه اندازی پروژه ابری
- به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .
- نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. همیشه می توانید آن را به روز کنید.
- شناسه پروژه در تمام پروژههای Google Cloud منحصربهفرد است و تغییرناپذیر است (پس از تنظیم نمیتوان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید شناسه پروژه خود را ارجاع دهید (معمولاً با نام
PROJECT_ID
شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، میتوانید خودتان را امتحان کنید، و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند. - برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه ، که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
- در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورتحساب فراتر از این آموزش، میتوانید منابعی را که ایجاد کردهاید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.
راه اندازی محیط
چت Gemini را باز کنید.
یا «Ask Gemini» را در نوار جستجو تایپ کنید.
فعال کردن Cloud AI Companion API:
روی " Start chatting
" کلیک کنید و یکی از نمونه سوالات را دنبال کنید یا درخواست خود را تایپ کنید تا آن را امتحان کنید.
درخواست برای امتحان کردن:
- Cloud Run را در 5 نکته کلیدی توضیح دهید.
- شما مدیر محصول Google Cloud Run هستید، Cloud Run را در 5 نکته کلیدی کوتاه برای دانش آموز توضیح دهید.
- شما مدیر محصول Google Cloud Run هستید، در 5 نکته کلیدی کوتاه، Cloud Run را به یک توسعه دهنده معتبر Kubernetes توضیح دهید.
- شما مدیر محصول Google Cloud Run هستید، در 5 نکته کلیدی کوتاه توضیح دهید که چه زمانی از Cloud Run در مقابل GKE استفاده می کنید.
برای کسب اطلاعات بیشتر در مورد نوشتن اعلانهای بهتر ، Prompt Guide را بررسی کنید.
Gemini for Google Cloud چگونه از داده های شما استفاده می کند
تعهد حریم خصوصی Google
Google یکی از اولین شرکتهایی در این صنعت بود که تعهد حفظ حریم خصوصی AI/ML را منتشر کرد، که این اعتقاد ما را نشان میدهد که مشتریان باید بالاترین سطح امنیت و کنترل را بر دادههای ذخیرهشده در ابر داشته باشند.
داده هایی که ارسال و دریافت می کنید
به سؤالاتی که از Gemini میپرسید، از جمله اطلاعات ورودی یا کدی که برای تجزیه و تحلیل یا تکمیل به Gemini ارسال میکنید، درخواستها گفته میشود. پاسخ ها یا تکمیل کدهایی که از جمینی دریافت می کنید، پاسخ نامیده می شوند. Gemini از دستورات یا پاسخ های شما به عنوان داده برای آموزش مدل های خود استفاده نمی کند .
رمزگذاری دستورات
هنگامی که درخواستهایی را به Gemini ارسال میکنید، دادههای شما در حین انتقال به عنوان ورودی مدل اصلی در Gemini رمزگذاری میشوند .
داده های برنامه تولید شده از Gemini
Gemini روی کدهای Google Cloud شخص اول و همچنین کدهای شخص ثالث منتخب آموزش دیده است. شما مسئول امنیت، آزمایش و اثربخشی کد خود هستید ، از جمله هر گونه تکمیل، تولید یا تجزیه و تحلیل کدی که Gemini به شما ارائه می دهد.
بیشتر بیاموزید که چگونه Google با درخواستهای شما برخورد میکند.
3. گزینه هایی برای آزمایش فرمان ها
اگر میخواهید درخواستهای devai cli موجود را تغییر یا گسترش دهید، چندین گزینه برای آن دارید.
Vertex AI Studio بخشی از پلتفرم Vertex AI Google Cloud است که به طور خاص برای ساده سازی و تسریع توسعه و استفاده از مدل های هوش مصنوعی مولد طراحی شده است.
Google AI Studio ابزاری مبتنی بر وب برای نمونه سازی و آزمایش مهندسی سریع و Gemini API است.
- برنامه وب جمینی (gemini.google.com)
برنامه وب Google Gemini (gemini.google.com) یک ابزار مبتنی بر وب است که برای کمک به شما در کشف و استفاده از قدرت مدلهای هوش مصنوعی Gemini Google طراحی شده است.
- اپلیکیشن موبایل گوگل جمینی برای اندروید و اپلیکیشن گوگل در iOS
4. ایجاد حساب سرویس
Cloud Shell را با کلیک بر روی نماد سمت راست نوار جستجو فعال کنید.
در ترمینال باز شده، خدمات مورد نیاز را برای استفاده از Vertex AI API و چت Gemini فعال کنید.
gcloud services enable \
aiplatform.googleapis.com \
cloudaicompanion.googleapis.com \
cloudresourcemanager.googleapis.com \
secretmanager.googleapis.com
اگر از شما خواسته شد که مجوز دهید، برای ادامه روی "مجوز" کلیک کنید.
دستورات زیر را برای ایجاد حساب کاربری و کلیدهای سرویس جدید اجرا کنید.
شما از این حساب سرویس برای برقراری تماس های API با Vertex AI Gemini API از خطوط لوله CICD استفاده خواهید کرد.
PROJECT_ID=$(gcloud config get-value project)
SERVICE_ACCOUNT_NAME='vertex-client'
DISPLAY_NAME='Vertex Client'
KEY_FILE_NAME='vertex-client-key'
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME --display-name "$DISPLAY_NAME"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/aiplatform.admin" --condition None
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/secretmanager.secretAccessor" --condition None
gcloud iam service-accounts keys create $KEY_FILE_NAME.json --iam-account=$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com
5. GitHub Repo را به Bitbucket Repo وارد کنید
به https://bitbucket.org/ وارد شوید و گزینه « Create
» / Repository / Import repository
را انتخاب کنید.
url مخزن Git:
https://github.com/GoogleCloudPlatform/genai-for-developers.git
فضای کاری و پروژه خود را انتخاب کنید و نامی برای مخزن جدید ارائه دهید.
برای شروع فرآیند واردات، روی " Import repository
" کلیک کنید.
6. متغیرهای خط لوله Bitbucket را اضافه کنید
در مرحله بعد، خط لوله Bitbucket CICD را فعال می کنید تا زمانی که تغییرات به مخزن داده می شود، بازبینی کد را اجرا کند.
مخزن Bitbucket را در مرورگر باز کنید و به بخش "تنظیمات Repository
settings / PIPELINES / Settings"
بروید. خطوط لوله را برای این مخزن فعال کنید.
به بخش "تنظیمات Repository
settings / PIPELINES / Repository variables"
بروید.
3 متغیر اضافه کنید:
-
PROJECT_ID
- شناسه پروژه qwiklabs شما -
LOCATION
- us-central1 -
GOOGLE_CLOUD_CREDENTIALS
برای مقدار متغیر GOOGLE_CLOUD_CREDENTIALS
، از کلید حساب سرویس ایجاد شده در بخش بالا استفاده کنید. این دستور را در Google Cloud Shell اجرا کنید و مقدار را کپی/پیست کنید.
cat ~/vertex-client-key.json
نمای متغیرهای مخزن:
7. خط لوله Bitbucket را اجرا کنید
بخش Pipelines
را باز کرده و روی Run initial pipeline
کلیک کنید.
شاخه main
و خط لوله default
را انتخاب کرده و روی Run
کلیک کنید.
8. خروجی خط لوله Bitbucket را مرور کنید
بخش " Pipelines
" را باز یا تازه کنید و خروجی خط لوله را بررسی کنید.
9. کلون Bitbucket Repo و راه اندازی کلید SSH
به ترمینال Google Cloud Shell برگردید و یک کلید SSH جدید تنظیم کنید.
قبل از اجرای دستورات ایمیل خود را به روز کنید.
ssh-keygen -t ed25519 -C "your-email-address"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub
یک کلید دسترسی به مخزن Bitbucket خود اضافه کنید.
" Repository settings / SECURITY / Access keys
" را باز کرده و روی "افزودن کلید" کلیک کنید.
برای مقدار کلید، خروجی آخرین دستور را کپی/پیست کنید.
در بخش « Source
»، روی « Clone
» کلیک کنید و آدرس اینترنتی را کپی کنید.
به ترمینال برگردید و مخزن را شبیه سازی کنید.
cd ~
mkdir bitbucket
cd bitbucket
پروژه Bitbucket و url مخزن خود را جایگزین کنید.
git clone git@bitbucket.org:YOUR_PROJECT/genai-for-developers.git
دایرکتوری را تغییر دهید و فایل bitbucket-pipelines.yml
را باز کنید. اگر نام مخزن را در حین وارد کردن تغییر دادید، قبل از اجرای دستورات زیر، نام پوشه را بهروزرسانی کنید.
cd genai-for-developers
cloudshell edit bitbucket-pipelines.yml
10. Gemini Code Assist را فعال کنید
روی نماد " Gemini
" در گوشه سمت راست پایین کلیک کنید ،
روی « Login to Google Cloud
» و « Select a Google Cloud Project
» کلیک کنید.
از پنجره بازشو، پروژه Qwiklabs خود را انتخاب کنید.
11. کد را با Gemini Code Assist توضیح دهید
در هر نقطه از فایل bitbucket-pipelines.yml
کلیک راست کرده و Gemini Code Assist > Explain
this را انتخاب کنید.
توضیح نقد:
12. DEVAI CLI را به صورت محلی اجرا کنید
به ترمینال Cloud Shell برگردید و دستورات زیر را برای نصب devai
به صورت محلی اجرا کنید.
pip3 install devai-cli
cli نصب شد اما در PATH نیست.
WARNING: The script devai is installed in '/home/student_00_478dfeb8df15/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
برای به روز رسانی متغیر محیطی PATH دستور زیر را اجرا کنید. نام پوشه اصلی کاربر خود را جایگزین کنید. به عنوان مثال: student_00_478dfeb8df15
export PATH=$PATH:/home/YOUR-USER-HOME-FOLDER/.local/bin
دستور devai cli را برای انجام بازبینی کد به صورت محلی اجرا کنید. بررسی خروجی cli.
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
devai review code -c ~/bitbucket/genai-for-developers/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
اسکریپت بررسی را با اجرای دستور زیر باز کنید:
cloudshell edit ~/bitbucket/genai-for-developers/devai-cli/src/devai/commands/review.py
در هر نقطه از فایل review.py
کلیک راست کرده و Gemini Code Assist > Explain
this را انتخاب کنید.
توضیح بررسی
13. توسعه DevAI CLI
در این بخش تغییراتی را در devai cli ایجاد خواهید کرد.
برای شروع، python virtualenv را راه اندازی کنید، نیازمندی ها را نصب کنید و دستور نمونه را اجرا کنید.
cd ~/bitbucket/genai-for-developers/devai-cli
python3 -m venv venv
. venv/bin/activate
pip3 install -r src/requirements.txt
pip3 install --editable ./src
devai echo
دستور بررسی کد را مجدداً اجرا کنید تا بررسی کنید که همه چیز درست کار می کند:
devai review code -c ~/bitbucket/genai-for-developers/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
نتایج را با استفاده از پیش نمایش Markdown در Cloud Shell Editor مرور کنید.
یک فایل جدید ایجاد کنید و پاسخ Gemini را جایگذاری کنید.
سپس از Command Palette استفاده کنید و " Markdown: Open Preview
" را انتخاب کنید.
14. دستورات devai cli را کاوش کنید
دستور بررسی کد
devai review code -c ~/bitbucket/genai-for-developers/sample-app/src/main/java
دستور بررسی عملکرد
devai review performance -c ~/bitbucket/genai-for-developers/sample-app/src/main/java
دستور بررسی امنیتی
devai review security -c ~/bitbucket/genai-for-developers/sample-app/src/main/java
دستور بررسی پوشش را تست کنید
devai review testcoverage -c ~/bitbucket/genai-for-developers/sample-app/src
مسدود کننده ها دستورات را بررسی می کنند
devai review blockers -c ~/bitbucket/genai-for-developers/sample-app/pom.xml
devai review blockers -c ~/bitbucket/genai-for-developers/sample-app/setup.md
بررسی و خلاصه سازی تصویر/نمودار:
نمودار ورودی[ ~/genai-for-developers/images/extension-diagram.png
]:
دستور بررسی:
devai review image \
-f ~/bitbucket/genai-for-developers/images/extension-diagram.png \
-p "Review and summarize this diagram"
خروجی:
The diagram outlines a process for conducting local code reviews using a VS Code extension or CLI, leveraging Google Cloud's Vertex AI (Gemini Pro) for generating review prompts. **Process Flow:** 1. **Code Style Check:** Developers initiate the process by checking their code for adherence to pre-defined style guidelines. 2. **Prompt Generation:** The VS Code extension/CLI sends the code to Vertex AI (Gemini Pro) on Google Cloud. 3. **Vertex AI Review:** Vertex AI analyzes the code and generates relevant review prompts. 4. **Local Review:** The prompts are sent back to the developer's IDE for their consideration. 5. **Optional Actions:** Developers can optionally: - Create new JIRA issues directly from the IDE based on the review prompts. - Generate new issues in a GitLab repository. **Key Components:** * **VS Code Extension/CLI:** Tools facilitating the interaction with Vertex AI and potential integrations with JIRA and GitLab. * **Vertex AI (Gemini Pro):** Google Cloud's generative AI service responsible for understanding the code and generating meaningful review prompts. * **Google Cloud Secret Manager:** Securely stores API keys and access tokens required to authenticate and interact with Google Cloud services. * **JIRA/GitLab (Optional):** Issue tracking and project management tools that can be integrated for a streamlined workflow. **Benefits:** * **Automated Review Assistance:** Leveraging AI to generate review prompts saves time and improves the consistency and quality of code reviews. * **Local Development:** The process empowers developers to conduct reviews locally within their familiar IDE. * **Integration Options:** The flexibility to integrate with project management tools like JIRA and GitLab streamlines workflow and issue tracking.
تجزیه و تحلیل تفاوت تصویر:
devai review imgdiff \
-c ~/bitbucket/genai-for-developers/images/devai-api.png \
-t ~/bitbucket/genai-for-developers/images/devai-api-slack.png
خروجی:
The following UI elements are missing in the "AFTER UPGRADE STATE" image compared to the "BEFORE UPGRADE STATE" image: 1. **Slack:** The entire Slack element, including the icon, "Team channel" label, and the arrow indicating interaction, is absent in the AFTER UPGRADE image. 2. **Storage Bucket:** The "Storage Bucket" element with its icon and "PDFs" label is missing in the AFTER UPGRADE image. 3. **"GenAI Agents" label in Vertex AI block:** The BEFORE UPGRADE image has "Vertex AI Agents" and "GenAI Agent" labels within the Vertex AI block, while the AFTER UPGRADE image only has "Vertex AI." 4. **"Open JIRA Issue" and "Team Project" labels:** In the BEFORE UPGRADE image, these labels are connected to the JIRA block with an arrow. These are missing in the AFTER UPGRADE image. **Decision Explanation:** The analysis is based on a direct visual comparison of the two provided images, noting the presence and absence of specific UI elements and their associated labels. The elements listed above are present in the BEFORE UPGRADE image but absent in the AFTER UPGRADE image.
دستور تولید اسناد:
devai document readme -c ~/bitbucket/genai-for-developers/sample-app/src/main/
خروجی:
# Bank of Anthos - Balance Reader Service ## Description The Balance Reader service is a component of the Bank of Anthos sample application. It provides a REST endpoint for retrieving the current balance of a user account. This service demonstrates key concepts for building microservices with Spring Boot and deploying them to a Kubernetes cluster. ## Features - Securely retrieves account balances using JWT authentication. - Leverages a local cache for fast balance retrieval...
دستورات devai cli موجود را در Cloud Shell Editor مرور کنید:
cloudshell edit ~/bitbucket/genai-for-developers/devai-cli/README.md
یا README.md را در مخزن GitHub مرور کنید.
15. تبریک می گویم!
تبریک می گویم، شما نرم افزار کد را تمام کردید!
آنچه ما پوشش داده ایم:
- افزودن مراحل اتوماسیون بازبینی کد GenAI در Bitbucket
- اجرای devai cli به صورت محلی
بعدش چیه:
- جلسات عملی بیشتری در راه است!
پاک کن
برای جلوگیری از تحمیل هزینه به حساب Google Cloud خود برای منابع استفاده شده در این آموزش، یا پروژه حاوی منابع را حذف کنید یا پروژه را نگه دارید و منابع فردی را حذف کنید.
حذف پروژه
ساده ترین راه برای حذف صورتحساب، حذف پروژه ای است که برای آموزش ایجاد کرده اید.
©2024 Google LLC همه حقوق محفوظ است. Google و لوگوی Google علائم تجاری Google LLC هستند. همه نامهای شرکت و محصولات دیگر ممکن است علائم تجاری شرکتهای مربوطه باشند که با آنها مرتبط هستند.