Inizia a utilizzare l'API Gemini Live con Google Gen AI SDK

Questo tutorial mostra come connetterti all'API Gemini Live utilizzando l'SDK Google Gen AI per Python. In questo tutorial, creerai un'applicazione multimodale in tempo reale con un backend Python robusto che gestisce la connessione API.

Prima di iniziare

Completa i seguenti passaggi per configurare l'ambiente.

  1. Accedi al tuo Google Cloud account. Se non hai mai utilizzato Google Cloud, crea un account per valutare il rendimento dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per eseguire, testare ed eseguire il deployment di carichi di lavoro.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. Installa Google Cloud CLI.

  6. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  7. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Vertex AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  11. Installa Google Cloud CLI.

  12. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  13. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  14. Installa Git.
  15. Installa Python 3.

Clona l'app demo

Clona il repository dell'app demo e vai alla directory:

git clone https://github.com/GoogleCloudPlatform/generative-ai.git &&
cd generative-ai/gemini/multimodal-live-api/native-audio-websocket-demo-apps/plain-js-python-sdk-demo-app

Struttura del progetto

L'applicazione include i seguenti file:

/
├── main.py                 # FastAPI server and WebSocket endpoint
├── gemini_live.py          # Gemini Live API wrapper using Gen AI SDK
├── requirements.txt        # Python dependencies
└── frontend/
    ├── index.html          # User Interface
    ├── main.js             # Application logic
    ├── gemini-client.js    # WebSocket client for backend communication
    ├── media-handler.js    # Audio/Video capture and playback
    └── pcm-processor.js    # AudioWorklet for PCM processing

Configura le variabili di ambiente

Ai fini di questa demo, l'unica variabile di ambiente che dobbiamo configurare è quella che definisce l'ID del tuo Google Cloud progetto. Il seguente comando crea un file .env che imposta la variabile di ambiente PROJECT_ID. Sostituisci PROJECT_ID con l'ID progetto del tuo Google Cloud progetto.

echo "PROJECT_ID=PROJECT_ID" > .env

Esegui il server di backend

Il backend (main.py) gestisce la connessione tra il client e l'API Gemini Live. Il punto di ingresso è un server FastAPI che espone un endpoint WebSocket. Accetta blocchi audio e video dal frontend e li inoltra alla sessione GeminiLive. La classe GeminiLive in gemini_live.py esegue il wrapping di genai.Client per gestire la sessione.

# Connects using the SDK
async with self.client.aio.live.connect(model=self.model, config=config) as session:
    # Manages input/output queues
    await asyncio.gather(
        send_audio(),
        send_video(),
        receive_responses()
    )

Per eseguire il server di backend, esegui i seguenti comandi:

  1. Installa le dipendenze:

    pip3 install -r requirements.txt
    
  2. Esegui l'autenticazione con Google Cloud:

    gcloud auth application-default login
    
  3. Avvia il server:

    python3 main.py
    

Apri l'interfaccia utente frontend e connettiti a Gemini

Il frontend gestisce l'acquisizione e la riproduzione di audio e video. Il file gemini-client.js gestisce la connessione WebSocket al backend. Invia blocchi multimediali con codifica in base64 al backend e riceve risposte audio dall'API Gemini Live, che vengono poi riprodotte all'utente.

Per aprire l'interfaccia utente frontend e connetterti a Gemini:

  1. Apri il browser e vai all'indirizzo http://localhost:8000.
  2. Fai clic su Connetti.

Interagisci con Gemini

Prova a eseguire le seguenti operazioni:

  • Input di testo: puoi scrivere un messaggio di testo a Gemini inserendo il messaggio nel campo del messaggio e facendo clic su Invia. Gemini risponde al messaggio utilizzando l'audio.
  • Input vocale: per parlare con Gemini, fai clic su Avvia microfono. Gemini risponde al prompt utilizzando l'audio.
  • Input video: per consentire a Gemini di vedere attraverso la videocamera, fai clic su Avvia videocamera. Puoi parlare con Gemini di ciò che vede attraverso la videocamera.

Passaggi successivi