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

En este tutorial se muestra cómo conectarse a la API Gemini Live mediante el SDK de IA generativa de Google para Python. En este tutorial, crearás una aplicación multimodal en tiempo real con un backend de Python sólido que gestione la conexión de la API.

Antes de empezar

Sigue estos pasos para configurar tu entorno.

  1. 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.
  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. Install the Google Cloud CLI.

  5. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

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

    gcloud init
  7. 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

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

  9. Install the Google Cloud CLI.

  10. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

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

    gcloud init
  12. Instala Git.
  13. Instala Python 3.
  14. 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-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
    

    Configurar variables de entorno

    Para esta demostración, la única variable de entorno que tenemos que configurar es la que define el ID de tu proyecto Google Cloud . El siguiente comando crea un archivo .env que define la variable de entorno PROJECT_ID. Sustituye PROJECT_ID por el ID del proyecto de Google Cloud .

    echo "PROJECT_ID=PROJECT_ID" > .env
    

    Ejecutar el servidor backend

    El backend (main.py) gestiona la conexión entre el cliente y la API Gemini Live. El punto de entrada es un servidor FastAPI que expone un endpoint de WebSocket. Acepta fragmentos de audio y vídeo del frontend y los reenvía a la sesión GeminiLive. La clase GeminiLive de gemini_live.py envuelve la genai.Client para gestionar 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 backend, ejecuta los siguientes comandos:

    1. Instala las dependencias:

      pip3 install -r requirements.txt
      
    2. Autenticar con Google Cloud:

      gcloud auth application-default login
      
    3. Inicia el servidor:

      python3 main.py
      

    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 gemini-client.js gestiona la conexión WebSocket con el backend. Envía fragmentos multimedia codificados en base64 al backend y recibe respuestas de audio de la API Gemini Live, que luego se reproducen para el usuario.

    Para abrir la interfaz de usuario frontend y conectarte con Gemini, haz lo siguiente:

    1. Abre el navegador y ve a http://localhost:8000.
    2. Haz clic en Conectar.

    Interactuar con Gemini

    Prueba a hacer lo siguiente:

    • 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.

    Siguientes pasos