Dieses Dokument enthält eine Referenz für die Live API und zeigt, wie Sie sie für bidirektionales Streaming mit Gemini verwenden. Es deckt folgende Themenbereiche ab:
- Funktionen:Hier erfahren Sie mehr über die wichtigsten Funktionen der Live API, darunter Multimodalität und Interaktion mit geringer Latenz.
- Erste Schritte:Hier finden Sie ein Kurzanleitungsbeispiel für die Verwendung der API mit der Text-zu-Text-Generierung.
- Integrationsleitfaden:Hier werden die wichtigsten Konzepte für die Integration in die API erläutert, z. B. Sitzungen, Nachrichtentypen und Funktionsaufrufe.
- Einschränkungen:Sehen Sie sich die aktuellen Einschränkungen der API an, einschließlich Sitzungsdauer und Authentifizierung.
- Nachrichten und Ereignisse:Hier finden Sie die detaillierte Referenz für alle Client- und Servernachrichten.
Das folgende Diagramm fasst den gesamten Workflow zusammen:
Mit der Live API können Sie latenzarme, bidirektionale Sprach- und Videounterhaltungen mit Gemini führen. Sie können natürliche, menschenähnliche Interaktionen für Ihre Nutzer erstellen, einschließlich der Möglichkeit, die Antworten des Modells mit Sprachbefehlen zu unterbrechen. Die Live API verarbeitet Text-, Audio- und Videoeingaben und gibt Text und Audio aus.
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.
- Interaktion in Echtzeit mit geringer Latenz: Das Modell liefert schnelle Antworten für einen flüssigen Dialog.
- Sitzungsspeicher: Das Modell speichert alle Interaktionen innerhalb einer einzelnen Sitzung und ruft zuvor gehörte oder gesehene Informationen ab.
- Unterstützung von Funktionsaufrufen, Codeausführung und der Google 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 von 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 oder höher.
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 Sie Ihre Anwendung in die Live API einbinden.
Sitzungen
Über eine WebSocket-Verbindung wird eine Sitzung zwischen dem Client und dem Gemini-Server hergestellt. Nachdem Sie eine neue Verbindung hergestellt haben, kann Ihr Client Nachrichten mit dem Server austauschen, um Folgendes zu tun:
- Text, Audio oder Video an den Gemini-Server senden
- Audio-, Text- oder Funktionsaufrufanfragen vom Gemini-Server empfangen.
Senden Sie die Sitzungskonfiguration in der ersten Nachricht, nachdem Sie eine Verbindung hergestellt haben. Eine Sitzungskonfiguration umfasst das Modell, die Parameter für die Generierung, 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, sendet Ihr Client ein JSON-Objekt über eine offene WebSocket-Verbindung. Das JSON-Objekt muss genau eines der Felder aus der folgenden Objektgruppe enthalten:
{
"setup": BidiGenerateContentSetup,
"clientContent": BidiGenerateContentClientContent,
"realtimeInput": BidiGenerateContentRealtimeInput,
"toolResponse": BidiGenerateContentToolResponse
}
Unterstützte Client-Nachrichten
In der folgenden Tabelle werden die Nachrichten beschrieben, die Sie an den Server senden können.
Nachricht | Beschreibung | Anwendungsfall |
---|---|---|
BidiGenerateContentSetup |
Sitzungskonfiguration, die Sie in der ersten Nachricht senden. | Einmal zu Beginn einer neuen Sitzung senden, um das Modell, die Tools und andere Parameter zu konfigurieren. |
BidiGenerateContentClientContent |
Eine inkrementelle Inhaltsaktualisierung der aktuellen Unterhaltung vom Client. | Texteingaben senden, Sitzungskontext herstellen oder wiederherstellen oder detaillierte Interaktionen bereitstellen. |
BidiGenerateContentRealtimeInput |
Audio- oder Videoeingabe in Echtzeit. | Kontinuierliche Mediendaten (z. B. Sprache) an das Modell streamen, ohne auf den Abschluss eines Turns zu warten. |
BidiGenerateContentToolResponse |
Eine Antwort auf eine ToolCallMessage vom Server. |
Geben Sie die Ergebnisse an das Modell zurück, nachdem Sie einen vom Server angeforderten Funktionsaufruf ausgeführt haben. |
Nachrichten empfangen
Wenn Sie Nachrichten von Gemini erhalten möchten, müssen Sie auf das WebSocket-Ereignis message
warten. Parsen Sie dann das Ergebnis gemäß den Definitionen der unterstützten Servermeldungen.
Beispiel:
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
In der folgenden Tabelle werden die Nachrichten beschrieben, die Sie vom Server erhalten können.
Nachricht | Beschreibung | Anwendungsfall |
---|---|---|
BidiGenerateContentSetupComplete |
Bestätigt eine BidiGenerateContentSetup -Nachricht vom Client, wenn die Einrichtung abgeschlossen ist. |
Bestätigt dem Kunden, dass die Erstkonfiguration empfangen wurde und die Sitzung für die Interaktion bereit ist. |
BidiGenerateContentServerContent |
Inhalte, die vom Modell als Reaktion auf eine Clientnachricht generiert werden. | Stellt dem Client die Antwort des Modells (Text oder Audio) zur Verfügung. |
BidiGenerateContentToolCall |
Eine Anfrage an den Client, Funktionsaufrufe auszuführen und die Antworten zurückzugeben. | Weist den Client an, ein bestimmtes Tool oder eine bestimmte Funktion mit den angegebenen Argumenten auszuführen. |
BidiGenerateContentToolCallCancellation |
Wird gesendet, wenn ein Funktionsaufruf abgebrochen wird, weil der Nutzer die Modellausgabe unterbricht. | Benachrichtigt den Client, einen ausstehenden Tool-Aufruf abzubrechen. |
UsageMetadata |
Ein Bericht über die Anzahl der bisher in der Sitzung verwendeten Tokens. | Tokenverbrauch während einer Sitzung überwachen |
GoAway |
Ein Signal, dass die aktuelle Verbindung bald beendet wird. | Ermöglicht dem Client, sich auf eine ordnungsgemäße Trennung vorzubereiten. |
SessionResumptionUpdate |
Ein Sitzungs-Checkpoint, der fortgesetzt werden kann. | Stellt ein Handle für den Client bereit, um eine getrennte Sitzung fortzusetzen. |
BidiGenerateContentTranscription |
Eine Transkription der Sprache des Nutzers oder des Modells. | Stellt eine Echtzeit-Textversion von gesprochenen Audioinhalten des Nutzers oder des Modells bereit. |
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 empfehlen wir, eine einzelne Nachrichtenzusammenfassung bereitzustellen, um das Kontextfenster für Folgeinteraktionen freizugeben.
Hier sehen Sie ein Beispiel für eine Kontextnachricht:
{ "clientContent": { "turns": [ { "parts":[ { "text": "" } ], "role":"user" }, { "parts":[ { "text": "" } ], "role":"model" } ], "turnComplete": true } }
Inhaltsteile können vom Typ functionResponse
sein, aber verwenden Sie BidiGenerateContentClientContent
nicht, um auf Funktionsaufrufe des Modells zu reagieren. Verwenden Sie stattdessen BidiGenerateContentToolResponse
. Verwenden Sie BidiGenerateContentClientContent
nur, um den 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
Sie müssen alle Funktionen zu Beginn der Sitzung deklarieren, indem Sie Tool-Definitionen als Teil der BidiGenerateContentSetup
-Nachricht senden.
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 Erläuterung 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): Listet einzelne Parameter auf, jeweils mit: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 mit Strings, in dem die Parameternamen aufgeführt sind, 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 zum Verketten ihrer Ausgaben generieren. 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 ermöglicht.
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 angeben, 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. Sie können sie nur zu Beginn einer Sitzung festlegen, unmittelbar nach der ersten Verbindung. Wenn Sie dem Modell während der Sitzung mehr Informationen zur Verfügung stellen möchten, verwenden Sie inkrementelle Inhaltsaktualisierungen.
Unterbrechungen
Nutzer können die Ausgabe des Modells jederzeit unterbrechen. Wenn die Sprachaktivitätserkennung (Voice Activity Detection, 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
Wenn Sie eine Stimme angeben möchten, legen Sie voiceName
im Objekt speechConfig
als Teil Ihrer Sitzungskonfiguration fest.
Im Folgenden finden Sie eine 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. Leiten Sie Client-Eingaben über einen Zwischenanwendungsserver weiter, um eine sichere Authentifizierung mit 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 Sprachaktivitätserkennung (Voice Activity Detection, VAD) für einen kontinuierlichen Audioeingabestream aus. Sie können VAD mit dem Feld RealtimeInputConfig.AutomaticActivityDetection
der Einrichtungsnachricht konfigurieren.
Die API unterstützt zwei VAD-Modi:
Automatische VAD (Standard): Der Server erkennt die Sprache des Nutzers.
- Wenn der Audio-Stream länger als eine Sekunde pausiert wird (z. B. wenn der Nutzer das Mikrofon stummschaltet), wird ein
AudioStreamEnd
-Ereignis gesendet, um zwischengespeicherte Audioinhalte zu leeren. - Ihr Client kann das Senden von Audiodaten jederzeit fortsetzen.
- Wenn der Audio-Stream länger als eine Sekunde pausiert wird (z. B. wenn der Nutzer das Mikrofon stummschaltet), wird ein
Manuelle VAD: Wenn Sie diesen Modus verwenden möchten, legen Sie in der Einrichtungsnachricht für
RealtimeInputConfig.AutomaticActivityDetection.disabled
den Werttrue
fest.- Ihr Client ist dafür verantwortlich, die Sprache des Nutzers zu erkennen und
ActivityStart
- undActivityEnd
-Nachrichten zum richtigen Zeitpunkt zu senden. - In dieser Konfiguration wird kein
AudioStreamEnd
-Ereignis gesendet. Stattdessen wird jede Unterbrechung des Streams mit einerActivityEnd
-Meldung gekennzeichnet.
- Ihr Client ist dafür verantwortlich, die Sprache des Nutzers zu erkennen und
Weitere Einschränkungen
- Manuelle Endpunkte werden nicht unterstützt.
- Audioeingaben und ‑ausgaben können sich negativ auf die Fähigkeit des Modells auswirken, Funktionsaufrufe zu verwenden.
Anzahl der Tokens
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
Ein inkrementelles Update des aktuellen Gesprächs, das vom Client bereitgestellt wird. Alle Inhalte werden bedingungslos an den Unterhaltungsverlauf angehängt und als Teil des Prompts für das Modell verwendet, um Inhalte zu generieren.
Eine Nachricht 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.
Sie unterscheidet sich in folgenden 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 und 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
Ein inkrementelles Serverupdate, 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 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
Eine Nachricht, die in der ersten und nur in der ersten Client-Nachricht gesendet werden soll. Sie 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 Komprimierungsmechanismus für das Kontextfenster. 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
Eine Anfrage an 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
Eine Benachrichtigung für den Client, dass ein zuvor ausgestelltes ToolCallMessage
mit den angegebenen id
s nicht ausgeführt und abgebrochen werden sollte. Wenn es Nebenwirkungen bei diesen Tool-Aufrufen gab, können Clients versuchen, 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
Eine vom Client generierte Antwort auf eine ToolCall
vom Server. Einzelne FunctionResponse
-Objekte werden über das Feld id
mit den entsprechenden FunctionCall
-Objekten abgeglichen.
Bei den unären und Server-Streaming-APIs von GenerateContent
erfolgt der Funktionsaufruf durch den Austausch von Content
-Teilen. Bei den bidirektionalen GenerateContent
APIs erfolgt der Funktionsaufruf über diese spezielle Gruppe von Nachrichten.
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 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 Beginn der Sprache festgelegt wird. Ein niedrigerer Wert macht die Erkennung des Sprechbeginns empfindlicher und ermöglicht die Erkennung kürzerer Sprache. Ein niedrigerer Wert erhöht jedoch auch die Wahrscheinlichkeit von falsch positiven Ergebnissen. |
silence_duration_ms |
Optional. Die erforderliche Dauer der erkannten Stille (oder des sprachlosen Audios), bevor das Ende der Sprache erkannt wird. Bei einem größeren Wert können Sprachlücken länger sein, ohne dass die Aktivität des Nutzers unterbrochen wird. Allerdings erhöht sich dadurch auch 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
Gibt an, dass der Server den Client bald nicht mehr bedienen kann.
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. Es ist möglicherweise nicht immer möglich, eine Sitzung fortzusetzen. In diesem Fall sendet der Server ein Update mit einem leeren |
last_consumed_client_message_index |
Der Index der letzten vom Client gesendeten Nachricht, die im durch diese Durch diesen Index können Nutzer die Verbindung transparent wiederherstellen und vermeiden, dass Teile von Audio- oder Videoeingaben in Echtzeit verloren gehen. Wenn ein Client die Verbindung vorübergehend trennen möchte (z. B. nach dem Empfang von Sie wird nicht für die „Wiederaufnahme zum Wiederherstellen des Status“ zu einem späteren Zeitpunkt verwendet, da in diesen Fällen wahrscheinlich keine teilweisen Audio- und Videoframes erforderlich sind. |
Nächste Schritte
- Weitere Informationen zu Funktionsaufrufen
- Beispiele finden Sie in der Referenz zu Funktionsaufrufen.