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[] |
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[] |
Optional. Eine Liste mit benutzerdefinierten Vokabeln, mit denen das Spracherkennungsmodell so angepasst wird, dass bestimmte Begriffe (Produktnamen, Eigennamen, Fachjargon) erkannt werden. |
wordTimestamp |
Optional. Konfiguriert die Generierung von Zeitstempeln auf Wortebene. |
diarization |
Optional. Konfiguriert die Sprecherbestimmung. |
mode |
Optional. Konfiguriert den Transkriptionsmodus. Unterstützte Werte: |
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 |
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 |
Optional. Bestimmt, wie wahrscheinlich es ist, dass Sprache erkannt wird. |
prefixPaddingMs |
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 |
Optional. Bestimmt, wie wahrscheinlich es ist, dass die erkannte Sprache beendet wurde. |
silenceDurationMs |
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[] |
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 |
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
BidiGenerateContentClientContentundBidiGenerateContentRealtimeInputkombiniert 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[] |
Optional. Inline-Bytedaten für Media-Eingabe. Mehrere VERALTET: Verwenden Sie stattdessen |
audio |
Optional. Diese bilden den Audio-Eingabestream in Echtzeit. |
video |
Optional. Diese bilden den Echtzeit-Videoeingabestream. |
activityStart |
Optional. Markiert den Beginn der Nutzeraktivität. Diese kann nur gesendet werden, wenn die automatische (d.h. serverseitige) Aktivitätserkennung deaktiviert ist. |
activityEnd |
Optional. Markiert das Ende der Nutzeraktivität. Diese kann nur gesendet werden, wenn die automatische (serverseitige) Aktivitätserkennung deaktiviert ist. |
mediaResolution |
Optional. Die zu verwendende Medienauflösung. Wenn nichts angegeben ist, wird |
audioStreamEnd |
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 |
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 |
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 |
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 |
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 |
Nur Ausgabe. Fundierungsmetadaten für die generierten Inhalte. |
inputTranscription |
Nur Ausgabe. Audiotranskription eingeben. Die Transkription wird unabhängig von den anderen Servernachrichten gesendet und es gibt keine garantierte Reihenfolge. |
interimInputTranscription |
Nur Ausgabe. Die Transkription mit niedriger Latenz wird aktualisiert, während der Nutzer spricht. Dieses Feld wird häufig aktualisiert. |
outputTranscription |
Nur Ausgabe. Audiotranskription ausgeben Diese Transkriptionen sind Teil der Generierungsausgabe des Servers. Die letzte Ausgabetranskription dieses Turns wird vor |
urlContextMetadata |
|
waitingForInput |
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 |
Nur Ausgabe. Der aktuelle Aktivitätsstatus der Livesitzung. Wird immer zusammen mit |
modelTurn |
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 |
Nur Ausgabe. Nutzungsmetadaten zu den Antworten. |
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 |
Nur Ausgabe. Wird als Antwort auf eine |
serverContent |
Nur Ausgabe. Inhalte, die vom Modell als Reaktion auf Clientnachrichten generiert werden. |
toolCall |
Nur Ausgabe. Bitte den Kunden, |
toolCallCancellation |
Nur Ausgabe. Benachrichtigung für den Client, dass ein zuvor ausgestelltes |
goAway |
Nur Ausgabe. Eine Benachrichtigung, dass die Verbindung zum Server bald getrennt wird. |
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 |
Erforderlich. Der Ressourcenname des Modells. Dies dient als ID für das zu verwendende Modell. Format: |
generationConfig |
Optional. Konfiguration der Generierung. Die folgenden Felder werden nicht unterstützt:
|
systemInstruction |
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[] |
Optional. Eine Liste von Eine |
realtimeInputConfig |
Optional. Konfiguriert die Verarbeitung von Echtzeiteingaben. |
sessionResumption |
Optional. Konfiguriert den Mechanismus zum Fortsetzen von Sitzungen. Wenn sie enthalten ist, sendet der Server |
contextWindowCompression |
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 |
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 |
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 |
Optional. Konfiguriert die Proaktivität des Modells. So kann das Modell proaktiv auf die Eingabe reagieren und irrelevante Eingaben ignorieren. |
historyConfig |
Optional. Konfiguriert den Austausch des Verlaufs zwischen dem Client und dem Server. |
labels |
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 |
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[] |
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[] |
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[] |
Optional. Die Antwort auf die Funktionsaufrufe. |
BidiGenerateContentTranscription
Transkription von Audioinhalten (Eingabe oder Ausgabe).
| Felder | |
|---|---|
text |
Transkriptionstext. |
languageCode |
Der BCP-47-Sprachcode der Transkription. |
startOffset |
Optional. Zeitlicher Versatz des Transkripts relativ zum Beginn des Audios. |
endOffset |
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 |
Ein Sliding-Window-Mechanismus. |
triggerTokens |
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 |
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 |
Optional. Wenn „true“ festgelegt ist, wartet der Server nach dem Senden von |
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 |
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 |
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 |
Optional. Definiert die Auswirkungen von Aktivitäten. |
turnCoverage |
Optional. Definiert, welche Eingabe im Zug des Nutzers enthalten ist. |
interimTranscriptTimestampEnabled |
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 |
Der Handle einer vorherigen Sitzung. Wenn sie nicht vorhanden ist, wird eine neue Sitzung erstellt. Sitzungshandles stammen aus |
SessionResumptionUpdate
Aktualisierung des Status der Sitzungswiederaufnahme.
Wird nur gesendet, wenn BidiGenerateContentSetup.sessionResumption festgelegt wurde.
| Felder | |
|---|---|
newHandle |
Neuer Handle, der einen Zustand darstellt, der fortgesetzt werden kann. Leer, wenn |
resumable |
„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 |
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 |
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 |
Erforderlich. Die Zielsprache für die Übersetzung. Unterstützte Werte sind BCP-47-Sprachcodes (z.B. „en“, „es“, „fr“). |
echoTargetLanguage |
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[] |
Liste des URL-Kontexts. |
UsageMetadata
Nutzungsmetadaten zu Antworten.
| Felder | |
|---|---|
promptTokenCount |
Nur Ausgabe. Anzahl der Tokens im Prompt. Wenn |
cachedContentTokenCount |
Anzahl der Tokens im im Cache gespeicherten Teil des Prompts (im Cache gespeicherte Inhalte) |
responseTokenCount |
Nur Ausgabe. Gesamtzahl der Tokens für alle generierten Antwortvorschläge. |
toolUsePromptTokenCount |
Nur Ausgabe. Anzahl der Tokens in den Tool-Nutzungs-Prompts. |
thoughtsTokenCount |
Nur Ausgabe. Anzahl der Tokens für Gedanken für Thinking-Modelle. |
totalTokenCount |
Nur Ausgabe. Gesamtzahl der Tokens für die Generierungsanfrage (Prompt + Antwortkandidaten). |
promptTokensDetails[] |
Nur Ausgabe. Liste der Modalitäten, die in der Anfrageeingabe verarbeitet wurden. |
cacheTokensDetails[] |
Nur Ausgabe. Liste der Modalitäten der im Cache gespeicherten Inhalte in der Anfrageeingabe. |
responseTokensDetails[] |
Nur Ausgabe. Liste der Modalitäten, die in der Antwort zurückgegeben wurden. |
toolUsePromptTokensDetails[] |
Nur Ausgabe. Liste der Modalitäten, die für Eingaben von Tool-Nutzungsanfragen verarbeitet wurden. |
VoiceActivity
Im Audiostream wurde Sprachaktivität erkannt.
| Felder | |
|---|---|
type |
Nur Ausgabe. Der Typ des VAD-Signals(Voice Activity Detection). |
audioOffset |
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 |
Erforderlich. Das zu erstellende Token. |
AuthToken
Eine Anfrage zum Erstellen eines temporären Authentifizierungstokens.
| Felder | |
|---|---|
name |
Nur Ausgabe. ID. Das Token selbst. |
expireTime |
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 |
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 |
Optional. Nur Eingabe. Nicht veränderbar. Wenn „field_mask“ leer ist und Wenn „field_mask“ leer ist und Wenn „field_mask“ nicht leer ist, werden die entsprechenden Felder aus |
Union-Feld config. Die methodenspezifische Konfiguration für das resultierende Token. Für config ist nur einer der folgenden Werte zulässig: |
|
bidiGenerateContentSetup |
Optional. Nur Eingabe. Nicht veränderbar. Konfiguration speziell für |
uses |
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.