Sviluppa un'app Python con Gemini per l'assistenza Google Cloud

Questo tutorial mostra come utilizzare Gemini in Google Cloud, un collaboratore basato sull'AI in Google Cloud, per esplorare, creare, modificare, testare ed eseguire il deployment di un'app Python di esempio.

Nell'esempio seguente, supponiamo che tu sia uno sviluppatore che fa parte di un team che si occupa di sviluppare un'app di inventario. Sei responsabile della prototipazione di un servizio di base che contiene alcuni metodi API da utilizzare nell'ambito dell'app di inventario. Vuoi sviluppare l'app nel tuo ambiente VS Code locale e poi eseguirne il deployment su Google Cloud. Tuttavia, non sai con certezza quale servizio Google Cloud sia più adatto al tuo caso d'uso.

In questo tutorial, utilizzerai Gemini insieme a Visual Studio Code come IDE per creare un'app di inventario di esempio con due metodi API.

Questo tutorial è rivolto agli sviluppatori con qualsiasi livello di esperienza che hanno contribuito alla creazione di app, ma che potrebbero non avere familiarità con le tecnologie cloud. Si presume che tu abbia una certa esperienza nell'uso di VS Code come IDE e che tu conosca il framework Python e di Flask.

Obiettivi

  • Esplora i vari servizi Google che puoi utilizzare per eseguire il deployment di un'app ponendo domande basate sul contesto a Gemini.

  • Chiedi a Gemini di fornire modelli che puoi usare per sviluppare un'app Python di base in Cloud Run.

  • Creare, esplorare e modificare l'app usando Gemini per spiegare e generare il codice.

  • Esegui e testa l'app in locale, quindi eseguine il deployment in Google Cloud utilizzando Gemini per generare i passaggi.

Prodotti Google Cloud utilizzati

Questo tutorial utilizza i seguenti prodotti Google Cloud fatturabili. Utilizza il Calcolatore prezzi per generare una stima dei costi in base all'utilizzo previsto.

  • Cloud Run. Cloud Run è una piattaforma di computing gestita che consente di eseguire i container direttamente sull'infrastruttura scalabile di Google. Puoi eseguire il deployment di codice scritto in qualsiasi linguaggio di programmazione in Cloud Run, a patto che tu possa creare un'immagine container. Per informazioni sui prezzi, consulta Cloud Run.

Oltre al prodotto indicato in precedenza, questo tutorial utilizza anche i seguenti prodotti:

  • Gemini. Gemini è un collaboratore sempre attivo di Google Cloud che offre assistenza basata sull'AI generativa a un'ampia gamma di utenti, tra cui sviluppatori e data scientist. Per offrire un'esperienza di assistenza integrata, Gemini è integrato in molti prodotti Google Cloud.

  • Estensione Cloud Code for VS Code. Questa estensione è un plug-in IDE che fornisce supporto per il ciclo di sviluppo delle applicazioni Kubernetes e Cloud Run. Per scoprire di più sull'estensione di Cloud Code, consulta la pagina relativa alle funzionalità di Cloud Code for VS Code.

Prima di iniziare

  1. Installa una copia locale di VS Code, se non l'hai già fatto.

  2. Installa l'estensione Cloud Code per VS Code.

    Segui le istruzioni nella guida all'installazione per installare Python, Git e il client Docker. Segui anche i passaggi per creare un progetto Google Cloud.

  3. Assicurati che Gemini sia configurato per il tuo account utente e il tuo progetto Google Cloud.
  4. Abilita Gemini per il tuo IDE.

    Segui i passaggi per connetterti a Google Cloud nel tuo IDE e per selezionare un progetto configurato per Google Cloud.

Esplora i servizi Google Cloud

Se non hai mai utilizzato Google Cloud, Gemini può aiutarti a scegliere i servizi Google Cloud che soddisfano i requisiti della tua architettura delle applicazioni.

Nel tuo IDE puoi chattare con Gemini per ricevere assistenza. Utilizzando il riquadro Gemini, inserisci messaggi (domande o istruzioni che descrivono l'aiuto che cerchi) e Gemini restituisce le risposte. I prompt possono includere contesto del codice esistente che Google Cloud analizza per fornire risposte più utili o complete. Per saperne di più su come scrivere prompt in grado di generare risposte corrette, consulta l'articolo Scrivere prompt migliori per Gemini.

Per richiedere a Gemini sui servizi Google Cloud, segui questi passaggi:

  1. Nella barra delle attività dell'IDE, fai clic su spark Gemini.

    Per individuare la barra delle attività di VS Code, consulta la pagina relativa all'interfaccia utente.

  2. Nel riquadro Gemini, inserisci il seguente prompt e fai clic su Invia:

    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 risponde con un elenco di servizi e descrizioni Google Cloud.

    In questo esempio, supponiamo che Gemini suggerisca Cloud Run e Cloud Functions come due servizi Google Cloud che possono aiutarti a creare ed eseguire il deployment di un'app di esempio, ma hai bisogno di ulteriori informazioni su questi servizi.

    Gemini non utilizza i tuoi prompt o le sue risposte come dati per addestrare i suoi modelli. Per maggiori informazioni, consulta In che modo Gemini per Google Cloud utilizza i tuoi dati.

  3. Inserisci una domanda aggiuntiva come la seguente:

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

    Gemini risponde in modo dettagliato alle differenze dettagliate tra i due servizi Google Cloud.

  4. (Facoltativo) Per reimpostare la cronologia chat, nel riquadro Gemini fai clic su elimina Reimposta chat.

Crea un'app Python Hello World

Considera di voler utilizzare Cloud Run per creare ed eseguire il deployment di un'app Python di base. Poiché non hai mai utilizzato Cloud Run e Cloud Code, hai bisogno di aiuto con i passaggi per creare l'app. In questa sezione, chiederai a Gemini di aiutarti a creare un'app Python Hello World in Cloud Run.

  1. Avvia il tuo IDE, se non l'hai ancora fatto.

  2. Nella barra delle attività dell'IDE, fai clic su spark Gemini.

  3. Nel riquadro Gemini, inserisci il seguente prompt e fai clic su Invia:

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

    La tavolozza dei comandi in VS Code fornisce un elenco di tutti i comandi, inclusi quelli per Cloud Code.

    L'output è simile al seguente:

    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 mostra anche le lingue supportate per l'app Cloud Run.

    Per questo esempio, scegli di utilizzare un modello Cloud Run basato su Python per creare l'app di esempio.

  4. Per scoprire come creare un'app Python da un modello Cloud Run, inserisci il seguente prompt:

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

    L'output è simile al seguente:

    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.
    
    ...
    

    Completa i passaggi forniti da Gemini nella sua risposta per creare un'app Python di base Hello World in Cloud Run. Puoi anche fare riferimento alla sezione seguente per creare l'app Hello World in Python.

Passaggi alternativi per creare un'app Python Hello World

  1. Se non l'hai ancora fatto, avvia il tuo IDE.

  2. Apri la tavolozza dei comandi: premi Comando+Shift+P (per MacOS) o Ctrl+Shift+P (per Windows e Linux).

  3. Nel campo della tavolozza dei comandi, inserisci Cloud Code: New Application e fai clic sul risultato.

  4. Dall'elenco degli esempi disponibili, seleziona Applicazione Cloud Run.

  5. Dall'elenco dei modelli disponibili, seleziona Python (Flask): Cloud Run.

  6. Salva la nuova app nella posizione che preferisci.

Una notifica conferma che l'app è stata creata. Nel tuo IDE si apre un'anteprima del file README per il servizio selezionato, come mostrato nella Figura 1:

screenshot
Figura 1: file README visualizzato per un'app Python Hello World creata in Cloud Run.

Esplora l'app Python Hello World

Ora che hai creato l'app Hello World in Cloud Run, puoi utilizzare Gemini per spiegare i file e gli snippet di codice di cui viene eseguito il deployment nel tuo IDE. Per esplorare il codice dell'app di esempio che hai creato, segui questi passaggi:

  1. Avvia il tuo IDE.

  2. Apri Explorer: premi Comando+Shift+E (per MacOS) o Ctrl+Shift+E (per Windows e Linux).

    Puoi visualizzare i file relativi all'app di esempio.

  3. Nell'elenco dei file, fai clic su Dockerfile per visualizzarne il contenuto.

  4. Seleziona l'intero contenuto di Dockerfile, fai clic sull'icona a forma di lampadina, quindi fai clic su Spiega questo, come mostrato nella Figura 2:

    Screenshot di Dockerfile
    Figura 2. La funzionalità di spiegazione del codice è disponibile quando selezioni il codice.

    Gemini genera una spiegazione in linguaggio naturale dei contenuti e delle funzioni di Dockerfile. Se hai dubbi su alcuni punti della risposta, puoi porre ulteriori domande.

  5. Per saperne di più sul file app.py menzionato in Dockerfile, nel riquadro Gemini inserisci il seguente prompt:

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

    Gemini genera una risposta simile alla seguente:

    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.
    

    In alternativa, puoi anche selezionare il testo app.py in Dockerfile, fare clic sull'icona a forma di lampadina, quindi su Spiegazione.

  6. Apri Explorer: premi Comando+Shift+E (su MacOS) o Ctrl+Shift+E (su Windows e Linux).

  7. Apri il file app.py. Vedrai due variabili: K_SERVICE e K_REVISION.

  8. Per saperne di più sulle variabili nel file app.py, nel riquadro Gemini inserisci il seguente prompt:

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

    In alternativa, puoi anche selezionare il seguente testo in Dockerfile, fare clic sull'icona a forma di lampadina, quindi fare clic su Spiega questo:

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

    La risposta è simile alla seguente:

    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.
    ...
    

Genera dati di esempio per l'app

Hai un'app Flask di base creata in Cloud Run. Prima di poter aggiungere funzionalità per creare l'app dell'inventario, devi avere un file che contenga un elenco di elementi di inventario di esempio. Per utilizzare Gemini per generare i dati di esempio pertinenti, segui questi passaggi:

  1. Per visualizzare i file relativi all'app di esempio, nel tuo IDE fai clic sull'icona Explorer.

  2. Fai clic sull'icona Nuovo file e crea un file denominato inventory.py.

  3. Per consentire a Gemini di generare i dati di esempio, nel riquadro Gemini inserisci il seguente prompt:

    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 genera un codice campione per tre oggetti JSON.

  4. Nella risposta, fai clic su addInserisci in file corrente per inserire l'esempio di codice nel file inventory.py, come mostrato nella Figura 3:

    inserisci codice
    Figura 3. Puoi inserire il codice di una risposta Gemini.

    Il file inventory.py è simile al seguente:

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

    Hai creato il file inventory.py, che include un elenco degli elementi di inventario.

Modifica l'app Python Hello World

Dopo aver creato il file inventory.py, introduci nel file app.py alcuni metodi API che possono operare sui dati di inventario. Per completare l'obiettivo, puoi utilizzare la funzionalità di generazione del codice in Gemini.

  1. Per visualizzare i file relativi all'app di esempio, nell'IDE fai clic sull'icona Explorer.

  2. Per visualizzare i contenuti, fai clic sul file app.py.

  3. Modifica le istruzioni di importazione in modo che il file app.py includa il file inventory.py:

    import os
    from flask import Flask, render_template
    from inventory import inventory
    
  4. Per consentire a Gemini di generare il codice per il primo metodo API, nel file app.py, inserisci il seguente commento e premi Ctrl + Invio:

     # 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 genera una risposta nel file app.py.

    A seconda della configurazione di sistema, la scorciatoia da tastiera per generare codice utilizzando Gemini potrebbe essere diversa dalla combinazione Ctrl+Invio utilizzata in questo tutorial.

  5. Tieni il puntatore su qualsiasi parte della risposta.

    Viene visualizzata una barra degli strumenti Gemini.

    Gemini potrebbe generare più di una risposta. Nella barra degli strumenti, puoi scorrere ogni risposta utilizzando i tasti < e >. Nell'esempio seguente, Gemini genera una sola risposta, come mostrato nella Figura 4:

    accetta codice
    Figura 4. Puoi accettare un suggerimento di codice da Gemini.
  6. Per accettare l'esempio di codice suggerito, fai clic su Accetta nella barra degli strumenti.

    L'output è simile al seguente:

    # 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. (Facoltativo) Per saperne di più sulla funzione jsonify(inventory), evidenzia il termine e chiedi a Gemini di spiegarti il codice.

  8. Modifica le istruzioni di importazione in modo che il file app.py includa la funzione jsonify:

    import os
    from flask import Flask, render_template, jsonify
    from inventory import inventory
    
  9. Per aggiungere un altro metodo API, nel file app.py inserisci il seguente prompt, quindi premi Ctrl + Invio:

    # 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 genera una risposta nel file app.py.

  10. Tieni il puntatore su qualsiasi parte della risposta.

    Viene visualizzata una barra degli strumenti Gemini.

  11. Per accettare uno degli esempi di codice suggeriti, fai clic su Accetta nella barra degli strumenti.

    L'output è simile al seguente:

    # 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
    

    Hai aggiunto due metodi API per creare la tua app di inventario.

Esegui l'app in locale dal tuo IDE

Ora è tutto pronto per eseguire il deployment dell'app in locale da VS Code. Per eseguire il deployment dell'app:

  1. Avvia il tuo IDE, se non l'hai ancora fatto.

  2. Nella barra delle attività dell'IDE, fai clic su spark Gemini.

  3. Nel riquadro Gemini, inserisci il seguente prompt e fai clic su Invia:

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

    Segui i passaggi nella risposta Gemini per eseguire l'app in locale da VS Code. Puoi anche consultare la sezione seguente per eseguire il deployment di un'app Cloud Run di esempio in locale all'interno di VS Code.

Passaggi alternativi per eseguire l'app in locale dal tuo IDE

Se non hai seguito i passaggi nella risposta Gemini nella sezione precedente, puoi seguire questi passaggi per eseguire il deployment della tua app di esempio:

  1. Avvia il tuo IDE.

  2. Apri la tavolozza dei comandi: premi Comando+Shift+P (per MacOS) o Ctrl+Shift+P (per Windows e Linux).

  3. Nel campo della tavolozza dei comandi, inserisci Run on Cloud Run Emulator e fai clic sul risultato.

  4. Nel file di ambiente Build, conserva i valori predefiniti e fai clic su Esegui.

    Questo tutorial utilizza Docker come opzione del builder.

    Nel riquadro Output del tuo IDE puoi visualizzare l'avanzamento della build. Il processo di deployment effettivo potrebbe richiedere un po' di tempo.

    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......
    ...
    

Per visualizzare la tua app pubblicata, al termine del deployment, fai clic sull'URL nel riquadro Output. Per una copia locale di VS Code, se hai specificato localhost 8080, la tua app di esempio è pubblicata all'URL http://localhost:8080.

Testa i due metodi dell'API

Se la tua app di esempio è attiva, puoi anche controllare se i due percorsi delle app funzionano. In questo esempio, supponiamo che l'URL dell'app sia http://localhost:8080.

  1. Per visualizzare la pagina di destinazione di esempio per la tua app, vai all'indirizzo http://localhost:8080.

  2. Per ottenere un elenco di tutti gli articoli dell'inventario, vai alla pagina http://localhost:8080/inventory.

    Nel file app.py, per elencare tutti gli elementi dell'inventario viene utilizzata la funzione @app.route('/inventory', methods=['GET']).

  3. Per visualizzare un elemento dell'inventario specifico filtrato in base all'attributo productid, fai clic su http://localhost:8080/inventory/productid.

    Ad esempio, http://localhost:8080/inventory/1, dove productid è uguale a 1.

    Nel file app.py, per visualizzare un elemento dell'inventario specifico tramite l'attributo productid, viene utilizzata la funzione @app.route('/inventory/<productid>', methods=['GET']).

Esegui il deployment di un'app Cloud Run su Google Cloud

Ora puoi eseguire il deployment dell'app Cloud Run in Google Cloud. Puoi chiedere a Gemini di fornirti i passaggi oppure puoi seguire questi passaggi:

  1. Apri la tavolozza dei comandi: premi Comando+Shift+P (per MacOS) o Ctrl+Shift+P (per Windows e Linux).

  2. Nel campo della tavolozza dei comandi, inserisci Cloud Code: Deploy to Cloud Run e fai clic sul risultato.

  3. Nel riquadro Impostazioni servizio, imposta il tuo progetto Google Cloud.

  4. Accetta le restanti impostazioni predefinite e fai clic su Esegui il deployment.

  5. Cloud Code crea l'immagine, ne esegue il push al registry ed esegue il deployment del servizio in Cloud Run.

  6. Per visualizzare il servizio in esecuzione, apri l'URL visualizzato nella finestra di dialogo Esegui il deployment in Cloud Run.

    Puoi anche utilizzare gli stessi passaggi indicati in Testare i due metodi dell'API per visualizzare l'app di esempio in Google Cloud. Modifica gli URL di conseguenza.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, puoi eliminare il progetto Google Cloud che hai creato per questo tutorial. In alternativa, puoi eliminare le singole risorse.

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.

Passaggi successivi