Live API - WebSockets API reference

Die Live API ist eine zustandsbehaftete API, die WebSockets verwendet. In diesem Abschnitt finden Sie weitere Informationen zur WebSockets API.

Sitzungen

Über eine WebSocket-Verbindung wird eine Sitzung zwischen dem Client und dem Gemini-Server hergestellt. Nachdem ein Client eine neue Verbindung initiiert hat, können in der Sitzung Nachrichten mit dem Server ausgetauscht werden, um:

  • Senden Sie Text, Audio oder Video an den Gemini-Server.
  • Audio-, Text- oder Funktionsaufrufanfragen vom Gemini-Server empfangen.

WebSocket-Verbindung

So starten Sie eine Sitzung:

wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateContent

Sitzungskonfiguration

Mit der ersten Nachricht, die nach dem Herstellen der WebSocket-Verbindung gesendet wird, wird die Sitzungskonfiguration festgelegt. Diese umfasst das Modell, die Generierungsparameter, die Systemanweisungen und die Tools.

Sie können die Konfiguration nicht aktualisieren, während die Verbindung geöffnet ist. Sie können die Konfigurationsparameter mit Ausnahme des Modells jedoch ändern, wenn Sie die Sitzung über den Mechanismus zum Fortsetzen von Sitzungen pausieren und fortsetzen.

Sehen Sie sich die folgende Beispielkonfiguration an. Die Groß- und Kleinschreibung von Namen in SDKs kann variieren. Hier finden Sie die Konfigurationsoptionen für das Python SDK.


{
  "model": string,
  "generationConfig": {
    "candidateCount": integer,
    "maxOutputTokens": integer,
    "temperature": number,
    "topP": number,
    "topK": integer,
    "presencePenalty": number,
    "frequencyPenalty": number,
    "responseModalities": [string],
    "speechConfig": object,
    "mediaResolution": object,
    "translationConfig": object
  },
  "systemInstruction": string,
  "tools": [object]
}

Weitere Informationen zum API-Feld finden Sie unter generationConfig.

Nachrichten senden

Um Nachrichten über die WebSocket-Verbindung auszutauschen, muss der Client ein JSON-Objekt über eine offene WebSocket-Verbindung senden. Das JSON-Objekt muss genau eines der Felder aus der folgenden Objektgruppe enthalten:


{
  "setup": BidiGenerateContentSetup,
  "clientContent": BidiGenerateContentClientContent,
  "realtimeInput": BidiGenerateContentRealtimeInput,
  "toolResponse": BidiGenerateContentToolResponse
}

Unterstützte Clientnachrichten

Die unterstützten Clientnachrichten sind in der folgenden Tabelle aufgeführt:

Nachricht Beschreibung
BidiGenerateContentSetup Sitzungskonfiguration, die in der ersten Nachricht gesendet werden soll
BidiGenerateContentClientContent Inkrementelles Inhaltsupdate der aktuellen Unterhaltung, das vom Client bereitgestellt wird
BidiGenerateContentRealtimeInput Audio-, Video- oder Texteingabe in Echtzeit
BidiGenerateContentToolResponse Antwort auf eine ToolCallMessage, die vom Server empfangen wurde

Nachrichten empfangen

Wenn Sie Nachrichten von Gemini empfangen möchten, müssen Sie auf das WebSocket-Ereignis „message“ warten und das Ergebnis dann gemäß der Definition der unterstützten Servernachrichten parsen.

Weitere Informationen finden Sie hier:

async with client.aio.live.connect(model='...', config=config) as session:
    await session.send(input='Hello world!', end_of_turn=True)
    async for message in session.receive():
        print(message)

Servernachrichten können ein Feld usageMetadata haben, enthalten aber ansonsten genau eines der anderen Felder aus der Nachricht BidiGenerateContentServerMessage. Die messageType-Union wird nicht in JSON ausgedrückt, daher wird das Feld auf der obersten Ebene der Nachricht angezeigt.

Nachrichten und Ereignisse

ActivityEnd

Dieser Typ hat keine Felder.

Markiert das Ende der Nutzeraktivität.

ActivityHandling

Die verschiedenen Möglichkeiten, Nutzeraktivitäten zu verarbeiten.

Enums
ACTIVITY_HANDLING_UNSPECIFIED Wenn keine Angabe erfolgt, ist das Standardverhalten START_OF_ACTIVITY_INTERRUPTS.
START_OF_ACTIVITY_INTERRUPTS Wenn „true“, wird die Antwort des Modells durch den Beginn einer Aktivität unterbrochen (auch „Barge-in“ genannt). Die aktuelle Antwort des Modells wird im Moment der Unterbrechung abgeschnitten. Das ist das Standardverhalten.
NO_INTERRUPTION Die Antwort des Modells wird nicht unterbrochen.

ActivityStart

Dieser Typ hat keine Felder.

Markiert den Beginn der Nutzeraktivität.

AudioTranscriptionConfig

Die Konfiguration für die Audiotranskription.

Felder
languageCodes[]

string

Optional. BCP-47-Sprachcodes, die Hinweise auf die im Audio enthaltenen Sprachen geben. Wenn nicht angegeben oder leer gelassen, wird standardmäßig die automatische Spracherkennung verwendet.

customVocabulary[]

string

Optional. Eine Liste mit benutzerdefinierten Vokabeln, mit denen das Spracherkennungsmodell so angepasst wird, dass bestimmte Begriffe (Produktnamen, Eigennamen, Fachjargon) erkannt werden.

wordTimestamp

bool

Optional. Konfiguriert die Generierung von Zeitstempeln auf Wortebene.

diarization

bool

Optional. Konfiguriert die Sprecherbestimmung.

mode

Mode

Optional. Konfiguriert den Transkriptionsmodus. Unterstützte Werte: VERBATIM und SMART. Wenn nichts angegeben ist, wird standardmäßig die VERBATIM-Transkription verwendet. Im SMART-Modus werden Füllwörter, Wiederholungen und Fehlstarts entfernt, Grammatikfehler werden korrigiert, der Text wird automatisch formatiert (Absätze, Aufzählungszeichen, nummerierte Listen) und kleinere Nutzerbearbeitungen (Inline-Selbstkorrekturen) werden vorgenommen. Zeitstempel und Sprecherzuordnung sind mit dem Modus SMART nicht kompatibel.

Modus

Transkriptionsmodus

Enums
MODE_UNSPECIFIED Nicht angegebener Transkriptionsmodus.
VERBATIM Modus für wörtliche Transkription.
SMART Smart-Transkriptionsmodus

AutomaticActivityDetection

Konfiguriert die automatische Erkennung von Aktivitäten.

Felder
disabled

bool

Optional. Wenn diese Option aktiviert ist (Standardeinstellung), werden erkannte Sprach- und Texteingaben als Aktivität gezählt. Wenn diese Option deaktiviert ist, muss der Client Aktivitätssignale senden.

startOfSpeechSensitivity

StartSensitivity

Optional. Bestimmt, wie wahrscheinlich es ist, dass Sprache erkannt wird.

prefixPaddingMs

int32

Optional. Die erforderliche Dauer der erkannten Sprache, bevor „start-of-speech“ festgelegt wird. Je niedriger dieser Wert ist, desto empfindlicher ist die Erkennung des Sprechbeginns und desto kürzer können die gesprochenen Wörter sein, die erkannt werden. Dadurch steigt jedoch auch die Wahrscheinlichkeit falsch positiver Ergebnisse.

endOfSpeechSensitivity

EndSensitivity

Optional. Bestimmt, wie wahrscheinlich es ist, dass die erkannte Sprache beendet wurde.

silenceDurationMs

int32

Optional. Die erforderliche Dauer der erkannten Nicht-Sprache (z.B. Stille), bevor das Ende der Sprache erkannt wird. Je größer dieser Wert ist, desto länger können Sprachlücken sein, ohne die Aktivität des Nutzers zu unterbrechen. Dadurch erhöht sich jedoch die Latenz des Modells.

BidiGenerateContentClientContent

Inkrementelles Update der aktuellen Unterhaltung, die vom Client bereitgestellt wird. Alle Inhalte hier werden bedingungslos an den Unterhaltungsverlauf angehängt und als Teil des Prompts für das Modell verwendet, um Inhalte zu generieren.

Wenn Sie hier eine Nachricht eingeben, wird die aktuelle Modellgenerierung unterbrochen.

Felder
turns[]

Content

Optional. Der Inhalt, der der aktuellen Unterhaltung mit dem Modell angehängt wird.

Bei Einzelabfragen ist dies eine einzelne Instanz. Bei Mehrfachabfragen ist dies ein wiederkehrendes Feld, das den Unterhaltungsverlauf und die letzte Anfrage enthält.

turnComplete

bool

Optional. Wenn „true“, wird angegeben, dass die Generierung von Serverinhalten mit dem aktuell angesammelten Prompt beginnen soll. Andernfalls wartet der Server auf zusätzliche Nachrichten, bevor er mit der Generierung beginnt.

BidiGenerateContentRealtimeInput

Nutzereingaben, die in Echtzeit gesendet werden.

Die verschiedenen Modalitäten (Audio, Video und Text) werden als gleichzeitige Streams behandelt. Die Reihenfolge dieser Streams ist nicht garantiert.

unterscheidet sich in einigen Punkten von BidiGenerateContentClientContent:

  • Kann kontinuierlich ohne Unterbrechung an die Modellgenerierung gesendet werden.
  • Wenn Daten aus BidiGenerateContentClientContent und BidiGenerateContentRealtimeInput kombiniert werden müssen, versucht der Server, die Antwort zu optimieren. Es gibt jedoch keine Garantien.
  • Das Ende des Zuges wird nicht explizit angegeben, sondern aus der Nutzeraktivität abgeleitet (z. B. Ende der Spracheingabe).
  • Die Daten werden schon vor dem Ende des Turns inkrementell verarbeitet, um einen schnellen Start der Antwort des Modells zu ermöglichen.
Felder
mediaChunks[]

Blob

Optional. Inline-Bytedaten für Media-Eingabe. Mehrere mediaChunks werden nicht unterstützt. Alle außer dem ersten werden ignoriert.

VERALTET: Verwenden Sie stattdessen audio, video oder text.

audio

Blob

Optional. Diese bilden den Audio-Eingabestream in Echtzeit.

video

Blob

Optional. Diese bilden den Echtzeit-Videoeingabestream.

activityStart

ActivityStart

Optional. Markiert den Beginn der Nutzeraktivität. Diese kann nur gesendet werden, wenn die automatische (d.h. serverseitige) Aktivitätserkennung deaktiviert ist.

activityEnd

ActivityEnd

Optional. Markiert das Ende der Nutzeraktivität. Diese kann nur gesendet werden, wenn die automatische (serverseitige) Aktivitätserkennung deaktiviert ist.

mediaResolution

MediaResolution

Optional. Die zu verwendende Medienauflösung. Wenn nichts angegeben ist, wird setup.generationConfig.mediaResolution verwendet oder ein Standardwert, wenn die Einrichtung nicht angegeben ist.

audioStreamEnd

bool

Optional. Gibt an, dass der Audiostream beendet wurde, z.B. weil das Mikrofon ausgeschaltet wurde.

Diese sollte nur gesendet werden, wenn die automatische Aktivitätserkennung aktiviert ist (was die Standardeinstellung ist).

Der Kunde kann den Stream wieder öffnen, indem er eine Sprachnachricht sendet.

text

string

Optional. Diese bilden den Echtzeittext-Eingabestream.

BidiGenerateContentServerContent

Inkrementelles Server-Update, das vom Modell als Reaktion auf Clientnachrichten generiert wird.

Inhalte werden so schnell wie möglich generiert, aber nicht in Echtzeit. Clients können die Inhalte puffern und in Echtzeit abspielen.

Felder
generationComplete

bool

Nur Ausgabe. Wenn „true“, bedeutet das, dass das Modell die Generierung abgeschlossen hat.

Wenn die Modellgenerierung unterbrochen wird, wird in der unterbrochenen Runde keine „generation_complete“-Nachricht angezeigt. Stattdessen wird „interrupted > turn_complete“ durchlaufen.

Wenn das Modell die Wiedergabe in Echtzeit annimmt, kommt es zu einer Verzögerung zwischen „generation_complete“ und „turn_complete“, da das Modell darauf wartet, dass die Wiedergabe abgeschlossen ist.

turnComplete

bool

Nur Ausgabe. Wenn „true“, bedeutet das, dass das Modell seinen Zug beendet hat. Die Generierung beginnt erst, wenn zusätzliche Clientnachrichten eingehen. Wenn die Berichterstellung zum Wiedergabestatus aktiviert ist, wird dieses Ereignis nur ausgegeben, wenn der Wiedergabestatus angibt, dass die Wiedergabe abgeschlossen ist. Der zukünftige Wiedergabestatus derselben Generation wird ignoriert.

interrupted

bool

Nur Ausgabe. Ist dieser Wert „true“, bedeutet das, dass die aktuelle Modellgenerierung durch eine Clientnachricht unterbrochen wurde. Wenn der Client die Inhalte in Echtzeit wiedergibt, ist das ein gutes Signal, die aktuelle Wiedergabewarteschlange zu beenden und zu leeren.

groundingMetadata

GroundingMetadata

Nur Ausgabe. Fundierungsmetadaten für die generierten Inhalte.

inputTranscription

BidiGenerateContentTranscription

Nur Ausgabe. Audiotranskription eingeben. Die Transkription wird unabhängig von den anderen Servernachrichten gesendet und es gibt keine garantierte Reihenfolge.

interimInputTranscription

BidiGenerateContentTranscription

Nur Ausgabe. Die Transkription mit niedriger Latenz wird aktualisiert, während der Nutzer spricht. Dieses Feld wird häufig aktualisiert.

outputTranscription

BidiGenerateContentTranscription

Nur Ausgabe. Audiotranskription ausgeben Diese Transkriptionen sind Teil der Generierungsausgabe des Servers. Die letzte Ausgabetranskription dieses Turns wird vor generationComplete oder interrupted gesendet, auf die wiederum turnComplete folgt. Es gibt keine Garantie für eine genaue Reihenfolge zwischen Transkriptionen und anderen modelTurn-Ausgaben, aber der Server versucht, die Transkripte in der Nähe der entsprechenden Audioausgabe zu senden.

urlContextMetadata

UrlContextMetadata

waitingForInput

bool

Nur Ausgabe. Wenn „true“, bedeutet das, dass das Modell keine Inhalte generiert, weil es auf weitere Eingaben des Nutzers wartet, z.B. weil es erwartet, dass der Nutzer weiter spricht.

interactionStatus

InteractionStatus

Nur Ausgabe. Der aktuelle Aktivitätsstatus der Livesitzung. Wird immer zusammen mit turnComplete gesendet.

modelTurn

Content

Nur Ausgabe. Die Inhalte, die das Modell im Rahmen der aktuellen Unterhaltung mit dem Nutzer generiert hat.

BidiGenerateContentServerMessage

Antwortnachricht für den BidiGenerateContent-Aufruf.

Felder
usageMetadata

UsageMetadata

Nur Ausgabe. Nutzungsmetadaten zu den Antworten.

voiceActivity

VoiceActivity

Nur Ausgabe. Im Audiostream wurde Sprachaktivität erkannt.

Union-Feld messageType. Der Typ der Nachricht. Für messageType ist nur einer der folgenden Werte zulässig:
setupComplete

BidiGenerateContentSetupComplete

Nur Ausgabe. Wird als Antwort auf eine BidiGenerateContentSetup-Nachricht vom Client gesendet, wenn die Einrichtung abgeschlossen ist.

serverContent

BidiGenerateContentServerContent

Nur Ausgabe. Inhalte, die vom Modell als Reaktion auf Clientnachrichten generiert werden.

toolCall

BidiGenerateContentToolCall

Nur Ausgabe. Bitte den Kunden, functionCalls auszuführen und die Antworten mit den entsprechenden ids zurückzugeben.

toolCallCancellation

BidiGenerateContentToolCallCancellation

Nur Ausgabe. Benachrichtigung für den Client, dass ein zuvor ausgestelltes ToolCallMessage mit den angegebenen ids storniert werden sollte.

goAway

GoAway

Nur Ausgabe. Eine Benachrichtigung, dass die Verbindung zum Server bald getrennt wird.

sessionResumptionUpdate

SessionResumptionUpdate

Nur Ausgabe. Aktualisierung des Status der Sitzungswiederaufnahme.

BidiGenerateContentSetup

Nachricht, die in der ersten (und nur in der ersten) BidiGenerateContentClientMessage gesendet werden soll. Enthält die Konfiguration, die für die Dauer des Streaming-RPC gilt.

Kunden sollten auf eine BidiGenerateContentSetupComplete-Meldung warten, bevor sie weitere Nachrichten senden.

Felder
model

string

Erforderlich. Der Ressourcenname des Modells. Dies dient als ID für das zu verwendende Modell.

Format: models/{model}

generationConfig

GenerationConfig

Optional. Konfiguration der Generierung.

Die folgenden Felder werden nicht unterstützt:

  • responseLogprobs
  • responseMimeType
  • logprobs
  • responseSchema
  • responseJsonSchema
  • stopSequence
  • skipResponseCache
  • routingConfig
  • audioTimestamp
systemInstruction

Content

Optional. Der Nutzer hat Systemanweisungen für das Modell bereitgestellt.

Hinweis: In den Teilen sollte nur Text verwendet werden. Der Inhalt jedes Teils wird in einem separaten Absatz dargestellt.

tools[]

Tool

Optional. Eine Liste von Tools, die das Modell zum Generieren der nächsten Antwort verwenden kann.

Eine Tool ist ein Code, der es dem System ermöglicht, mit externen Systemen zu interagieren, um eine Aktion oder eine Reihe von Aktionen außerhalb des Wissens und Umfangs des Modells auszuführen.

realtimeInputConfig

RealtimeInputConfig

Optional. Konfiguriert die Verarbeitung von Echtzeiteingaben.

sessionResumption

SessionResumptionConfig

Optional. Konfiguriert den Mechanismus zum Fortsetzen von Sitzungen.

Wenn sie enthalten ist, sendet der Server SessionResumptionUpdate-Nachrichten.

contextWindowCompression

ContextWindowCompressionConfig

Optional. Konfiguriert einen Mechanismus zur Komprimierung des Kontextfensters.

Falls enthalten, wird die Größe des Kontexts vom Server automatisch reduziert, wenn er die konfigurierte Länge überschreitet.

inputAudioTranscription

AudioTranscriptionConfig

Optional. Wenn diese Option aktiviert ist, wird die Spracheingabe transkribiert. Die Transkription wird an die Sprache des Audio-Inputs angepasst, sofern diese konfiguriert ist.

outputAudioTranscription

AudioTranscriptionConfig

Optional. Wenn diese Option aktiviert ist, wird die Audioausgabe des Modells transkribiert. Die Transkription entspricht dem Sprachcode, der für die Audioausgabe angegeben wurde, sofern konfiguriert.

proactivity

ProactivityConfig

Optional. Konfiguriert die Proaktivität des Modells.

So kann das Modell proaktiv auf die Eingabe reagieren und irrelevante Eingaben ignorieren.

historyConfig

HistoryConfig

Optional. Konfiguriert den Austausch des Verlaufs zwischen dem Client und dem Server.

labels

map<string, string>

Optional. Labels mit benutzerdefinierten Metadaten für die Anfrage.

Optional. Labels müssen den Standardanforderungen für einheitliche Cloud-Labels entsprechen: - Labelschlüssel müssen mit einem Buchstaben beginnen. – Labelschlüssel und ‑werte dürfen maximal 63 Zeichen (Unicode-Codepunkte) lang sein und nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten. – Internationale Zeichen sind zulässig.

Verwendung: – Sicherheitskennungen von Aggregatoren: Verwenden Sie den Schlüssel safety_identifier (z. B. {"safety_identifier": "user_session_123"}).

BidiGenerateContentSetupComplete

Dieser Typ hat keine Felder.

Wird als Antwort auf eine BidiGenerateContentSetup-Nachricht vom Client gesendet.

BidiGenerateContentToolCall

Bitte den Kunden, functionCalls auszuführen und die Antworten mit den entsprechenden ids zurückzugeben.

Felder
functionCalls[]

FunctionCall

Nur Ausgabe. Der auszuführende Funktionsaufruf.

BidiGenerateContentToolCallCancellation

Benachrichtigung für den Client, dass ein zuvor ausgegebenes ToolCallMessage mit den angegebenen ids nicht hätte ausgeführt werden dürfen und abgebrochen werden sollte. Wenn es Nebenwirkungen bei diesen Tool-Aufrufen gab, versuchen Clients möglicherweise, die Tool-Aufrufe rückgängig zu machen. Diese Meldung wird nur angezeigt, wenn Clients Server-Turns unterbrechen.

Felder
ids[]

string

Nur Ausgabe. Die IDs der abzubrechenden Tool-Aufrufe.

BidiGenerateContentToolResponse

Vom Client generierte Antwort auf ein ToolCall, das vom Server empfangen wurde. Einzelne FunctionResponse-Objekte werden über das Feld id den entsprechenden FunctionCall-Objekten zugeordnet.

Bei den unären und Server-Streaming-GenerateContent-APIs erfolgt der Funktionsaufruf durch den Austausch der Content-Teile. Bei den bidirektionalen GenerateContent-APIs erfolgt der Funktionsaufruf über diese dedizierten Nachrichten.

Felder
functionResponses[]

FunctionResponse

Optional. Die Antwort auf die Funktionsaufrufe.

BidiGenerateContentTranscription

Transkription von Audioinhalten (Eingabe oder Ausgabe).

Felder
text

string

Transkriptionstext.

languageCode

string

Der BCP-47-Sprachcode der Transkription.

startOffset

Duration

Optional. Zeitlicher Versatz des Transkripts relativ zum Beginn des Audios.

endOffset

Duration

Optional. Zeitlicher Versatz des Endes der Transkription relativ zum Beginn des Audios.

ContextWindowCompressionConfig

Aktiviert die Komprimierung des Kontextfensters – ein Mechanismus zur Verwaltung des Kontextfensters des Modells, damit es eine bestimmte Länge nicht überschreitet.

Felder
Union-Feld compressionMechanism. Der verwendete Mechanismus zur Komprimierung des Kontextfensters. Für compressionMechanism ist nur einer der folgenden Werte zulässig:
slidingWindow

SlidingWindow

Ein Sliding-Window-Mechanismus.

triggerTokens

int64

Die Anzahl der Tokens (vor dem Ausführen einer Runde), die erforderlich sind, um eine Kontextfensterkomprimierung auszulösen.

Damit lässt sich ein Gleichgewicht zwischen Qualität und Latenz herstellen, da kürzere Kontextfenster zu schnelleren Modellantworten führen können. Jeder Komprimierungsvorgang führt jedoch zu einer vorübergehenden Erhöhung der Latenz. Daher sollten sie nicht häufig ausgelöst werden.

Wenn nichts anderes festgelegt ist, beträgt der Standardwert 80% des Kontextfensterlimits des Modells. So bleiben 20% für die nächste Nutzeranfrage bzw. Modellantwort übrig.

EndSensitivity

Legt fest, wie das Ende der Sprache erkannt wird.

Enums
END_SENSITIVITY_UNSPECIFIED Der Standardwert ist END_SENSITIVITY_HIGH.
END_SENSITIVITY_HIGH Bei der automatischen Erkennung wird die Sprache häufiger beendet.
END_SENSITIVITY_LOW Bei der automatischen Erkennung wird die Sprache seltener beendet.

GoAway

Eine Benachrichtigung, dass die Verbindung zum Server bald getrennt wird.

Felder
timeLeft

Duration

Die verbleibende Zeit, bevor die Verbindung als „ABORTED“ beendet wird.

Diese Dauer ist nie kürzer als ein modellspezifisches Minimum, das zusammen mit den Ratenbeschränkungen für das Modell angegeben wird.

HistoryConfig

Verlaufskonfiguration

Diese Nachricht ist in der Sitzungskonfiguration als BidiGenerateContentSetup.historyConfig enthalten. Konfiguriert den Austausch von Verlaufsnachrichten.

Felder
initialHistoryInClientContent

bool

Optional. Wenn „true“ festgelegt ist, wartet der Server nach dem Senden von setupComplete und verarbeitet zuerst clientContent-Nachrichten, bis turnComplete true ist. Dieser erste Verlauf löst keinen Modellaufruf aus und kann mit der Rolle MODEL enden. Nachdem turnComplete true ist, kann der Client die Echtzeitunterhaltung über realtimeInput starten.

InteractionStatus

Die verschiedenen Aktivitätsstatus der Livesitzung. Dieses Feld wird immer zusammen mit turnComplete gesendet, um anzugeben, ob der Server die gesamte Verarbeitung abgeschlossen hat.

Enums
INTERACTION_STATUS_UNSPECIFIED Nicht angegebener Interaktionsstatus.
IN_PROGRESS Der Server verarbeitet weiterhin Nutzereingaben oder führt Hintergrundberechnungen aus. Möglicherweise folgt weitere Modellausgabe.
REQUIRES_ACTION

Nicht mehr unterstützt: Verwenden Sie stattdessen IDLE.

IDLE Der Server hat die gesamte Verarbeitung und das Hintergrund-Reasoning abgeschlossen.

ProactivityConfig

Konfiguration für proaktive Funktionen.

Felder
proactiveAudio

bool

Optional. Wenn diese Option aktiviert ist, kann das Modell die Antwort auf den letzten Prompt ablehnen. So kann das Modell beispielsweise Äußerungen ignorieren, die keinen Kontext haben, oder stumm bleiben, wenn der Nutzer noch keine Anfrage gestellt hat.

RealtimeInputConfig

Konfiguriert das Echtzeit-Eingabeverhalten in BidiGenerateContent.

Felder
automaticActivityDetection

AutomaticActivityDetection

Optional. Wenn sie nicht festgelegt ist, ist die automatische Aktivitätserkennung standardmäßig aktiviert. Wenn die automatische Spracherkennung deaktiviert ist, muss der Client Aktivitätssignale senden.

activityHandling

ActivityHandling

Optional. Definiert die Auswirkungen von Aktivitäten.

turnCoverage

TurnCoverage

Optional. Definiert, welche Eingabe im Zug des Nutzers enthalten ist.

interimTranscriptTimestampEnabled

bool

Optional. Konfiguriert Zeitstempel für vorläufige Transkripte.

SessionResumptionConfig

Konfiguration der Sitzungswiederaufnahme.

Diese Nachricht ist in der Sitzungskonfiguration als BidiGenerateContentSetup.sessionResumption enthalten. Wenn der Server entsprechend konfiguriert ist, sendet er SessionResumptionUpdate-Nachrichten.

Felder
handle

string

Der Handle einer vorherigen Sitzung. Wenn sie nicht vorhanden ist, wird eine neue Sitzung erstellt.

Sitzungshandles stammen aus SessionResumptionUpdate.token-Werten in früheren Verbindungen.

SessionResumptionUpdate

Aktualisierung des Status der Sitzungswiederaufnahme.

Wird nur gesendet, wenn BidiGenerateContentSetup.sessionResumption festgelegt wurde.

Felder
newHandle

string

Neuer Handle, der einen Zustand darstellt, der fortgesetzt werden kann. Leer, wenn resumable=false.

resumable

bool

„true“, wenn die aktuelle Sitzung an dieser Stelle fortgesetzt werden kann.

An einigen Stellen in der Sitzung ist keine Fortsetzung möglich. Das kann beispielsweise der Fall sein, wenn das Modell Funktionsaufrufe ausführt oder Inhalte generiert. Wenn die Sitzung in einem solchen Zustand fortgesetzt wird (mit einem vorherigen Sitzungstoken), gehen einige Daten verloren. In diesen Fällen ist newHandle leer und resumable ist „false“.

SlidingWindow

Bei der SlidingWindow-Methode werden Inhalte am Anfang des Kontextfensters verworfen. Der resultierende Kontext beginnt immer am Anfang eines USER-Rundendurchlaufs. Systemanweisungen und alle BidiGenerateContentSetup.prefixTurns bleiben immer am Anfang des Ergebnisses.

Felder
targetTokens

int64

Die Zielanzahl der beizubehaltenden Tokens. Der Standardwert ist „trigger_tokens/2“.

Wenn Teile des Kontextfensters verworfen werden, kommt es zu einer vorübergehenden Erhöhung der Latenz. Dieser Wert sollte daher so kalibriert werden, dass häufige Komprimierungsvorgänge vermieden werden.

StartSensitivity

Legt fest, wie der Beginn der Sprache erkannt wird.

Enums
START_SENSITIVITY_UNSPECIFIED Die Standardeinstellung ist START_SENSITIVITY_HIGH.
START_SENSITIVITY_HIGH Bei der automatischen Erkennung wird der Beginn der Sprache häufiger erkannt.
START_SENSITIVITY_LOW Die automatische Erkennung erkennt den Beginn der Sprache seltener.

TurnCoverage

Optionen dazu, welche Eingabe im Zug des Nutzers enthalten ist.

Enums
TURN_COVERAGE_UNSPECIFIED Wenn nichts angegeben ist, wird basierend auf dem Modell ein Standardverhalten ausgewählt. Bei Gemini 2.5 ist der Standardwert beispielsweise TURN_INCLUDES_ONLY_ACTIVITY, bei Gemini 3.1 und höher TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO.
TURN_INCLUDES_ONLY_ACTIVITY Umfasst Aktivitäten seit dem letzten Zug, ausgenommen Inaktivität (z.B. Stille im Audiostream).
TURN_INCLUDES_ALL_INPUT Enthält alle Echtzeit-Eingaben seit dem letzten Zug, einschließlich Inaktivität (z.B. Stille im Audio-Stream).
TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO Enthält Audioaktivitäten und alle Videos seit dem letzten Zug. Bei der automatischen Aktivitätserkennung bezieht sich die Audioaktivität auf Sprache und nicht auf Stille.

TranslationConfig

Konfiguration für Übersetzungsfunktionen.

Felder
targetLanguageCode

string

Erforderlich. Die Zielsprache für die Übersetzung. Unterstützte Werte sind BCP-47-Sprachcodes (z.B. „en“, „es“, „fr“).

echoTargetLanguage

bool

Optional. Wenn „true“ festgelegt ist, generiert das Modell Audio, wenn die Zielsprache gesprochen wird. Es wiederholt also die Eingabe. Wenn „false“ festgelegt ist, wird kein Audio für die Zielsprache erstellt.

UrlContextMetadata

Metadaten zum Tool zum Abrufen des URL-Kontexts.

Felder
urlMetadata[]

UrlMetadata

Liste des URL-Kontexts.

UsageMetadata

Nutzungsmetadaten zu Antworten.

Felder
promptTokenCount

int32

Nur Ausgabe. Anzahl der Tokens im Prompt. Wenn cachedContent festgelegt ist, ist dies weiterhin die effektive Gesamtgröße des Prompts, d. h., sie umfasst die Anzahl der Tokens in den im Cache gespeicherten Inhalten.

cachedContentTokenCount

int32

Anzahl der Tokens im im Cache gespeicherten Teil des Prompts (im Cache gespeicherte Inhalte)

responseTokenCount

int32

Nur Ausgabe. Gesamtzahl der Tokens für alle generierten Antwortvorschläge.

toolUsePromptTokenCount

int32

Nur Ausgabe. Anzahl der Tokens in den Tool-Nutzungs-Prompts.

thoughtsTokenCount

int32

Nur Ausgabe. Anzahl der Tokens für Gedanken für Thinking-Modelle.

totalTokenCount

int32

Nur Ausgabe. Gesamtzahl der Tokens für die Generierungsanfrage (Prompt + Antwortkandidaten).

promptTokensDetails[]

ModalityTokenCount

Nur Ausgabe. Liste der Modalitäten, die in der Anfrageeingabe verarbeitet wurden.

cacheTokensDetails[]

ModalityTokenCount

Nur Ausgabe. Liste der Modalitäten der im Cache gespeicherten Inhalte in der Anfrageeingabe.

responseTokensDetails[]

ModalityTokenCount

Nur Ausgabe. Liste der Modalitäten, die in der Antwort zurückgegeben wurden.

toolUsePromptTokensDetails[]

ModalityTokenCount

Nur Ausgabe. Liste der Modalitäten, die für Eingaben von Tool-Nutzungsanfragen verarbeitet wurden.

VoiceActivity

Im Audiostream wurde Sprachaktivität erkannt.

Felder
type

Type

Nur Ausgabe. Der Typ des VAD-Signals(Voice Activity Detection).

audioOffset

Duration

Nur Ausgabe. Die Zeit, zu der Sprachaktivität in der Audiozeit erkannt wurde, relativ zum Beginn des Audiostreams.

Typ

Der Typ des VAD-Signals.

Enums
TYPE_UNSPECIFIED Der Standardwert ist UNSPECIFIED.
ACTIVITY_START Signal für Satzbeginn.
ACTIVITY_END Signal für Satzende.

Einmal-Authentifizierungstokens

Temporäre Authentifizierungstokens können durch Aufrufen von AuthTokenService.CreateToken abgerufen und dann mit GenerativeService.BidiGenerateContentConstrained verwendet werden. Dazu wird das Token entweder in einem access_token-Abfrageparameter oder in einem HTTP-Authorization-Header mit dem Präfix „Token“ übergeben.

CreateAuthTokenRequest

Ein temporäres Authentifizierungs-Token erstellen

Felder
authToken

AuthToken

Erforderlich. Das zu erstellende Token.

AuthToken

Eine Anfrage zum Erstellen eines temporären Authentifizierungstokens.

Felder
name

string

Nur Ausgabe. ID. Das Token selbst.

expireTime

Timestamp

Optional. Nur Eingabe. Nicht veränderbar. Eine optionale Zeit, nach der Nachrichten in BidiGenerateContent-Sitzungen abgelehnt werden, wenn das resultierende Token verwendet wird. Gemini kann die Sitzung nach dieser Zeit vorzeitig schließen.

Wenn nichts anderes festgelegt ist, wird standardmäßig ein Zeitpunkt in 30 Minuten verwendet. Wenn dieser Wert festgelegt ist, darf er nicht mehr als 20 Stunden in der Zukunft liegen.

newSessionExpireTime

Timestamp

Optional. Nur Eingabe. Nicht veränderbar. Die Zeit, nach der neue Live API-Sitzungen mit dem Token, das aus dieser Anfrage resultiert, abgelehnt werden.

Wenn nichts anderes festgelegt ist, beträgt der Wert standardmäßig 60 Sekunden in der Zukunft. Wenn dieser Wert festgelegt ist, darf er nicht mehr als 20 Stunden in der Zukunft liegen.

fieldMask

FieldMask

Optional. Nur Eingabe. Nicht veränderbar. Wenn „field_mask“ leer ist und bidiGenerateContentSetup nicht vorhanden ist, wird die effektive BidiGenerateContentSetup-Nachricht aus der Live-API-Verbindung übernommen.

Wenn „field_mask“ leer ist und bidiGenerateContentSetup vorhanden ist, wird die effektive BidiGenerateContentSetup-Nachricht vollständig aus bidiGenerateContentSetup in dieser Anfrage übernommen. Die Einrichtungsnachricht der Live API-Verbindung wird ignoriert.

Wenn „field_mask“ nicht leer ist, werden die entsprechenden Felder aus bidiGenerateContentSetup die Felder aus der Einrichtungsnachricht in der Live-API-Verbindung überschreiben.

Union-Feld config. Die methodenspezifische Konfiguration für das resultierende Token. Für config ist nur einer der folgenden Werte zulässig:
bidiGenerateContentSetup

BidiGenerateContentSetup

Optional. Nur Eingabe. Nicht veränderbar. Konfiguration speziell für BidiGenerateContent.

uses

int32

Optional. Nur Eingabe. Nicht veränderbar. Wie oft das Token verwendet werden kann. Wenn dieser Wert null ist, wird kein Limit angewendet. Das Fortsetzen einer Live API-Sitzung wird nicht als Nutzung gezählt. Wenn nicht angegeben, ist der Standardwert 1.

Weitere Informationen zu gängigen Typen

Weitere Informationen zu den häufig verwendeten API-Ressourcentypen Blob, Content, FunctionCall, FunctionResponse, GenerationConfig, GroundingMetadata, ModalityTokenCount und Tool finden Sie unter Inhalte generieren.