Questo tutorial mostra come connettersi 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 solido che gestisce la connessione API.
Prima di iniziare
Completa i seguenti passaggi per configurare l'ambiente.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init - Installa Git.
- Installa Python 3.
Installa le dipendenze:
pip3 install -r requirements.txtAutenticazione con Google Cloud:
gcloud auth application-default loginAvvia il server:
python3 main.py- Apri il browser e vai all'indirizzo http://localhost:8000.
- Fai clic su Connetti.
- Inserimento 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 tua fotocamera.
- Scopri come configurare la lingua e la voce.
- Scopri come configurare le funzionalità di Gemini.
- Scopri di più sulle best practice per l'API Gemini Live.
Clona l'app demo
Clona il repository dell'app demo e passa a quella 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 progetto Google Cloud . Il comando
seguente crea un file .env che imposta la variabile di ambiente PROJECT_ID.
Sostituisci PROJECT_ID con l'ID progetto del tuo progetto Google Cloud .
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 racchiude
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:
Apri la UI 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 base64 al backend e riceve risposte audio dall'API Gemini Live, che vengono poi riprodotte per l'utente.
Per aprire la UI frontend e connetterti a Gemini:
Interagire con Gemini
Prova a fare quanto segue: