Começar a usar a API Gemini Live com o SDK da IA generativa do Google

Neste tutorial, mostramos como se conectar à API Gemini Live usando o SDK da IA generativa do Google para Python. Neste tutorial, você vai criar um aplicativo multimodal em tempo real com um back-end Python robusto que processa a conexão da API.

Antes de começar

Conclua as etapas a seguir para configurar seu ambiente.

  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. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  6. Para inicializar a gcloud CLI, execute o seguinte 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. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  11. Para inicializar a gcloud CLI, execute o seguinte comando:

    gcloud init
  12. Instale o Git.
  13. Instale o Python 3.
  14. Clonar o app de demonstração

    Clone o repositório do app de demonstração e navegue até esse diretório:

    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
    

    Estrutura do projeto

    O aplicativo inclui os seguintes arquivos:

    /
    ├── 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 as variáveis de ambiente

    Para fins desta demonstração, a única variável de ambiente que precisamos configurar é aquela que define o ID do seu projeto Google Cloud . O comando a seguir cria um arquivo .env que define a variável de ambiente PROJECT_ID. Substitua PROJECT_ID pelo ID do seu projeto do Google Cloud .

    echo "PROJECT_ID=PROJECT_ID" > .env
    

    Executar o servidor de back-end

    O back-end (main.py) processa a conexão entre o cliente e a API Gemini Live. O ponto de entrada é um servidor FastAPI que expõe um endpoint WebSocket. Ele aceita partes de áudio e vídeo do front-end e as encaminha para a sessão GeminiLive. A classe GeminiLive em gemini_live.py encapsula o genai.Client para gerenciar a sessão.

    # 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 executar o servidor de back-end, execute os seguintes comandos:

    1. Instale as dependências:

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

      gcloud auth application-default login
      
    3. Inicie o servidor:

      python3 main.py
      

    Abra a UI de front-end e conecte-se ao Gemini

    O front-end gerencia a captura e a reprodução de áudio e vídeo. O arquivo gemini-client.js processa a conexão WebSocket com o back-end. Ele envia partes de mídia codificadas em Base64 para o back-end e recebe respostas de áudio da API Gemini Live, que são reproduzidas para o usuário.

    Para abrir a UI do usuário de front-end e se conectar ao Gemini, faça o seguinte:

    1. Abra o navegador e acesse http://localhost:8000.
    2. Clique em Conectar.

    Interaja com o Gemini

    Tente fazer o seguinte:

    • Entrada de texto: você pode escrever uma mensagem de texto para o Gemini digitando sua mensagem no campo de mensagem e clicando em Enviar. O Gemini responde à mensagem usando áudio.
    • Entrada de texto por voz: para falar com o Gemini, clique em Iniciar microfone. O Gemini responde ao comando usando áudio.
    • Entrada de vídeo: para permitir que o Gemini veja pela sua câmera, clique em Iniciar câmera. Você pode conversar com o Gemini sobre o que ele vê pela sua câmera.

    A seguir