Un tour di Gemini Code Assist (in precedenza Duet AI) per gli sviluppatori

1. Introduzione

In questo lab utilizzerai Gemini Code Assist (in precedenza Duet AI for Developers), un collaboratore basato sull'IA di Google Cloud. Imparerai a utilizzare Gemini Chat e l'assistenza per il codice in linea per generare codice, comprenderlo e altro ancora.

Cosa farai...

  • Utilizzerai l'IDE di Cloud Shell per scaricare un modello di codice esistente per un'applicazione web.
  • Utilizzerai Gemini Chat nell'IDE di Cloud Shell per porre domande generali su Google Cloud.
  • Utilizzerai l'assistenza per il codice in linea di Gemini Code Assist nell'IDE di Cloud Shell per generare, riassumere e completare il codice.

Cosa imparerai...

  • Come utilizzare Gemini Code Assist per diverse attività degli sviluppatori, come la generazione e il completamento del codice e il riepilogo del codice.
  • Scopri come utilizzare Gemini per Cloud per imparare a utilizzare Google Cloud.

Che cosa ti serve...

  • Browser web Chrome
  • Un account Gmail.
  • Un progetto Cloud con fatturazione abilitata
  • Gemini Code Assist abilitato per il tuo progetto Cloud

Questo lab è rivolto a sviluppatori di tutti i livelli, inclusi i principianti. Anche se l'applicazione di esempio è in linguaggio Python, non è necessario avere familiarità con la programmazione Python per capire cosa sta succedendo. Il nostro obiettivo sarà familiarizzare con le funzionalità di Gemini Code Assist per gli sviluppatori.

2. Configurazione

Questa sezione illustra tutto ciò che devi fare per iniziare a utilizzare questo lab.

Abilita Gemini per Cloud nel progetto Google Cloud

Ora abiliteremo Gemini per Cloud nel nostro progetto Google Cloud. Procedi come indicato di seguito:

  1. Visita https://console.cloud.google.com e assicurati di aver selezionato il progetto Google Cloud con cui prevedi di lavorare per questo lab. Fai clic sull'icona Apri Gemini che vedi in alto a destra.

28f084ec1e159938.png

  1. Sul lato destro della console si aprirà la finestra della chat di Gemini per Cloud. Fai clic sul pulsante Abilita come mostrato di seguito. Se non vedi il pulsante Abilita, ma vedi un'interfaccia di Chat, è probabile che tu abbia già abilitato Gemini per Cloud per il progetto e puoi andare direttamente al passaggio successivo.

e8df9adc4ea43a37.png

  1. Una volta abilitato, puoi testare Gemini per Cloud chiedendogli una o due query. Vengono mostrati alcuni esempi di query, ma puoi provare ad esempio What is Cloud Run?

9859ea86a8310cb.png

Gemini per Cloud risponderà con la risposta alla tua domanda. Puoi fare clic sull'icona f68286b2b2ea5c0a.png nell'angolo in alto a destra per chiudere la finestra della chat di Gemini per Cloud.

Abilita Gemini Code Assist nell'IDE di Cloud Shell

Per il resto del codelab, utilizzeremo l'IDE di Cloud Shell, un ambiente di sviluppo completamente gestito basato su Code OSS. Dobbiamo abilitare e configurare Code Assist nell'IDE di Cloud Shell, seguendo i passaggi riportati di seguito:

  1. Visita la pagina ide.cloud.google.com. La visualizzazione dell'IDE potrebbe richiedere un po' di tempo, quindi ti chiediamo di avere pazienza.
  2. Fai clic sul pulsante Cloud Code - Accedi nella barra di stato in basso come mostrato. Autorizza il plug-in come da istruzioni. Se nella barra di stato vedi il messaggio "Cloud Code - no project" (Cloud Code - nessun progetto), selezionalo e scegli il progetto Google Cloud specifico dall'elenco dei progetti con cui prevedi di lavorare.

6f5ce865fc7a3ef5.png

  1. Fai clic sul pulsante Gemini nell'angolo in basso a destra, come mostrato, e seleziona un'ultima volta il progetto Google Cloud corretto. Se ti viene chiesto di abilitare l'API Cloud AI Companion, fallo e vai avanti.
  2. Dopo aver selezionato il progetto Google Cloud, assicurati di poterlo vedere nel messaggio di stato di Cloud Code nella barra di stato e di avere attivato Code Assist sulla destra, nella barra di stato, come mostrato di seguito:

709e6c8248ac7d88.png

Gemini Code Assist è pronto per l'uso.

(Facoltativo) Se non vedi Gemini nella barra di stato in basso a destra, dovrai abilitare Gemini in Cloud Code. Prima di farlo, assicurati che Gemini sia abilitato nell'IDE: vai all'estensione Cloud Code → Impostazioni e inserisci il testo Gemini come mostrato di seguito. Assicurati che la casella di controllo sia selezionata. Devi ricaricare il tuo IDE.Questa operazione attiva Gemini in Cloud Code e nel tuo IDE verrà visualizzata l'icona di Gemini nella barra di stato.

228c9c9c6b956c8e.png

3. Crea l'applicazione di esempio

Creeremo un'applicazione di esempio (un'applicazione Python Flask) che utilizzeremo per esplorare le funzionalità di Gemini Code Assist.

Segui questi passaggi:

  1. Fai clic sul nome del progetto Google Cloud nella barra di stato in basso.

f151759c156c124e.png

  1. Viene visualizzato un elenco di opzioni. Fai clic su New Application (Nuova applicazione) dall'elenco seguente.

91ea9836f38b7f74.png

  1. Seleziona l'applicazione Cloud Run.
  2. Seleziona il modello di applicazione Python (Flask): Cloud Run.
  3. Salva la nuova applicazione nel percorso che preferisci.
  4. Una notifica conferma la creazione dell'applicazione; si apre una nuova finestra con l'applicazione caricata, come mostrato di seguito. Viene aperto un file README.md. Per ora puoi chiudere la visualizzazione.

aaa3725b17ce27cf.png

4. Prova Gemini

Inizieremo imparando a chattare con Gemini. Gemini è disponibile come assistente per la chat all'interno dell'IDE di Cloud Shell come parte dell'estensione Cloud Code in VS Code. Per visualizzarla, fai clic sul pulsante Gemini nella barra di navigazione a sinistra. Cerca l'icona di Gemini a489f98a34898727.pngnella barra degli strumenti di navigazione a sinistra e fai clic sull'icona.

Verrà visualizzato il riquadro Chat: GeminiI nell'IDE di Cloud Shell. Potrai chattare con Gemini per ricevere assistenza su Google Cloud.

14ad103efaa0ddaa.png

Usiamo il riquadro della chat con Gemini per inserire un prompt e visualizzare la risposta di Gemini. Digita il seguente prompt:

What is Cloud Run? 

Gemini deve rispondere con i dettagli relativi a Cloud Run. I prompt sono domande o affermazioni che descrivono l'aiuto di cui hai bisogno. I prompt possono includere contesto di codice esistente che Google Cloud analizza per fornire risposte più utili o complete. Per saperne di più su come scrivere prompt per generare risposte efficaci, consulta Scrivere prompt migliori per Gemini in Google Cloud.

Prova i seguenti prompt di esempio o altri prompt di esempio per fare domande su Google Cloud:

  • What is the difference between Cloud Run and Cloud Functions?
  • What services are available on Google Cloud to run containerized workloads?
  • What are the best practices to optimize costs while working with Google Cloud Storage?

Nota l'icona del cestino in alto: in questo modo puoi reimpostare il contesto della cronologia chat di Code Assist. Inoltre, tieni presente che questa interazione via chat è contestuale ai file su cui stai lavorando nell'IDE.

5. Spiegazione del codice

Per aiutarti a essere più produttivo riducendo al minimo il cambio di contesto, Gemini Code Assist fornisce azioni intelligenti basate sull'IA direttamente nell'editor di codice. Quando selezioni il codice nell'editor di codice, puoi visualizzare e scegliere da un elenco di azioni pertinenti al tuo contesto.

Puoi utilizzare Gemini Code Assist per comprendere parti del codice dell'applicazione. Torna all'applicazione che abbiamo creato in un passaggio precedente e potrai usare Gemini Code Assist per spiegare i file e il codice disponibili nel tuo IDE.

  1. Se i file non sono visibili, fai clic su Explorer ( Menu Esplora OSS del codice) nella barra delle attività dell'IDE.
  2. Nel riquadro Explorer, seleziona Dockerfile.
  3. Puoi selezionare una qualsiasi parte dei contenuti del file, fare clic sulla lampadina ( Lampadina Duet AI Code OSS) e quindi su Gemini: spiega questo. Ad esempio, seleziona la riga che inizia con ENTRYPOINT, fai clic sulla lampadina ( Lampadina Duet AI Code OSS), quindi fai clic su Gemini: spiega questo. Gemini genera una spiegazione in linguaggio naturale della sezione specifica del Dockerfile su cui hai bisogno di maggiori informazioni. Gemini risponde con i dettagli dell'istruzione ENTRYPOINT. Con questa istruzione, Docker eseguirà il file app.py all'avvio del container.
  4. Per visualizzare i contenuti del file app.py, fai clic su Explorer ( Menu Esplora OSS del codice) nella barra delle attività, quindi seleziona app.py.
  5. Nella definizione della funzione hello(), puoi selezionare le righe sulle quali desideri ottenere maggiori informazioni. Quindi, fai clic sulla lampadina ( Lampadina Duet AI Code OSS) e poi su Gemini : spiega. Nel nostro esempio, abbiamo selezionato le due righe di codice seguenti e poi abbiamo attivato l'azione Gemini: spiega questa.

14d9c56af016b65d.png

  1. Gemini risponde con una spiegazione dettagliata di queste due variabili di ambiente Cloud Run (K_SERVICE, K_REVISION) e di come vengono utilizzate nel codice dell'applicazione. Tieni presente che Gemini, con la sua conoscenza di Google Cloud e di servizi come Cloud Run, non solo ha spiegato il codice Python, ma ha anche dato il contesto di cosa significano queste variabili all'interno di Cloud Run.

Prova i seguenti metodi aggiuntivi per ricevere una spiegazione sul codice:

  1. Mantieni app.py come file attualmente aperto nell'IDE. Vai al riquadro della chat con Gemini nella barra di navigazione a sinistra in VS Code e inserisci il prompt Spiega questo file. In questo modo verrà esaminato l'intero file e te lo spiegheremo.
  2. Puoi anche selezionare una qualsiasi parte del file e utilizzare il riquadro della chat con Gemini a sinistra, inserendo il prompt Spiega questo. In questo modo verrà spiegato solo la parte selezionata del file. È un po' come fare clic sulla lampadina( Lampadina Duet AI Code OSS) e poi su Gemini: Spiega.
  3. Puoi anche selezionare una parte del testo e fare clic su Gemini: Azioni intelligenti in alto a destra nell'IDE, come mostrato di seguito, per visualizzare un elenco di azioni che possono essere eseguite sul testo selezionato. Una di queste opzioni sarà l'azione Spiega questo:

adeb72acd708174.png

6. Genera codice con prompt

Questa sezione mostra come utilizzare Gemini Code Assist per generare codice dai commenti.

Proviamo queste funzionalità. Procedi come indicato di seguito:

  1. Crea un nuovo file denominato utils.py.
  2. Nel nuovo file di codice, inserisci # Function to print a list of blobs in a Google Cloud Storage bucket in una nuova riga, quindi premi Enter (per Windows e Linux) o Return (per MacOS). Gemini potrebbe provare a generare il codice mentre scrivi, ma non lo accetta. Nel passaggio successivo attiveremo specificamente la generazione del codice.
  3. Per attivare la generazione del codice, premi Control+Enter (per Windows e Linux) o Control+Return (per MacOS). Accanto al testo del prompt nel file Python, Gemini Code Assist genera il codice sotto forma di testo fantasma. Fornirà uno o più suggerimenti per il codice con una barra degli strumenti, attraverso la quale è possibile passare da un suggerimento di codice a un altro (nel caso in cui ci siano più suggerimenti). Puoi persino accettare qualsiasi suggerimento di codice tramite la barra degli strumenti. Se la barra degli strumenti non è visibile o scompare, passa il mouse sopra il codice generato per visualizzarla di nuovo.
  4. (Facoltativo) Per accettare il codice generato, premi Tab. Se sono presenti più suggerimenti, puoi premere Tab più volte per passare da uno snippet di codice suggerito all'altro.

Il codice accettato nel file utils.py verrà inserito. Di seguito è riportato uno screenshot di esempio. Il codice fornito potrebbe essere diverso da quello mostrato di seguito. Se vengono generati metodi aggiuntivi, puoi eliminarli dopo aver accettato il codice.

d6d7915885c5e74b.png

Nota la linea ondulata attorno al codice. Questa è una citazione del codice in azione. Se passi il mouse sopra una delle righe, vengono visualizzate l'attribuzione del codice e altre informazioni pertinenti sulle licenze. Un esempio è il seguente:

c7473cadcf15d887.png

Puoi quindi scegliere di ignorare l'avviso relativo alla citazione facendo clic su Soluzione rapida .... Verrà visualizzato il suggerimento di Correzione rapida, di cui è riportato un esempio:

10f4672830954c90.png

Puoi scegliere Ignora avviso di citazione se accetti la licenza del codice.

(Facoltativo) Ecco alcuni altri suggerimenti da provare per la generazione del codice:

  1. Puoi anche utilizzare la funzionalità di chat con Gemini per fare lo stesso prompt e ricevere una risposta nella finestra della chat. L'interfaccia di Chat mostra quindi le opzioni per copiare il codice o inserirlo nel file corrente.
  2. Prova i tuoi prompt per il codice campione che vorresti. Di seguito sono riportati alcuni suggerimenti (supponendo che ti trovi in uno dei file Python) oppure scegli tra alcuni dei prompt forniti di seguito:
  • Scrivi il codice Python per pubblicare un messaggio in Google Cloud Pub/Sub
  • Scrivi il codice Python per inizializzare un client BigQuery
  • Scrivi il codice Python per connettere la mia applicazione a Cloud SQL

7. Ricevi suggerimenti di codice in linea durante la programmazione

Mentre scrivi il codice, Gemini Code Assist fornisce suggerimenti di codice in linea che puoi accettare o ignorare. Per provare questa funzionalità, modificheremo il file utils.py creato nella sezione precedente :

  1. Apri il file utils.py come file attuale nell'IDE di Cloud Shell.
  2. Una delle cose che possiamo fare è fornire le istruzioni import corrette, se non sono presenti nel codice generato.
  3. Inizia a digitare la parola import e dovresti vedere Gemini Code Assist che suggerisce il codice sotto forma di testo fantasma. Per accettare il suggerimento di codice da Gemini Code Assist, premi Tab. In caso contrario, per ignorare il suggerimento, premi Esc o continua a scrivere il codice. Nella schermata di esempio riportata di seguito, suggerisce di importare la classe storage poiché è utilizzata nel codice. Premi Tab per accettare il codice suggerito. È anche suggerita l'istruzione import os, ma dato che non è necessaria, possiamo rimuoverla.

cb3dfff74172959d.png

  1. Vai alla fine del file utils.py e aggiungi la riga per richiamare la funzione, se non viene fornita. In questo caso, si tratta della funzione print_blobs. È sufficiente iniziare a digitare il nome della funzione e il codice completato ti aiuterà a completare l'istruzione.
  2. Dovrai fornire il valore bucket_name e utilizzare il seguente nome bucket pubblico : gemini-codeassist-bucket.Di seguito è riportata la chiamata di esempio per la funzione. Tieni presente che potresti notare lievi differenze nei nomi delle funzioni e così via.

print_blobs(bucket_name="gemini-codeassist-bucket")

(Facoltativo) Esegui il codice campione

Poiché abbiamo scritto il codice per elencare i BLOB in un bucket Google Cloud Storage, dobbiamo installare la libreria Python google-cloud-storage.

Vai al file requirements.txt e aggiungi una nuova riga con la dipendenza google-cloud-storage, come mostrato di seguito. Di seguito è riportato un esempio di file requirements.txt.

Flask==2.3.3
requests==2.31.0
debugpy # Required for debugging.
google-cloud-storage

Salva il file requirements.txt.

Per vedere il codice in azione, dovremo avviare una nuova sessione del terminale dall'IDE di Cloud Shell tramite l'icona del menu in alto a sinistra. Fai clic sull'icona del menu e poi su Terminale → Nuovo terminale, come mostrato di seguito:

289173c68f1addb5.png

Nella sessione del terminale, installa le dipendenze Python tramite il seguente comando:

pip3 install -r requirements.txt

Infine, puoi eseguire il file utils.py con il seguente comando:

python utils.py

Dovrebbero essere visualizzati i BLOB presenti nel bucket pubblico di Google Cloud Storage. Idealmente, dovresti vedere due BLOB elencati nell'output (file1.txt e file2.txt).

Risoluzione dei problemi

Nel caso in cui tu riceva un "accesso" durante la visualizzazione degli oggetti nel bucket pubblico riportato sopra, puoi scegliere di creare il tuo bucket Google Cloud Storage e utilizzarlo al posto di gemini-codeassist-bucket. La prossima sezione ti mostra come farlo.

(Facoltativo) Crea il tuo bucket Cloud Storage

Prendiamo l'aiuto di Gemini per fornirci i comandi per creare un bucket, renderlo accessibile pubblicamente e caricare oggetti di esempio nel bucket.

Inizia con il seguente prompt: "Qual è il comando gcloud per creare un bucket pubblico in Google Cloud Storage?"

Dovrebbe essere visualizzato un comando gcloud per creare un bucket. Di seguito è mostrato il comando esatto:

gcloud storage buckets create gs://<BUCKET_NAME>

Seleziona un nome univoco per <BUCKET_NAME> ed esegui il comando nel terminale.

Ora che abbiamo creato un bucket, vorremmo che fosse accessibile pubblicamente. Chiedi a Gemini il comando per farlo utilizzando il seguente prompt: "Come faccio a rendere accessibile pubblicamente un bucket Google Cloud Storage?".

Questo dovrebbe fornirti un comando gcloud per renderlo accessibile pubblicamente. La risposta dovrebbe essere simile alla seguente:

gcloud storage buckets add-iam-policy-binding gs://<BUCKET_NAME> --member=allUsers --role=roles/storage.objectViewer

Sostituisci <BUCKET_NAME> con il nome del bucket che hai utilizzato in precedenza ed esegui il comando.

Infine, vorremmo caricare alcuni file di esempio nel bucket. Esegui questi comandi nel terminale (ricorda di sostituire la variabile <BUCKET_NAME> con il nome del tuo bucket.

touch f1.txt
touch f2.txt

gcloud storage cp f1.txt gs://<BUCKET_NAME>
gcloud storage cp f2.txt gs://<BUCKET_NAME>

Ora puoi eseguire il file utils.py utilizzando <BUCKET_NAME> anziché gemini-codeassist-bucket.

Esegui la pulizia

Se hai creato personalmente il tuo bucket Google Cloud Storage, ti consigliamo vivamente di eliminarlo per evitare addebiti e potenziali rischi per la sicurezza.

Puoi eliminare il bucket con il comando seguente:

gcloud storage buckets delete gs://<BUCKET_NAME>

8. Complimenti!

Complimenti: hai lavorato correttamente con Gemini Code Assist a un progetto di esempio per capire come può aiutarti con generazione del codice, completamento e riepilogo del codice, nonché per aiutarti a ricevere risposte alle domande su Google Cloud.

Documenti di riferimento