1. Panoramica
Questo lab si concentra sull'utilizzo di Gemini CLI, un agente open source basato sull'AI in Google Cloud. Imparerai a utilizzare Gemini CLI per varie attività, tra cui la comprensione di codebase esistenti, la generazione di documentazione e test unitari, il refactoring dei componenti UI e di backend di un'applicazione web Python.
Cosa imparerai a fare
In questo lab imparerai a:
- Come utilizzare l'interfaccia a riga di comando di Gemini per le attività comuni degli sviluppatori.
Prerequisiti
- Questo lab presuppone una certa familiarità con gli ambienti della console Cloud e di Cloud Shell.
2. Configurazione e requisiti
Configurazione del progetto Cloud
- Accedi alla console Google Cloud e crea un nuovo progetto o riutilizzane uno esistente. Se non hai già un account Gmail o Google Workspace, devi crearne uno.
- Il nome del progetto è il nome visualizzato per i partecipanti a questo progetto. È una stringa di caratteri non utilizzata dalle API di Google. Puoi sempre aggiornarlo.
- L'ID progetto è univoco in tutti i progetti Google Cloud ed è immutabile (non può essere modificato dopo l'impostazione). La console Cloud genera automaticamente una stringa univoca, di solito non ti interessa di cosa si tratta. Nella maggior parte dei codelab, dovrai fare riferimento all'ID progetto (in genere identificato come
PROJECT_ID
). Se non ti piace l'ID generato, puoi generarne un altro casuale. In alternativa, puoi provare a crearne uno e vedere se è disponibile. Non può essere modificato dopo questo passaggio e rimane per tutta la durata del progetto. - Per tua informazione, esiste un terzo valore, un numero di progetto, utilizzato da alcune API. Scopri di più su tutti e tre questi valori nella documentazione.
- Successivamente, devi abilitare la fatturazione in Cloud Console per utilizzare le risorse/API Cloud. Completare questo codelab non costa molto, se non nulla. Per arrestare le risorse ed evitare addebiti oltre a quelli previsti in questo tutorial, puoi eliminare le risorse che hai creato o il progetto. I nuovi utenti di Google Cloud possono usufruire del programma prova senza costi di 300$.
Configurazione dell'ambiente
Apri la chat di Gemini.
In alternativa, digita "Chiedi a Gemini" nella barra di ricerca.
Abilita l'API Gemini for Google Cloud:
Attiva GCA nella schermata successiva.
Fai clic su "Start chatting
" e segui una delle domande di esempio o digita il tuo prompt per provarlo.
Prompt da provare:
- Spiega Cloud Run in 5 punti chiave.
- Sei il Product Manager di Google Cloud Run, spiega Cloud Run a uno studente in 5 punti chiave brevi.
- Sei il Product Manager di Google Cloud Run, spiega Cloud Run a uno sviluppatore Kubernetes certificato in 5 brevi punti chiave.
- Sei il Product Manager di Google Cloud Run. Spiega a un Senior Developer quando utilizzeresti Cloud Run anziché GKE in 5 brevi punti chiave.
Al termine, chiudi la finestra della chat di Gemini Cloud Assist.
Consulta la guida ai prompt per scoprire di più su come scrivere prompt migliori.
Come Gemini per Google Cloud usa i tuoi dati
Impegno di Google per la privacy
Google è stata una delle prime aziende del settore a pubblicare un impegno in materia di privacy AI/ML, che delinea la nostra convinzione che i clienti debbano disporre del massimo livello di sicurezza e controllo sui propri dati archiviati nel cloud.
Dati che invii e ricevi
Le domande che poni a Gemini, incluse le informazioni di input o il codice che invii a Gemini per l'analisi o il completamento, sono chiamate prompt. Le risposte o i completamenti del codice che ricevi da Gemini sono chiamati risposte. Gemini non utilizza i tuoi prompt o le relative risposte come dati per addestrare i propri modelli.
Crittografia dei prompt
Quando invii prompt a Gemini, i tuoi dati vengono criptati in transito come input per il modello sottostante in Gemini.
Dati del programma generati da Gemini
Gemini è addestrato sul codice proprietario di Google Cloud e su codice di terze parti selezionato. Sei responsabile della sicurezza, dei test e dell'efficacia del tuo codice, inclusi il completamento, la generazione o l'analisi del codice che Gemini ti offre.
Scopri di più su come Google gestisce i tuoi prompt.
3. Opzioni per testare i prompt
Se vuoi modificare i prompt esistenti, hai diverse opzioni.
Vertex AI Studio fa parte della piattaforma Vertex AI di Google Cloud, progettata specificamente per semplificare e accelerare lo sviluppo e l'utilizzo di modelli di AI generativa.
Google AI Studio è uno strumento basato sul web per la prototipazione e la sperimentazione con l'ingegneria dei prompt e l'API Gemini.
- App web Gemini (gemini.google.com)
L'app web Google Gemini (gemini.google.com) è uno strumento basato sul web progettato per aiutarti a esplorare e utilizzare la potenza dei modelli di AI Gemini di Google.
- App mobile Google Gemini per Android e app Google su iOS
4. Scaricare ed esaminare l'applicazione
Attiva Cloud Shell facendo clic sull'icona a destra della barra di ricerca.
Se ti viene richiesto di concedere l'autorizzazione, fai clic su "Autorizza" per continuare.
Nel terminale, esegui i comandi riportati di seguito per clonare il repository Git in locale.
git clone https://github.com/gitrey/calendar-app-lab
cd calendar-app-lab
Avvia "Cloud Shell Editor".
Apri la cartella "calendar-app-lab
".
Avvia un nuovo terminale nell'editor di Cloud Shell.
Il tuo ambiente dovrebbe essere simile allo screenshot seguente.
5. Introduzione a Gemini CLI
Gemini CLI è un agente AI open source che si integra con i modelli Gemini di Google Cloud. Consente agli sviluppatori di eseguire varie attività direttamente dal terminale, come comprendere le basi di codice, generare documentazione e test delle unità e refactoring del codice. Il vantaggio principale di Gemini CLI è la sua capacità di semplificare i flussi di lavoro di sviluppo portando la potenza dell'AI generativa direttamente nell'ambiente della riga di comando dello sviluppatore, riducendo il cambio di contesto e migliorando la produttività.
Questo passaggio, per impostare la variabile di ambiente, non è necessario per l'ambiente Qwiklabs. Continua con il passaggio successivo.
Nel tuo ambiente locale, se utilizzi una licenza Code Assist a pagamento della tua organizzazione, ricordati di impostare il progetto Google Cloud nel terminale. Leggi ulteriori informazioni.
export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_NAME"
Verifica di trovarti nella radice della cartella del progetto:
cd ~/calendar-app-lab
Avvia l'interfaccia a riga di comando di Gemini nella finestra del terminale:
gemini
Il tuo ambiente dovrebbe essere simile allo screenshot seguente.
Se segui i passaggi nel tuo ambiente locale, puoi attivare l'integrazione con il tuo IDE.
Puoi sempre modificare questa impostazione eseguendo /ide disable | enable
.
Se esegui il lab nell'ambiente Qwiklabs, seleziona "Use Cloud Shell user credentials
".
In caso contrario, autentica Gemini CLI eseguendo il seguente comando e seleziona "Login with Google
":
/auth
Dopo aver riavviato la CLI, ti verrà chiesto di autorizzare l'applicazione seguendo un link fornito.
Apri il link e segui i passaggi per accedere con le credenziali dello studente Qwiklabs.
Copia il codice di verifica e torna al terminale per completare la procedura incollando il codice.
Per verificare il metodo di autenticazione, esegui questo comando:
/about
6. Comprensione del codebase
Puoi utilizzare la CLI Gemini per comprendere rapidamente la base di codice chiedendo di riassumere lo scopo di file o directory e spiegare funzioni o sezioni di codice complesse. In questo modo, gli sviluppatori possono eseguire rapidamente l'onboarding di nuovi progetti o comprendere parti sconosciute del codice esistente senza un'esplorazione manuale approfondita.
Per scoprire di più sulla base di codice, invia il seguente prompt nell'interfaccia a riga di comando di Gemini:
Don't suggest any changes. Explain this codebase to me.
Rivedi l'output:
7. Avvia l'applicazione localmente
La CLI Gemini può semplificare notevolmente l'esecuzione locale dell'applicazione Python aiutandoti a generare automaticamente file di configurazione essenziali come requirements.txt o un Dockerfile di base. Inoltre, è eccellente per la gestione delle dipendenze Python e la risoluzione dei problemi, in quanto può spiegare rapidamente gli errori di traceback derivanti da pacchetti mancanti o conflitti di versione e spesso suggerisce il comando pip install preciso per risolvere il problema.
Per avviare l'applicazione in locale, inserisci il seguente prompt nel terminale di Gemini CLI:
Run this app locally
Segui le istruzioni per avviare la richiesta:
Fai clic sul link per visualizzare l'anteprima dell'applicazione:
Esempio di output:
8. Aggiunta della documentazione
La CLI Gemini è efficace per la documentazione e l'aggiunta di commenti, in quanto consente di generare istantaneamente docstring per funzioni o classi. Puoi anche utilizzarlo per aggiungere rapidamente commenti in linea esplicativi a blocchi di codice complessi o sconosciuti, migliorando significativamente la chiarezza e la manutenibilità della base di codice.
Per aggiungere commenti a ogni file Python nell'applicazione, utilizza il terminale della CLI Gemini e inserisci il seguente prompt:
Add docstrings to all files
Approva le modifiche suggerite. Se l'integrazione dell'IDE è abilitata, puoi accettare e procedere utilizzando i controlli della UI o premendo Invio nel terminale. Puoi anche attivare la modalità di approvazione automatica(YOLO) con "ctrl+y
".
Aggiorna il file .gitignore
con il seguente prompt:
update .gitignore and add __pycache__ folder
Passa alla visualizzazione Controllo del codice sorgente e rivedi le modifiche apportate finora:
9. Aggiunta di test delle unità
La CLI Gemini è ideale per scrivere test delle unità, in quanto consente agli sviluppatori di generare funzioni di test basate sulla firma e sulla logica di una funzione esistente, complete di asserzioni iniziali e configurazione di simulazione. Gli sviluppatori devono comunque rivedere e convalidare i test generati per assicurarsi che coprano in modo significativo tutti i casi limite richiesti e non solo l'esecuzione di percorsi semplificati.
Utilizza il prompt riportato di seguito per generare test delle unità:
Generate unit tests for @calendar.py
Accetta le modifiche dopo averle esaminate.
Installa nuove dipendenze ed esegui i test. La CLI Gemini osserverà, correggerà e rieseguirà il codice generato in un ciclo finché i test non vengono superati e il codice non viene convalidato.
10. Controllare la presenza di bug
La CLI Gemini può aiutarti a verificare la presenza di bug nella logica consentendoti di richiedere di esaminare e analizzare snippet di codice, identificando potenziali difetti logici, errori di tipo off-by-one o gestione condizionale errata. Spiegando il comportamento previsto del codice e chiedendo alla CLI di individuare le discrepanze, puoi rilevare rapidamente difetti sottili prima di eseguire il codice.
Per verificare la presenza di bug nella logica di conversione, invia il seguente prompt in Gemini CLI:
Are there any bugs in the conversion logic? Check if negative numbers are handled properly.
Rivedi le modifiche suggerite e accettale nella chat:
11. Refactor UI
La CLI Gemini può essere di grande aiuto nel refactoring dell'UI, in quanto ti consente di tradurre pattern dell'UI meno recenti (come i componenti di classe) in paradigmi funzionali più recenti e moderni (come gli hook in React) o suggerire miglioramenti strutturali per una migliore manutenibilità. Puoi utilizzarlo per analizzare e refactoring il codice UI esistente in componenti più modulari e riutilizzabili, garantendo un design dell'interfaccia più pulito e standardizzato.
Esegui il refactoring della UI utilizzando la libreria Bootstrap inviando il seguente prompt all'interfaccia a riga di comando di Gemini:
Refactor UI to use Bootstrap library
Esamina e accetta le modifiche:
Per iniziare, avvia l'applicazione. Se è già in esecuzione, ricarica la pagina.
python3 main.py
Ricarica la pagina e controlla le modifiche.
Implementa la gestione degli errori per assicurarti che venga visualizzata una pagina di errore quando si verificano problemi.
Implement error handling to display an error page when issues occur.
Aggiorna la pagina per visualizzare gli aggiornamenti.
Invia un numero negativo per confermare la pagina di errore.
12. Refactor Backend
L'interfaccia a riga di comando di Gemini è efficace per il refactoring del backend, in quanto aiuta a eseguire la migrazione del codice del framework legacy ad alternative moderne o a ristrutturare i servizi monolitici in componenti di microservizi più gestibili. Può analizzare la logica lato server per suggerire pattern di query del database migliorati o progettazioni di endpoint API più efficienti, garantendo il mantenimento o il miglioramento delle prestazioni e della scalabilità.
Modifica il backend per salvare le richieste di conversione in memoria.
Store requests in memory and create a page to display conversion history. Add links on all pages to view the history.
Esamina e accetta le modifiche nella chat:
Invia diverse richieste all'applicazione, poi esamina la pagina della cronologia.
Esamina la cronologia delle richieste di conversione.
Per aggiornare il file README.md con lo stato attuale del codebase, invia questo prompt tramite l'interfaccia a riga di comando di Gemini:
analyze README.md file and update it with latest codebase state
Rivedi l'output. Se hai attivato l'integrazione di Cloud Shell, puoi utilizzare il controllo della UI per accedere alle modifiche oppure puoi farlo dal terminale.
13. Strumenti integrati dell'interfaccia a riga di comando di Gemini
La CLI Gemini include strumenti integrati che il modello Gemini utilizza per interagire con l'ambiente locale, accedere alle informazioni ed eseguire azioni. Questi strumenti migliorano le funzionalità della CLI, consentendole di andare oltre la generazione di testo e di assistere in un'ampia gamma di attività.
Invia questo prompt nell'interfaccia a riga di comando di Gemini per visualizzare gli strumenti disponibili:
/tools
Rivedi l'output.
Gemini CLI seleziona in modo intelligente gli strumenti integrati più appropriati in base all'attività che fornisci, consentendogli di eseguire operazioni complesse sfruttando la sua comprensione della tua richiesta e delle funzionalità disponibili. Scopri di più sugli strumenti integrati.
14. Comando di inizializzazione del repository dell'interfaccia a riga di comando di Gemini
La CLI Gemini include un comando per analizzare il progetto e creare un file GEMINI.md personalizzato.
Per generare il file GEMINI.md, invia il seguente prompt utilizzando la CLI Gemini:
/init
Rivedi l'output. Questo comando creerà un file GEMINI.md, che riassume lo scopo, le tecnologie, le istruzioni di build/esecuzione e le convenzioni di sviluppo del progetto per il contesto futuro.
Per capire quali istruzioni o contesto includere nel file GEMINI.md
del tuo progetto, un buon punto di partenza è esaminare il file GEMINI.md che si trova nel gemini-cli
repository.
15. Comandi personalizzati dell'interfaccia a riga di comando di Gemini
Puoi semplificare il flusso di lavoro di sviluppo e mantenere la coerenza utilizzando comandi personalizzati nella CLI Gemini. Questi comandi fungono da scorciatoie personali per i prompt più utilizzati. Puoi creare comandi specifici per un singolo progetto o renderli disponibili a livello globale in tutti i tuoi progetti.
Il repository include diversi comandi personalizzati che si trovano nella cartella .gemini/commands
.
Comando personalizzato per creare un diagramma
Invia questo prompt nell'interfaccia a riga di comando di Gemini per generare un diagramma di flusso delle richieste in formato Mermaid.
Accetta le chiamate agli strumenti, ad esempio la creazione di una cartella e il salvataggio di un file.
/diagram:new request flow for this app
Rivedi l'output.
Se vuoi visualizzare l'anteprima del diagramma, installa l'estensione Mermaid Chart
da Marketplace.
Apri il file e seleziona l'anteprima dal menu contestuale.
Comando personalizzato per creare un mazzo
Invia questo prompt in Gemini CLI per generare un mazzo con i punti chiave in formato Marp.
Accetta le chiamate agli strumenti, ad esempio la creazione di una cartella e il salvataggio di un file.
/deck:new key points and details for this app
Rivedi l'output.
Questo passaggio non è compatibile con Cloud Shell, poiché l'estensione Marp richiede l'installazione di un browser web.
Installa l'estensione Marp per VS Code da Marketplace per salvare il mazzo.
Altrimenti, apri il file generato nell'editor e seleziona "Marp: Export Slide Deck
" dal riquadro dei comandi.
Comando personalizzato per pianificare l'implementazione di una nuova funzionalità
Invia questo prompt nell'interfaccia a riga di comando di Gemini per eseguire il refactoring della UI.
Accetta le chiamate agli strumenti, ad esempio la creazione di una cartella e il salvataggio di un file.
/plan:new refactor UI to use Materialize CSS
Rivedi l'output.
Avvia il processo di refactoring della UI inviando questo prompt tramite l'interfaccia a riga di comando di Gemini, in base al piano generato in precedenza.
Accetta le chiamate agli strumenti, ad esempio la creazione di una cartella e il salvataggio di un file. Puoi attivare la modalità di approvazione automatica degli strumenti(YOLO mode
) utilizzando "ctrl+y
".
/plan:impl implement the plan to refactor the app
Avvia/ricarica l'applicazione e rivedi l'output:
16. Modalità non interattiva di Gemini CLI
Quando esegui Gemini CLI in modalità non interattiva all'interno di una pipeline CI/CD, puoi automatizzare varie attività passando prompt e comandi direttamente alla CLI senza richiedere un intervento manuale. Ciò consente una perfetta integrazione nei workflow automatizzati per l'analisi del codice, la generazione di documentazione e altre attività di sviluppo.
Apri un nuovo terminale o chiudi la sessione esistente della CLI Gemini ed esegui questo comando.
gemini -p "Explain the architecture of this codebase"
Rivedi l'output.
Se la tua attività richiede l'approvazione degli strumenti, puoi attivare la modalità YOLO con il flag -y
.
gemini -p "Explain the architecture of this codebase and save the file in the markdown format in the docs folder" -y
Rivedi l'output.
Sfruttando la CLI Gemini in modalità non interattiva, puoi migliorare in modo significativo le funzionalità di automazione delle pipeline CI/CD, ottenendo cicli di sviluppo più efficienti e una migliore qualità del codice.
17. Modalità shell dell'interfaccia a riga di comando di Gemini
Mentre gli LLM gestiscono attività complesse, i comandi diretti sono più efficienti per le azioni semplici. ! prefix
consente di passare facilmente dalle interfacce a riga di comando tradizionali all'AI e viceversa.
!ls
Rivedi l'output. Premi Escape
per uscire dalla modalità shell.
18. Supporto di Gemini CLI per MCP
Gemini CLI, tramite il Model Context Protocol (MCP), può integrarsi con sistemi di terze parti come Jira, Confluence o GitHub. Ciò si ottiene tramite integrazioni personalizzate degli strumenti del server MCP, che consentono all'interfaccia a riga di comando Gemini di creare o aggiornare i ticket JIRA, recuperare informazioni dalle pagine Confluence, creare richieste pull e così via.
Esegui questo comando nel terminale per creare il file di configurazione o utilizza la modalità shell.
echo '{
"mcpServers": {
"context7": {
"httpUrl": "https://mcp.context7.com/mcp"
}
}
}' > .gemini/settings.json
Avvia la sessione dell'interfaccia a riga di comando di Gemini:
gemini
Verifica i server MCP configurati:
/mcp
Rivedi l'output
Invia il prompt per testare il server MCP configurato:
use context7 tools to look up how to implement flex grid in react mui library
Approva gli strumenti e rivedi l'output.
19. Esempio di configurazione dei server MCP per l'ambiente locale
Puoi configurare più server MCP nel tuo ambiente locale utilizzando la seguente configurazione.
{
"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": "******"
}
}
}
}
I server MCP in questa configurazione trasformano l'agente Gemini CLI in uno strumento dinamico di sviluppo e collaborazione fornendo un accesso standardizzato ai sistemi esterni. Nello specifico, il server Snyk Security Scanner consente all'agente di controllare il codice e le dipendenze per rilevare vulnerabilità senza uscire dallo spazio di lavoro corrente, mentre il server Atlassian si connette a Jira e Confluence, consentendo alla CLI Gemini di creare, cercare e aggiornare problemi o documentazione utilizzando il linguaggio naturale. Inoltre, il server Playwright concede all'agente funzionalità di automazione del browser, consentendogli di navigare e interagire con il web per attività come test o estrazione di dati. Infine, il server Github offre all'agente un accesso diretto e contestuale ai tuoi repository, consentendogli di gestire le richieste di pull, eseguire il triage dei problemi e analizzare la base di codice, riducendo significativamente il cambio di contesto e aumentando la produttività in tutto il flusso di lavoro di sviluppo.
20. Conclusione dell'interfaccia a riga di comando di Gemini
In conclusione, Gemini CLI si distingue come agente AI open source potente e versatile che si integra perfettamente con i modelli Gemini di Google Cloud, migliorando significativamente la produttività degli sviluppatori. In questo lab abbiamo esplorato le sue funzionalità per semplificare varie attività di sviluppo comuni, dalla comprensione di codebase complesse e dalla generazione di documentazione e unit test essenziali al refactoring efficiente dei componenti frontend e backend di un'applicazione web Python. Sfruttando l'interfaccia a riga di comando di Gemini, gli sviluppatori possono ridurre il cambio di contesto, automatizzare i processi ripetitivi e, in definitiva, fornire codice di qualità superiore con maggiore efficienza. La sua capacità di portare la potenza dell'AI generativa direttamente nella riga di comando rivoluziona davvero il flusso di lavoro di sviluppo.
21. Complimenti!
Congratulazioni, hai completato il codelab.
Argomenti trattati:
- Utilizzo dell'interfaccia a riga di comando di Gemini per le attività comuni degli sviluppatori
Qual è il passaggio successivo?
- A breve saranno disponibili altre sessioni pratiche.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Elimina il progetto
Il modo più semplice per eliminare la fatturazione è eliminare il progetto creato per il tutorial.
©2024 Google LLC. Tutti i diritti riservati. Google e il logo Google sono marchi di Google LLC. Tutti gli altri nomi di società e prodotti sono marchi delle rispettive società a cui sono associati.