1. Présentation
Dans cet atelier, vous allez configurer le workflow GitHub Actions et l'intégrer à Gemini pour automatiser les étapes d'examen du code.
Objectifs de l'atelier
Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :
- Ajouter des étapes d'automatisation de l'examen du code GenAI dans GitHub
- Exécuter la CLI devai en local pour automatiser les révisions de code
Prérequis
- Dans cet atelier, nous considérons que vous connaissez la console Cloud et les environnements Cloud Shell.
2. Préparation
Configuration du projet Cloud
- Connectez-vous à la console Google Cloud, puis créez un projet ou réutilisez un projet existant. Si vous n'avez pas encore de compte Gmail ou Google Workspace, vous devez en créer un.
- Le nom du projet est le nom à afficher pour les participants au projet. Il s'agit d'une chaîne de caractères non utilisée par les API Google. Vous pourrez toujours le modifier.
- L'ID du projet est unique parmi tous les projets Google Cloud et non modifiable une fois défini. La console Cloud génère automatiquement une chaîne unique (en général, vous n'y accordez d'importance particulière). Dans la plupart des ateliers de programmation, vous devrez indiquer l'ID de votre projet (généralement identifié par
PROJECT_ID
). Si l'ID généré ne vous convient pas, vous pouvez en générer un autre de manière aléatoire. Vous pouvez également en spécifier un et voir s'il est disponible. Après cette étape, l'ID n'est plus modifiable et restera donc le même pour toute la durée du projet. - Pour information, il existe une troisième valeur (le numéro de projet) que certaines API utilisent. Pour en savoir plus sur ces trois valeurs, consultez la documentation.
- Vous devez ensuite activer la facturation dans la console Cloud pour utiliser les ressources/API Cloud. L'exécution de cet atelier de programmation est très peu coûteuse, voire sans frais. Pour désactiver les ressources et éviter ainsi que des frais ne vous soient facturés après ce tutoriel, vous pouvez supprimer le projet ou les ressources que vous avez créées. Les nouveaux utilisateurs de Google Cloud peuvent participer au programme d'essai sans frais pour bénéficier d'un crédit de 300 $.
Configuration de l'environnement
Ouvrez Gemini Chat.
Vous pouvez également saisir "Demander à Gemini" dans la barre de recherche.
Activez l'API Cloud AI Companion:
Cliquez sur Start chatting
, puis suivez l'une des questions exemples ou saisissez votre propre requête pour tester la fonctionnalité.
Requêtes à tester :
- Expliquez Cloud Run en cinq points clés.
- Vous êtes responsable produit Google Cloud Run. Expliquez Cloud Run à un étudiant en cinq points clés.
- Vous êtes responsable produit Google Cloud Run. Expliquez Cloud Run à un développeur Kubernetes certifié en cinq points clés.
- Vous êtes responsable produit Google Cloud Run. Expliquez à un développeur expérimenté en cinq points clés quand utiliser Cloud Run plutôt que GKE.
Consultez le guide des requêtes pour en savoir plus sur la rédaction de requêtes plus efficaces.
Utilisation de vos données par Gemini pour Google Cloud
Engagement de Google en matière de confidentialité
Google a été l'un des premiers sur le marché à proposer un engagement en matière de confidentialité pour l'IA/le ML, ce qui souligne le fait que nos clients devraient disposer du plus haut niveau de sécurité et de contrôle sur leurs données stockées dans le cloud.
Données que vous envoyez et recevez
Les questions que vous posez à Gemini, y compris les informations ou le code que vous lui envoyez pour qu'il les analyse ou les complète, sont appelées requêtes. Les réponses ou les suggestions de code que vous recevez de Gemini sont appelées "réponses". Gemini n'utilise pas vos requêtes ni ses réponses comme données pour entraîner ses modèles.
Chiffrement des requêtes
Lorsque vous envoyez des requêtes à Gemini, vos données sont chiffrées en transit pour être transmises au modèle sous-jacent de Gemini.
Données de programme générées par Gemini
Gemini est entraîné sur du code Google Cloud propriétaire et sur du code tiers sélectionné. Vous êtes responsable de la sécurité, des tests et de l'efficacité de votre code, y compris de toute complétion, génération ou analyse de code que Gemini vous propose.
3. Options pour tester les requêtes
Si vous souhaitez modifier/étendre les requêtes de la ligne de commande devai existantes, plusieurs options s'offrent à vous.
Vertex AI Studio fait partie de la plate-forme Vertex AI de Google Cloud, spécialement conçue pour simplifier et accélérer le développement et l'utilisation de modèles d'IA générative.
Google AI Studio est un outil Web permettant de prototyper et de tester l'ingénierie des requêtes et l'API Gemini.
- Application Web Gemini (gemini.google.com)
L'application Web Google Gemini (gemini.google.com) est un outil Web conçu pour vous aider à explorer et à exploiter la puissance des modèles d'IA Gemini de Google.
- Application mobile Google Gemini pour Android et application Google sur iOS
4. Créer un compte de service
Activez Cloud Shell en cliquant sur l'icône située à droite de la barre de recherche.
Dans le terminal ouvert, activez les services requis pour utiliser les API Vertex AI et le chat Gemini.
gcloud services enable \
aiplatform.googleapis.com \
cloudaicompanion.googleapis.com \
cloudresourcemanager.googleapis.com \
secretmanager.googleapis.com
Si vous y êtes invité, cliquez sur "Autoriser" pour continuer.
Exécutez les commandes suivantes pour créer un compte de service et des clés.
Vous utiliserez ce compte de service pour effectuer des appels d'API à l'API Gemini Vertex AI à partir de pipelines 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. Dupliquer un dépôt GitHub dans votre dépôt GitHub personnel
Accédez à https://github.com/GoogleCloudPlatform/genai-for-developers/fork et sélectionnez votre ID utilisateur GitHub en tant que propriétaire.
Décochez l'option permettant de copier uniquement la branche "main".
Cliquez sur "Create fork
".
6. Activer le workflow GitHub Actions
Ouvrez le dépôt GitHub dissocié dans le navigateur et accédez à l'onglet "Actions
" pour activer les workflows.
7. Ajouter des secrets de dépôt
Créez un secret de dépôt sous "Settings / Secrets and variables / Actions
" dans le dépôt GitHub dupliqué.
Ajout d'un secret de dépôt avec le nom "GOOGLE_API_CREDENTIALS
".
Basculez sur la fenêtre/l'onglet Google Cloud Shell, puis exécutez la commande ci-dessous dans le terminal Cloud Shell.
cat ~/vertex-client-key.json
Copiez le contenu du fichier et collez-le en tant que valeur du secret.
Ajoutez un secret PROJECT_ID
avec l'ID de votre projet Qwiklabs comme valeur:
8. Exécuter le workflow GitHub Actions
Accédez à votre dépôt GitHub dans le navigateur et exécutez le workflow.
Le workflow est configuré pour s'exécuter sur un transfert de code ou une exécution manuelle.
Examinons les résultats:
Résultats de la commande de couverture des tests:
devai review testcoverage -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Résultats de la commande d'examen du code:
devai review code -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Résultats de la commande d'analyse des performances:
devai review performance -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Résultats de la commande d'examen de sécurité:
devai review security -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Les bloqueurs examinent les résultats de la commande:
devai review blockers -c ${{ github.workspace }}/sample-app/pom.xml
9. Cloner le dépôt
Revenez au terminal Cloud Shell et clonez le dépôt.
Remplacez YOUR-GITHUB-USERID
par votre ID utilisateur GitHub avant d'exécuter les commandes.
git clone https://github.com/YOUR-GITHUB-USERID/genai-for-developers.git
Accédez à un autre dossier et ouvrez le fichier de workflow dans l'éditeur Cloud Shell.
cd genai-for-developers
cloudshell edit .github/workflows/devai-review.yml
Attendez que le fichier de configuration s'affiche dans l'IDE.
10. Activer Gemini Code Assist
Cliquez sur l'icône Gemini
en bas à droite .
Cliquez sur Login to Google Cloud
et Select a Google Cloud Project
.
Dans la fenêtre pop-up, sélectionnez votre projet Qwiklabs.
11. Expliquer le code avec Gemini Code Assist
Effectuez un clic droit n'importe où dans le fichier devai-review.yml
, puis sélectionnez Gemini Code Assist > Explain
.
Explication de l'avis:
12. Exécuter la CLI DEVAI localement
Revenez au terminal Cloud Shell et exécutez les commandes ci-dessous pour installer devai
localement.
pip3 install devai-cli
La CLI a été installée, mais elle ne figure pas dans le 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.
Exécutez la commande ci-dessous pour mettre à jour la variable d'environnement PATH. Remplacez-le par le nom du dossier d'accueil de votre utilisateur. Par exemple : student_00_478dfeb8df15
export PATH=$PATH:/home/YOUR-USER-HOME-FOLDER/.local/bin
Exécutez la commande de la CLI devai pour effectuer une révision du code en local. Examinez la sortie de la CLI.
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
cd ~/genai-for-developers
devai review code -c ./sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Ouvrez le script d'examen en exécutant la commande ci-dessous:
cloudshell edit devai-cli/src/devai/commands/review.py
Effectuez un clic droit n'importe où dans le fichier review.py
, puis sélectionnez Gemini Code Assist > Explain
.
Consultez l'explication.
13. Développement de la CLI DevAI
Dans cette section, vous allez modifier la CLI devai.
Pour commencer, configurez virtualenv Python, installez les conditions requises et exécutez l'exemple de commande.
cd ~/genai-for-developers/devai-cli
python3 -m venv venv
. venv/bin/activate
pip3 install -r src/requirements.txt
pip3 install --editable ./src
devai echo
Réexécutez la commande d'examen du code pour vérifier que tout fonctionne correctement:
devai review code -c ~/genai-for-developers/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Examinez les résultats à l'aide de l'aperçu Markdown dans l'éditeur Cloud Shell.
Créez un fichier et collez-y la réponse de Gemini.
Utilisez ensuite la palette de commandes et sélectionnez "Markdown: Open Preview
".
14. Explorer les commandes de la CLI devai
Commande de révision du code
devai review code -c ~/genai-for-developers/sample-app/src/main/java
Commande d'évaluation des performances
devai review performance -c ~/genai-for-developers/sample-app/src/main/java
Commande d'examen de la sécurité
devai review security -c ~/genai-for-developers/sample-app/src/main/java
Commande d'examen de la couverture des tests
devai review testcoverage -c ~/genai-for-developers/sample-app/src
Commandes d'examen des bloqueurs
devai review blockers -c ~/genai-for-developers/sample-app/pom.xml
devai review blockers -c ~/genai-for-developers/sample-app/setup.md
Examen et résumé de l'image/du diagramme:
Schéma d'entrée[~/genai-for-developers/images/extension-diagram.png
]:
Vérifiez la commande:
devai review image \
-f ~/genai-for-developers/images/extension-diagram.png \
-p "Review and summarize this diagram"
Sortie :
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.
Analyse des différences d'images:
devai review imgdiff \
-c ~/genai-for-developers/images/devai-api.png \
-t ~/genai-for-developers/images/devai-api-slack.png
Sortie :
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.
Commande de génération de documentation:
devai document readme -c ~/genai-for-developers/sample-app/src/main/
Sortie :
# 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 ...
Consultez les commandes de la CLI devai disponibles dans l'éditeur Cloud Shell:
cloudshell edit ~/genai-for-developers/devai-cli/README.md
Vous pouvez également consulter le fichier README.md dans le dépôt GitHub.
15. Félicitations !
Félicitations, vous avez terminé cet atelier de programmation.
Points abordés
- Ajout d'étapes d'automatisation de l'examen du code GenAI dans GitHub
- Exécuter la CLI devai localement
Étapes suivantes :
- D'autres sessions pratiques seront bientôt disponibles.
Effectuer un nettoyage
Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez chaque ressource individuellement.
Supprimer le projet
Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.
© 2024 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms de société et de produit peuvent être des marques des sociétés auxquelles ils sont associés.