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, compilarás una aplicación multimodal en tiempo real con un backend sólido de Python que controle la conexión a la API.
Antes de comenzar
Completa los siguientes pasos para configurar el entorno.
- Accede a tu Google Cloud cuenta de. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
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.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instala 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.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instala 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.
Clona la app de demo
Clona el repositorio de la app de demo y navega hasta 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 Google Cloud proyecto. El siguiente comando crea un archivo .env que establece la variable de entorno PROJECT_ID.
Reemplaza PROJECT_ID por el ID del proyecto de tu Google Cloud proyecto.
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 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 iniciar el servidor de backend, ejecuta estos comandos:
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 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 de WebSocket al backend. Envía fragmentos de contenido multimedia 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:
- Abre el navegador y navega a http://localhost:8000.
- Haz clic en Conectar.
Interactúa con Gemini
Intenta hacer lo siguiente:
- Entrada de texto: Puedes escribir un mensaje de texto a Gemini. Para ello, ingresa el mensaje en el campo de mensaje y haz clic en Enviar. Gemini responde al 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 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.
¿Qué sigue?
- Obtén información para configurar el idioma y la voz.
- Obtén información para configurar las capacidades de Gemini.
- Obtén información sobre las prácticas recomendadas de la API de Gemini Live.