En este instructivo, se muestra cómo conectarse a la API de Gemini Live con WebSockets. En este instructivo, compilarás una aplicación multimodal en tiempo real con un frontend de JavaScript estándar y un servidor de Python que controla la autenticación y el proxy.
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 server.py- Abre tu navegador y ve a http://localhost:8000.
- En el campo ID del proyecto, ingresa el ID de tu proyecto de Google Cloud .
- 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-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
Ejecuta el servidor de backend
El backend (server.py) controla la autenticación y actúa como proxy de WebSocket entre el cliente y la API de Gemini Live.
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 geminilive.js controla la conexión WebSocket al 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 IU de frontend y conectarte con Gemini, haz lo siguiente:
Interactúa con Gemini
Intenta hacer lo siguiente: