In diesem Dokument erfahren Sie, wie Sie verschiedene Funktionen von Gemini-Modellen konfigurieren, wenn Sie die Gemini Live API verwenden. Sie können die Tool-Nutzung wie Funktionsaufrufe und Grounding sowie native Audiofunktionen wie affektive Dialoge und proaktive Audiofunktionen konfigurieren.
Tool-Nutzung konfigurieren
Mehrere Tools sind mit verschiedenen Versionen von Modellen kompatibel, die von der Gemini Live API unterstützt werden, darunter:
Wenn Sie ein bestimmtes Tool für die Verwendung in zurückgegebenen Antworten aktivieren möchten, fügen Sie den Namen des Tools beim Initialisieren des Modells in die Liste tools ein. In den folgenden Abschnitten finden Sie Beispiele für die Verwendung der einzelnen integrierten Tools in Ihrem Code.
Funktionsaufrufe
Verwenden Sie Funktionsaufrufe, wenn das Modell mit externen Systemen oder APIs interagieren soll, die Sie verwalten. Verwenden Sie diese Funktion für Aufgaben wie das Prüfen einer Datenbank, das Senden einer E-Mail oder die Interaktion mit einer benutzerdefinierten API.
Das Modell generiert einen Funktionsaufruf, Ihre Anwendung führt den Code aus und sendet die Ergebnisse zurück an das Modell.
Alle Funktionen müssen zu Beginn der Sitzung deklariert werden, indem Tool-Definitionen als Teil der LiveConnectConfig-Nachricht gesendet werden.
Wenn Sie Funktionsaufrufe aktivieren möchten, fügen Sie function_declarations in der Einrichtungsnachricht in die Liste tools ein:
Python
import asyncio from google import genai from google.genai.types import ( Content, LiveConnectConfig, Part, ) # Initialize the client. client = genai.Client( vertexai=True, project="GOOGLE_CLOUD_PROJECT", # Replace with your project ID location="LOCATION", # Replace with your location ) MODEL_ID = "gemini-live-2.5-flash-native-audio" def get_current_weather(location: str) -> str: """Example method. Returns the current weather. Args: location: The city and state, e.g. San Francisco, CA """ weather_map: dict[str, str] = { "Boston, MA": "snowing", "San Francisco, CA": "foggy", "Seattle, WA": "raining", "Austin, TX": "hot", "Chicago, IL": "windy", } return weather_map.get(location, "unknown") async def main(): config = LiveConnectConfig( response_modalities=["AUDIO"], tools=[get_current_weather], ) async with client.aio.live.connect( model=MODEL_ID, config=config, ) as session: text_input = "Get the current weather in Boston." print(f"Input: {text_input}") await session.send_client_content( turns=Content(role="user", parts=[Part(text=text_input)]) ) async for message in session.receive(): if message.tool_call: function_responses = [] for function_call in message.tool_call.function_calls: print(f"FunctionCall > {function_call}") # Execute the tool and send the response back to the model. result = get_current_weather(**function_call.args) function_responses.append( { "name": function_call.name, "response": {"result": result}, "id": function_call.id, } ) if function_responses: await session.send_tool_response(function_responses=function_responses) if __name__ == "__main__": asyncio.run(main())
Beispiele für die Verwendung von Funktionsaufrufen in Systemanweisungen finden Sie in unserem Best Practices-Beispiel.
Fundierung mit der Google Suche
Verwenden Sie die Fundierung mit der Google Suche, wenn das Modell genauere und faktische Antworten liefern soll, indem es sie an überprüfbare Informationsquellen bindet. Verwenden Sie diese Funktion für Aufgaben wie die Websuche.
Im Gegensatz zum Funktionsaufruf wird das Abrufen von Informationen bei der serverseitigen Integration automatisch gehandhabt.
Wenn Sie die Fundierung mit der Google Suche aktivieren möchten, fügen Sie google_search in der Einrichtungsnachricht in die Liste tools ein:
Python
import asyncio from google import genai from google.genai.types import ( Content, LiveConnectConfig, Part, ) # Initialize the client. client = genai.Client( vertexai=True, project="GOOGLE_CLOUD_PROJECT", # Replace with your project ID location="LOCATION", # Replace with your location ) MODEL_ID = "gemini-live-2.5-flash-native-audio" async def main(): config = LiveConnectConfig( response_modalities=["AUDIO"], tools=[{"google_search": {}}], ) async with client.aio.live.connect( model=MODEL_ID, config=config, ) as session: text_input = "What is the current weather in Toronto, Canada?" print(f"Input: {text_input}") await session.send_client_content( turns=Content(role="user", parts=[Part(text=text_input)]) ) async for message in session.receive(): # Consume the messages from the model. # In native audio, the model response is in audio format. pass if __name__ == "__main__": asyncio.run(main())
Fundierung mit der Vertex AI RAG Engine
Sie können die Vertex AI-RAG-Engine mit der Live API verwenden, um Kontexte zu fundieren, zu speichern und abzurufen. Verwenden Sie diese Funktion für Aufgaben wie das Abrufen von Informationen aus einem Dokumentkorpus. Wie bei der Fundierung mit der Google Suche wird die RAG-Fundierung serverseitig verarbeitet und ruft automatisch Informationen aus dem von Ihnen angegebenen Korpus ab:
Python
import asyncio from google import genai from google.genai.types import ( Content, LiveConnectConfig, Part, Retrieval, Tool, VertexRagStore, VertexRagStoreRagResource, ) # Initialize the client. client = genai.Client( vertexai=True, project="GOOGLE_CLOUD_PROJECT", # Replace with your project ID location="LOCATION", # Replace with your location ) MODEL_ID = "gemini-live-2.5-flash-native-audio" async def main(): rag_store = VertexRagStore( rag_resources=[ VertexRagStoreRagResource( rag_corpus="RESOURCE_NAME" # Replace with your corpus resource name ) ], # Set `store_context` to true to allow Live API sink context into your memory corpus. store_context=True, ) config = LiveConnectConfig( response_modalities=["AUDIO"], tools=[Tool(retrieval=Retrieval(vertex_rag_store=rag_store))], ) async with client.aio.live.connect( model=MODEL_ID, config=config, ) as session: text_input = "YOUR_TEXT_INPUT" print(f"Input: {text_input}") await session.send_client_content( turns=Content(role="user", parts=[Part(text=text_input)]) ) async for message in session.receive(): # Consume the messages from the model. # In native audio, the model response is in audio format. pass if __name__ == "__main__": asyncio.run(main())
Weitere Informationen finden Sie unter Vertex AI RAG Engine in der Gemini Live API verwenden.
Native Audiofunktionen konfigurieren
Modelle mit nativen Audiofunktionen unterstützen die folgenden Funktionen:
Empathischen Dialog konfigurieren
Wenn Affektiver Dialog aktiviert ist, versucht das Modell, den Tonfall und die emotionalen Äußerungen des Nutzers zu verstehen und darauf zu reagieren.
Wenn Sie Affective Dialog aktivieren möchten, legen Sie enable_affective_dialog in der Einrichtungsnachricht auf true fest:
Python
config = LiveConnectConfig( response_modalities=["AUDIO"], enable_affective_dialog=True, )
Proaktive Audioeingabe konfigurieren
Mit Proactive Audio können Sie festlegen, wann das Modell antwortet. Sie können Gemini beispielsweise auffordern, nur auf Prompts oder bei bestimmten Themen zu antworten. Ein Demovideo zu Proactive Audio finden Sie unter Gemini LiveAPI Native Audio Preview.
Um die proaktive Audioeingabe zu aktivieren, konfigurieren Sie das Feld proactivity in der Einrichtungsnachricht und legen Sie proactive_audio auf true fest:
Python
config = LiveConnectConfig( response_modalities=["AUDIO"], proactivity=ProactivityConfig(proactive_audio=True), )
Beispiel für eine Unterhaltung
Hier ist ein Beispiel dafür, wie ein Gespräch mit Gemini über das Kochen aussehen könnte:
Prompt: "You are an AI assistant in Italian cooking; only chime in when the topic is about Italian cooking."
Speaker A: "I really love cooking!" (No response from Gemini.)
Speaker B: "Oh yes, me too! My favorite is French cuisine." (No response from
Gemini.)
Speaker A: "I really like Italian food; do you know how to make a pizza?"
(Italian cooking topic will trigger response from Gemini.)
Gemini Live API: "I'd be happy to help! Here's a recipe for a pizza."
Gängige Anwendungsfälle
Wenn Sie Proactive Audio verwenden, verhält sich Gemini so:
- Antworten mit minimaler Latenz: Gemini antwortet, nachdem der Nutzer mit dem Sprechen fertig ist. So werden Unterbrechungen reduziert und Gemini verliert nicht den Kontext, wenn es zu einer Unterbrechung kommt.
- Unterbrechungen vermeiden: Proactive Audio hilft Gemini, Unterbrechungen durch Hintergrundgeräusche oder Gespräche zu vermeiden. Außerdem wird verhindert, dass Gemini reagiert, wenn während einer Unterhaltung Gespräche geführt werden.
- Unterbrechungen werden berücksichtigt: Wenn der Nutzer während einer Antwort von Gemini unterbrechen muss, kann Gemini durch Proactive Audio leichter angemessen reagieren (d. h. angemessene Unterbrechungen werden berücksichtigt), als wenn ein Nutzer Füllwörter wie ähm oder äh verwendet.
- Audio-Mitlesen: Gemini kann eine Audiodatei mitlesen, die nicht die Stimme des Sprechers enthält, und später in der Unterhaltung Fragen zu dieser Audiodatei beantworten.
Abrechnung
Während Gemini einer Unterhaltung zuhört, werden Eingabe-Audio-Tokens berechnet.
Für Audio-Ausgabe-Tokens werden Ihnen nur Kosten berechnet, wenn Gemini antwortet. Wenn Gemini nicht reagiert oder stumm bleibt, werden Ihnen keine Audio-Ausgabetokens in Rechnung gestellt.
Weitere Informationen finden Sie unter Vertex AI-Preise.
Nächste Schritte
Weitere Informationen zur Verwendung der Gemini Live API finden Sie hier:
- Gemini Live API – Übersicht
- Referenzhandbuch zur Gemini Live API
- Live-Sitzungen starten und verwalten