Este tutorial mostra como estabelecer ligação à API Gemini Live através de WebSockets. Neste tutorial, vai criar uma aplicação multimodal em tempo real com uma interface (de utilizador) JavaScript simples e um servidor Python que processa a autenticação e o proxy.
Antes de começar
Conclua os passos seguintes para configurar o seu ambiente.
- 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.
-
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.
-
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a 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.
-
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init - Instale o Git.
- Instale o Python 3.
Instalar dependências:
pip3 install -r requirements.txtAutenticar com Google Cloud:
gcloud auth application-default loginInicie o servidor:
python3 server.py- Abra o navegador e navegue para http://localhost:8000.
- No campo ID do projeto, introduza o ID do seu Google Cloud projeto.
- Clique em Ligar.
- 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.
- Saiba como configurar o idioma e a voz.
- Saiba como configurar as capacidades do Gemini.
- Saiba mais sobre as práticas recomendadas da API Gemini Live.
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-demo-app
Estrutura do projeto
A aplicação inclui os seguintes ficheiros:
/
├── 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
Execute o servidor de back-end
O back-end (server.py) processa a autenticação e funciona como um proxy WebSocket
entre o cliente e a API Gemini Live.
Para executar o servidor de back-end, execute os seguintes comandos:
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
geminilive.js processa a ligação WebSocket ao 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 IU de frontend e estabelecer ligação ao Gemini, faça o seguinte:
Interaja com o Gemini
Experimente fazer o seguinte: