En este instructivo, se muestra cómo conectarse a la API de Gemini Live con el SDK de IA generativa de Google para Python. En este instructivo, crearás una aplicación multimodal en tiempo real con un backend de Python sólido que controle la conexión a la API.
Antes de comenzar
Completa los siguientes pasos para configurar el entorno.
- 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.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente 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.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init - Instala Git.
- Instala Python 3.
Instala las dependencias:
pip3 install -r requirements.txtAutentícate con Google Cloud:
gcloud auth application-default loginInicia el servidor. Para esto, sigue los pasos siguientes:
python3 main.py- Abre tu navegador y ve a http://localhost:8000.
- Haz clic en Conectar.
- Entrada de texto: Puedes escribirle un mensaje de texto a Gemini. Para ello, ingresa tu mensaje en el campo correspondiente y haz clic en Enviar. Gemini responde el mensaje con audio.
- Entrada de voz: Para hablar con Gemini, haz clic en Iniciar micrófono. Gemini responde a la instrucción con audio.
- Entrada de video: Para permitir que Gemini vea a través de tu cámara, haz clic en Iniciar cámara. Puedes hablar con Gemini sobre lo que ve a través de tu cámara.
- Obtén más información para configurar el idioma y la voz.
- Obtén más información para configurar las capacidades de Gemini.
- Obtén información sobre las prácticas recomendadas de la API de Gemini Live.
Clona la app de demo
Clona el repositorio de la app de demo y navega a ese directorio:
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
Estructura del proyecto
La aplicación incluye los siguientes archivos:
/
├── 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
Configure las variables de entorno
Para los fines de esta demostración, la única variable de entorno que debemos configurar es la que define el ID de tu proyecto Google Cloud . El siguiente comando crea un archivo .env que establece la variable de entorno PROJECT_ID.
Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud .
echo "PROJECT_ID=PROJECT_ID" > .env
Ejecuta el servidor de backend
El backend (main.py) controla la conexión entre el cliente y la API de Gemini Live. El punto de entrada es un servidor de FastAPI que expone un extremo de WebSocket. Acepta fragmentos de audio y video del frontend y los reenvía a la sesión de GeminiLive. La clase GeminiLive en gemini_live.py encapsula el genai.Client para administrar la sesión.
# 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()
)
Para ejecutar el servidor de backend, ejecuta los siguientes comandos:
Abre la IU de frontend y conéctate con Gemini
El frontend administra la captura y la reproducción de audio y video. El archivo gemini-client.js controla la conexión WebSocket al backend. Envía fragmentos de medios codificados en Base64 al backend y recibe respuestas de audio de la API de Gemini Live, que luego se reproducen para el usuario.
Para abrir la IU de frontend y conectarte con Gemini, haz lo siguiente:
Interactúa con Gemini
Intenta hacer lo siguiente: