1. Présentation
Cet atelier se concentre sur l'utilisation de la CLI Gemini, un agent Open Source optimisé par l'IA dans Google Cloud. Vous apprendrez à utiliser l'interface de ligne de commande Gemini pour diverses tâches, y compris comprendre les bases de code existantes, générer de la documentation et des tests unitaires, et refactoriser les composants d'interface utilisateur et de backend d'une application Web Python.
Objectifs de l'atelier
Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :
- Découvrez comment utiliser la CLI Gemini pour les tâches de développement courantes.
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 le chat Gemini.
Vous pouvez également saisir "Demander à Gemini" dans la barre de recherche.
Activez l'API Gemini pour Google Cloud :
Activez GCA sur l'écran suivant.
Cliquez sur "Start chatting
", puis suivez l'une des questions exemples ou saisissez votre propre requête pour l'essayer.
Prompts à tester :
- Explique 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 senior quand utiliser Cloud Run plutôt que GKE en cinq points clés.
Une fois que vous avez terminé, fermez la fenêtre de chat Gemini Cloud Assist.
Consultez le Guide sur la création de requêtes pour découvrir comment rédiger des requêtes plus efficaces.
Utilisation de vos données par Gemini pour Google Cloud
Engagement de Google concernant la confidentialité
Google a été l'un des premiers acteurs du secteur à publier un engagement concernant la confidentialité de l'IA/du ML, affirmant ainsi que ses clients doivent bénéficier 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 complétions 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 prompts
Lorsque vous envoyez des requêtes à Gemini, vos données sont chiffrées en transit, c'est-à-dire pendant le transfert vers le 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 ainsi que sur du code tiers sélectionné. Vous êtes responsable de la sécurité, des tests et de l'efficacité de votre code, y compris pour les éléments générés à l'aide des fonctionnalités de complétion, de génération ou d'analyse de code proposées par Gemini.
En savoir plus sur la façon dont Google traite vos requêtes
3. Options pour tester les requêtes
Si vous souhaitez modifier des requêtes existantes, plusieurs options s'offrent à vous.
Vertex AI Studio fait partie de la plate-forme Vertex AI de Google Cloud. Il est spécialement conçu 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 qui permet de prototyper et de tester le prompt engineering 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. Télécharger et examiner l'application
Activez Cloud Shell en cliquant sur l'icône à droite de la barre de recherche.
Si vous êtes invité à donner votre autorisation, cliquez sur "Autoriser" pour continuer.
Dans le terminal, exécutez les commandes ci-dessous pour cloner le dépôt Git en local.
git clone https://github.com/gitrey/calendar-app-lab
cd calendar-app-lab
Démarrez l'éditeur Cloud Shell.
Ouvrez le dossier "calendar-app-lab
".
Démarrez un nouveau terminal dans l'éditeur Cloud Shell.
Votre environnement devrait ressembler à la capture d'écran ci-dessous.
5. Présentation de la CLI Gemini
Gemini CLI est un agent d'IA Open Source qui s'intègre aux modèles Gemini de Google Cloud. Il permet aux développeurs d'effectuer diverses tâches directement depuis leur terminal, comme comprendre les bases de code, générer de la documentation et des tests unitaires, et refactoriser du code. L'avantage principal de l'interface de ligne de commande Gemini est sa capacité à rationaliser les workflows de développement en intégrant la puissance de l'IA générative directement dans l'environnement de ligne de commande du développeur, ce qui réduit les changements de contexte et améliore la productivité.
Cette étape, qui consiste à définir la variable d'environnement, n'est pas requise pour l'environnement Qwiklabs. Passez à l'étape suivante.
Dans votre environnement local, si vous utilisez une licence Code Assist payante fournie par votre organisation, n'oubliez pas de définir le projet Google Cloud dans votre terminal. En savoir plus
export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_NAME"
Vérifiez que vous vous trouvez à la racine du dossier du projet :
cd ~/calendar-app-lab
Démarrez la CLI Gemini dans la fenêtre de terminal :
gemini
Votre environnement devrait ressembler à la capture d'écran ci-dessous.
Si vous suivez les étapes dans votre environnement local, vous pouvez activer l'intégration à votre IDE.
Vous pouvez toujours modifier ce paramètre en exécutant /ide disable | enable
.
Si vous exécutez l'atelier dans l'environnement Qwiklabs, sélectionnez "Use Cloud Shell user credentials
".
Sinon, authentifiez Gemini CLI en exécutant la commande suivante et en sélectionnant "Login with Google
" :
/auth
Après avoir redémarré l'interface de ligne de commande, vous serez invité à autoriser l'application en suivant un lien fourni.
Ouvrez le lien et suivez la procédure pour vous connecter avec les identifiants Qwiklabs de votre élève.
Copiez le code de validation et revenez au terminal pour terminer le processus en collant le code.
Pour vérifier votre méthode d'authentification, exécutez la commande suivante :
/about
6. Compréhension du codebase
Vous pouvez utiliser la CLI Gemini pour comprendre rapidement le codebase en lui demandant de résumer l'objectif des fichiers ou des répertoires, et d'expliquer les fonctions ou les sections de code complexes. Cela permet aux développeurs de s'intégrer rapidement à de nouveaux projets ou de comprendre des parties inconnues du code existant sans avoir à l'explorer manuellement en détail.
Pour en savoir plus sur la base de code, envoyez la requête suivante dans la CLI Gemini :
Don't suggest any changes. Explain this codebase to me.
Examinez le résultat :
7. Démarrer l'application en local
La CLI Gemini peut simplifier considérablement l'exécution de votre application Python en local en vous aidant à générer automatiquement des fichiers de configuration essentiels tels que requirements.txt ou un fichier Dockerfile de base. Il est également excellent pour gérer les dépendances Python et résoudre les problèmes, car il peut rapidement expliquer les erreurs de trace résultant de packages manquants ou de conflits de version, et souvent suggérer la commande pip install précise pour résoudre le problème.
Pour lancer l'application en local, saisissez la requête suivante dans le terminal Gemini CLI :
Run this app locally
Suivez les instructions pour lancer la demande :
Cliquez sur le lien pour prévisualiser l'application :
Exemple de résultat :
8. Ajouter de la documentation
La CLI Gemini est efficace pour la documentation et les commentaires, car elle vous permet de générer instantanément des docstrings pour les fonctions ou les classes. Vous pouvez également l'utiliser pour ajouter rapidement des commentaires explicatifs intégrés à des blocs de code complexes ou inconnus, ce qui améliore considérablement la clarté et la facilité de maintenance de la base de code.
Pour ajouter des commentaires à chaque fichier Python de l'application, utilisez le terminal Gemini CLI et saisissez la requête suivante :
Add docstrings to all files
Approuvez les modifications suggérées. Si l'intégration de l'IDE est activée, vous pouvez accepter et continuer en utilisant les commandes de l'interface utilisateur ou en appuyant sur Entrée dans le terminal. Vous pouvez également activer le mode d'approbation automatique(YOLO) avec "ctrl+y
".
Mettez à jour le fichier .gitignore
avec l'invite suivante :
update .gitignore and add __pycache__ folder
Passez à la vue "Source Control" (Contrôle des sources) et examinez les modifications que vous avez apportées jusqu'à présent :
9. Ajouter des tests unitaires
L'interface de ligne de commande Gemini est idéale pour écrire des tests unitaires. Elle permet aux développeurs de générer des fonctions de test basées sur la signature et la logique d'une fonction existante, avec des assertions initiales et une configuration fictive. Les développeurs doivent toutefois examiner et valider les tests générés pour s'assurer qu'ils couvrent de manière significative tous les cas extrêmes requis et pas seulement l'exécution de chemins simplistes.
Utilisez la requête ci-dessous pour générer des tests unitaires :
Generate unit tests for @calendar.py
Acceptez les modifications après les avoir examinées.
Installez de nouvelles dépendances et exécutez les tests. La CLI Gemini observera, corrigera et réexécutera le code généré en boucle jusqu'à ce que les tests réussissent et que le code soit validé.
10. Rechercher les bugs
La Gemini CLI peut vous aider à rechercher des bugs dans la logique en vous permettant de lui demander d'examiner et d'analyser des extraits de code, d'identifier les failles logiques potentielles, les erreurs de décalage ou la gestion conditionnelle incorrecte. En expliquant le comportement prévu du code et en demandant à la CLI de repérer les incohérences, vous pouvez rapidement détecter les défauts subtils avant d'exécuter le code.
Pour vérifier la présence de bugs dans la logique de conversion, envoyez la requête suivante dans la CLI Gemini :
Are there any bugs in the conversion logic? Check if negative numbers are handled properly.
Examinez les modifications suggérées et acceptez-les dans le chat :
11. Refactoriser l'UI
La CLI Gemini peut vous aider considérablement à refactoriser l'UI en vous aidant à traduire les anciens modèles d'UI (comme les composants de classe) en paradigmes fonctionnels plus récents et plus modernes (comme les hooks dans React) ou en suggérant des améliorations structurelles pour une meilleure maintenabilité. Vous pouvez l'utiliser pour analyser et refactoriser le code d'interface utilisateur existant en composants plus modulaires et réutilisables, ce qui permet d'obtenir une conception d'interface plus propre et plus standardisée.
Refactorisez l'UI à l'aide de la bibliothèque Bootstrap en envoyant la requête suivante à la CLI Gemini :
Refactor UI to use Bootstrap library
Examinez et acceptez les modifications :
Pour commencer, lancez l'application. Si elle est déjà en cours d'exécution, il vous suffit d'actualiser la page.
python3 main.py
Actualisez la page et vérifiez les modifications.
Implémentez la gestion des erreurs pour vous assurer qu'une page d'erreur s'affiche en cas de problème.
Implement error handling to display an error page when issues occur.
Veuillez actualiser la page pour voir les modifications.
Envoyez un nombre négatif pour confirmer la page d'erreur.
12. Refactoriser le backend
La CLI Gemini est efficace pour le refactoring du backend. Elle aide à migrer le code de framework obsolète vers des alternatives modernes ou à restructurer les services monolithiques en composants de microservices plus faciles à gérer. Il peut analyser la logique côté serveur pour suggérer des modèles de requêtes de base de données améliorés ou des conceptions de points de terminaison d'API plus efficaces, en veillant à ce que les performances et l'évolutivité soient maintenues ou améliorées.
Modifiez le backend pour enregistrer les demandes de conversion en mémoire.
Store requests in memory and create a page to display conversion history. Add links on all pages to view the history.
Examinez et acceptez les modifications dans le chat :
Envoyez plusieurs requêtes à l'application, puis consultez la page de l'historique.
Consultez l'historique des demandes de conversion.
Pour mettre à jour le fichier README.md avec l'état actuel de la base de code, envoyez cette requête via la CLI Gemini :
analyze README.md file and update it with latest codebase state
Examinez le résultat. Si vous avez activé l'intégration de Cloud Shell, vous pouvez utiliser le contrôle de l'UI pour accéder aux modifications ou le faire à partir du terminal.
13. Outils intégrés à la CLI Gemini
La CLI Gemini inclut des outils intégrés que le modèle Gemini utilise pour interagir avec votre environnement local, accéder à des informations et effectuer des actions. Ces outils améliorent les capacités de l'interface de ligne de commande, lui permettant d'aller au-delà de la génération de texte et d'aider à un large éventail de tâches.
Envoyez cette requête dans la CLI Gemini pour afficher les outils disponibles :
/tools
Examinez le résultat.
La CLI Gemini sélectionne intelligemment les outils intégrés les plus appropriés en fonction de la tâche que vous fournissez. Elle peut ainsi exécuter des opérations complexes en s'appuyant sur sa compréhension de votre demande et des fonctionnalités disponibles. En savoir plus sur les outils intégrés
14. Commande Gemini CLI Repo Init
La CLI Gemini inclut une commande permettant d'analyser le projet et de créer un fichier GEMINI.md personnalisé.
Pour générer le fichier GEMINI.md, envoyez la requête suivante à l'aide de la CLI Gemini :
/init
Examinez le résultat. Cette commande crée un fichier GEMINI.md, qui résume l'objectif du projet, les technologies, les instructions de compilation/d'exécution et les conventions de développement pour le contexte futur.
Pour comprendre les instructions ou le contexte à inclure dans le fichier GEMINI.md
de votre projet, commencez par examiner le fichier GEMINI.md qui se trouve dans le dépôt gemini-cli
.
15. Commandes personnalisées de la CLI Gemini
Vous pouvez simplifier votre workflow de développement et assurer la cohérence en utilisant des commandes personnalisées dans Gemini CLI. Ces commandes servent de raccourcis personnels pour vos requêtes les plus utilisées. Vous pouvez créer des commandes spécifiques à un seul projet ou les rendre disponibles globalement dans tous vos projets.
Le dépôt est fourni avec plusieurs commandes personnalisées situées dans le dossier .gemini/commands
.
Commande personnalisée pour créer un diagramme
Envoyez ce prompt dans la CLI Gemini pour générer un diagramme de flux de requête au format Mermaid.
accepter les appels d'outils, comme la création d'un dossier et l'enregistrement d'un fichier ;
/diagram:new request flow for this app
Examinez le résultat.
Si vous souhaitez prévisualiser le diagramme, installez l'extension Mermaid Chart
depuis Marketplace.
Ouvrez le fichier et sélectionnez "Aperçu" dans le menu contextuel.
Commande personnalisée pour créer une présentation
Envoyez ce prompt dans la CLI Gemini pour générer un deck avec les points clés au format Marp.
accepter les appels d'outils, comme la création d'un dossier et l'enregistrement d'un fichier ;
/deck:new key points and details for this app
Examinez le résultat.
Cette étape n'est pas compatible avec Cloud Shell, car l'extension Marp nécessite l'installation d'un navigateur Web.
Installez l'extension Marp pour VS Code depuis le Marketplace pour enregistrer la présentation.
Sinon, ouvrez le fichier généré dans l'éditeur et sélectionnez "Marp: Export Slide Deck
" dans la palette de commandes.
Commande personnalisée pour planifier l'implémentation d'une nouvelle fonctionnalité
Envoyez cette requête dans la CLI Gemini pour refactoriser l'UI.
accepter les appels d'outils, comme la création d'un dossier et l'enregistrement d'un fichier ;
/plan:new refactor UI to use Materialize CSS
Examinez le résultat.
Lancez le processus de refactoring de l'UI en envoyant cette requête via la CLI Gemini, en fonction du plan généré précédemment.
accepter les appels d'outils, comme la création d'un dossier et l'enregistrement d'un fichier ; Vous pouvez activer le mode d'approbation automatique des outils(YOLO mode
) à l'aide de "ctrl+y
".
/plan:impl implement the plan to refactor the app
Démarrez/Actualisez l'application et examinez le résultat :
16. Mode non interactif de la CLI Gemini
Lorsque vous exécutez la CLI Gemini en mode non interactif dans un pipeline CI/CD, vous pouvez automatiser diverses tâches en transmettant des requêtes et des commandes directement à la CLI, sans intervention manuelle. Cela permet une intégration parfaite dans les workflows automatisés pour l'analyse de code, la génération de documentation et d'autres tâches de développement.
Ouvrez un nouveau terminal ou fermez la session CLI Gemini existante, puis exécutez cette commande.
gemini -p "Explain the architecture of this codebase"
Examinez le résultat.
Si votre tâche nécessite l'approbation d'outils, vous pouvez activer le mode YOLO avec l'indicateur -y
.
gemini -p "Explain the architecture of this codebase and save the file in the markdown format in the docs folder" -y
Examinez le résultat.
En utilisant l'interface de ligne de commande Gemini en mode non interactif, vous pouvez améliorer considérablement les capacités d'automatisation de vos pipelines CI/CD, ce qui permet d'obtenir des cycles de développement plus efficaces et une meilleure qualité de code.
17. Mode Shell de la CLI Gemini
Bien que les LLM gèrent les tâches complexes, les commandes directes sont plus efficaces pour les actions simples. Le ! prefix
permet de passer facilement des interfaces de ligne de commande d'IA à celles traditionnelles.
!ls
Examinez le résultat. Appuyez sur Escape
pour quitter le mode Shell.
18. Compatibilité de la CLI Gemini avec MCP
La CLI Gemini peut s'intégrer à des systèmes tiers tels que Jira, Confluence ou GitHub via le protocole MCP (Model Context Protocol). Pour ce faire, la CLI Gemini s'appuie sur des intégrations d'outils personnalisés au serveur MCP, ce qui lui permet de créer ou de modifier des tickets JIRA, d'extraire des informations à partir de pages Confluence, de créer des demandes d'extraction, etc.
Exécutez cette commande dans le terminal pour créer le fichier de configuration ou utiliser le mode shell.
echo '{
"mcpServers": {
"context7": {
"httpUrl": "https://mcp.context7.com/mcp"
}
}
}' > .gemini/settings.json
Démarrez une session Gemini CLI :
gemini
Vérifiez les serveurs MCP configurés :
/mcp
Examiner le résultat
Envoyez la requête pour tester le serveur MCP configuré :
use context7 tools to look up how to implement flex grid in react mui library
Approuvez les outils et examinez le résultat.
19. Exemple de configuration des serveurs MCP pour votre environnement local
Vous pouvez configurer plusieurs serveurs MCP dans votre environnement local à l'aide de la configuration suivante.
{
"mcpServers": {
"Snyk Security Scanner": {
"command": "snyk",
"args": [
"mcp",
"-t",
"stdio",
"--experimental"
],
"env": {}
},
"atlassian": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.atlassian.com/v1/sse"
]
},
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest"
]
},
"github": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-github"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "******"
}
}
}
}
Dans cette configuration, les serveurs MCP transforment votre agent Gemini CLI en un outil de développement et de collaboration dynamique en fournissant un accès standardisé aux systèmes externes. Plus précisément, le serveur Snyk Security Scanner permet à l'agent de vérifier le code et les dépendances pour détecter les failles sans quitter votre espace de travail actuel, tandis que le serveur Atlassian se connecte à Jira et Confluence, ce qui permet à Gemini CLI de créer, de rechercher et de mettre à jour des problèmes ou de la documentation en langage naturel. De plus, le serveur Playwright accorde à l'agent des capacités d'automatisation du navigateur, lui permettant de naviguer et d'interagir avec le Web pour des tâches telles que les tests ou l'extraction de données. Enfin, le serveur GitHub donne à l'agent un accès direct et contextuel à vos dépôts, ce qui lui permet de gérer les demandes d'extraction, de trier les problèmes et d'analyser la base de code. Cela réduit considérablement le changement de contexte et améliore la productivité de l'ensemble de votre workflow de développement.
20. Conclusion sur la CLI Gemini
En conclusion, Gemini CLI se distingue comme un agent d'IA Open Source puissant et polyvalent qui s'intègre parfaitement aux modèles Gemini de Google Cloud, ce qui améliore considérablement la productivité des développeurs. Tout au long de cet atelier, nous avons exploré ses capacités à simplifier diverses tâches de développement courantes, qu'il s'agisse de comprendre des bases de code complexes, de générer de la documentation et des tests unitaires essentiels, ou de refactoriser efficacement les composants frontend et backend d'une application Web Python. En tirant parti de Gemini CLI, les développeurs peuvent réduire le changement de contexte, automatiser les processus répétitifs et, en fin de compte, fournir un code de meilleure qualité avec une plus grande efficacité. Sa capacité à apporter la puissance de l'IA générative directement à la ligne de commande révolutionne véritablement le workflow de développement.
21. Félicitations !
Félicitations, vous avez terminé cet atelier de programmation.
Points abordés
- Utiliser la CLI Gemini pour les tâches de développement courantes
É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.