Erste Schritte mit der Gemini Live API und dem Google Gen AI SDK

In dieser Anleitung erfahren Sie, wie Sie mit der Python-Version des Google Gen AI SDK eine Verbindung zur Gemini Live API herstellen. In diesem Tutorial richten Sie einGoogle Cloud -Projekt ein, um die Live API mit dem Gen AI SDK zu verwenden, senden eine Audiodatei an das Modell und erhalten eine Audioantwort.

Hinweise

Bevor Sie Anfragen senden können, müssen Sie die Authentifizierung mit Vertex AI einrichten. Sie können die Authentifizierung entweder mit einem API-Schlüssel oder mit Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) einrichten.

Für diese Anleitung ist die Verwendung eines API-Schlüssels der schnellste Weg, um loszulegen:

Eine Anleitung zum Einrichten der Authentifizierung mit ADC finden Sie in unserer Schnellstartanleitung.

Gen AI SDK installieren

Führen Sie den folgenden Befehl aus, um die google-genai-Bibliothek zu installieren:

pip install --upgrade google-genai

Umgebungsvariablen einrichten

Legen Sie Umgebungsvariablen für Ihre Projekt-ID und Ihren Standort fest. Ersetzen Sie PROJECT_ID durch Ihre Google CloudProjekt-ID.

export GOOGLE_CLOUD_PROJECT=PROJECT_ID
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True

Audiositzung starten

In diesem Beispiel wird eine Sitzung eingerichtet, Audio aus einer Datei gestreamt und die Größe der Audio-Chunks in der Antwort ausgegeben.

import asyncio
import os
import sys
from pathlib import Path
from google import genai
from google.genai import types

# Configuration
MODEL = "gemini-live-2.5-flash-preview-native-audio-09-2025"
config = {
   "response_modalities": ["audio"],
}

client = genai.Client()

async def main():
   # Establish WebSocket session
   async with client.aio.live.connect(model=MODEL, config=config) as session:
       print("Session established. Sending audio...")

       # Download sample if missing
       if not os.path.exists("input.wav"):
           !wget -q https://storage.googleapis.com/cloud-samples-data/generative-ai/audio/where_the_nearest_train_station_is.wav -O input.wav

       # Send Input (Simulated from file)
       # In production, this would be a microphone stream
       # Format: PCM, 16kHz, 16-bit, Mono, Little-Endian
       with open("input.wav", "rb") as f:
           while chunk := f.read(1024):
               await session.send_realtime_input(
                   audio=types.Blob(data=chunk, mime_type="audio/pcm;rate=16000")
               )
               await asyncio.sleep(0.01) # Simulate real-time stream

       # Receive Output
       async for message in session.receive():
           if message.server_content:
               # Check for interruptions (User barge-in)
               if message.server_content.interrupted:
                   print("[Interrupted] Clear client audio buffer immediately.")
                   continue

               # Process Audio Chunks
               model_turn = message.server_content.model_turn
               if model_turn and model_turn.parts:
                   for part in model_turn.parts:
                       if part.inline_data:
                           # Output is PCM, 24kHz, 16-bit, Mono
                           audio_data = part.inline_data.data
                           print(f"Received audio chunk: {len(audio_data)} bytes")

           if message.server_content.turn_complete:
               print("Turn complete.")

if "ipykernel" in sys.modules:
   # Run directly in notebook
   await main()
else:
   # Run as standard .py script
   asyncio.run(main())

Nächste Schritte