Este tutorial mostra como se conectar à API Gemini Live usando o SDK de IA Generativa do Google para Python. Neste tutorial, você cria um aplicativo multimodal em tempo real com um back-end robusto do Python que processa a conexão da API.
Antes de começar
Conclua as etapas a seguir para configurar seu ambiente.
- 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.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init - Instale o Git.
- 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-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 doprojeto. 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 projeto do seu Google Cloud projeto.
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 blocos de áudio e vídeo do front-end e os encaminha para a sessão GeminiLive. A classe GeminiLive em gemini_live.py envolve 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 iniciar o servidor de back-end, execute os seguintes comandos:
Instale as dependências:
pip3 install -r requirements.txtAutenticar com Google Cloud:
gcloud auth application-default loginInicie o servidor:
python3 main.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 gemini-client.js processa a conexão WebSocket com o back-end. Ele envia blocos de mídia codificados 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 front-end e se conectar ao Gemini, faça o seguinte:
- Abra o navegador e navegue até http://localhost:8000.
- Clique em Conectar.
Interagir com o Gemini
Tente fazer o seguinte:
- Entrada de texto: você pode escrever uma mensagem de texto para o Gemini inserindo 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 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
- Saiba como configurar o idioma e a voz.
- Saiba como configurar os recursos do Gemini.
- Saiba mais sobre as práticas recomendadas da API Gemini Live.