Comece a usar a API Gemini Live com o SDK de IA gen da Google

Este tutorial mostra como se ligar à API Gemini Live através do SDK de IA gen da Google para Python. Neste tutorial, vai criar uma aplicação multimodal em tempo real com um back-end Python robusto que processa a ligação à API.

Antes de começar

Conclua os passos seguintes para configurar o 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. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  6. Para inicializar a CLI gcloud, 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. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

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

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

    Clone o repositório da app de demonstração e navegue para 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

    A aplicação inclui os seguintes ficheiros:

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

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

    echo "PROJECT_ID=PROJECT_ID" > .env
    

    Execute o servidor de back-end

    O back-end (main.py) processa a ligação entre o cliente e a Gemini Live API. O ponto de entrada é um servidor FastAPI que expõe um ponto final WebSocket. Aceita blocos de áudio e vídeo do front-end e encaminha-os para a sessão GeminiLive. A classe GeminiLive em gemini_live.py envolve o elemento genai.Client para gerir 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. Instalar 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 IU de front-end e estabeleça ligação ao Gemini

    O front-end gere a captura e a reprodução de áudio e vídeo. O ficheiro gemini-client.js processa a ligação WebSocket ao back-end. Envia fragmentos multimédia codificados em base64 para o back-end e recebe respostas de áudio da API Gemini Live, que são reproduzidas para o utilizador.

    Para abrir a IU de frontend e estabelecer ligação ao Gemini, faça o seguinte:

    1. Abra o navegador e navegue para http://localhost:8000.
    2. Clique em Ligar.

    Interaja com o Gemini

    Experimente fazer o seguinte:

    • Introdução de texto: pode escrever uma mensagem de texto para o Gemini introduzindo a sua mensagem no campo de mensagens e clicando em Enviar. O Gemini responde à mensagem através de áudio.
    • Entrada de texto por voz: para falar com o Gemini, clique em Iniciar microfone. O Gemini responde ao comando através de áudio.
    • Entrada de vídeo: para permitir que o Gemini veja através da sua câmara, clique em Iniciar câmara. Pode falar com o Gemini sobre o que vê através da sua câmara.

    O que se segue?