In diesem Dokument wird beschrieben, wie Sie verschiedene Funktionen von Gemini-Modellen konfigurieren, wenn Sie die Gemini Live API verwenden. Sie können die Toolnutzung wie Funktionsaufrufe und Fundierung sowie native Audiofunktionen wie empathische Dialoge und proaktive Audioeingabe konfigurieren.
Toolnutzung konfigurieren
Mehrere Tools sind mit verschiedenen Versionen von Gemini Live API-unterstützten Modellen kompatibel, darunter:
- Funktionsaufrufe
- Fundierung mit der Google Suche
- Fundierung mit der RAG Engine auf der Gemini Enterprise Agent Platform (Vorschau)
Wenn Sie ein bestimmtes Tool für die Verwendung in zurückgegebenen Antworten aktivieren möchten, fügen Sie den Namen des Tools der Liste tools hinzu, wenn Sie das Modell initialisieren. 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 und 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 Tooldefinitionen als Teil der Nachricht LiveConnectConfig gesendet werden.
Wenn Sie Funktionsaufrufe aktivieren möchten, fügen Sie function_declarations der Liste tools in der Einrichtungsnachricht hinzu:
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 Fundierung mit der Google Suche, wenn das Modell genauere und sachlichere Antworten geben soll, indem es sie an überprüfbare Informationsquellen anknüpft. Verwenden Sie diese Funktion für Aufgaben wie die Websuche.
Im Gegensatz zu Funktionsaufrufen übernimmt die serverseitige Integration das Abrufen von Informationen automatisch.
Wenn Sie die Fundierung mit der Google Suche aktivieren möchten, fügen Sie google_search der Liste tools in der Einrichtungsnachricht hinzu:
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 RAG Engine auf der Gemini Enterprise Agent Platform
Sie können die 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 die Fundierung mit der Google Suche wird die RAG-Fundierung serverseitig verarbeitet und ruft automatisch Informationen aus dem 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 RAG Engine auf der Gemini Enterprise Agent Platform in der Gemini Live API verwenden.
Native Audiofunktionen konfigurieren
Modelle mit nativen Audiofunktionen unterstützen die folgenden Funktionen:
Empathischen Dialog konfigurieren
Wenn Empathischer Dialog aktiviert ist, versucht das Modell, den Tonfall und die emotionalen Äußerungen des Nutzers zu verstehen und darauf zu reagieren.
Wenn Sie den empathischen Dialog aktivieren möchten, setzen Sie enable_affective_dialog in der Einrichtungsnachricht auf true:
Python
config = LiveConnectConfig( response_modalities=["AUDIO"], enable_affective_dialog=True, )
Proaktive Audioeingabe konfigurieren
Mit der proaktiven Audioeingabe können Sie steuern, wann das Modell antwortet. Sie können Gemini beispielsweise auffordern, nur zu antworten, wenn Sie dazu aufgefordert werden oder wenn bestimmte Themen besprochen werden. Eine Videodemonstration der proaktiven Audioeingabe finden Sie unter Gemini Live API Native Audio Preview.
Wenn Sie die proaktive Audioeingabe aktivieren möchten, konfigurieren Sie das Feld proactivity in der Einrichtungsnachricht und setzen Sie proactive_audio auf true:
Python
config = LiveConnectConfig( response_modalities=["AUDIO"], proactivity=ProactivityConfig(proactive_audio=True), )
Beispiel für eine Unterhaltung
Das folgende Beispiel zeigt, wie eine Unterhaltung 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
Bei Verwendung der proaktiven Audioeingabe verhält sich Gemini so:
- Antwortet mit minimaler Latenz: Gemini antwortet, nachdem der Nutzer mit dem Sprechen fertig ist. So werden Unterbrechungen reduziert und Gemini verliert den Kontext nicht, wenn es zu einer Unterbrechung kommt.
- Vermeidet Unterbrechungen: Die proaktive Audioeingabe hilft Gemini, Unterbrechungen durch Hintergrundgeräusche oder externe Gespräche zu vermeiden. Außerdem verhindert sie, dass Gemini antwortet, wenn während einer Unterhaltung externe Gespräche geführt werden.
- Verarbeitet Unterbrechungen: Wenn der Nutzer während einer Antwort von Gemini unterbrechen muss, kann Gemini mit der proaktiven Audioeingabe besser angemessen reagieren (d. h. angemessene Unterbrechungen werden verarbeitet), als wenn ein Nutzer Füllwörter wie äh oder hm verwendet.
- Hört Audio mit: Gemini kann sich eine Audiodatei anhören, 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 Audioeingabetokens in Rechnung gestellt.
Für Audioausgabetokens werden nur Kosten berechnet, wenn Gemini antwortet. Wenn Gemini nicht antwortet oder schweigt, werden keine Kosten für Ihre Audioausgabetokens berechnet.
Weitere Informationen finden Sie unter Preise für die Gemini Enterprise Agent Platform.
Nächste Schritte
Weitere Informationen zur Verwendung der Gemini Live API finden Sie unter:
- Übersicht über die Gemini Live API
- Referenzhandbuch zur Gemini Live API
- Live-Sitzungen starten und verwalten