Die Gemini Live API ermöglicht bidirektionale Interaktionen mit niedriger Latenz, bei denen Text-, Audio- und Videoeingaben mit Audio- und Textausgaben verwendet werden. So sind natürliche, menschenähnliche Unterhaltungen möglich, bei denen das Modell jederzeit unterbrochen werden kann. Die Videoerkennung des Modells erweitert die Kommunikationsmodi. Sie können Kameraeingaben oder Bildschirmaufzeichnungen teilen und Fragen dazu stellen.
Leistungsspektrum
Die Live API bietet folgende Hauptfunktionen:
- Multimodalität: Das Modell kann sehen, hören und sprechen.
- Echtzeitinteraktion mit geringer Latenz: Das Modell kann schnell reagieren.
- Sitzungsgedächtnis: Das Modell speichert alle Interaktionen innerhalb einer einzelnen Sitzung und ruft zuvor gehörte oder gesehene Informationen ab.
- Unterstützung für Funktionsaufrufe, Codeausführung und die Suche als Tool: Sie können das Modell in externe Dienste und Datenquellen einbinden.
Die Live API ist für die Server-zu-Server-Kommunikation konzipiert.
Für Web- und mobile Apps empfehlen wir die Integration von Daily.
Jetzt starten
Wenn Sie die Live API ausprobieren möchten, rufen Sie Vertex AI Studio auf und klicken Sie auf Sitzung starten.
Die Live API ist eine zustandsorientierte API, die WebSockets verwendet.
In diesem Abschnitt wird ein Beispiel für die Verwendung der Live API zur Text-zu-Text-Generierung mit Python 3.9 oder höher gezeigt.
Gen AI SDK for Python
Installieren
pip install --upgrade google-genai
Legen Sie Umgebungsvariablen fest, um das Gen AI SDK mit Vertex AI zu verwenden:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us-central1 export GOOGLE_GENAI_USE_VERTEXAI=True
Integrationsleitfaden
In diesem Abschnitt wird beschrieben, wie die Integration mit der Live API funktioniert.
Sitzungen
Eine WebSocket-Verbindung stellt eine Sitzung zwischen dem Client und dem Gemini-Server her.
Nachdem ein Client eine neue Verbindung gestartet hat, kann die Sitzung Nachrichten mit dem Server austauschen, um:
- Text, Audio oder Video an den Gemini-Server senden
- Audio-, Text- oder Funktionsaufrufanfragen vom Gemini-Server empfangen.
Die Sitzungskonfiguration wird in der ersten Nachricht nach der Verbindung gesendet. Eine Sitzungskonfiguration umfasst das Modell, die Generierungsparameter, Systemanweisungen und Tools.
Hier eine Beispielkonfiguration:
{
"model": string,
"generationConfig": {
"candidateCount": integer,
"maxOutputTokens": integer,
"temperature": number,
"topP": number,
"topK": integer,
"presencePenalty": number,
"frequencyPenalty": number,
"responseModalities": [string],
"speechConfig": object
},
"systemInstruction": string,
"tools": [object]
}
Weitere Informationen finden Sie unter BidiGenerateContentSetup.
Nachrichten senden
Nachrichten sind JSON-formatierte Objekte, die über die WebSocket-Verbindung ausgetauscht werden.
Um eine Nachricht zu senden, muss der Client ein JSON-Objekt über eine offene WebSocket-Verbindung senden. Das JSON-Objekt muss genau ein Feld aus der folgenden Objektmenge enthalten:
{
"setup": BidiGenerateContentSetup,
"clientContent": BidiGenerateContentClientContent,
"realtimeInput": BidiGenerateContentRealtimeInput,
"toolResponse": BidiGenerateContentToolResponse
}
Unterstützte Clientnachrichten
Die unterstützten Clientnachrichten findest du in der folgenden Tabelle:
Nachricht | Beschreibung |
---|---|
BidiGenerateContentSetup |
Sitzungskonfiguration, die in der ersten Nachricht gesendet werden soll |
BidiGenerateContentClientContent |
Inkrementelle Inhaltsaktualisierung der aktuellen Unterhaltung, die vom Client gesendet wird |
BidiGenerateContentRealtimeInput |
Echtzeit-Audio- oder Videoeingabe |
BidiGenerateContentToolResponse |
Antwort auf eine vom Server empfangene ToolCallMessage |
Nachrichten empfangen
Wenn Sie Nachrichten von Gemini empfangen möchten, warten Sie auf das WebSocket-Ereignis „message“ und analysieren Sie das Ergebnis dann gemäß der Definition der unterstützten Servernachrichten.
Weitere Informationen finden Sie hier:
ws.addEventListener("message", async (evt) => { if (evt.data instanceof Blob) { // Process the received data (audio, video, etc.) } else { // Process JSON response } });
Servernachrichten enthalten genau ein Feld aus dem folgenden Objektsatz:
{
"setupComplete": BidiGenerateContentSetupComplete,
"serverContent": BidiGenerateContentServerContent,
"toolCall": BidiGenerateContentToolCall,
"toolCallCancellation": BidiGenerateContentToolCallCancellation
"usageMetadata": UsageMetadata
"goAway": GoAway
"sessionResumptionUpdate": SessionResumptionUpdate
"inputTranscription": BidiGenerateContentTranscription
"outputTranscription": BidiGenerateContentTranscription
}
Unterstützte Servernachrichten
Die unterstützten Servernachrichten finden Sie in der folgenden Tabelle:
Nachricht | Beschreibung |
---|---|
BidiGenerateContentSetupComplete |
Eine BidiGenerateContentSetup -Nachricht vom Client, die gesendet wird, wenn die Einrichtung abgeschlossen ist |
BidiGenerateContentServerContent |
Vom Modell generierte Inhalte als Antwort auf eine Kundennachricht |
BidiGenerateContentToolCall |
Der Client wird aufgefordert, die Funktionsaufrufe auszuführen und die Antworten mit den übereinstimmenden IDs zurückzugeben. |
BidiGenerateContentToolCallCancellation |
Wird gesendet, wenn ein Funktionsaufruf abgebrochen wird, weil der Nutzer die Modellausgabe unterbrochen hat. |
UsageMetadata |
Ein Bericht zur Anzahl der bisher in der Sitzung verwendeten Tokens |
GoAway |
Ein Signal, dass die aktuelle Verbindung bald beendet wird |
SessionResumptionUpdate |
Einen Sitzungskontrollpunkt, der fortgesetzt werden kann |
BidiGenerateContentTranscription |
Eine Transkription der Sprache des Nutzers oder des Modells |
Inkrementelle Inhaltsaktualisierungen
Verwenden Sie inkrementelle Updates, um Texteingaben zu senden, den Sitzungskontext festzulegen oder den Sitzungskontext wiederherzustellen. Bei kurzen Kontexten können Sie Schritt-für-Schritt-Interaktionen senden, um die genaue Abfolge der Ereignisse darzustellen. Bei längeren Kontexten wird empfohlen, eine einzelne Nachrichtenzusammenfassung anzugeben, um das Kontextfenster für die nachfolgenden Interaktionen freizugeben.
Hier ein Beispiel für eine Kontextnachricht:
{ "clientContent": { "turns": [ { "parts":[ { "text": "" } ], "role":"user" }, { "parts":[ { "text": "" } ], "role":"model" } ], "turnComplete": true } }
Inhaltsteile können zwar vom Typ functionResponse
sein, BidiGenerateContentClientContent
sollte jedoch nicht verwendet werden, um eine Antwort auf die vom Modell gesendeten Funktionsaufrufe zu geben. Stattdessen sollte BidiGenerateContentToolResponse
verwendet werden. BidiGenerateContentClientContent
sollte nur verwendet werden, um den vorherigen Kontext herzustellen oder Text in die Unterhaltung einzugeben.
Audio- und Videostreaming
Codeausführung
Weitere Informationen zur Codeausführung finden Sie unter Codeausführung.
Funktionsaufrufe
Alle Funktionen müssen zu Beginn der Sitzung deklariert werden. Dazu müssen Sie Tooldefinitionen als Teil der BidiGenerateContentSetup
-Nachricht senden.
Sie definieren Funktionen mit JSON, insbesondere mit einem ausgewählten Teil des OpenAPI-Schemaformats. Eine einzelne Funktionsdeklaration kann die folgenden Parameter enthalten:
name (String): Die eindeutige Kennung für die Funktion im API-Aufruf.
description (String): Eine umfassende Erklärung des Zwecks und der Funktionen der Funktion.
parameters (Objekt): Hier werden die von der Funktion benötigten Eingabedaten definiert.
type (String): Gibt den allgemeinen Datentyp an, z. B. „object“.
properties (Objekt): Hier werden einzelne Parameter mit folgenden Angaben aufgelistet:
- type (String): Der Datentyp des Parameters, z. B. String, Ganzzahl oder boolescher Wert.
- description (String): Eine klare Erläuterung des Zwecks und des erwarteten Formats des Parameters.
required (Array): Ein Array von Strings, das die Parameternamen enthält, die für die Funktion erforderlich sind.
Codebeispiele für eine Funktionsdeklaration mit curl-Befehlen finden Sie unter Funktionsaufruf mit der Gemini API. Beispiele zum Erstellen von Funktionsdeklarationen mit den Gemini API SDKs finden Sie im Leitfaden zu Funktionsaufrufen.
Anhand eines einzelnen Prompts kann das Modell mehrere Funktionsaufrufe und den Code generieren, der zum Verketten der Ausgaben erforderlich ist. Dieser Code wird in einer Sandbox-Umgebung ausgeführt und generiert nachfolgende BidiGenerateContentToolCall
-Nachrichten. Die Ausführung wird pausiert, bis die Ergebnisse der einzelnen Funktionsaufrufe verfügbar sind. So wird eine sequenzielle Verarbeitung sichergestellt.
Der Client sollte mit BidiGenerateContentToolResponse
antworten.
Weitere Informationen finden Sie unter Einführung in Funktionsaufrufe.
Audioformate
Die Live API unterstützt die folgenden Audioformate:
- Audioformat für Eingabe: Rohes 16-Bit-PCM-Audio mit 16 kHz und Little Endian
- Audioausgabeformat: Rohes 16-Bit-PCM-Audio mit 24 kHz, Little Endian
Systemanweisungen
Sie können Systemanweisungen bereitstellen, um die Ausgabe des Modells besser zu steuern und den Ton und die Stimmung der Audioantworten anzugeben.
Systemanweisungen werden dem Prompt vor Beginn der Interaktion hinzugefügt und bleiben für die gesamte Sitzung aktiv.
Systemanweisungen können nur zu Beginn einer Sitzung festgelegt werden, unmittelbar nach der ersten Verbindung. Wenn Sie dem Modell während der Sitzung weitere Eingaben zur Verfügung stellen möchten, verwenden Sie inkrementelle Inhaltsaktualisierungen.
Unterbrechungen
Nutzer können die Ausgabe des Modells jederzeit unterbrechen. Wenn die Sprachaktivitätserkennung (VAD) eine Unterbrechung erkennt, wird die laufende Generierung abgebrochen und verworfen. Im Sitzungsverlauf werden nur die Informationen aufbewahrt, die bereits an den Client gesendet wurden. Der Server sendet dann eine BidiGenerateContentServerContent
-Nachricht, um die Unterbrechung zu melden.
Außerdem verwirft der Gemini-Server alle ausstehenden Funktionsaufrufe und sendet eine BidiGenerateContentServerContent
-Nachricht mit den IDs der abgebrochenen Aufrufe.
Stimmen
Die Live API unterstützt die folgenden Stimmen:
- Puck
- Charon
- Kore
- Fenrir
- Aoede
Wenn Sie eine Stimme angeben möchten, legen Sie das voiceName
im speechConfig
-Objekt als Teil der Sitzungskonfiguration fest.
Hier sehen Sie die JSON-Darstellung eines speechConfig
-Objekts:
{ "voiceConfig": { "prebuiltVoiceConfig": { "voiceName": "VOICE_NAME" } } }
Beschränkungen
Beachten Sie bei der Planung Ihres Projekts die folgenden Einschränkungen der Live API und Gemini 2.0.
Clientauthentifizierung
Die Live API bietet nur eine Server-zu-Server-Authentifizierung und wird für die direkte Verwendung durch Clients nicht empfohlen. Der Client-Eingabe sollte für eine sichere Authentifizierung mit der Live API ein Zwischenanwendungsserver vorangestellt werden.
Unterhaltungsverlauf
Das Modell überwacht zwar die Interaktionen während einer Sitzung, der Unterhaltungsverlauf wird jedoch nicht gespeichert. Wenn eine Sitzung endet, wird der entsprechende Kontext gelöscht.
Um eine vorherige Sitzung wiederherzustellen oder dem Modell den bisherigen Kontext der Nutzerinteraktionen zur Verfügung zu stellen, sollte die Anwendung ein eigenes Unterhaltungsprotokoll führen und diese Informationen zu Beginn einer neuen Sitzung mit einer BidiGenerateContentClientContent
-Nachricht senden.
Maximale Sitzungsdauer
Die Sitzungsdauer ist auf 15 Minuten für Audio oder 2 Minuten für Audio und Video beschränkt. Wenn die Sitzungsdauer das Limit überschreitet, wird die Verbindung beendet.
Das Modell ist außerdem durch die Kontextgröße begrenzt. Wenn du neben den Video- und Audiostreams große Inhaltsblöcke sendest, kann die Sitzung früher beendet werden.
Erkennung der Sprachaktivitäten (VAD)
Standardmäßig führt das Modell automatisch eine Sprachaktivitätserkennung (VAD) für einen kontinuierlichen Audioeingangsstream durch. Die Sprachaktivitätserkennung kann mit dem Feld RealtimeInputConfig.AutomaticActivityDetection
der Einrichtungsnachricht konfiguriert werden.
Wenn der Audiostream länger als eine Sekunde pausiert wird (z. B. wenn der Nutzer das Mikrofon ausschaltet), wird ein AudioStreamEnd
-Ereignis gesendet, um alle im Cache gespeicherten Audioinhalte zu löschen. Der Client kann das Senden von Audiodaten jederzeit fortsetzen.
Alternativ kann die automatische VAD deaktiviert werden, indem in der Einrichtungsnachricht RealtimeInputConfig.AutomaticActivityDetection.disabled
auf true
gesetzt wird. Bei dieser Konfiguration ist der Client dafür verantwortlich, die Sprache des Nutzers zu erkennen und ActivityStart
- und ActivityEnd
-Nachrichten zum richtigen Zeitpunkt zu senden. In dieser Konfiguration wird kein AudioStreamEnd
gesendet. Stattdessen wird jede Unterbrechung des Streams durch eine ActivityEnd
-Meldung gekennzeichnet.
Weitere Einschränkungen
Manuelles Endpunkt-Routing wird nicht unterstützt.
Audioeingaben und -ausgaben beeinträchtigen die Fähigkeit des Modells, Funktionsaufrufe zu verwenden.
Tokenanzahl
Die Tokenanzahl wird nicht unterstützt.
Ratenlimits
Es gelten die folgenden Ratenbegrenzungen:
- 3 gleichzeitige Sitzungen pro API-Schlüssel
- 4 Millionen Tokens pro Minute
Nachrichten und Ereignisse
BidiGenerateContentClientContent
Inkrementelle Aktualisierung der aktuellen Unterhaltung, die vom Client gesendet wird. Alle Inhalte hier werden dem Unterhaltungsverlauf ohne Bedingungen angehängt und als Teil des Prompts an das Modell zur Generierung von Inhalten verwendet.
Eine Nachricht hier unterbricht die aktuelle Modellgenerierung.
Felder | |
---|---|
turns[] |
Optional. Der Inhalt, der an die aktuelle 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. |
turn_complete |
Optional. Wenn „wahr“ ist, sollte die Serverinhaltsgenerierung mit dem aktuell angesammelten Prompt beginnen. Andernfalls wartet der Server auf weitere Nachrichten, bevor die Generierung gestartet wird. |
BidiGenerateContentRealtimeInput
Nutzereingaben, die in Echtzeit gesendet werden.
Dieser unterscheidet sich in einigen Punkten von ClientContentUpdate
:
- Kann kontinuierlich und ohne Unterbrechung an die Modellgenerierung gesendet werden.
- Wenn Daten zwischen
ClientContentUpdate
undRealtimeUpdate
verschachtelt werden müssen, versucht der Server, die Antwort zu optimieren. Es gibt jedoch keine Garantie dafür. - „Ende der Äußerung“ wird nicht explizit angegeben, sondern wird vielmehr aus der Nutzeraktivität abgeleitet (z. B. Ende der Spracheingabe).
- Die Daten werden bereits vor dem Ende des Turns inkrementell verarbeitet, um einen schnellen Beginn der Antwort des Modells zu ermöglichen.
- Wird immer als Eingabe des Nutzers angenommen und kann nicht zum Ausfüllen des Unterhaltungsverlaufs verwendet werden.
Felder | |
---|---|
media_chunks[] |
Optional. Inline-Byte-Daten für die Medieneingabe. |
activity_start |
Optional. Markiert den Beginn der Nutzeraktivität. Diese Daten können nur gesendet werden, wenn die automatische (d.h. serverseitige) Aktivitätserkennung deaktiviert ist. |
activity_end |
Optional. Markiert das Ende der Nutzeraktivität. Diese Daten können nur gesendet werden, wenn die automatische (d.h. serverseitige) Aktivitätserkennung deaktiviert ist. |
ActivityEnd
Dieser Typ hat keine Felder.
Markiert das Ende der Nutzeraktivität.
ActivityStart
Dieser Typ hat keine Felder.
Es muss jeweils nur eines der Felder in dieser Nachricht festgelegt werden. Markiert den Beginn der Nutzeraktivität.
BidiGenerateContentServerContent
Inkrementelle Serveraktualisierung, die vom Modell als Reaktion auf Clientnachrichten generiert wird.
Die Inhalte werden so schnell wie möglich, aber nicht in Echtzeit generiert. Clients können die Daten zwischenspeichern und in Echtzeit wiedergeben.
Felder | |
---|---|
turn_complete |
Nur Ausgabe. Wenn „true“ (wahr) ist, ist die Generierung des Modells abgeschlossen. Die Generierung beginnt nur als Reaktion auf weitere Clientnachrichten. Kann zusammen mit |
interrupted |
Nur Ausgabe. Wenn dieser Wert „true“ ist, wurde die aktuelle Modellgenerierung durch eine Clientnachricht unterbrochen. Wenn der Client die Inhalte in Echtzeit wiedergibt, ist dies ein gutes Signal, um die Wiedergabe anzuhalten und die aktuelle Warteschlange zu leeren. Wenn der Client die Inhalte in Echtzeit wiedergibt, ist dies ein gutes Signal, die Wiedergabe zu beenden und die aktuelle Wiedergabeliste zu leeren. |
generation_complete |
Nur Ausgabe. Wenn „true“ (wahr) ist, ist die Generierung des Modells abgeschlossen. Wenn das Modell während der Generierung unterbrochen wird, wird in der unterbrochenen Runde keine „generation_complete“-Nachricht gesendet. Stattdessen wird „interrupted > turn_complete“ verwendet. Wenn das Modell eine Echtzeitwiedergabe annimmt, gibt es eine Verzögerung zwischen „generation_complete“ und „turn_complete“, weil das Modell auf das Ende der Wiedergabe wartet. |
grounding_metadata |
Nur Ausgabe. In den Metadaten werden die Quellen angegeben, die zum Fundieren der generierten Inhalte verwendet wurden. |
input_transcription |
Optional. Transkription eingeben Die Transkription ist unabhängig von der Modellrunde, d. h., es gibt keine Reihenfolge zwischen Transkription und Modellrunde. |
output_transcription |
Optional. Transkript ausgeben Die Transkription ist unabhängig von der Modellrunde, d. h., es gibt keine Reihenfolge zwischen Transkription und Modellrunde. |
model_turn |
Nur Ausgabe. Die Inhalte, die das Modell im Rahmen der aktuellen Unterhaltung mit dem Nutzer generiert hat. |
Sprache-zu-Text
Nachricht zur Audiotranskription
Felder | |
---|---|
text |
Optional. Transkripttext |
finished |
Optional. Der boolesche Wert gibt das Ende der Transkription an. |
BidiGenerateContentSetup
Nachricht, die in der ersten und einzigen ersten Kundennachricht gesendet werden soll. Enthält die Konfiguration, die für die Dauer der Streamingsitzung gilt.
Clients sollten auf eine BidiGenerateContentSetupComplete
-Nachricht warten, bevor sie weitere Nachrichten senden.
Felder | |
---|---|
model |
Erforderlich. Der vollständig qualifizierte Name des Publisher-Modells. Format des Publisher-Modells: |
generation_config |
Optional. Generierungskonfiguration Die folgenden Felder werden nicht unterstützt:
|
system_instruction |
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 angezeigt. |
tools[] |
Optional. Eine Liste von Ein |
session_resumption |
Optional. Konfiguriert den Mechanismus zur Sitzungswiederaufnahme. Wenn diese Option aktiviert ist, sendet der Server regelmäßig |
context_window_compression |
Optional. Konfiguriert den Komprimierungsmechanismus für den Kontextfenster. Wenn diese Option aktiviert ist, komprimiert der Server das Kontextfenster so, dass es in die angegebene Länge passt. |
realtime_input_config |
Optional. Hiermit wird die Verarbeitung von Echtzeiteingängen konfiguriert. |
input_audio_transcription |
Optional. Die Transkription der Eingabe stimmt mit der Sprache der Audioeingabe überein. |
output_audio_transcription |
Optional. Die Transkription der Ausgabe entspricht dem Sprachcode, der für die Audioausgabe angegeben wurde. |
AudioTranscriptionConfig
Dieser Typ hat keine Felder.
Die Konfiguration der Audiotranskription.
BidiGenerateContentSetupComplete
Dieser Typ hat keine Felder.
Wird als Antwort auf eine BidiGenerateContentSetup
-Nachricht vom Client gesendet.
BidiGenerateContentToolCall
Bitte den Kunden, die function_calls
auszuführen und die Antworten mit den entsprechenden id
s zurückzugeben.
Felder | |
---|---|
function_calls[] |
Nur Ausgabe. Der auszuführende Funktionsaufruf. |
BidiGenerateContentToolCallCancellation
Benachrichtigung für den Kunden, dass eine zuvor ausgestellte ToolCallMessage
mit den angegebenen id
s nicht ausgeführt und storniert werden sollte. Wenn diese Toolaufrufe Nebenwirkungen hatten, können Kunden versuchen, sie rückgängig zu machen. Diese Meldung wird nur angezeigt, wenn die Clients die Server-Runden unterbrechen.
Felder | |
---|---|
ids[] |
Nur Ausgabe. Die IDs der abzubrechenden Toolaufrufe. |
BidiGenerateContentToolResponse
Vom Client generierte Antwort auf eine vom Server empfangene ToolCall
. Einzelne FunctionResponse
-Objekte werden über das Feld id
mit den entsprechenden FunctionCall
-Objekten abgeglichen.
Bei den unary- und serverseitigen Streaming-GenerateContent APIs erfolgt der Funktionsaufruf durch den Austausch der Content
-Teile, während bei den bidi-GenerateContent APIs der Funktionsaufruf über diese speziellen Nachrichten erfolgt.
Felder | |
---|---|
function_responses[] |
Optional. Die Antwort auf die Funktionsaufrufe. |
RealtimeInputConfig
Hiermit wird das Verhalten der Echtzeiteingabe in BidiGenerateContent
konfiguriert.
Felder | |
---|---|
automatic_activity_detection |
Optional. Wenn Sie nichts festlegen, ist die automatische Aktivitätserkennung standardmäßig aktiviert. Wenn die automatische Spracherkennung deaktiviert ist, muss der Client Aktivitätssignale senden. |
activity_handling |
Optional. Hier wird definiert, welche Auswirkungen die Aktivität hat. |
turn_coverage |
Optional. Hier wird festgelegt, welche Eingabe in den Zug des Nutzers eingeschlossen ist. |
ActivityHandling
Die verschiedenen Möglichkeiten, mit Nutzeraktivitäten umzugehen.
Enums | |
---|---|
ACTIVITY_HANDLING_UNSPECIFIED |
Wenn keine Angabe erfolgt, ist das Standardverhalten START_OF_ACTIVITY_INTERRUPTS . |
START_OF_ACTIVITY_INTERRUPTS |
Wenn „true“ festgelegt ist, wird die Antwort des Modells durch den Beginn einer Aktivität unterbrochen (auch als „Barge-in“ bezeichnet). Die aktuelle Antwort des Modells wird im Moment der Unterbrechung abgeschnitten. Das ist das Standardverhalten. |
NO_INTERRUPTION |
Die Antwort des Modells wird nicht unterbrochen. |
AutomaticActivityDetection
Hier können Sie die automatische Erkennung von Aktivitäten konfigurieren.
Felder | |
---|---|
start_of_speech_sensitivity |
Optional. Bestimmt, wie wahrscheinlich es ist, dass Sprache erkannt wird. |
end_of_speech_sensitivity |
Optional. Bestimmt, wie wahrscheinlich es ist, dass erkannte Sprache beendet wird. |
prefix_padding_ms |
Optional. Die erforderliche Dauer der erkannten Sprache, bevor der Sprachbeginn festgelegt wird. Je niedriger dieser Wert ist, desto empfindlicher ist die Erkennung des Sprachbeginns und desto kürzer kann die Sprache erkannt werden. Dadurch erhöht sich jedoch auch die Wahrscheinlichkeit von falsch positiven Ergebnissen. |
silence_duration_ms |
Optional. Die erforderliche Dauer der erkannten Stille (oder des Sprachlosen), bevor das Ende der Spracheingabe festgeschrieben wird. Je höher dieser Wert ist, desto länger können die Pausen zwischen den gesprochenen Texten sein, ohne die Aktivitäten des Nutzers zu unterbrechen. Dies erhöht jedoch die Latenz des Modells. |
disabled |
Optional. Wenn diese Option aktiviert ist, werden erkannte Sprach- und Texteingaben als Aktivität gezählt. Wenn diese Option deaktiviert ist, muss der Client Aktivitätssignale senden. |
EndSensitivity
Ende der Sprachempfindlichkeit.
Enums | |
---|---|
END_SENSITIVITY_UNSPECIFIED |
Der Standardwert ist END_SENSITIVITY_LOW. |
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. |
StartSensitivity
Beginn der Sprachempfindlichkeit.
Enums | |
---|---|
START_SENSITIVITY_UNSPECIFIED |
Der Standardwert ist START_SENSITIVITY_LOW. |
START_SENSITIVITY_HIGH |
Bei der automatischen Erkennung wird der Beginn von Spracheingaben häufiger erkannt. |
START_SENSITIVITY_LOW |
Die automatische Erkennung erkennt den Beginn von Sprache dann seltener. |
TurnCoverage
Optionen, welche Eingaben in den Beitrag des Nutzers aufgenommen werden sollen.
Enums | |
---|---|
TURN_COVERAGE_UNSPECIFIED |
Wenn keine Angabe erfolgt, ist das Standardverhalten TURN_INCLUDES_ALL_INPUT . |
TURN_INCLUDES_ONLY_ACTIVITY |
Der Nutzerbeitrag enthält nur Aktivitäten seit dem letzten Beitrag, ausgenommen Inaktivität (z.B. Stille im Audiostream). |
TURN_INCLUDES_ALL_INPUT |
Der Nutzerbeitrag enthält alle Echtzeiteingaben seit dem letzten Beitrag, einschließlich Inaktivität (z.B. Stille im Audiostream). Das ist das Standardverhalten. |
UsageMetadata
Metadaten zur Nutzung der im Cache gespeicherten Inhalte.
Felder | |
---|---|
total_token_count |
Die Gesamtzahl der Tokens, die für die im Cache gespeicherten Inhalte benötigt werden. |
text_count |
Anzahl der Textzeichen. |
image_count |
Anzahl der Bilder. |
video_duration_seconds |
Dauer des Videos in Sekunden. |
audio_duration_seconds |
Dauer des Audios in Sekunden. |
GoAway
Der Server kann den Client bald nicht mehr bedienen.
Felder | |
---|---|
time_left |
Die verbleibende Zeit, bevor die Verbindung als ABGEBROCHEN beendet wird. Die hier zurückgegebene minimale Zeit wird zusammen mit den Ratenlimits für ein bestimmtes Modell anders angegeben. |
SessionResumptionUpdate
Aktualisierung des Status der Sitzungswiederaufnahme.
Wird nur gesendet, wenn BidiGenerateContentSetup.session_resumption
festgelegt wurde.
Felder | |
---|---|
new_handle |
Neuer Handle, der den Status darstellt, der fortgesetzt werden kann. Ist leer, wenn |
resumable |
„Wahr“, wenn die Sitzung an dieser Stelle fortgesetzt werden kann. Es ist unter Umständen nicht möglich, die Sitzung fortzusetzen. In diesem Fall senden wir ein Update mit einer leeren new_handle-Angabe und resumable=false. Ein Beispiel für einen solchen Fall wäre ein Modell, das Funktionsaufrufe ausführt oder nur generiert. Die Wiederaufnahme der Sitzung (mit dem vorherigen Sitzungstoken) in einem solchen Zustand führt zu Datenverlusten. |
last_consumed_client_message_index |
Index der letzten vom Client gesendeten Nachricht, die im Status enthalten ist, der durch dieses SessionResumptionToken dargestellt wird. Wird nur gesendet, wenn Durch diesen Index können Nutzer nahtlos wieder eine Verbindung herstellen und verhindern, dass ein Teil des Echtzeit-Audio-/Videoinputs verloren geht. Wenn der Client die Verbindung vorübergehend trennen möchte (z. B. aufgrund des Empfangs von GoAway), kann er dies tun, ohne den Status zu verlieren, indem er die seit der letzten Sie wird nicht für die Wiederaufnahme verwendet, um den Status wiederherzustellen. In diesen Fällen sind teilweise Audio- und Videoframes wahrscheinlich nicht erforderlich. |
Nächste Schritte
- Weitere Informationen zu Funktionsaufrufen
- Beispiele finden Sie in der Referenz zu Funktionsaufrufen.