Die Live API ermöglicht bidirektionale Sprach- und Videointeraktionen mit geringer Latenz mit Gemini. Mit der Live API können Sie Endnutzern natürliche, menschenähnliche Sprachkonversationen ermöglichen und die Möglichkeit bieten, die Antworten des Modells mit Sprachbefehlen zu unterbrechen. Die Live API kann Text-, Audio- und Videoeingaben verarbeiten und Text- und Audioausgaben bereitstellen.
Weitere Informationen zur Live API finden Sie unter Live API.
Leistungsspektrum
Die Live API bietet die folgenden wichtigen Funktionen:
- Multimodalität: Das Modell kann sehen, hören und sprechen.
- Echtzeitinteraktion mit geringer Latenz: Das Modell kann schnelle Antworten liefern.
- Sitzungsspeicher: 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 unserer Partner bei Daily.
Unterstützte Modelle
- Gemini 2.5 Flash mit nativer Audio-Live-API
Vorschau - Gemini 2.0 Flash mit Live API
Vorschau - Gemini 2.5 Flash
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 zustandsbehaftete API, die WebSockets verwendet.
In diesem Abschnitt finden Sie ein Beispiel für die Verwendung der Live API für die Text-zu-Text-Generierung mit Python 3.9+.
Python
Installieren
pip install --upgrade google-genai
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Umgebungsvariablen für die Verwendung des Gen AI SDK mit Vertex AI festlegen:
# 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=global export GOOGLE_GENAI_USE_VERTEXAI=True
Integrationsleitfaden
In diesem Abschnitt wird beschrieben, wie die Integration mit der Live API funktioniert.
Sitzungen
Über eine WebSocket-Verbindung wird eine Sitzung zwischen dem Client und dem Gemini-Server hergestellt.
Nachdem ein Client eine neue Verbindung hergestellt hat, können in der Sitzung Nachrichten mit dem Server ausgetauscht werden, 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, die Systemanweisungen und die Tools.
Hier sehen Sie 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 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- oder Videoeingabe in Echtzeit |
BidiGenerateContentToolResponse |
Antwort auf ein ToolCallMessage , das 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:
ws.addEventListener("message", async (evt) => { if (evt.data instanceof Blob) { // Process the received data (audio, video, etc.) } else { // Process JSON response } });
Servernachrichten enthalten genau eines der Felder aus der folgenden Objektgruppe:
{
"setupComplete": BidiGenerateContentSetupComplete,
"serverContent": BidiGenerateContentServerContent,
"toolCall": BidiGenerateContentToolCall,
"toolCallCancellation": BidiGenerateContentToolCallCancellation
"usageMetadata": UsageMetadata
"goAway": GoAway
"sessionResumptionUpdate": SessionResumptionUpdate
"inputTranscription": BidiGenerateContentTranscription
"outputTranscription": BidiGenerateContentTranscription
}
Unterstützte Servermeldungen
Die unterstützten Servernachrichten sind in der folgenden Tabelle aufgeführt:
Nachricht | Beschreibung |
---|---|
BidiGenerateContentSetupComplete |
Eine BidiGenerateContentSetup -Nachricht vom Client, die gesendet wird, wenn die Einrichtung abgeschlossen ist |
BidiGenerateContentServerContent |
Inhalte, die vom Modell als Reaktion auf eine Clientnachricht generiert werden |
BidiGenerateContentToolCall |
Bitte den Client, die Funktionsaufrufe auszuführen und die Antworten mit den entsprechenden IDs zurückzugeben. |
BidiGenerateContentToolCallCancellation |
Wird gesendet, wenn ein Funktionsaufruf abgebrochen wird, weil der Nutzer die Modellausgabe unterbricht. |
UsageMetadata |
Ein Bericht über die Anzahl der bisher in der Sitzung verwendeten Tokens |
GoAway |
Ein Signal, dass die aktuelle Verbindung bald beendet wird |
SessionResumptionUpdate |
Ein Sitzungsprüfpunkt, der fortgesetzt werden kann |
BidiGenerateContentTranscription |
Eine Transkription der Sprache des Nutzers oder des Modells |
Inkrementelle Inhaltsupdates
Verwenden Sie inkrementelle Updates, um Texteingaben zu senden, Sitzungskontext zu erstellen oder wiederherzustellen. Bei kurzen Kontexten können Sie Turn-by-Turn-Interaktionen senden, um die genaue Abfolge der Ereignisse darzustellen. Bei längeren Kontexten empfiehlt es sich, eine einzelne Nachrichtenzusammenfassung bereitzustellen, um das Kontextfenster für die Folgeinteraktionen freizugeben.
Hier ein Beispiel für eine Kontextnachricht:
{ "clientContent": { "turns": [ { "parts":[ { "text": "" } ], "role":"user" }, { "parts":[ { "text": "" } ], "role":"model" } ], "turnComplete": true } }
Inhaltsabschnitte können zwar vom Typ functionResponse
sein, BidiGenerateContentClientContent
sollte jedoch nicht verwendet werden, um eine Antwort auf die vom Modell ausgegebenen Funktionsaufrufe zu geben. Verwenden Sie stattdessen BidiGenerateContentToolResponse
. BidiGenerateContentClientContent
sollte nur verwendet werden, um vorherigen Kontext herzustellen oder Texteingaben für die Unterhaltung bereitzustellen.
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, indem Tool-Definitionen als Teil der BidiGenerateContentSetup
-Nachricht gesendet werden.
Sie definieren Funktionen mit JSON, insbesondere mit einer ausgewählten Teilmenge 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): Definiert die Eingabedaten, die für die Funktion erforderlich sind.
type (string): Gibt den allgemeinen Datentyp an, z. B. „object“.
properties (Objekt): Hier werden die einzelnen Parameter mit folgenden Attributen aufgeführt:
- type (string): Der Datentyp des Parameters, z. B. „string“, „integer“ oder „boolean“.
- description (string): Eine klare Erläuterung des Zwecks und des erwarteten Formats des Parameters.
required (Array): Ein Array von Strings mit den Parameternamen, die für die Funktion erforderlich sind.
Codebeispiele für eine Funktionsdeklaration mit curl-Befehlen finden Sie unter Funktionsaufrufe mit der Gemini API. Beispiele für das Erstellen von Funktionsdeklarationen mit den Gemini API SDKs finden Sie im Tutorial zu Funktionsaufrufen.
Aus einem einzelnen Prompt kann das Modell mehrere Funktionsaufrufe und den Code generieren, der zum Verketten ihrer Ausgaben erforderlich ist. Dieser Code wird in einer Sandbox-Umgebung ausgeführt und generiert nachfolgende BidiGenerateContentToolCall
-Nachrichten. Die Ausführung wird angehalten, bis die Ergebnisse jedes Funktionsaufrufs 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
Liste der unterstützten Audioformate
Systemanweisungen
Sie können Systemanweisungen verwenden, um die Ausgabe des Modells besser zu steuern und den Ton und die Stimmung von Audioantworten festzulegen.
Systemanweisungen werden dem Prompt vor Beginn der Interaktion hinzugefügt und bleiben für die gesamte Sitzung in Kraft.
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 durch die Spracherkennung (Voice Activity Detection, VAD) eine Unterbrechung erkannt wird, wird die laufende Generierung abgebrochen und verworfen. Im Sitzungsverlauf werden nur die Informationen gespeichert, 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
Wenn Sie eine Stimme angeben möchten, legen Sie voiceName
im Objekt speechConfig
als Teil Ihrer Sitzungskonfiguration fest.
Hier sehen Sie die JSON-Darstellung eines speechConfig
-Objekts:
{ "voiceConfig": { "prebuiltVoiceConfig": { "voiceName": "VOICE_NAME" } } }
Eine Liste der unterstützten Stimmen finden Sie unter Sprach- und Spracherkennungseinstellungen ändern.
Beschränkungen
Beachten Sie bei der Planung Ihres Projekts die folgenden Einschränkungen der Live API und von Gemini 2.0.
Clientauthentifizierung
Die Live API bietet nur die Server-zu-Server-Authentifizierung und wird nicht für die direkte Clientnutzung empfohlen. Die Clienteingabe sollte über einen Zwischenanwendungsserver weitergeleitet werden, um eine sichere Authentifizierung bei der Live API zu ermöglichen.
Maximale Sitzungsdauer
Die maximale Länge einer Unterhaltungssitzung beträgt standardmäßig 10 Minuten. Weitere Informationen finden Sie unter Sitzungslänge.
Erkennung von Sprachaktivitäten (Voice Activity Detection, VAD)
Standardmäßig führt das Modell automatisch die Spracherkennung (Voice Activity Detection, VAD) für einen kontinuierlichen Audioeingabestream durch. VAD 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 zwischengespeicherte Audiodaten zu leeren. 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. In dieser Konfiguration ist der Client dafür verantwortlich, die Sprache des Nutzers zu erkennen und ActivityStart
- und ActivityEnd
-Nachrichten zu den entsprechenden Zeiten zu senden. In dieser Konfiguration wird kein AudioStreamEnd
gesendet. Stattdessen wird jede Unterbrechung des Streams durch eine ActivityEnd
-Meldung gekennzeichnet.
Zusätzliche Einschränkungen
Manuelle Endpunkte werden nicht unterstützt.
Audioeingaben und ‑ausgaben beeinträchtigen die Fähigkeit des Modells, Funktionsaufrufe zu verwenden.
Tokenanzahl
Die Anzahl der Tokens wird nicht unterstützt.
Ratenlimits
Es gelten die folgenden Ratenbegrenzungen:
- 5.000 gleichzeitige Sitzungen pro API-Schlüssel
- 4 Millionen Tokens pro Minute
Nachrichten und Ereignisse
BidiGenerateContentClientContent
Inkrementelles Update der aktuellen Unterhaltung, das 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.
Eine Nachricht hier unterbricht die aktuelle Modellgenerierung.
Felder | |
---|---|
turns[] |
Optional. Die Inhalte, die der aktuellen Unterhaltung mit dem Modell angehängt werden. 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 „true“, wird die Serverinhaltsgenerierung mit dem aktuell angesammelten Prompt gestartet. Andernfalls wartet der Server auf weitere Nachrichten, bevor er mit der Generierung beginnt. |
BidiGenerateContentRealtimeInput
Nutzereingaben, die in Echtzeit gesendet werden.
ClientContentUpdate
unterscheidet sich in einigen Punkten von ClientContentUpdate
:
- Kann kontinuierlich ohne Unterbrechung an die Modellgenerierung gesendet werden.
- Wenn Daten aus
ClientContentUpdate
undRealtimeUpdate
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 Beginn der Antwort des Modells zu ermöglichen.
- Wird immer als Eingabe des Nutzers angenommen (kann nicht zum Auffüllen des Unterhaltungsverlaufs verwendet werden).
Felder | |
---|---|
media_chunks[] |
Optional. Inline-Byte-Daten für Media-Eingabe. |
activity_start |
Optional. Markiert den Beginn der Nutzeraktivität. Diese kann nur gesendet werden, wenn die automatische (d.h. serverseitige) Aktivitätserkennung deaktiviert ist. |
activity_end |
Optional. Markiert das Ende der Nutzeraktivität. Diese kann 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 darf jeweils nur eines der Felder in dieser Nachricht festgelegt werden. Markiert den Beginn der Nutzeraktivität.
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 Daten puffern und in Echtzeit wiedergeben.
Felder | |
---|---|
turn_complete |
Nur Ausgabe. Bei „true“ gibt an, dass das Modell die Generierung abgeschlossen hat. Die Generierung beginnt erst als Reaktion auf zusätzliche Clientnachrichten. Kann zusammen mit |
interrupted |
Nur Ausgabe. Bei „true“ wird angegeben, dass die aktuelle Modellgenerierung durch eine Clientnachricht unterbrochen wurde. Wenn der Client die Inhalte in Echtzeit wiedergibt, ist dies ein gutes Signal, die aktuelle Warteschlange zu beenden und zu leeren. Wenn der Client die Inhalte in Echtzeit wiedergibt, ist dies ein gutes Signal, die aktuelle Wiedergabewarteschlange zu beenden und zu leeren. |
generation_complete |
Nur Ausgabe. Bei „true“ gibt an, dass das Modell die Generierung abgeschlossen hat. Wenn die Modellgenerierung unterbrochen wird, gibt es keine „generation_complete“-Meldung im unterbrochenen Zug. 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 auf das Ende der Wiedergabe wartet. |
grounding_metadata |
Nur Ausgabe. In den Metadaten werden die Quellen angegeben, die zur Fundierung generierter Inhalte verwendet wurden. |
input_transcription |
Optional. Transkription eingeben. Die Transkription ist unabhängig vom Modellzug, d. h. es gibt keine bestimmte Reihenfolge zwischen Transkription und Modellzug. |
output_transcription |
Optional. Ausgabetranskript. Die Transkription ist unabhängig vom Modellzug, d. h. es gibt keine bestimmte Reihenfolge zwischen Transkription und Modellzug. |
model_turn |
Nur Ausgabe. Die Inhalte, die das Modell im Rahmen der aktuellen Unterhaltung mit dem Nutzer generiert hat. |
Sprache-zu-Text
Meldung zum Audiotranskript.
Felder | |
---|---|
text |
Optional. Transkripttext. |
finished |
Optional. Der boolesche Wert gibt das Ende der Transkription an. |
BidiGenerateContentSetup
Nachricht, die in der ersten und einzigen ersten Client-Nachricht gesendet werden soll. Enthält die Konfiguration, die für die Dauer der Streaming-Sitzung gilt.
Clients sollten auf eine BidiGenerateContentSetupComplete
-Nachricht warten, bevor sie weitere Nachrichten senden.
Felder | |
---|---|
model |
Pflichtangabe. 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. Die vom Nutzer bereitgestellten Systemanweisungen für das Modell. Hinweis: In den Teilen sollte nur Text verwendet werden. Der Inhalt jedes Teils wird in einem separaten Absatz dargestellt. |
tools[] |
Optional. Eine Liste der Eine |
session_resumption |
Optional. Konfiguriert den Mechanismus zur Wiederaufnahme von Sitzungen. Falls enthalten, sendet der Server regelmäßig |
context_window_compression |
Optional. Konfiguriert den Mechanismus zur Komprimierung des Kontextfensters. Falls enthalten, komprimiert der Server das Kontextfenster, damit es in die angegebene Länge passt. |
realtime_input_config |
Optional. Konfiguriert die Verarbeitung von Echtzeiteingaben. |
input_audio_transcription |
Optional. Die Transkription der Eingabe entspricht der Sprache des Audioeingabeinhalts. |
output_audio_transcription |
Optional. Die Transkription der Ausgabe entspricht dem Sprachcode, der für das Ausgabesignal angegeben wurde. |
AudioTranscriptionConfig
Dieser Typ hat keine Felder.
Die Konfiguration für die Audiotranskription.
BidiGenerateContentSetupComplete
Dieser Typ hat keine Felder.
Wird als Antwort auf eine BidiGenerateContentSetup
-Nachricht vom Client gesendet.
BidiGenerateContentToolCall
Bitte den Client, function_calls
auszuführen und die Antworten mit den entsprechenden id
zurückzugeben.
Felder | |
---|---|
function_calls[] |
Nur Ausgabe. Der auszuführende Funktionsaufruf. |
BidiGenerateContentToolCallCancellation
Benachrichtigung für den Client, dass ein zuvor ausgestelltes ToolCallMessage
mit den angegebenen id
s nicht ausgeführt und storniert werden sollte. Wenn die Tool-Aufrufe Nebenwirkungen hatten, versuchen Clients möglicherweise, sie 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, während er bei den bidirektionalen GenerateContent-APIs über diese dedizierten Nachrichten erfolgt.
Felder | |
---|---|
function_responses[] |
Optional. Die Antwort auf die Funktionsaufrufe. |
RealtimeInputConfig
Konfiguriert das Echtzeit-Eingabeverhalten in BidiGenerateContent
.
Felder | |
---|---|
automatic_activity_detection |
Optional. Wenn nichts anderes festgelegt ist, ist die automatische Aktivitätserkennung standardmäßig aktiviert. Wenn die automatische Spracherkennung deaktiviert ist, muss der Client Aktivitätssignale senden. |
activity_handling |
Optional. Definiert die Auswirkungen von Aktivität. |
turn_coverage |
Optional. Definiert, welche Eingabe in den Zug des Nutzers einbezogen wird. |
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 |
Bei „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. |
AutomaticActivityDetection
Konfiguriert die automatische Erkennung von Aktivitäten.
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 die erkannte Sprache beendet wurde. |
prefix_padding_ms |
Optional. Die erforderliche Dauer der erkannten Sprache, bevor der Sprechbeginn festgelegt wird. Je niedriger dieser Wert ist, desto empfindlicher ist die Erkennung des Sprechbeginns und desto kürzer kann die Sprache erkannt werden. Dadurch erhöht sich aber auch die Wahrscheinlichkeit von falsch positiven Ergebnissen. |
silence_duration_ms |
Optional. Die erforderliche Dauer der erkannten Stille (oder des erkannten Tons ohne Sprache), 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. |
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
Empfindlichkeit zum Erkennen des Redeendes.
Enums | |
---|---|
END_SENSITIVITY_UNSPECIFIED |
Der Standardwert ist END_SENSITIVITY_LOW. |
END_SENSITIVITY_HIGH |
Die automatische Erkennung beendet die Sprache häufiger. |
END_SENSITIVITY_LOW |
Bei der automatischen Erkennung wird die Sprache seltener beendet. |
StartSensitivity
Empfindlichkeit zum Erkennen des Redebeginns.
Enums | |
---|---|
START_SENSITIVITY_UNSPECIFIED |
Der Standardwert ist START_SENSITIVITY_LOW. |
START_SENSITIVITY_HIGH |
Durch die automatische 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 in den Zug des Nutzers einbezogen wird.
Enums | |
---|---|
TURN_COVERAGE_UNSPECIFIED |
Wenn keine Angabe erfolgt, ist das Standardverhalten TURN_INCLUDES_ALL_INPUT . |
TURN_INCLUDES_ONLY_ACTIVITY |
Die Nutzerrunde umfasst nur Aktivitäten seit der letzten Runde, Inaktivität (z.B. Stille im Audio-Stream) wird nicht berücksichtigt. |
TURN_INCLUDES_ALL_INPUT |
Der Nutzerzug umfasst alle Echtzeiteingaben seit dem letzten Zug, 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 |
Gesamtzahl der Tokens, die durch die Inhalte im Cache verbraucht werden. |
text_count |
Anzahl der Textzeichen. |
image_count |
Anzahl der Bilder. |
video_duration_seconds |
Dauer des Videos in Sekunden. |
audio_duration_seconds |
Dauer des Audioinhalts in Sekunden. |
GoAway
Der Server kann den Client in Kürze nicht mehr bedienen.
Felder | |
---|---|
time_left |
Die verbleibende Zeit, bevor die Verbindung als ABORTED beendet wird. Die hier zurückgegebene Mindestzeit wird zusammen mit den Ratenlimits für ein bestimmtes Modell unterschiedlich angegeben. |
SessionResumptionUpdate
Aktualisierung des Status der Sitzungswiederaufnahme.
Wird nur gesendet, wenn BidiGenerateContentSetup.session_resumption
festgelegt wurde.
Felder | |
---|---|
new_handle |
Neuer Handle, der einen Status darstellt, der fortgesetzt werden kann. Leer, wenn |
resumable |
„True“, wenn die Sitzung an dieser Stelle fortgesetzt werden kann. An einigen Stellen ist es möglicherweise nicht möglich, die Sitzung fortzusetzen. In diesem Fall senden wir ein Update mit leerem „new_handle“ und „resumable=false“. Ein Beispiel für einen solchen Fall ist, wenn das Modell Funktionsaufrufe ausführt oder nur generiert. Wenn Sie die Sitzung in diesem Zustand fortsetzen (mit dem Token der vorherigen Sitzung), kommt es zu Datenverlusten. |
last_consumed_client_message_index |
Index der letzten vom Client gesendeten Nachricht, die im durch dieses SessionResumptionToken dargestellten Status enthalten ist. Wird nur gesendet, wenn Durch das Vorhandensein dieses Index können Nutzer die Verbindung transparent wiederherstellen und vermeiden, dass ein Teil der Echtzeit-Audioeingabe oder des Videos 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 Nachrichten puffert, die seit dem letzten Es wird nicht für die Wiederaufnahme zum Wiederherstellen des Status verwendet. In diesen Fällen sind partielle Audio- und Videoframes wahrscheinlich nicht erforderlich. |
Nächste Schritte
- Weitere Informationen zu Funktionsaufrufen
- Beispiele finden Sie in der Referenz zu Funktionsaufrufen.