Começar a usar a API Gemini Live com WebSockets

Neste tutorial, mostramos como se conectar à API Gemini Live usando WebSockets. Neste tutorial, você vai criar um aplicativo multimodal em tempo real com um front-end JavaScript simples e um servidor Python que processa a autenticação e o proxy.

Antes de começar

Conclua as etapas a seguir para configurar seu ambiente.

  1. Faça login na sua Google Cloud conta do. Se você não conhece o Google Cloud, crie uma conta para avaliar a performance dos nossos produtos em cenários reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
  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. Instale a Google Cloud CLI.

  6. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  7. Para inicializar a CLI gcloud, execute o seguinte 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. Instale a Google Cloud CLI.

  12. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

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

    gcloud init
  14. Instale o Git.
  15. Instale o Python 3.

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-demo-app

Estrutura do projeto

O aplicativo inclui os seguintes arquivos:

/
├── 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

Executar o servidor de back-end

O back-end (server.py) processa a autenticação e atua como um proxy WebSocket entre o cliente e a API Gemini Live.

Para iniciar o servidor de back-end, execute os seguintes comandos:

  1. Instale as dependências:

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

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

    python3 server.py
    

Abrir a UI do front-end e se conectar ao Gemini

O front-end gerencia a captura e a reprodução de áudio e vídeo. O arquivo geminilive.js processa a conexão WebSocket com o back-end.

const client = new GeminiLiveAPI(proxyUrl, projectId, model);
client.addFunction(toolInstance); // Add custom tools
client.connect(accessToken); // Connect (token optional with proxy)

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

  1. Abra o navegador e acesse http://localhost:8000.
  2. No campo ID do projeto, insira o ID do Google Cloud projeto.
  3. Clique em Conectar.

Interagir com o Gemini

Tente fazer o seguinte:

  • Entrada de texto: é possível escrever uma mensagem de texto para o Gemini inserindo a 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 que o Gemini veja pela sua câmera, clique em Iniciar câmera. Você pode falar com o Gemini sobre o que ele vê pela sua câmera.

A seguir