Comienza a usar la API de Gemini Live con el SDK de IA generativa de Google

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.

  1. 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.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. Instala Google Cloud CLI.

  6. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  7. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  8. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  11. Instala Google Cloud CLI.

  12. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  13. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  14. Instala Git.
  15. 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:

  1. Instala las dependencias:

    pip3 install -r requirements.txt
    
  2. Autentícate con Google Cloud:

    gcloud auth application-default login
    
  3. Inicia 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:

  1. Abre el navegador y navega a http://localhost:8000.
  2. 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?