En este tutorial se muestra cómo conectarse a la API de Gemini Live mediante WebSockets. En este tutorial, crearás una aplicación multimodal en tiempo real con un frontend de JavaScript estándar y un servidor de Python que gestione la autenticación y el proxy.
Antes de empezar
Sigue estos pasos para configurar tu 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 utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud 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 utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud 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.txtAutenticar con Google Cloud:
gcloud auth application-default loginInicia el servidor:
python3 server.py- Abre el navegador y ve a http://localhost:8000.
- En el campo ID del proyecto, introduce el ID de tu Google Cloud proyecto.
- Haz clic en Conectar.
- Entrada de texto: puedes escribir un mensaje de texto a Gemini introduciéndolo en el campo de mensaje y haciendo 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 petición con audio.
- Entrada de vídeo: para que Gemini pueda ver 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.
- Consulta cómo configurar el idioma y la voz.
- Consulta cómo configurar las funciones de Gemini.
- Consulta las prácticas recomendadas de la API Gemini Live.
Clonar la aplicación de demostración
Clona el repositorio de la aplicación de demostración y ve 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-demo-app
Estructura del proyecto
La aplicación incluye los siguientes archivos:
/
├── server.py # WebSocket proxy + HTTP server
├── requirements.txt # Python dependencies
└── frontend/
├── index.html # UI
├── geminilive.js # Gemini API client
├── mediaUtils.js # Audio/video streaming
├── tools.js # Custom tool definitions
└── script.js # App logic
Ejecutar el servidor backend
El backend (server.py) gestiona la autenticación y actúa como proxy de WebSocket entre el cliente y la API Gemini Live.
Para ejecutar el servidor backend, ejecuta los siguientes comandos:
Abre la interfaz de usuario frontend y conéctate a Gemini
El frontend gestiona la captura y la reproducción de audio y vídeo. El archivo geminilive.js gestiona la conexión WebSocket con el backend.
const client = new GeminiLiveAPI(proxyUrl, projectId, model);
client.addFunction(toolInstance); // Add custom tools
client.connect(accessToken); // Connect (token optional with proxy)
Para abrir la interfaz de usuario frontend y conectarte con Gemini, haz lo siguiente:
Interactuar con Gemini
Prueba a hacer lo siguiente: