درباره این codelab
1. نمای کلی
در این آزمایشگاه، خط لوله GitLab CICD را راهاندازی کرده و آن را با Gemini ادغام میکنید تا مراحل بررسی کد را خودکار کنید.
آنچه خواهید آموخت
در این آزمایشگاه با نحوه انجام کارهای زیر آشنا می شوید:
- چگونه مراحل اتوماسیون بررسی کد GenAI را در GitLab اضافه کنیم
- نحوه اجرای 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» را در نوار جستجو تایپ کنید.
فعال کردن Gemini برای Google Cloud 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 را به GitLab Repo وارد کنید
به https://gitlab.com/projects/new بروید و گزینه " Import project
" / " Repository by URL
" را انتخاب کنید:
url مخزن Git:
https://github.com/GoogleCloudPlatform/genai-for-developers.git
زیر پروژه URL - شناسه کاربری gitlab خود را انتخاب کنید
Visibility را روی Public
تنظیم کنید.
برای شروع فرآیند واردات، روی " Create Project
" کلیک کنید.
اگر خطایی در مورد URL مخزن GitHub نامعتبر مشاهده کردید، یک توکن GitHub جدید (ریزدانه) با دسترسی فقط خواندنی مخازن عمومی ایجاد کنید و مجدداً با ارائه شناسه کاربری و رمز GitHub خود وارد کنید.
6. متغیرهای خط لوله GitLab CICD را اضافه کنید
در مرحله بعد می خواهید خط لوله GitLab CICD را فعال کنید تا زمانی که تغییرات به مخزن داده می شود، بازبینی کد را اجرا کند.
مخزن GitLab را در مرورگر باز کنید و به بخش " Settings / CICD"
بروید.
بخش Variables
را باز کرده و روی " Add variable
" کلیک کنید.
هنگام اضافه کردن متغیرهای جدید، مطمئن شوید که علامت تمام چک باکس ها را بردارید.
مثال:
3 متغیر اضافه کنید:
-
PROJECT_ID
- شناسه پروژه qwiklabs شما -
LOCATION
- us-central1 -
GOOGLE_CLOUD_CREDENTIALS
برای مقدار متغیر GOOGLE_CLOUD_CREDENTIALS
، از کلید حساب سرویس ایجاد شده در بخش بالا استفاده کنید. این دستور را در Google Cloud Shell اجرا کنید و مقدار را کپی/پیست کنید.
cat ~/vertex-client-key.json
نمای متغیرهای CI/CD:
7. خط لوله GitLab CICD را اجرا کنید
" Build / Pipelines
" را در رابط کاربری GitLab باز کنید و روی " Run Pipeline
" کلیک کنید.
8. خروجی خط لوله GitLab را مرور کنید
" Build / Jobs
" را در رابط کاربری GitLab باز کنید و خروجی خط لوله را بررسی کنید.
نمای کلی دستورات خط لوله
پیکربندی خط لوله GitLab: .gitlab-ci.yml
دستور پوشش تست :
devai review testcoverage -c ./sample-app/src
این دستور devai review testcoverage
کد و مجموعه آزمایشی مرتبط با آن را، در صورت موجود بودن، با استفاده از یک مدل هوش مصنوعی مولد Gemini تجزیه و تحلیل میکند. پوشش تست کد ارائه شده را ارزیابی می کند، فایل ها و روش ها را با و بدون آزمون واحد شناسایی می کند. سپس این فرمان از مدل برای ارائه خلاصه ای از پوشش، از جمله معیارهایی مانند خطوط و شاخه ها/شرایط تحت پوشش استفاده می کند. بر اساس تجزیه و تحلیل خود، توصیه هایی را برای بهبود پوشش آزمون، پیشنهاد تست های خاص برای افزودن و ارائه توصیه های کلی در مورد بهترین روش های آزمایش ارائه می دهد. در نهایت، پاسخ مدل Gemini را که شامل جزئیاتی مانند فایلهای فاقد پوشش و پیشنهاداتی برای بهبود تستهای موجود از طریق خط فرمان به کاربر است، ارائه میکند.
دستور بررسی کد :
devai review code -c ./sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
دستور devai review code
با استفاده از یک مدل هوش مصنوعی تولیدی، یک بازبینی کد جامع از یک قطعه کد ارائه شده را انجام می دهد. لازم است کد به عنوان ورودی (زمینه) و ترجیح فرمت خروجی (خروجی) بررسی شود. این یک مدل زبان بزرگ را برای تجزیه و تحلیل کد از نظر صحت، کارایی، قابلیت نگهداری، امنیت و پایبندی به بهترین شیوه ها استفاده می کند. این فرمان یک اعلان دقیق ایجاد می کند که به Gemini در مورد نحوه انجام بازبینی دستور می دهد و سپس آن را برای ارزیابی کد ارائه شده به مدل ارسال می کند. در نهایت، پاسخ Gemini را پردازش میکند، آن را در markdown، JSON یا جدولی مطابق با اولویت کاربر قالببندی میکند و نتایج بررسی را به بیرون میدهد.
دستور بررسی انطباق :
devai review compliance --context ./sample-app/k8s --config ./devai-cli/gemini/styleguide.md
فرمان devai review compliance
کد را در برابر مجموعه ای از بهترین شیوه ها، معمولاً برای پیکربندی های Kubernetes تجزیه و تحلیل می کند. از یک مدل Gemini برای بررسی کد ارائه شده ( context
) و مقایسه آن با استانداردهای مشخص شده در یک فایل پیکربندی جداگانه ( config
) استفاده می کند. این فرمان از یک فرمان برای دستور دادن به مدل Gemini استفاده می کند تا به عنوان یک مهندس متخصص Kubernetes عمل کند و یک گزارش انطباق ارائه دهد. سپس یافتهها را به عنوان یک توضیح مختصر، با تمرکز بر نمونههای کد که نشان میدهد چگونه به مشکلات شناساییشده رسیدگی میکند، قالببندی میکند. در نهایت، دستور خروجی بررسی انطباق Gemini را در کنسول چاپ می کند. این به کاربر اجازه می دهد تا به راحتی کد خود را برای مطابقت بررسی کند.
9. کلون GitLab Repo
به ترمینال Google Cloud Shell برگردید و مخزن را شبیه سازی کنید.
cd ~
mkdir gitlab
cd gitlab
کاربر GitLab و url مخزن خود را که به تازگی ایجاد شده است جایگزین کنید.
git clone https://gitlab.com:YOUR_GITLAB_USERID/genai-for-developers.git
دایرکتوری را تغییر دهید و فایل .gitlab-ci.yml
را باز کنید. اگر نام مخزن را در حین وارد کردن تغییر دادید، قبل از اجرای دستورات زیر، نام پوشه را بهروزرسانی کنید.
cd genai-for-developers
cloudshell edit .gitlab-ci.yml
10. کد را با Gemini Code Assist توضیح دهید
در هر نقطه از فایل .gitlab-ci.yml
کلیک راست کرده و Gemini Code Assist > Explain
this را انتخاب کنید.
توضیح نقد:
11. توسعه DevAI CLI
در این بخش تغییراتی را در devai cli
ایجاد خواهید کرد.
برای شروع، python virtualenv را راه اندازی کنید، نیازمندی ها را نصب کنید و دستور نمونه را اجرا کنید.
cd ~/gitlab/genai-for-developers/devai-cli
python3 -m venv venv
. venv/bin/activate
pip3 install -r src/requirements.txt
pip3 install --editable ./src
devai echo
تنظیم متغیرهای محیطی مورد نیاز
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
دستور بررسی کد را اجرا کنید تا بررسی کنید همه چیز درست کار می کند:
devai review code -c ~/gitlab/genai-for-developers/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader > code-review.md
cloudshell edit code-review.md
نتایج را با استفاده از پیش نمایش Markdown در Cloud Shell Editor مرور کنید.
از پالت فرمان استفاده کنید و " Markdown: Open Preview
" را انتخاب کنید.
12. دستورات devai cli را کاوش کنید
دستور بررسی پوشش را تست کنید
devai review testcoverage -c ~/genai-for-developers/sample-app/src > testcoverage.md
cloudshell edit testcoverage.md
فرمان بررسی انطباق
devai review compliance --context ~/genai-for-developers/sample-app/k8s --config ~/genai-for-developers/devai-cli/.gemini/styleguide.md > k8s-review.md
cloudshell edit k8s-review.md
دستور بررسی عملکرد
devai review performance -c ~/genai-for-developers/sample-app/src/main/java > performance-review.md
cloudshell edit performance-review.md
دستور بررسی امنیتی
devai review security -c ~/genai-for-developers/sample-app/src/main/java > security-review.md
cloudshell edit security-review.md
مسدود کننده ها دستورات را بررسی می کنند
devai review blockers -c ~/gitlab/genai-for-developers/sample-app/pom.xml
devai review blockers -c ~/gitlab/genai-for-developers/sample-app/setup.md
بررسی و خلاصه سازی تصویر/نمودار
نمودار ورودی[ ~/genai-for-developers/images/extension-diagram.png
]:
دستور بررسی:
devai review image \
-f ~/genai-for-developers/images/extension-diagram.png \
-p "Review and summarize this diagram" > image-review.md
cloudshell edit image-review.md
خروجی:
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 ~/genai-for-developers/images/devai-api.png \
-t ~/genai-for-developers/images/devai-api-slack.png > image-diff-review.md
cloudshell edit image-diff-review.md
خروجی:
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 review video \
-f "/tmp/video.mp4" \
-p "Review user journey video and create unit tests using jest framework"
دستور تولید مستندات
devai document readme -c ~/gitlab/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. - Asynchronously processes transactions from a central ledger. - Provides health check endpoints for Kubernetes liveness and readiness probes. ...
دستورات devai cli موجود را در Cloud Shell Editor مرور کنید:
cloudshell edit ~/gitlab/genai-for-developers/devai-cli/README.md
یا README.md را در مخزن GitHub مرور کنید.
13. تبریک می گویم!
تبریک می گویم، شما نرم افزار کد را تمام کردید!
آنچه ما پوشش داده ایم:
- افزودن مراحل اتوماسیون بازبینی کد GenAI در GitLab
- اجرای devai cli به صورت محلی
بعدش چیه:
- جلسات عملی بیشتری در راه است!
تمیز کردن
برای جلوگیری از تحمیل هزینه به حساب Google Cloud خود برای منابع استفاده شده در این آموزش، یا پروژه حاوی منابع را حذف کنید یا پروژه را نگه دارید و منابع فردی را حذف کنید.
حذف پروژه
ساده ترین راه برای حذف صورتحساب، حذف پروژه ای است که برای آموزش ایجاد کرده اید.
©2024 Google LLC همه حقوق محفوظ است. Google و لوگوی Google علائم تجاری Google LLC هستند. همه نامهای شرکت و محصولات دیگر ممکن است علائم تجاری شرکتهای مربوطه باشند که با آنها مرتبط هستند.