Bu codelab hakkında
1. Genel Bakış
Bu laboratuvarda, kod inceleme adımlarını otomatikleştirmek için Bitbucket ardışık düzenini ayarlayacak ve Gemini ile entegre edeceksiniz.
Öğrenecekleriniz
Bu laboratuvarda aşağıdakileri nasıl yapacağınızı öğreneceksiniz:
- Bitbucket'ta GenAI kod inceleme otomasyon adımları ekleme
- Kod incelemelerini otomatikleştirmek için devai cli'yi yerel olarak çalıştırma
Ön koşullar
- Bu laboratuvarda, Cloud Console ve Cloud Shell ortamlarına aşina olmanız gerekir.
2. Kurulum ve Gereksinimler
Cloud projesi oluşturma
- Google Cloud Console'da oturum açın ve yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.
- Proje adı, bu projenin katılımcılarının görünen adıdır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. Dilediğiniz zaman güncelleyebilirsiniz.
- Proje kimliği, tüm Google Cloud projelerinde benzersizdir ve değiştirilemez (ayarlandıktan sonra değiştirilemez). Cloud Console, benzersiz bir dize otomatik olarak oluşturur. Bu dizenin ne olduğu genellikle önemli değildir. Çoğu kod laboratuvarında proje kimliğinize (genellikle
PROJECT_ID
olarak tanımlanır) referans vermeniz gerekir. Oluşturulan kimliği beğenmezseniz rastgele başka bir kimlik oluşturabilirsiniz. Alternatif olarak, kendi anahtarınızı deneyerek kullanılabilir olup olmadığını görebilirsiniz. Bu adımdan sonra değiştirilemez ve proje boyunca geçerli kalır. - Bazı API'lerin kullandığı üçüncü bir değer (Proje Numarası) olduğunu belirtmek isteriz. Bu üç değer hakkında daha fazla bilgiyi dokümanlar bölümünde bulabilirsiniz.
- Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i çalıştırmak çok pahalı değildir. Bu eğitimden sonra faturalandırılmamak için kaynakları kapatmak istiyorsanız oluşturduğunuz kaynakları veya projeyi silebilirsiniz. Yeni Google Cloud kullanıcıları 300 ABD doları değerinde ücretsiz deneme programına uygundur.
Ortam Kurulumu
Gemini sohbetini açın.
Alternatif olarak, arama çubuğuna "Gemini'ye sor" yazın.
Google Cloud API için Gemini'yi etkinleştirin:
"Start chatting
"yi tıklayın ve örnek sorulardan birini uygulayın veya denemek için kendi isteminizi yazın.
Deneyebileceğiniz istemler:
- Cloud Run'u 5 temel noktada açıklayın.
- Google Cloud Run Ürün Müdürü olduğunuzu varsayarak bir öğrenciye Cloud Run'u 5 kısa ve önemli noktayla açıklayın.
- Google Cloud Run Ürün Müdürü olarak, Cloud Run'u Sertifikalı bir Kubernetes Geliştiricisine 5 kısa ve önemli noktayla açıklayın.
- Google Cloud Run Ürün Müdürü olduğunuzu varsayalım. Kıdemli bir geliştiriciye, Cloud Run'u ne zaman GKE yerine kullanacağınızı 5 kısa ve önemli noktayla açıklayın.
Daha iyi istemler yazma hakkında daha fazla bilgi edinmek için İstem Rehberi'ne göz atın.
Google Cloud için Gemini, verilerinizi nasıl kullanır?
Google'ın gizlilik taahhüdü
Google, sektörde AI/ML gizlilik taahhüdü yayınlayan ilk şirketlerden biri oldu. Bu taahhüdümüzde, müşterilerin bulutta depolanan verileri üzerinde en yüksek düzeyde güvenlik ve denetime sahip olması gerektiğine olan inancımızı özetliyoruz.
Gönderdiğiniz ve aldığınız veriler
Gemini'ye sorduğunuz sorulara (analiz etmesi veya tamamlaması için gönderdiğiniz giriş bilgileri veya kodlar dahil) istem denir. Gemini'den aldığınız yanıtlara veya kod tamamlamalarına yanıt denir. Gemini, istemlerinizi veya yanıtlarını modellerini eğitmek için veri olarak kullanmaz.
İstemlerin şifrelenmesi
Gemini'ye istem gönderdiğinizde, Gemini'deki temel modele giriş olarak verileriniz aktarım sırasında şifrelenir.
Gemini'den oluşturulan program verileri
Gemini, birinci taraf Google Cloud kodunun yanı sıra belirli üçüncü taraf kodlarıyla eğitilmiştir. Gemini'nin sunduğu kod tamamlama, oluşturma veya analizler dahil olmak üzere kodunuzun güvenliği, test edilmesi ve etkililiğinden siz sorumlusunuz.
Google'ın istemlerinizi nasıl işlediği hakkında daha fazla bilgi edinin.
3. İstemleri test etme seçenekleri
Mevcut devai cli istemlerini değiştirmek/uzatmak istiyorsanız bunun için birkaç seçeneğiniz vardır.
Vertex AI Studio, Google Cloud'un Vertex AI platformunun bir parçasıdır ve üretken yapay zeka modellerinin geliştirilmesini ve kullanımını basitleştirmek ve hızlandırmak için özel olarak tasarlanmıştır.
Google AI Studio, istem mühendisliği ve Gemini API ile prototip oluşturmak ve denemeler yapmak için web tabanlı bir araçtır.
- Gemini web uygulaması (gemini.google.com)
Google Gemini web uygulaması (gemini.google.com), Google'ın Gemini yapay zeka modellerinin gücünü keşfetmenize ve kullanmanıza yardımcı olmak için tasarlanmış web tabanlı bir araçtır.
- Android için Google Gemini mobil uygulaması ve iOS'teki Google uygulaması
4. Hizmet Hesabı Oluşturma
Arama çubuğunun sağındaki simgeyi tıklayarak Cloud Shell'i etkinleştirin.
Açılan terminalde, Vertex AI API'lerini ve Gemini sohbetlerini kullanmak için gerekli hizmetleri etkinleştirin.
gcloud services enable \
aiplatform.googleapis.com \
cloudaicompanion.googleapis.com \
cloudresourcemanager.googleapis.com \
secretmanager.googleapis.com
Yetki vermeniz istenirse devam etmek için "Yetkilendir"i tıklayın.
Yeni bir hizmet hesabı ve anahtarlar oluşturmak için aşağıdaki komutları çalıştırın.
Bu hizmet hesabını, CICD ardışık düzenlerinden Vertex AI Gemini API'ye API çağrıları yapmak için kullanacaksınız.
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"
Rol atayın.
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 deposunu Bitbucket deposuna aktarma
https://bitbucket.org/ adresine giriş yapın ve "Create
" / Repository / Import repository
" seçeneğini belirleyin.
Git deposu URL'si:
https://github.com/GoogleCloudPlatform/genai-for-developers.git
Çalışma alanınızı ve projenizi seçin ve yeni depo için bir ad girin.
İçe aktarma işlemini başlatmak için "Import repository
" simgesini tıklayın.
6. Bitbucket ardışık düzen değişkenleri ekleme
Ardından, değişiklikler depoya aktarıldığında kod incelemesi çalıştırması için Bitbucket CICD ardışık düzenini etkinleştireceksiniz.
Tarayıcıda Bitbucket deposunu açın ve "Repository
settings / PIPELINES / Settings"
bölümüne gidin. Bu kod deposu için ardışık düzenleri etkinleştirin.
"Repository
settings / PIPELINES / Repository variables"
bölümüne gidin.
3 değişken ekleyin:
PROJECT_ID
: qwiklabs proje kimliğinizLOCATION
- us-central1GOOGLE_CLOUD_CREDENTIALS
GOOGLE_CLOUD_CREDENTIALS
değişken değeri için yukarıdaki bölümde oluşturulan hizmet hesabı anahtarını kullanın. Bu komutu Google Cloud Shell'de çalıştırın ve değeri kopyalayıp yapıştırın.
cat ~/vertex-client-key.json
Depo değişkenleri görünümü:
7. Bitbucket ardışık düzenini çalıştırma
"Pipelines
" bölümünü açıp "Run initial pipeline
"u tıklayın.
"main
" şubesini ve "default
" ardışık düzenini seçip "Run
"yi tıklayın.
8. Bitbucket ardışık düzeni çıkışını inceleme
"Pipelines
" bölümünü açın/yenileyin ve ardışık düzen çıkışını inceleyin.
Test kapsamı komutunun sonuçları:
devai review testcoverage -c ./sample-app/src
Bu devai review testcoverage
komutu, üretken yapay zeka modeli Gemini'yi kullanarak kodu ve varsa ilişkili test paketini analiz eder. Birim testleri olan ve olmayan dosyaları ve yöntemleri tanımlayarak sağlanan kodun test kapsamını değerlendirir. Ardından komut, kapsanan satır ve dallar/koşullar gibi metrikler de dahil olmak üzere kapsamın bir özetini sağlamak için modelden yararlanır. Analizine dayanarak, test kapsamını iyileştirmek için öneriler sunar, eklenecek belirli testleri önerir ve testle ilgili en iyi uygulamalar hakkında genel tavsiyeler verir. Son olarak, kapsamı eksik dosyalar gibi ayrıntıları ve mevcut testleri iyileştirmeyle ilgili önerileri içeren Gemini modelinin yanıtını komut satırı üzerinden kullanıcıya gösterir.
Kod inceleme komutunun sonuçları:
devai review code -c ./sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
devai review code
komutu, bir üretken yapay zeka modeli kullanarak sağlanan kod snippet'inde kapsamlı bir kod incelemesi yapar. İncelenecek kodu giriş (bağlam) ve çıkış biçimi tercihi (çıkış) olarak alır. Kodu doğruluk, verimlilik, sürdürülebilirlik, güvenlik ve en iyi uygulamalara uygunluk açısından analiz etmek için büyük bir dil modelinden yararlanır. Komut, Gemini'ye incelemenin nasıl yapılacağına dair talimatlar içeren ayrıntılı bir istem oluşturur ve ardından sağlanan kodu değerlendirmek için modeli gönderir. Son olarak, Gemini'nin yanıtını işleyip kullanıcının tercihine göre Markdown, JSON veya tablo biçiminde biçimlendirir ve inceleme sonuçlarını döndürür.
Uygunluk incelemesi komutunun sonuçları:
devai review compliance --context ./sample-app/k8s --config ./devai-cli/gemini/styleguide.md
devai review compliance
komutu, kodu genellikle Kubernetes yapılandırmaları için bir dizi en iyi uygulamaya göre analiz eder. Sağlanan kodu (context
) incelemek ve ayrı bir yapılandırma dosyasında (config
) tanımlanan belirli standartlarla karşılaştırmak için bir Gemini modelinden yararlanır. Komut, Gemini modeline uzman bir Kubernetes mühendisi gibi davranmasını ve uygunluk raporu sunmasını talimatlandırmak için bir istemden yararlanır. Ardından, tespit edilen sorunların nasıl ele alınacağını gösteren kod örneklerine odaklanarak bulguları kısa bir açıklama olarak biçimlendirir. Son olarak komut, Gemini'nin uygunluk incelemesi çıktısını konsola yazdırır. Bu sayede kullanıcılar, kodlarını uygunluk açısından kolayca denetleyebilir.
9. Bitbucket deposunu klonlama ve SSH anahtarı ayarlama
Google Cloud Shell terminaline dönün ve yeni bir SSH anahtarı oluşturun.
Komutları çalıştırmadan önce e-postanızı güncelleyin.
ssh-keygen -t ed25519 -C "your-email-address"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub
Bitbucket deponuza bir erişim anahtarı ekleyin.
"Repository settings / SECURITY / Access keys
" cihazını açın ve "Anahtar ekle"yi tıklayın.
Anahtar değeri için son komutun çıktısını kopyalayıp yapıştırın.
"Source
" bölümünün altında "Clone
"ı tıklayın ve URL'yi kopyalayın.
Terminale geri dönün ve deposu klonlayın.
cd ~
mkdir bitbucket
cd bitbucket
Bitbucket projenizin ve deponuzun URL'sini girin.
git clone git@bitbucket.org:YOUR_PROJECT/genai-for-developers.git
Dizin değiştirin ve bitbucket-pipelines.yml
dosyasını açın. İçe aktarma işlemi sırasında depo adını değiştirdiyseniz aşağıdaki komutları çalıştırmadan önce klasör adını güncelleyin.
cd genai-for-developers
cloudshell edit bitbucket-pipelines.yml
10. Gemini Code Assist ile kodu açıklama
bitbucket-pipelines.yml
dosyasında herhangi bir yeri sağ tıklayın ve Gemini Code Assist > Explain
bu seçeneği belirleyin.
İnceleme açıklaması:
11. DevAI CLI Geliştirme
Bu bölümde devai cli'de değişiklik yapacaksınız.
Başlamak için python virtualenv'yi kurun, gereksinimleri yükleyin ve örnek komutu çalıştırın.
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
Gerekli ortam değişkenlerini ayarlayın.
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
Her şeyin düzgün çalıştığından emin olmak için kod inceleme komutunu çalıştırın:
devai review code -c ~/bitbucket/genai-for-developers/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader > code-review.md
cloudshell edit code-review.md
Cloud Shell Düzenleyici'de Markdown önizlemesini kullanarak sonuçları inceleyin.
Ardından Komut Paleti'ni kullanarak "Markdown: Open Preview
"i seçin.
Test kapsamı inceleme komutu
devai review testcoverage -c ~/bitbucket/genai-for-developers/sample-app/src > testcoverage.md
cloudshell edit testcoverage.md
Uygunluk incelemesi komutu
devai review compliance --context ~/bitbucket/genai-for-developers/sample-app/k8s --config ~/genai-for-developers/devai-cli/.gemini/styleguide.md > k8s-review.md
cloudshell edit k8s-review.md
Performans incelemesi komutu
devai review performance -c ~/bitbucket/genai-for-developers/sample-app/src/main/java > performance-review.md
cloudshell edit performance-review.md
Güvenlik incelemesi komutu
devai review security -c ~/bitbucket/genai-for-developers/sample-app/src/main/java > security-review.md
cloudshell edit security-review.md
Engelleyicilerin inceleme komutları
devai review blockers -c ~/bitbucket/genai-for-developers/sample-app/pom.xml
devai review blockers -c ~/bitbucket/genai-for-developers/sample-app/setup.md
Görüntü/şema inceleme ve özetleme
Giriş şeması[~/bitbucket/genai-for-developers/images/extension-diagram.png
]:
İnceleme komutu:
devai review image \
-f ~/bitbucket/genai-for-developers/images/extension-diagram.png \
-p "Review and summarize this diagram" > image-review.md
cloudshell edit image-review.md
Çıkış:
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.
Resim farkı analizi
devai review imgdiff \
-c ~/bitbucket/genai-for-developers/images/devai-api.png \
-t ~/bitbucket/genai-for-developers/images/devai-api-slack.png > image-diff-review.md
cloudshell edit image-diff-review.md
Çıkış:
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.
Video dosyası analizi:
devai review video \
-f "/tmp/video.mp4" \
-p "Review user journey video and create unit tests using jest framework"
Doküman oluşturma komutu
devai document readme -c ~/bitbucket/genai-for-developers/sample-app/src/main/
Çıkış:
# 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 ...
Cloud Shell Düzenleyici'de kullanılabilen devai cli komutlarını inceleyin:
cloudshell edit ~/bitbucket/genai-for-developers/devai-cli/README.md
Alternatif olarak GitHub deposundaki README.md dosyasını inceleyebilirsiniz.
12. Tebrikler!
Tebrikler, kod laboratuvarını tamamladınız.
Ele aldığımız konular:
- Bitbucket'ta GenAI kod inceleme otomasyon adımları ekleme
- devai cli'yi yerel olarak çalıştırma
Sıradaki adım:
- Daha fazla uygulamalı oturum yakında kullanıma sunulacak.
Temizleme
Bu eğiticide kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini istemiyorsanız kaynakları içeren projeyi silin veya projeyi saklayıp kaynakları tek tek silin.
Projeyi silme
Faturalandırılmanın önüne geçmenin en kolay yolu, eğitim için oluşturduğunuz projeyi silmektir.
©2024 Google LLC Tüm hakları saklıdır. Google ve Google logosu, Google LLC şirketinin ticari markalarıdır. Diğer tüm şirket ve ürün adları ilişkili oldukları şirketlerin ticari markaları olabilir.