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, crearás una aplicación multimodal en tiempo real con un backend de Python sólido que controle la conexión a la API.

Antes de comenzar

Completa los siguientes pasos para configurar el 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 usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI 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 usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

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

    gcloud init
  12. Instala Git.
  13. Instala Python 3.
  14. 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-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 proyecto Google Cloud . El siguiente comando crea un archivo .env que establece la variable de entorno PROJECT_ID. Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud .

    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 el 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 ejecutar el servidor de backend, ejecuta los siguientes 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 WebSocket al backend. Envía fragmentos de medios 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 tu navegador y ve a http://localhost:8000.
    2. Haz clic en Conectar.

    Interactúa con Gemini

    Intenta hacer lo siguiente:

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

    ¿Qué sigue?