Guida rapida all'interfaccia a riga di comando di Gemini

1. Obiettivo di questo lab

In questo lab pratico installerai e autenticherai Gemini CLI e proverai alcuni casi d'uso di base.

6f312f4905ad7743.png

Obiettivi didattici

  • Comprendere le nozioni di base di Gemini CLI.
  • Scopri come eseguire attività di base con Gemini CLI.

2. Prima di iniziare

  • Se non hai già un progetto che puoi utilizzare, dovrai crearne uno nuovo nella console Google Cloud.
  • In questo lab utilizzeremo Google Cloud Shell per eseguire i passaggi riportati di seguito. Apri Cloud Shell e imposta il progetto utilizzando Cloud Shell.
  • Apri l'editor di Google Cloud Shell premendo il pulsante Editor di Cloud Shell o utilizzando questo link. Se viene visualizzato il popup "Autorizza shell", fai clic per autorizzare l'editor di Cloud Shell.
  • Puoi verificare se il progetto è già autenticato utilizzando il comando seguente.
gcloud auth list
  • Esegui questo comando in Cloud Shell per confermare il progetto
gcloud config list project
  • Se non ricordi l'ID progetto, puoi elencare tutti gli ID progetto con
gcloud projects list
  • Se il progetto non è impostato, utilizza il comando seguente per impostarlo
gcloud config set project <YOUR_PROJECT_ID>
  • Per eseguire questo lab, dobbiamo abilitare alcuni servizi. Esegui questo comando in Cloud Shell.
gcloud services enable aiplatform.googleapis.com
gcloud services enable cloudresourcemanager.googleapis.com

3. Installazione e autenticazione

Installazione

Gemini CLI è preinstallato nell'editor di Google Cloud Shell . Se vuoi utilizzarlo, puoi iniziare subito.

Puoi anche installare Gemini CLI nel tuo ambiente locale.

Per installare Gemini CLI nel tuo ambiente locale, devi avere Node.js 20 o versioni successive. Puoi eseguire il comando seguente per installare Gemini CLI.

npm install -g @google/gemini-cli

Per eseguire l'upgrade all'ultima versione , utilizza il comando seguente

npm update -g @google/gemini-cli

Esegui Gemini eseguendo il comando seguente nel terminale.

gemini

Autenticazione

Se utilizzi l'editor di Google Cloud Shell, dovresti aver già eseguito l'autenticazione se hai accettato di autenticare la shell durante l'esecuzione.

Se esegui l'applicazione in locale e non hai ancora eseguito l'autenticazione, vedrai una schermata simile a quella riportata di seguito.

Puoi anche digitare /auth per visualizzare la schermata riportata di seguito.

16378af0990a6e9f.png

Figura 1: Gemini CLI ti offre 3 metodi per l'autenticazione.

Per prima cosa, esci da Gemini CLI con il comando /quit.

Autenticati con Google : l'esecuzione di /auth nella console visualizzerà le opzioni di autenticazione. Seleziona "Accedi con Google" dalle opzioni. Verrà visualizzata la schermata di autenticazione di Google nel browser. Una volta completato l'accesso, verrà autenticata anche la console. Sebbene l'autenticazione sia completa, per utilizzare effettivamente Gemini CLI devi specificare un progetto Google Cloud. Torna alla schermata della console ed esegui il comando seguente per specificare il progetto (puoi anche specificarlo in un file .env).

export GOOGLE_CLOUD_PROJECT=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Autenticati con la chiave API : per autenticarti con una chiave API, devi disporre di una chiave API. Puoi generare una chiave API da aistudio.google.com . Una volta emessa la chiave API, impostala nella console come segue:

 export GEMINI_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Autenticati con Vertex AI : per utilizzare l'API Gemini tramite Vertex AI, segui questi passaggi.

Per prima cosa, utilizza il comando riportato di seguito per autenticarti in Google Cloud.

gcloud auth application-default login

Esegui i seguenti comandi nel terminale

export GOOGLE_GENAI_USE_VERTEXAI=true
export GOOGLE_CLOUD_PROJECT=Your GCP Project Name
export GOOGLE_CLOUD_LOCATION=us-central1

4. Prova Gemini CLI

Ora puoi provare Gemini CLI. Prova i seguenti casi d'uso.

Per prima cosa, crea una cartella di progetto, my_cli_project.

mkdir ~/my_cli_project
cd ~/my_cli_project

L'esecuzione di Gemini da una cartella di progetto ti consente di eseguire Gemini CLI in modo sicuro entro i limiti di quella cartella.

  1. Se non hai ancora eseguito l'accesso a Gemini CLI, digita quanto segue nel terminale di Cloud Shell per accedere a Gemini CLI
gemini
  1. Esegui un semplice prompt:
What is the weather today in Tokyo
今日の東京の天気について教えてください

Dovresti ricevere le previsioni del tempo a Tokyo. Tieni presente che l'esecuzione di questo comando utilizza automaticamente

Strumento Ricerca Google.

  1. Conferma gli strumenti installati: esegui il comando seguente in Gemini CLI Termilan. Dovresti essere in grado di visualizzare l'elenco degli strumenti installati.
/tools

50d8572d3c7a79b7.png

Figura 2: elenco degli strumenti visualizzati

  1. Ricevi notizie da un sito di notizie locali (ad es. https://mainichi.jp, sostituiscilo con il tuo sito di notizie locali).
Get me the news summary from https://mainichi.jp/ 
このサイトからニュースのサマリーを教えてください https://mainichi.jp/ 

Dovresti ricevere un riepilogo delle notizie dal sito di notizie locali. Tieni presente che l'agente utilizza automaticamente lo strumento WebFetch per scaricare i contenuti dal sito di notizie e creare il riepilogo.

  1. Esegui un'attività in più passaggi(modificala con il tuo sito locale): Get me the news from https://mainichi.jp/ and filter in only the sports news and summarize that for me.
Get me the news from https://mainichi.jp/ and filter in only the sports news and summarize that for me.
https://mainichi.jp/ からニュースを取得し、スポーツニュースのみを抽出して、その要約を作成してください。
  1. Esegui comandi di sistema : per eseguire i comandi di sistema, premi ! e digita i comandi. Per tornare alla modalità normale, digita di nuovo ! .
Type ! and Enter key. This starts the command mode.
ls
pwd
Type ! to go back to normal mode.
  1. Crea un gioco di tris. Inserisci il seguente prompt (versione in inglese).
Please develop a Tic-Tac-Toe game that meets the following requirements. The solution should be split into separate HTML, CSS, and JavaScript files, with the JavaScript file handling the majority of the game logic independently.
1. General Requirements
The game format should be a match between one human player and one computer player.
When the game ends (a win/loss is determined, or a draw occurs), display "GAME OVER" on the screen along with the winner's name ("X wins!," "O wins!," or "Draw!").
Provide a "Reset" button to start a new game.
2. HTML (index.html)
Create the basic page structure.
The game board should consist of nine squares (cells). Each cell should be clickable and display the player's mark (X or O).
Provide an element to display the game status (e.g., current player's turn, game result).
Place the reset button for starting a new game.
Link the CSS and JavaScript files appropriately.
3. CSS (style.css)
Style the game board and cells so they are visually clear and easy to understand.
Add borders to the cells to indicate they are clickable areas.
Set appropriate font size and color for the X and O marks to ensure good visibility.
Style the game status display and the "GAME OVER" message to make them stand out.
Consider responsive design to ensure appropriate display on various screen sizes.
4. JavaScript (script.js)
It is strongly requested that the JavaScript file handle all the game logic.
4.1. Game State Management
Define an array or object to manage the game board state (e.g., ['', '', '', '', '', '', '', '', '']).
Define a variable to track the current player (X or O). The initial value should be X.
Define a boolean value to track whether the game has ended (win/loss or draw).
4.2. Game Initialization
Create a function to initialize the game board upon page load.
Clear all cells.
Set the current player to X.
Reset the game end flag.
Clear the game result display.
4.3. Player Interaction
Set up event listeners for cell clicks.
Only place the current player's mark and update the board state if the clicked cell is empty.
After placing the mark, execute the following:
Call the win/draw check function.
If a winner is not yet determined, switch the player (X to O, O to X).
4.4. Computer AI Logic
Create a function that is called when it is the computer's (O) turn.
Implement a simple logic where the computer randomly selects an empty cell to place its mark. (While difficulty can be increased in the future, random selection is sufficient initially.)
After the computer places its mark, perform the win/draw check, and if the game is not over, switch the turn back to the human player.
4.5. Win/Draw Determination
Create a function that determines the win/draw status based on the current board state.
Check the following winning conditions:
Three rows
Three columns
Two diagonals
If a player meets a winning condition, declare that player the winner.
If all cells are filled and no player meets a winning condition, declare a draw.
If a win or draw is determined, set the game end flag to true and display the "GAME OVER" message and the result.
4.6. Game End Handling
When the game ends (win/loss or draw), prevent further clicks on the cells.
Display the text "GAME OVER" followed by the message "X wins!," "O wins!," or "Draw!" underneath it.
4.7. Reset Functionality
When the "Reset" button is clicked, call the function to return the game to its initial state.

Inserisci il seguente prompt (versione in giapponese)

以下の要件を満たす三目並べ(Tic-Tac-Toe)ゲームを開発してください。HTML、CSS、JavaScriptの各ファイルに分割し、JavaScriptはゲームロジックの大部分を単独で処理するようにしてください。
1. 全体要件
プレイヤーは人間1人、コンピューター1人の対戦形式とする。
ゲーム終了時(勝敗が決まった場合、または引き分けの場合)は、画面上に「GAME OVER」と表示し、勝者の名前(「Xの勝利!」「Oの勝利!」または「引き分け!」)も併記すること。
新しいゲームを開始するための「リセット」ボタンを設けること。
2. HTML (index.html)
基本的なページ構造を作成してください。
ゲームボードは、9つのマス目(セル)で構成されるようにしてください。各セルはクリック可能で、プレイヤーのマーク(XまたはO)が表示されるようにします。
ゲームの状態(現在のプレイヤーのターン、ゲーム結果など)を表示する要素を設けてください。
ゲームをリセットするためのボタンを配置してください。
CSSファイルとJavaScriptファイルを適切にリンクしてください。
3. CSS (style.css)
ゲームボードとマス目が視覚的に分かりやすいようにスタイルを設定してください。
マス目には枠線をつけ、クリック可能な領域であることがわかるようにする。
XとOの表示は、見やすいように適切なフォントサイズと色を設定する。
ゲームの状態表示、および「GAME OVER」メッセージが目立つようにスタイルを設定してください。
レスポンシブデザインを考慮し、様々な画面サイズで適切に表示されるようにしてください。
4. JavaScript (script.js)
JavaScriptファイルがゲームロジックの全てを処理することを強く要請します。
4.1. ゲームの状態管理
ゲームボードの状態を管理する配列またはオブジェクト(例: ['', '', '', '', '', '', '', '', ''])を定義してください。
現在のプレイヤー(XまたはO)を追跡する変数を定義してください。初期値はXとする。
ゲームが終了したかどうか(勝敗が決まったか、引き分けか)を追跡するブール値を定義してください。
4.2. ゲームの初期化
ページ読み込み時にゲームボードを初期化する関数を作成してください。
全てのマス目を空にする。
現在のプレイヤーをXに設定する。
ゲーム終了フラグをリセットする。
ゲーム結果表示をクリアする。
4.3. プレイヤーの操作
マス目をクリックした際のイベントリスナーを設定してください。
クリックされたマス目が空の場合のみ、現在のプレイヤーのマークを配置し、ボードの状態を更新する。
マークを配置した後、以下の処理を実行する。
勝敗判定関数を呼び出す。
勝敗が決まっていない場合、プレイヤーを交代する(XからO、OからXへ)。
4.4. コンピューターの思考ロジック
コンピューター(O)が手番の時に呼び出される関数を作成してください。
コンピューターは、空いているマス目の中からランダムに選択してマークを配置するシンプルなロジックを実装してください。(将来的に難易度を上げることも考慮できるが、最初はランダムで十分です)
コンピューターがマークを配置した後、勝敗判定を行い、勝敗が決まっていない場合はプレイヤーを人間に戻す。
4.5. 勝敗判定
現在のボードの状態に基づいて勝敗を判定する関数を作成してください。
以下の勝利条件をチェックする。
3つの行
3つの列
2つの対角線
勝利条件を満たすプレイヤーがいる場合、そのプレイヤーの勝利とする。
全てのマス目が埋まり、かつ勝利条件を満たすプレイヤーがいない場合、引き分けとする。
勝敗または引き分けが決まった場合、ゲーム終了フラグをtrueに設定し、「GAME OVER」メッセージと結果を表示する。
4.6. ゲーム終了時の処理
ゲームが終了した場合(勝敗が決まったか、引き分けか)は、それ以上マス目をクリックできないようにする。
「GAME OVER」というテキストと、その下に「Xの勝利!」「Oの勝利!」または「引き分け!」というメッセージを表示する。
4.7. リセット機能
「リセット」ボタンがクリックされた際に、ゲームを初期状態に戻す関数を呼び出す。
  1. Crea un nuovo terminale facendo clic su Terminale>Nuovo nel terminale dell'editor di Cloud Shell. Imposta prima l'ID progetto, se non è già impostato.
gcloud projects list
gcloud config set project <YOUR_PROJECT_ID>
cd ~/my_cli_project
python3 -m http.server 8080

In questo modo dovrebbe essere avviato un server Python. Nel browser, apri (premi Ctrl e fai clic se ti trovi in Cloud Shell):

http://localhost:8080

In questo modo dovrebbe essere avviato un server Python. Nel browser, apri (premi Ctrl e fai clic se ti trovi in Cloud Shell):

5. Esegui le estensioni Gemini CLI

Gemini CLI fornisce alcune estensioni molto utili che possono essere installate ed eseguite facilmente. Queste estensioni ti consentono di connetterti a vari servizi e di utilizzarli. https://geminicli.com/extensions/ è un elenco delle estensioni disponibili che cresce ogni giorno. Per scoprire di più sulle estensioni Gemini CLI, consulta questa pagina: https://medium.com/google-cloud/gemini-cli-tutorial-series-part-11-gemini-cli-extensions-69a6f2abb659

Installiamo un'estensione Gemini Nanobanana ed eseguiamola.

Per installare l'estensione, esegui il comando seguente.

gemini extensions install https://github.com/gemini-cli-extensions/nanobanana

Una volta installata l'estensione, riavvia Gemini CLI e potrai eseguire i seguenti comandi nanobanana da Gemini CLI.

  • /generate - Generazione di immagini singole o multiple con opzioni di stile/variazione
  • /edit - Modifica delle immagini
  • /restore - Ripristino delle immagini
  • /icon - Genera icone di app, favicon ed elementi dell'interfaccia utente in più dimensioni
  • /pattern - Genera pattern e texture senza interruzioni per gli sfondi
  • /story - Genera immagini sequenziali che raccontano una storia con immagini o un processo visivo
  • /diagram - Genera diagrammi tecnici, diagrammi di flusso e mockup architettonici
  • /nanobanana - Interfaccia in linguaggio naturale

Eseguiamo alcuni comandi

Prima di eseguire Nanobanana, devi ottenere una chiave API Gemini da aistudio.google.com e impostarla qui.

export NANOBANANA_GEMINI_API_KEY=YOUR_API_KEY

Versione in inglese

# Single image
/generate "a watercolor painting of a fox in a snowy forest"

# Multiple variations with preview
/generate "sunset over mountains" --count=3 --preview

# Style variations
/generate "mountain landscape" --styles="watercolor,oil-painting" --count=4

# Specific variations with auto-preview
/generate "coffee shop interior" --variations="lighting,mood" --preview

Versione in giapponese

# Single image
/generate "雪の森のキツネの水彩画"

# Multiple variations with preview
/generate "山にかかる夕焼け" --count=3 --preview

# Style variations
/generate "山岳風景" --styles="watercolor,oil-painting" --count=4

# Specific variations with auto-preview
/generate "コーヒーショップのインテリア" --variations="lighting,mood" --preview

Modifica immagini

Modifica il nome del file con il nome del file locale.

/edit my_photo.png "change the color of fox to blue"

6. Sfida

Pensa al prompt per creare queste applicazioni.

-Your favorite game
-A photo gallery application
-A Manga generator App
-お気に入りのゲーム
-フォトギャラリーアプリケーション
-マンガ生成アプリ

7. Completa

Ecco fatto. Ben fatto. Per saperne di più, consulta le seguenti risorse.