Gemini-Funktionen konfigurieren

In diesem Dokument erfahren Sie, wie Sie verschiedene Funktionen von Gemini-Modellen konfigurieren, wenn Sie die Live API verwenden. Sie können die Denkprozesse, die Tool-Nutzung wie Funktionsaufrufe und Grounding sowie native Audiofunktionen wie affektive Dialoge und proaktive Audiofunktionen konfigurieren.

Denkprozess konfigurieren

Gemini-Modelle unterstützen Denkfunktionen, wobei das dynamische Denken standardmäßig aktiviert ist. Der Parameter thinking_budget gibt dem Modell die Anzahl der Tokens vor, die es für Denkprozesse verwenden darf. Wenn Sie die Funktion zum Nachdenken deaktivieren möchten, setzen Sie thinking_budget auf 0.

config = {
    "response_modalities": ["audio"],
    "thinking_config": {
        "thinking_budget": 256,
    },
}

Tool-Nutzung konfigurieren

Mehrere Tools sind mit verschiedenen Versionen von Modellen kompatibel, die von der 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, um eine Beschreibung einer Funktion zu erstellen und diese dann in einer Anfrage an das Modell zu übergeben. Die Antwort des Modells enthält den Namen einer Funktion, die der Beschreibung entspricht, sowie die Argumente, um diese aufzurufen.

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 import types

client = genai.Client(
    vertexai=True,
    project=GOOGLE_CLOUD_PROJECT,
    location=GOOGLE_CLOUD_LOCATION,
)
model = "gemini-live-2.5-flash"

# Simple function definitions
turn_on_the_lights = {"name": "turn_on_the_lights"}
turn_off_the_lights = {"name": "turn_off_the_lights"}

tools = [{"function_declarations": [turn_on_the_lights, turn_off_the_lights]}]
config = {"response_modalities": ["TEXT"], "tools": tools}

async def main():
    async with client.aio.live.connect(model=model, config=config) as session:
        prompt = "Turn on the lights please"
        await session.send_client_content(turns={"parts": [{"text": prompt}]})

        async for chunk in session.receive():
            if chunk.server_content:
                if chunk.text is not None:
                    print(chunk.text)
            elif chunk.tool_call:
                function_responses = []
                for fc in tool_call.function_calls:
                    function_response = types.FunctionResponse(
                        name=fc.name,
                        response={ "result": "ok" } # simple, hard-coded function response
                    )
                    function_responses.append(function_response)

                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.

Sie können Grounding with Google Search mit der Live API verwenden, indem Sie google_search in der Einrichtungsnachricht in die Liste tools aufnehmen:

Python

import asyncio
from google import genai
from google.genai import types

client = genai.Client(
    vertexai=True,
    project=GOOGLE_CLOUD_PROJECT,
    location=GOOGLE_CLOUD_LOCATION,
)
model = "gemini-live-2.5-flash"


tools = [{'google_search': {}}]
config = {"response_modalities": ["TEXT"], "tools": tools}

async def main():
    async with client.aio.live.connect(model=model, config=config) as session:
        prompt = "When did the last Brazil vs. Argentina soccer match happen?"
        await session.send_client_content(turns={"parts": [{"text": prompt}]})

        async for chunk in session.receive():
            if chunk.server_content:
                if chunk.text is not None:
                    print(chunk.text)

                # The model might generate and execute Python code to use Search
                model_turn = chunk.server_content.model_turn
                if model_turn:
                    for part in model_turn.parts:
                        if part.executable_code is not None:
                        print(part.executable_code.code)

                        if part.code_execution_result is not None:
                        print(part.code_execution_result.output)

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:

Python

from google import genai
from google.genai import types
from google.genai.types import (Content, LiveConnectConfig, HttpOptions, Modality, Part)
from IPython import display

PROJECT_ID=YOUR_PROJECT_ID
LOCATION=YOUR_LOCATION
TEXT_INPUT=YOUR_TEXT_INPUT
MODEL_NAME="gemini-live-2.5-flash"

client = genai.Client(
   vertexai=True,
   project=PROJECT_ID,
   location=LOCATION,
)

rag_store=types.VertexRagStore(
   rag_resources=[
       types.VertexRagStoreRagResource(
           rag_corpus=  # Use memory corpus if you want to store context.
       )
   ],
   # Set `store_context` to true to allow Live API sink context into your memory corpus.
   store_context=True
)

async with client.aio.live.connect(
   model=MODEL_NAME,
   config=LiveConnectConfig(response_modalities=[Modality.TEXT],
                            tools=[types.Tool(
                                retrieval=types.Retrieval(
                                    vertex_rag_store=rag_store))]),
) as session:
   text_input=TEXT_INPUT
   print("> ", text_input, "\n")
   await session.send_client_content(
       turns=Content(role="user", parts=[Part(text=text_input)])
   )

   async for message in session.receive():
       if message.text:
           display.display(display.Markdown(message.text))
           continue

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.)
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-Ausgabetokens werden Ihnen nur Kosten berechnet, wenn Gemini antwortet. Wenn Gemini nicht reagiert oder stumm bleibt, werden Ihnen keine Audio-Ausgabetokens berechnet.

Weitere Informationen finden Sie unter Vertex AI-Preise.

Nächste Schritte

Weitere Informationen zur Verwendung der Live API finden Sie hier: