Développer une application Python avec Gemini pour obtenir de l'aide sur Google Cloud

Ce tutoriel explique comment utiliser Gemini dans Google Cloud, un collaborateur de Google Cloud basé sur l'IA, pour explorer, créer, modifier, tester et déployer un exemple d'application Python.

Pour l'exemple suivant, supposons que vous êtes un développeur faisant partie d'une équipe qui développe une application d'inventaire. Vous êtes chargé de prototyper un service de base contenant quelques méthodes d'API à utiliser dans l'application d'inventaire. Vous souhaitez développer l'application dans votre environnement VS Code local, puis la déployer sur Google Cloud. Cependant, vous ne savez pas quel service Google Cloud correspond le mieux à votre cas d'utilisation.

Dans ce tutoriel, vous allez utiliser Gemini avec Visual Studio Code comme IDE pour créer un exemple d'application d'inventaire comportant deux méthodes d'API.

Ce tutoriel est destiné aux développeurs de tous niveaux qui ont contribué à la création d'applications, mais ne connaissent peut-être pas les technologies cloud. Nous partons du principe que vous avez une certaine expérience de l'utilisation de VS Code comme IDE, et que vous connaissez bien Python et le framework Flask.

Objectifs

  • Découvrez les différents services Google que vous pouvez utiliser pour déployer une application en posant des questions contextuelles à Gemini.

  • Invite Gemini à fournir des modèles que vous pouvez utiliser pour développer une application Python de base dans Cloud Run.

  • Créez, explorez et modifiez l'application en utilisant Gemini pour expliquer et générer le code.

  • Exécutez et testez l'application localement, puis déployez-la dans Google Cloud à l'aide de Gemini pour générer les étapes.

Produits Google Cloud utilisés

Ce tutoriel utilise les produits Google Cloud facturables suivants. Utilisez le simulateur de coût pour générer une estimation des coûts en fonction de votre utilisation prévue.

  • Cloud Run. Cloud Run est une plate-forme de calcul gérée qui vous permet d'exécuter des conteneurs directement sur l'infrastructure évolutive de Google. Vous pouvez déployer du code écrit dans n'importe quel langage de programmation sur Cloud Run si vous pouvez créer une image de conteneur à partir de celui-ci. Pour en savoir plus sur la tarification, consultez la page Cloud Run.

Outre le produit mentionné précédemment, ce tutoriel utilise également les produits suivants:

  • Gemini. Gemini est un collaborateur permanent de Google Cloud qui propose une assistance basée sur l'IA générative à un large éventail d'utilisateurs, y compris des développeurs et des data scientists. Pour offrir une expérience d'assistance intégrée, Gemini est intégré à de nombreux produits Google Cloud.

  • Extension Cloud Code for VS Code. Cette extension est un plug-in IDE compatible avec le cycle de développement des applications Kubernetes et Cloud Run. Pour en savoir plus sur l'extension Cloud Code, consultez la page Cloud Code pour les fonctionnalités de VS Code.

Avant de commencer

  1. Installez une copie locale de VS Code, si ce n'est pas déjà fait.

  2. Installez l'extension Cloud Code pour VS Code.

    Suivez les instructions du guide d'installation pour installer Python, Git et le client Docker. Suivez également la procédure de création d'un projet Google Cloud.

  3. Assurez-vous que Gemini est configuré pour votre compte utilisateur et votre projet Google Cloud.
  4. Activez Gemini pour votre IDE.

    Suivez les étapes pour vous connecter à Google Cloud dans votre IDE et sélectionner un projet configuré pour Google Cloud.

Découvrir les services Google Cloud

Si vous débutez sur Google Cloud, Gemini peut vous aider à choisir les services Google Cloud qui répondent aux exigences de votre architecture d'application.

Dans votre IDE, vous pouvez discuter avec Gemini pour obtenir de l'aide. Dans le volet Gemini, vous saisissez des invites (questions ou instructions décrivant l'aide dont vous avez besoin), et Gemini renvoie des réponses. Les requêtes peuvent inclure du contexte tiré d'un code existant analysé par Google Cloud pour fournir des réponses plus utiles ou plus complètes. Pour savoir comment rédiger des requêtes permettant de générer de bonnes réponses, consultez la section Rédiger de meilleures requêtes pour Gemini.

Pour interroger Gemini sur les services Google Cloud, procédez comme suit:

  1. Dans la barre d'activité de votre IDE, cliquez sur spark Gemini.

    Pour trouver la barre d'activité de VS Code, consultez la page Interface utilisateur.

  2. Dans le volet Gemini, saisissez la requête suivante, puis cliquez sur Send (Envoyer) :

    I am new to Google Cloud and I want to use the Cloud Code extension.
    Give me some examples of Google services that I can use to build and deploy a
    sample app using containers.
    

    Gemini répond par une liste de services Google Cloud et leur description.

    Dans cet exemple, supposons que Gemini suggère à la fois Cloud Run et Cloud Functions comme deux services Google Cloud pouvant vous aider à créer et à déployer un exemple d'application, mais que vous avez besoin de plus d'informations sur ces services.

    Gemini n'utilise pas vos requêtes ni ses réponses comme données pour entraîner ses modèles. Pour en savoir plus, consultez la section Utilisation de vos données par Gemini pour Google Cloud.

  3. Saisissez une question complémentaire, par exemple:

    What is the difference between Cloud Run and Cloud Functions? Explain to me
    in simple terms as I am new to Google Cloud.
    

    Gemini fournit des informations détaillées sur les différences entre les deux services Google Cloud.

  4. Facultatif: Pour réinitialiser l'historique de vos discussions, dans le volet Gemini, cliquez sur delete Reset chat (Supprimer la discussion).

Créer une application Python Hello World

Considérez que vous souhaitez utiliser Cloud Run pour créer et déployer une application Python de base. Comme vous débutez avec Cloud Run et Cloud Code, vous avez besoin d'aide pour créer l'application. Dans cette section, vous allez demander de l'aide à Gemini pour créer une application Python Hello World dans Cloud Run.

  1. Si ce n'est pas déjà fait, lancez votre IDE.

  2. Dans la barre d'activité de votre IDE, cliquez sur spark Gemini.

  3. Dans le volet Gemini, saisissez la requête suivante, puis cliquez sur Send (Envoyer) :

    How to create a new Cloud Run app in Cloud Code using the command palette?
    What languages are supported?
    

    La palette de commandes de VS Code fournit une liste de toutes les commandes, y compris celles de Cloud Code.

    Le résultat ressemble à ce qui suit :

    To create a new Cloud Run app in Cloud Code using the command palette,
    follow these steps:
    1. Open the command palette (press Ctrl/Cmd+Shift+P or click View > Command Palette).
    2. Run the "Cloud Code: New Cloud Run App" command.
    ...
    

    Gemini affiche également les langues compatibles avec l'application Cloud Run.

    Pour cet exemple, vous choisissez d'utiliser un modèle Cloud Run basé sur Python pour créer l'exemple d'application.

  4. Pour apprendre à créer une application Python à partir d'un modèle Cloud Run, saisissez l'invite suivante:

    How do I create a Python app from a Cloud Run template using the
    command palette? I am using Cloud Code.
    

    Le résultat ressemble à ce qui suit :

    To create a Python app from a Cloud Run template using the command palette,
    follow these steps:
    
    1. Open Cloud Code.
    
    2. Click the Command Palette
       (press Ctrl/Cmd+Shift+P or click View > Command Palette).
    
    3. Run the "Cloud Code: New Application" command.
    
    ...
    

    Suivez les étapes indiquées dans la réponse de Gemini pour créer une application Python Hello World de base dans Cloud Run. Vous pouvez également vous reporter à la section suivante pour créer l'application Python Hello World.

Étapes alternatives pour créer une application Python Hello World

  1. Si ce n'est pas déjà fait, lancez votre IDE.

  2. Ouvrez la palette de commandes: appuyez sur Commande+Maj+P (pour macOS) ou Ctrl+Maj+P (pour Windows et Linux).

  3. Dans le champ de la palette de commandes, saisissez Cloud Code: New Application, puis cliquez sur le résultat.

  4. Dans la liste des exemples disponibles, sélectionnez Application Cloud Run.

  5. Dans la liste des modèles disponibles, sélectionnez Python (Flask): Cloud Run.

  6. Enregistrez la nouvelle application à l'emplacement de votre choix.

Une notification confirme que votre application a été créée. Un aperçu du fichier README du service sélectionné s'ouvre dans votre IDE, comme illustré dans la figure 1:

capture d'écran
Figure 1 : fichier README affiché pour une application Python Hello World créée dans Cloud Run

Explorer l'application Python Hello World

Maintenant que vous avez créé votre application Hello World dans Cloud Run, vous pouvez utiliser Gemini pour expliquer les fichiers et extraits de code déployés dans votre IDE. Pour explorer le code de l'exemple d'application que vous avez créé, procédez comme suit:

  1. Lancez votre IDE.

  2. Ouvrez l'explorateur: appuyez sur Cmd+Maj+E (MacOS) ou Ctrl+Maj+E (pour Windows et Linux).

    Vous pouvez voir les fichiers associés à votre application exemple.

  3. Dans la liste des fichiers, cliquez sur Dockerfile pour afficher son contenu.

  4. Sélectionnez l'intégralité du contenu de Dockerfile, cliquez sur l'icône représentant une ampoule, puis sur Expliquer cela, comme illustré dans la figure 2:

    capture d'écran du fichier Docker
    Figure 2. La fonctionnalité d'explication du code est disponible lorsque vous sélectionnez du code.

    Gemini génère une explication en langage naturel sur le contenu et la fonction de Dockerfile. Si vous n'êtes pas sûr de certains points de la réponse, vous pouvez poser des questions de suivi.

  5. Pour en savoir plus sur le fichier app.py mentionné dans Dockerfile, saisissez la requête suivante dans le volet Gemini:

    What is the function of the app.py file in Dockerfile?
    

    Gemini génère une réponse semblable à celle-ci:

    The app.py file is the entrypoint for the container. It is the file that
    will be executed when the container is launched. In this case, the app.py
    file will run the Python code that is contained within it.
    

    Vous pouvez également sélectionner le texte app.py dans Dockerfile, cliquer sur l'icône en forme d'ampoule, puis sur Expliquer cela.

  6. Ouvrez l'explorateur: appuyez sur Cmd+Maj+E (MacOS) ou Ctrl+Maj+E (pour Windows et Linux).

  7. Ouvrez le fichier app.py. Vous voyez deux variables, K_SERVICE et K_REVISION.

  8. Pour en savoir plus sur les variables du fichier app.py, dans le volet Gemini, saisissez l'invite suivante:

    What is the function of `K_SERVICE` and `K_REVISION` in the `app.py` file?
    

    Vous pouvez également sélectionner le texte suivant dans le Dockerfile, cliquer sur l'icône en forme d'ampoule, puis sur Expliquer cela:

    service = os.environ.get('K_SERVICE', 'Unknown service')
    revision = os.environ.get('K_REVISION', 'Unknown revision')
    

    La réponse est semblable à ce qui suit :

    The code above is using the os.environ module to get the values of the
    K_SERVICE and K_REVISION environment variables. These variables are set by
    Cloud Run when it deploys the service, and they contain the name of the
    service and the revision number, respectively.
    ...
    

Générer des exemples de données pour l'application

Vous disposez d'une application Flask de base créée dans Cloud Run. Avant de pouvoir ajouter une fonctionnalité permettant de compiler l'application d'inventaire, vous devez disposer d'un fichier contenant une liste d'exemples d'éléments d'inventaire. Pour générer les exemples de données pertinents à l'aide de Gemini, procédez comme suit:

  1. Pour afficher les fichiers associés à votre application exemple, dans votre IDE, cliquez sur l'icône Explorateur.

  2. Cliquez sur l'icône New file (Nouveau fichier) et créez un fichier nommé inventory.py.

  3. Pour permettre à Gemini de générer les exemples de données, dans le volet Gemini, saisissez la requête suivante:

    Create a variable called inventory which is a list of 3 JSON objects.
    Each JSON object has 2 attributes: productid and onhandqty.
    Both attributes are strings.
    

    Gemini génère un exemple de code pour trois objets JSON.

  4. Dans la réponse, cliquez sur addInsert in current file (Insérer dans le fichier actuel) pour insérer l'exemple de code dans le fichier inventory.py, comme illustré dans la figure 3:

    insérer le code
    Figure 3. Vous pouvez insérer du code à partir d'une réponse Gemini.

    Le fichier inventory.py se présente comme suit:

    inventory = [
       {
          "productid": "12345",
          "onhandqty": "10"
       },
       {
          "productid": "23456",
          "onhandqty": "20"
       },
       {
          "productid": "34567",
          "onhandqty": "30"
       }
    ]
    

    Vous avez créé le fichier inventory.py, qui inclut une liste d'articles d'inventaire.

Modifier l'application Python Hello World

Après avoir créé le fichier inventory.py, vous allez introduire certaines méthodes d'API dans le fichier app.py qui peuvent agir sur les données d'inventaire. Pour atteindre cet objectif, vous pouvez utiliser la fonctionnalité de génération de code de Gemini.

  1. Pour afficher les fichiers associés à votre application exemple, dans votre IDE, cliquez sur l'icône Explorateur.

  2. Pour afficher le contenu, cliquez sur le fichier app.py.

  3. Modifiez les instructions d'importation de sorte que le fichier app.py inclue le fichier inventory.py:

    import os
    from flask import Flask, render_template
    from inventory import inventory
    
  4. Pour permettre à Gemini de générer le code de la première méthode API, dans le fichier app.py, saisissez le commentaire suivant, puis appuyez sur Ctrl+Entrée:

     # Generate an app route to display a list of inventory
     # items in the JSON format from the
     # inventory.py file. Use the GET method.
    
    

    Gemini génère une réponse dans le fichier app.py.

    Selon la configuration système, le raccourci clavier permettant de générer du code à l'aide de Gemini peut être différent de la combinaison Ctrl+Entrée utilisée dans ce tutoriel.

  5. Maintenez le pointeur sur n'importe quelle partie de la réponse.

    Une barre d'outils Gemini s'affiche.

    Gemini peut générer plusieurs réponses. Dans la barre d'outils, vous pouvez parcourir chaque réponse à l'aide des touches < et >. Dans l'exemple suivant, Gemini ne génère qu'une seule réponse, comme illustré dans la figure 4:

    accepter le code
    Figure 4. Vous pouvez accepter une suggestion de code de Gemini.
  6. Pour accepter l'exemple de code suggéré, cliquez sur Accepter dans la barre d'outils.

    Le résultat ressemble à ceci :

    # Generate an App route to display a list of inventory
    # items in the JSON format from the
    # inventory.py file. Use the GET method.
    @app.route('/inventory', methods=['GET'])
    def get_inventory():
        """Return a list of inventory items."""
        return jsonify(inventory)
    
  7. Facultatif: Pour en savoir plus sur la fonction jsonify(inventory), mettez en surbrillance le terme et demandez à Gemini de vous expliquer le code.

  8. Modifiez les instructions d'importation de sorte que le fichier app.py inclue la fonction jsonify:

    import os
    from flask import Flask, render_template, jsonify
    from inventory import inventory
    
  9. Pour ajouter une autre méthode API, saisissez l'invite suivante dans le fichier app.py, puis appuyez sur Ctrl+Entrée:

    # Generate an App route to get an inventory item
    # given the productid. Use the GET method.
    # If there is an invalid productid,
    # display a 404 error.
    

    Gemini génère une réponse dans le fichier app.py.

  10. Maintenez le pointeur sur n'importe quelle partie de la réponse.

    Une barre d'outils Gemini s'affiche.

  11. Pour accepter l'un des exemples de code suggérés, cliquez sur Accept (Accepter) dans la barre d'outils.

    Le résultat ressemble à ceci :

    # Generate an App route to get an inventory item
    # given the productid. Use the GET method.
    # If there is an invalid productid,
    # display a 404 error.
    @app.route('/inventory/<productid>', methods=['GET'])
    def get_inventory_item(productid):
        """Return an inventory item given the productid."""
        for item in inventory:
            if item["productid"] == productid:
               return jsonify(item)
        return jsonify({"error": "Item not found"}), 404
    

    Vous avez ajouté deux méthodes d'API pour créer votre application d'inventaire.

Exécuter l'application localement depuis votre IDE

Vous êtes prêt à déployer l'application en local depuis VS Code. Pour déployer l'application, procédez comme suit:

  1. Si ce n'est pas déjà fait, lancez votre IDE.

  2. Dans la barre d'activité de votre IDE, cliquez sur spark Gemini.

  3. Dans le volet Gemini, saisissez la requête suivante, puis cliquez sur Send (Envoyer) :

    How do I run a Cloud Run app locally within Cloud Code?
    Is there an emulator?
    

    Suivez les étapes de la réponse Gemini pour exécuter l'application localement à partir de VS Code. Vous pouvez également vous reporter à la section suivante pour déployer un exemple d'application Cloud Run en local à partir de VS Code.

Étapes alternatives pour exécuter l'application en local depuis votre IDE

Si vous n'avez pas suivi les étapes de la réponse Gemini de la section précédente, vous pouvez déployer votre application exemple en procédant comme suit:

  1. Lancez votre IDE.

  2. Ouvrez la palette de commandes: appuyez sur Commande+Maj+P (pour macOS) ou Ctrl+Maj+P (pour Windows et Linux).

  3. Dans le champ de la palette de commandes, saisissez Run on Cloud Run Emulator, puis cliquez sur le résultat.

  4. Dans le fichier d'environnement Build, conservez les valeurs par défaut et cliquez sur Exécuter.

    Ce tutoriel utilise Docker comme option de compilateur.

    Dans le volet Output (Sortie) de votre IDE, vous pouvez suivre la progression de la compilation. Le processus de déploiement réel peut prendre un certain temps.

    Starting to run the app using configuration 'Cloud Run:
    Run/Debug Locally' from .vscode/launch.json...
    To view more detailed logs, go to Output channel : "Cloud Run: Run/Debug Locally - Detailed"
    Dependency check started
    Dependency check succeeded
    Starting minikube, this may take a while......
    ...
    

Pour afficher votre application en ligne, une fois le déploiement terminé, cliquez sur l'URL dans le volet Résultat. Pour une copie locale de VS Code, si vous avez spécifié localhost 8080, votre application exemple est disponible à l'URL http://localhost:8080.

Tester les deux méthodes API

Si votre application exemple est en ligne, vous pouvez également vérifier si les deux itinéraires d'application fonctionnent. Dans cet exemple, supposons que l'URL de l'application soit http://localhost:8080.

  1. Pour afficher l'exemple de page de destination de votre application, accédez à http://localhost:8080.

  2. Pour obtenir la liste de tous les articles d'inventaire, accédez à http://localhost:8080/inventory.

    Dans le fichier app.py, la fonction @app.route('/inventory', methods=['GET']) est utilisée pour répertorier tous les articles d'inventaire.

  3. Pour afficher un article d'inventaire spécifique filtré selon l'attribut productid, cliquez sur http://localhost:8080/inventory/productid.

    Par exemple, http://localhost:8080/inventory/1, où productid est égal à 1.

    Dans le fichier app.py, pour afficher un article d'inventaire spécifique par l'attribut productid, la fonction @app.route('/inventory/<productid>', methods=['GET']) est utilisée.

Déployer une application Cloud Run sur Google Cloud

Vous pouvez maintenant déployer l'application Cloud Run sur Google Cloud. Vous pouvez demander à Gemini de vous indiquer la procédure à suivre, ou vous pouvez procéder comme suit:

  1. Ouvrez la palette de commandes: appuyez sur Commande+Maj+P (pour macOS) ou Ctrl+Maj+P (pour Windows et Linux).

  2. Dans le champ de la palette de commandes, saisissez Cloud Code: Deploy to Cloud Run, puis cliquez sur le résultat.

  3. Dans le volet des paramètres du service, définissez votre projet Google Cloud.

  4. Acceptez les autres paramètres par défaut, puis cliquez sur Déployer.

  5. Cloud Code crée votre image, la transfère dans le registre, puis déploie votre service sur Cloud Run.

  6. Pour afficher votre service en cours d'exécution, ouvrez l'URL affichée dans la boîte de dialogue Deploy to Cloud Run (Déployer sur Cloud Run).

    Vous pouvez également suivre la procédure décrite dans la section Tester les deux méthodes API pour afficher l'exemple d'application dans Google Cloud. Modifiez vos URL en conséquence.

Effectuer un nettoyage

Pour éviter que les ressources utilisées dans ce tutoriel soient facturées sur votre compte Google Cloud, vous pouvez supprimer le projet Google Cloud que vous avez créé pour ce tutoriel. Vous pouvez également supprimer les ressources individuelles.

  1. Dans la console Google Cloud, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Étapes suivantes