In dieser Anleitung erfahren Sie, wie Sie mit dem Google Gen AI SDK für Python eine Verbindung zur Gemini Live API herstellen. In dieser Anleitung erstellen Sie eine multimodale Echtzeitanwendung mit einem robusten Python-Backend, das die API-Verbindung verwaltet.
Hinweis
Führen Sie die folgenden Schritte aus, um Ihre Umgebung einzurichten:
- Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Konto bei Google Cloudhaben, erstellen Sie ein Konto, um die Leistung unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
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 Vertex AI 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.-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
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 Vertex AI 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.-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init - Installieren Sie Git.
- Installieren Sie Python 3.
Demoanwendung klonen
Klonen Sie das Repository der Demoanwendung und wechseln Sie zu diesem Verzeichnis:
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
Projektstruktur
Die Anwendung enthält die folgenden Dateien:
/
├── 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
Umgebungsvariablen konfigurieren
Für diese Demo müssen wir nur die Umgebungsvariable konfigurieren, die die ID Ihres Projekts definiert. Google Cloud Mit dem folgenden Befehl wird eine .env-Datei erstellt, in der die Umgebungsvariable PROJECT_ID festgelegt wird.
Ersetzen Sie PROJECT_ID durch die Projekt-ID Ihres Google Cloud Projekts.
echo "PROJECT_ID=PROJECT_ID" > .env
Backend-Server starten
Das Backend (main.py) verwaltet die Verbindung zwischen dem Client und der Gemini Live API. Der Einstiegspunkt ist ein FastAPI-Server, der einen WebSocket-Endpunkt bereitstellt. Er akzeptiert Audio- und Video-Chunks vom Frontend und leitet sie an die GeminiLive-Sitzung weiter. Die Klasse GeminiLive in gemini_live.py umschließt den genai.Client, um die Sitzung zu verwalten.
# 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()
)
Starten Sie den Backend-Server:
Installieren Sie die Abhängigkeiten:
pip3 install -r requirements.txtAuthentifizieren mit Google Cloud:
gcloud auth application-default loginStarten Sie den Server:
python3 main.py
Frontend-UI öffnen und Verbindung zu Gemini herstellen
Das Frontend verwaltet die Audio- und Videoaufnahme und -wiedergabe. Die Datei gemini-client.js verwaltet die WebSocket-Verbindung zum Backend. Sie sendet base64-codierte Media-Chunks an das Backend und empfängt Audioantworten von der Gemini Live API, die dann für den Nutzer wiedergegeben werden.
So öffnen Sie die Frontend-UI und stellen eine Verbindung zu Gemini her:
- Öffnen Sie Ihren Browser und rufen Sie http://localhost:8000 auf.
- Klicken Sie auf Verbinden.
Mit Gemini interagieren
Versuchen Sie Folgendes:
- Texteingabe: Sie können eine Textnachricht an Gemini senden, indem Sie Ihre Nachricht in das Nachrichtenfeld eingeben und auf Senden klicken. Gemini antwortet auf die Nachricht mit Audio.
- Spracheingabe: Wenn Sie mit Gemini sprechen möchten, klicken Sie auf Mikrofon starten. Gemini antwortet auf den Prompt mit Audio.
- Videoeingabe: Wenn Sie Gemini über Ihre Kamera sehen lassen möchten, klicken Sie auf Kamera starten. Sie können mit Gemini darüber sprechen, was es über Ihre Kamera sieht.
Nächste Schritte
- Informationen zum Konfigurieren von Sprache und Stimme.
- Informationen zum Konfigurieren der Gemini-Funktionen
- Informationen zu Best Practices für die Gemini Live API.