Live API - WebSockets API reference

Interfejs Live API to interfejs API z zachowywaniem stanu, który korzysta z WebSockets. W tej sekcji znajdziesz dodatkowe informacje o interfejsie WebSockets API.

Sesje

Połączenie WebSocket ustanawia sesję między klientem a serwerem Gemini. Po zainicjowaniu nowego połączenia przez klienta sesja może wymieniać wiadomości z serwerem w celu:

  • Wysyłaj tekst, dźwięk lub wideo na serwer Gemini.
  • Otrzymywanie z serwera Gemini próśb o dźwięk, tekst lub wywołanie funkcji.

Połączenie WebSocket

Aby rozpocząć sesję, połącz się z tym punktem końcowym WebSocket:

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

Konfiguracja sesji

Pierwsza wiadomość wysłana po nawiązaniu połączenia WebSocket określa konfigurację sesji, która obejmuje model, parametry generowania, instrukcje systemowe i narzędzia.

Nie możesz zaktualizować konfiguracji, gdy połączenie jest otwarte. Możesz jednak zmieniać parametry konfiguracji (z wyjątkiem modelu) podczas wstrzymywania i wznawiania za pomocą mechanizmu wznawiania sesji.

Zapoznaj się z przykładową konfiguracją poniżej. Pamiętaj, że w pakietach SDK wielkość liter w nazwach może się różnić. Opcje konfiguracji pakietu SDK w Pythonie znajdziesz tutaj.


{
  "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]
}

Więcej informacji o polu interfejsu API znajdziesz w sekcji generationConfig.

Wysyłanie wiadomości

Aby wymieniać wiadomości przez połączenie WebSocket, klient musi wysłać obiekt JSON przez otwarte połączenie WebSocket. Obiekt JSON musi zawierać dokładnie jedno pole z tego zestawu obiektów:


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

Obsługiwane wiadomości klienta

Obsługiwane wiadomości od klientów znajdziesz w tabeli poniżej:

Wiadomość Opis
BidiGenerateContentSetup Konfiguracja sesji do wysłania w pierwszej wiadomości
BidiGenerateContentClientContent Przyrostowa aktualizacja treści bieżącej rozmowy dostarczona przez klienta
BidiGenerateContentRealtimeInput dźwięk, obraz wideo lub tekst w czasie rzeczywistym,
BidiGenerateContentToolResponse Odpowiedź na żądanie ToolCallMessage otrzymane z serwera

Odbieranie wiadomości

Aby otrzymywać wiadomości od Gemini, nasłuchuj zdarzenia „message” WebSocket, a następnie analizuj wynik zgodnie z definicją obsługiwanych wiadomości serwera.

Zobacz:

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)

Wiadomości serwera mogą zawierać pole usageMetadata, ale poza tym będą zawierać dokładnie jedno z pozostałych pól z wiadomości BidiGenerateContentServerMessage. (Unia messageType nie jest wyrażona w formacie JSON, więc pole pojawi się na najwyższym poziomie wiadomości).

Wiadomości i wydarzenia

ActivityEnd

Ten typ nie ma pól.

Oznacza koniec aktywności użytkownika.

ActivityHandling

Różne sposoby obsługi aktywności użytkowników.

Wartości w polu enum
ACTIVITY_HANDLING_UNSPECIFIED Jeśli nie określisz inaczej, działanie domyślne to START_OF_ACTIVITY_INTERRUPTS.
START_OF_ACTIVITY_INTERRUPTS Jeśli ma wartość „true”, rozpoczęcie aktywności przerwie odpowiedź modelu (tzw. „barge in”). Bieżąca odpowiedź modelu zostanie przerwana w momencie przerwania. Jest to zachowanie domyślne.
NO_INTERRUPTION Odpowiedź modelu nie zostanie przerwana.

ActivityStart

Ten typ nie ma pól.

Oznacza początek aktywności użytkownika.

AudioTranscriptionConfig

Konfiguracja transkrypcji dźwięku.

Pola
languageCodes[]

string

Opcjonalnie: Kody języków w standardzie BCP-47, które zawierają wskazówki dotyczące języków występujących w dźwięku. Jeśli ten parametr zostanie pominięty lub będzie pusty, domyślnie zostanie włączone automatyczne wykrywanie języka.

customVocabulary[]

string

Opcjonalnie: Lista niestandardowych fraz słownictwa, które mają nakierować model rozpoznawania mowy na rozpoznawanie konkretnych terminów (nazw produktów, nazw własnych, żargonu).

wordTimestamp

bool

Opcjonalnie: Konfiguruje generowanie sygnatur czasowych na poziomie słów.

diarization

bool

Opcjonalnie: Konfiguruje rozdzielanie rozmówców.

mode

Mode

Opcjonalnie: Konfiguruje tryb transkrypcji. Obsługiwane wartości: VERBATIM, SMART. Jeśli nie podasz tu żadnej wartości, zostanie użyta domyślna transkrypcja VERBATIM. W trybie SMART model usuwa pauzy i wtrącenia (wypełniacze, powtórzenia i fałszywe starty), dokonuje drobnych poprawek gramatycznych, automatycznie formatuje tekst (paragrafy, punktorowane i listy numerowane) oraz wprowadza drobne zmiany użytkownika (korekty w tekście). Sygnatury czasowe i podział na mówców są niezgodne z trybem SMART.

Tryb

Tryb transkrypcji.

Wartości w polu enum
MODE_UNSPECIFIED Nieokreślony tryb transkrypcji.
VERBATIM Tryb transkrypcji dosłownej.
SMART Tryb inteligentnej transkrypcji.

AutomaticActivityDetection

Konfiguruje automatyczne wykrywanie aktywności.

Pola
disabled

bool

Opcjonalnie: Jeśli ta opcja jest włączona (domyślnie), wykryte dane wejściowe głosowe i tekstowe są traktowane jako aktywność. Jeśli ta opcja jest wyłączona, klient musi wysyłać sygnały aktywności.

startOfSpeechSensitivity

StartSensitivity

Opcjonalnie: Określa prawdopodobieństwo wykrycia mowy.

prefixPaddingMs

int32

Opcjonalnie: Wymagany czas wykrytej mowy przed zatwierdzeniem początku mowy. Im mniejsza jest ta wartość, tym większa jest czułość wykrywania początku mowy i tym krótsze wypowiedzi mogą być rozpoznawane. Zwiększa to jednak prawdopodobieństwo wyników fałszywie dodatnich.

endOfSpeechSensitivity

EndSensitivity

Opcjonalnie: Określa prawdopodobieństwo zakończenia wykrytej mowy.

silenceDurationMs

int32

Opcjonalnie: Wymagany czas wykrytego braku mowy (np. ciszy) przed zatwierdzeniem końca mowy. Im większa ta wartość, tym dłuższe mogą być przerwy w mowie bez przerywania aktywności użytkownika, ale zwiększy to opóźnienie modelu.

BidiGenerateContentClientContent

Aktualizacja przyrostowa bieżącej rozmowy dostarczona przez klienta. Wszystkie treści są bezwarunkowo dodawane do historii rozmowy i używane jako część promptu dla modelu w celu generowania treści.

Wiadomość w tym miejscu przerwie bieżące generowanie modelu.

Pola
turns[]

Content

Opcjonalnie: Treść dołączona do bieżącej rozmowy z modelem.

W przypadku zapytań jednorazowych jest to pojedyncza instancja. W przypadku zapytań wieloetapowych jest to pole powtarzane, które zawiera historię rozmowy i najnowsze żądanie.

turnComplete

bool

Opcjonalnie: Jeśli wartość to „true”, oznacza to, że generowanie treści na serwerze powinno rozpocząć się od aktualnie zgromadzonego promptu. W przeciwnym razie serwer czeka na dodatkowe wiadomości przed rozpoczęciem generowania.

BidiGenerateContentRealtimeInput

Dane wejściowe użytkownika wysyłane w czasie rzeczywistym.

Różne typy treści (dźwięk, obraz i tekst) są obsługiwane jako równoległe strumienie. Kolejność w tych strumieniach nie jest gwarantowana.

Różni się on od BidiGenerateContentClientContent pod kilkoma względami:

  • Można je wysyłać w sposób ciągły bez przerywania generowania modelu.
  • Jeśli zajdzie potrzeba połączenia danych przeplatanych w BidiGenerateContentClientContent i BidiGenerateContentRealtimeInput, serwer spróbuje zoptymalizować odpowiedź, ale nie ma gwarancji, że to się uda.
  • Koniec tury nie jest określony w sposób wyraźny, ale wynika z aktywności użytkownika (np. zakończenia mowy).
  • Jeszcze przed zakończeniem tury dane są przetwarzane przyrostowo, aby zoptymalizować szybkie rozpoczęcie odpowiedzi przez model.
Pola
mediaChunks[]

Blob

Opcjonalnie: Dane w bajtach wstawione w przypadku danych wejściowych multimediów. Wiele pól mediaChunks nie jest obsługiwanych. Wszystkie oprócz pierwszego zostaną zignorowane.

WYCOFANO: zamiast tego użyj jednej z tych wartości: audio, video lub text.

audio

Blob

Opcjonalnie: Tworzą one strumień wejściowy dźwięku w czasie rzeczywistym.

video

Blob

Opcjonalnie: Tworzą one strumień wejściowy wideo w czasie rzeczywistym.

activityStart

ActivityStart

Opcjonalnie: Oznacza początek aktywności użytkownika. Można go wysłać tylko wtedy, gdy automatyczne (czyli po stronie serwera) wykrywanie aktywności jest wyłączone.

activityEnd

ActivityEnd

Opcjonalnie: Oznacza koniec aktywności użytkownika. Można go wysłać tylko wtedy, gdy automatyczne (czyli po stronie serwera) wykrywanie aktywności jest wyłączone.

mediaResolution

MediaResolution

Opcjonalnie: Rozdzielczość multimediów do użycia. Jeśli nie zostanie określony, użyta zostanie wartość setup.generationConfig.mediaResolution lub wartość domyślna, jeśli konfiguracja nie zostanie podana.

audioStreamEnd

bool

Opcjonalnie: Wskazuje, że strumień audio został zakończony, np. z powodu wyłączenia mikrofonu.

Należy go wysyłać tylko wtedy, gdy włączone jest automatyczne wykrywanie aktywności (które jest domyślnie włączone).

Klient może ponownie otworzyć strumień, wysyłając wiadomość głosową.

text

string

Opcjonalnie: Tworzą one strumień danych wejściowych tekstu w czasie rzeczywistym.

BidiGenerateContentServerContent

Przyrostowa aktualizacja serwera wygenerowana przez model w odpowiedzi na wiadomości klienta.

Treści są generowane tak szybko, jak to możliwe, a nie w czasie rzeczywistym. Klienci mogą buforować i odtwarzać je w czasie rzeczywistym.

Pola
generationComplete

bool

Tylko dane wyjściowe. Jeśli ma wartość true (prawda), oznacza to, że model zakończył generowanie.

Jeśli model zostanie przerwany podczas generowania, w przerwanym cyklu nie pojawi się komunikat „generation_complete”. Zamiast tego nastąpi przejście „interrupted > turn_complete”.

Gdy model zakłada odtwarzanie w czasie rzeczywistym, między zdarzeniami generation_complete i turn_complete występuje opóźnienie spowodowane oczekiwaniem modelu na zakończenie odtwarzania.

turnComplete

bool

Tylko dane wyjściowe. Jeśli ma wartość true (prawda), oznacza to, że model zakończył swoją turę. Generowanie rozpocznie się tylko w odpowiedzi na dodatkowe wiadomości od klienta. Pamiętaj, że gdy raportowanie stanu odtwarzania jest włączone, to zdarzenie jest emitowane tylko wtedy, gdy stan odtwarzania wskazuje, że odtwarzanie zostało zakończone. Przyszły stan odtwarzania tej samej generacji będzie ignorowany.

interrupted

bool

Tylko dane wyjściowe. Jeśli wartość to „true”, oznacza to, że wiadomość od klienta przerwała bieżące generowanie modelu. Jeśli klient odtwarza treści w czasie rzeczywistym, jest to dobry sygnał, aby zatrzymać odtwarzanie i opróżnić bieżącą kolejkę odtwarzania.

groundingMetadata

GroundingMetadata

Tylko dane wyjściowe. metadane dotyczące wygenerowanych treści.

inputTranscription

BidiGenerateContentTranscription

Tylko dane wyjściowe. Wpisz transkrypcję dźwięku. Transkrypcja jest wysyłana niezależnie od innych wiadomości serwera i nie ma gwarancji kolejności.

interimInputTranscription

BidiGenerateContentTranscription

Tylko dane wyjściowe. Transkrypcja o niskim opóźnieniu aktualizowana podczas mówienia użytkownika. To pole jest często aktualizowane.

outputTranscription

BidiGenerateContentTranscription

Tylko dane wyjściowe. Wyjście transkrypcji audio. Te transkrypcje są częścią danych wyjściowych generowanych przez serwer. Ostatnia transkrypcja wyjściowa tej tury jest wysyłana przed generationComplete lub interrupted, po których następuje turnComplete. Nie ma gwarancji, że transkrypcje i inne dane wyjściowe modelTurn będą w dokładnie takiej samej kolejności, ale serwer stara się wysyłać transkrypcje w pobliżu odpowiadających im danych wyjściowych audio.

urlContextMetadata

UrlContextMetadata

waitingForInput

bool

Tylko dane wyjściowe. Jeśli wartość to „true”, oznacza to, że model nie generuje treści, ponieważ czeka na więcej danych wejściowych od użytkownika, np. oczekuje, że użytkownik będzie kontynuować rozmowę.

interactionStatus

InteractionStatus

Tylko dane wyjściowe. Bieżący stan aktywności sesji na żywo. Zawsze wysyłany razem z parametrem turnComplete.

modelTurn

Content

Tylko dane wyjściowe. Treści wygenerowane przez model w ramach bieżącej rozmowy z użytkownikiem.

BidiGenerateContentServerMessage

Wiadomość odpowiedzi na wywołanie BidiGenerateContent.

Pola
usageMetadata

UsageMetadata

Tylko dane wyjściowe. Metadane dotyczące użycia odpowiedzi.

voiceActivity

VoiceActivity

Tylko dane wyjściowe. W strumieniu audio wykryto aktywność głosową.

Pole zbiorcze messageType. Typ wiadomości. messageType może mieć tylko jedną z tych wartości:
setupComplete

BidiGenerateContentSetupComplete

Tylko dane wyjściowe. Wysyłana w odpowiedzi na wiadomość BidiGenerateContentSetup od klienta po zakończeniu konfiguracji.

serverContent

BidiGenerateContentServerContent

Tylko dane wyjściowe. Treści wygenerowane przez model w odpowiedzi na wiadomości od klientów.

toolCall

BidiGenerateContentToolCall

Tylko dane wyjściowe. Żądanie wykonania przez klienta funkcji functionCalls i zwrócenia odpowiedzi z pasującymi identyfikatorami id.

toolCallCancellation

BidiGenerateContentToolCallCancellation

Tylko dane wyjściowe. Powiadomienie dla klienta, że wcześniej wydany ToolCallMessage z określonymi ids powinien zostać anulowany.

goAway

GoAway

Tylko dane wyjściowe. Powiadomienie o tym, że serwer wkrótce się rozłączy.

sessionResumptionUpdate

SessionResumptionUpdate

Tylko dane wyjściowe. Aktualizacja stanu wznowienia sesji.

BidiGenerateContentSetup

Wiadomość, która ma zostać wysłana w pierwszym (i tylko w pierwszym) BidiGenerateContentClientMessage. Zawiera konfigurację, która będzie obowiązywać przez cały czas trwania wywołania RPC strumieniowego przesyłania danych.

Zanim klient wyśle kolejne wiadomości, powinien poczekać na wiadomość BidiGenerateContentSetupComplete.

Pola
model

string

Wymagane. Nazwa zasobu modelu. Służy jako identyfikator modelu.

Format: models/{model}

generationConfig

GenerationConfig

Opcjonalnie: Konfiguracja generowania.

Te pola nie są obsługiwane:

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

Content

Opcjonalnie: Użytkownik podał instrukcje systemowe dla modelu.

Uwaga: w sekcjach należy używać tylko tekstu, a treści w każdej sekcji będą znajdować się w osobnym akapicie.

tools[]

Tool

Opcjonalnie: Lista Tools, których model może użyć do wygenerowania następnej odpowiedzi.

Tool to fragment kodu, który umożliwia systemowi interakcję z systemami zewnętrznymi w celu wykonania działania lub zestawu działań wykraczających poza wiedzę i zakres modelu.

realtimeInputConfig

RealtimeInputConfig

Opcjonalnie: Konfiguruje obsługę danych wejściowych w czasie rzeczywistym.

sessionResumption

SessionResumptionConfig

Opcjonalnie: Konfiguruje mechanizm wznawiania sesji.

Jeśli serwer jest uwzględniony, będzie wysyłać wiadomości SessionResumptionUpdate.

contextWindowCompression

ContextWindowCompressionConfig

Opcjonalnie: Konfiguruje mechanizm kompresji okna kontekstu.

Jeśli zostanie uwzględniony, serwer automatycznie zmniejszy rozmiar kontekstu, gdy przekroczy on skonfigurowaną długość.

inputAudioTranscription

AudioTranscriptionConfig

Opcjonalnie: Jeśli jest ustawiona, włącza transkrypcję danych wejściowych głosowych. Transkrypcja jest zgodna z językiem wejściowego dźwięku, jeśli jest skonfigurowana.

outputAudioTranscription

AudioTranscriptionConfig

Opcjonalnie: Jeśli jest ustawiona, włącza transkrypcję wyjścia audio modelu. Transkrypcja jest zgodna z kodem języka określonym dla wyjściowego dźwięku, jeśli jest skonfigurowany.

proactivity

ProactivityConfig

Opcjonalnie: Konfiguruje proaktywność modelu.

Dzięki temu model może proaktywnie reagować na dane wejściowe i ignorować te, które są nieistotne.

historyConfig

HistoryConfig

Opcjonalnie: Konfiguruje wymianę historii między klientem a serwerem.

labels

map<string, string>

Opcjonalnie: Etykiety z metadanymi zdefiniowanymi przez użytkownika dla żądania.

Opcjonalnie: Etykiety muszą być zgodne ze standardowymi wymaganiami dotyczącymi ujednoliconych etykiet Cloud: - Klucze etykiet muszą zaczynać się od litery. – Klucze i wartości etykiet nie mogą być dłuższe niż 63 znaki (punkty kodowe Unicode) i mogą zawierać tylko małe litery, cyfry, podkreślenia i myślniki. – Dozwolone są znaki międzynarodowe.

Użycie: – Identyfikatory bezpieczeństwa od agregatorów: użyj klucza safety_identifier (np.{"safety_identifier": "user_session_123"}).

BidiGenerateContentSetupComplete

Ten typ nie ma pól.

Wysłana w odpowiedzi na BidiGenerateContentSetup wiadomość od klienta.

BidiGenerateContentToolCall

Żądanie wykonania przez klienta funkcji functionCalls i zwrócenia odpowiedzi z pasującymi identyfikatorami id.

Pola
functionCalls[]

FunctionCall

Tylko dane wyjściowe. Wywołanie funkcji do wykonania.

BidiGenerateContentToolCallCancellation

Powiadomienie dla klienta, że wcześniej wydane ToolCallMessage z określonymi id nie powinny zostać wykonane i należy je anulować. Jeśli wywołania narzędzi spowodowały efekty uboczne, klienci mogą próbować je cofnąć. Ten komunikat pojawia się tylko w przypadku, gdy klienci przerywają kolejki serwera.

Pola
ids[]

string

Tylko dane wyjściowe. Identyfikatory wywołań narzędzi, które mają zostać anulowane.

BidiGenerateContentToolResponse

Odpowiedź wygenerowana przez klienta na komunikat ToolCall otrzymany z serwera. Poszczególne obiekty FunctionResponse są dopasowywane do odpowiednich obiektów FunctionCall za pomocą pola id.

Pamiętaj, że w przypadku interfejsów GenerateContent API z wywołaniem jednokierunkowym i strumieniowaniem po stronie serwera wywoływanie funkcji odbywa się przez wymianę części Content, a w przypadku dwukierunkowych interfejsów GenerateContent API wywoływanie funkcji odbywa się za pomocą tego dedykowanego zestawu wiadomości.

Pola
functionResponses[]

FunctionResponse

Opcjonalnie: Odpowiedź na wywołania funkcji.

BidiGenerateContentTranscription

Transkrypcja dźwięku (wejściowego lub wyjściowego).

Pola
text

string

Tekst transkrypcji.

languageCode

string

Kod języka transkrypcji w standardzie BCP-47.

startOffset

Duration

Opcjonalnie: Przesunięcie czasowe początku transkrypcji względem początku dźwięku.

endOffset

Duration

Opcjonalnie: Przesunięcie końca transkrypcji względem początku dźwięku.

ContextWindowCompressionConfig

Włącza kompresję okna kontekstu – mechanizm zarządzania oknem kontekstu modelu, który sprawia, że nie przekracza ono określonej długości.

Pola
Pole zbiorcze compressionMechanism. Używany mechanizm kompresji okna kontekstu. compressionMechanism może mieć tylko jedną z tych wartości:
slidingWindow

SlidingWindow

mechanizm okna przesuwnego,

triggerTokens

int64

Liczba tokenów (przed wykonaniem tury) wymagana do wywołania kompresji okna kontekstu.

Może to służyć do równoważenia jakości i opóźnienia, ponieważ krótsze okna kontekstu mogą skutkować szybszymi odpowiedziami modelu. Każda operacja kompresji powoduje jednak tymczasowy wzrost opóźnienia, dlatego nie należy jej często wywoływać.

Jeśli nie zostanie ustawiony, domyślnie wynosi 80% limitu okna kontekstu modelu. Pozostawia to 20% – na następne żądanie użytkownika lub odpowiedź modelu.

EndSensitivity

Określa sposób wykrywania końca wypowiedzi.

Wartości w polu enum
END_SENSITIVITY_UNSPECIFIED Wartość domyślna to END_SENSITIVITY_HIGH.
END_SENSITIVITY_HIGH Automatyczne wykrywanie częściej kończy mowę.
END_SENSITIVITY_LOW Automatyczne wykrywanie rzadziej kończy mowę.

GoAway

Powiadomienie o tym, że serwer wkrótce się rozłączy.

Pola
timeLeft

Duration

Pozostały czas, zanim połączenie zostanie przerwane jako ABORTED.

Ten czas trwania nigdy nie będzie krótszy niż minimalny czas trwania dla danego modelu, który zostanie określony wraz z limitami szybkości dla tego modelu.

HistoryConfig

Konfiguracja historii.

Ten komunikat jest uwzględniony w konfiguracji sesji jako BidiGenerateContentSetup.historyConfig. Konfiguruje wymianę wiadomości historii.

Pola
initialHistoryInClientContent

bool

Opcjonalnie: Jeśli wartość to „true”, po wysłaniu setupComplete serwer będzie czekać i najpierw przetworzy clientContent wiadomości, dopóki turnComplete nie będzie równe true. Ta początkowa historia nie spowoduje wywołania modelu i może się zakończyć rolą MODEL. Gdy turnComplete ma wartość true, klient może rozpocząć rozmowę w czasie rzeczywistym za pomocą realtimeInput.

InteractionStatus

Różne stany aktywności sesji na żywo. To pole jest zawsze wysyłane razem z parametrem turnComplete, aby wskazać, czy serwer zakończył przetwarzanie.

Wartości w polu enum
INTERACTION_STATUS_UNSPECIFIED Nieokreślony stan interakcji.
IN_PROGRESS Serwer nadal aktywnie przetwarza dane wejściowe użytkownika lub wykonuje wnioskowanie w tle. Może pojawić się więcej danych wyjściowych modelu.
REQUIRES_ACTION

Wycofano: zamiast tego użyj IDLE.

IDLE Serwer zakończył wszystkie procesy i rozumowanie w tle.

ProactivityConfig

Konfiguracja funkcji proaktywnych.

Pola
proactiveAudio

bool

Opcjonalnie: Gdy ta opcja jest włączona, model może odrzucić odpowiedź na ostatni prompt. Dzięki temu model może na przykład ignorować wypowiedzi wyjęte z kontekstu lub zachowywać ciszę, jeśli użytkownik nie wysłał jeszcze prośby.

RealtimeInputConfig

Konfiguruje działanie wprowadzania w czasie rzeczywistym w usłudze BidiGenerateContent.

Pola
automaticActivityDetection

AutomaticActivityDetection

Opcjonalnie: Jeśli nie zostanie skonfigurowana, domyślnie włączone jest automatyczne wykrywanie aktywności. Jeśli automatyczne wykrywanie głosu jest wyłączone, klient musi wysyłać sygnały aktywności.

activityHandling

ActivityHandling

Opcjonalnie: Określa, jaki wpływ ma aktywność.

turnCoverage

TurnCoverage

Opcjonalnie: Określa, które dane wejściowe są uwzględniane w turze użytkownika.

interimTranscriptTimestampEnabled

bool

Opcjonalnie: Konfiguruje sygnatury czasowe transkrypcji tymczasowych.

SessionResumptionConfig

Konfiguracja wznowienia sesji.

Ten komunikat jest uwzględniony w konfiguracji sesji jako BidiGenerateContentSetup.sessionResumption. Jeśli serwer jest skonfigurowany, będzie wysyłać wiadomości SessionResumptionUpdate.

Pola
handle

string

Uchwyt poprzedniej sesji. Jeśli nie jest obecna, tworzona jest nowa sesja.

Uchwyty sesji pochodzą z wartości SessionResumptionUpdate.token w poprzednich połączeniach.

SessionResumptionUpdate

Aktualizacja stanu wznowienia sesji.

Wysyłany tylko wtedy, gdy ustawiono parametr BidiGenerateContentSetup.sessionResumption.

Pola
newHandle

string

Nowy uchwyt reprezentujący stan, który można wznowić. Puste, jeśli resumable=false.

resumable

bool

Wartość logiczna określająca, czy bieżącą sesję można wznowić w tym momencie.

W niektórych momentach sesji nie można jej wznowić. Na przykład podczas wykonywania wywołań funkcji lub generowania. Wznowienie sesji (za pomocą poprzedniego tokena sesji) w takim stanie spowoduje utratę niektórych danych. W takich przypadkach pole newHandle będzie puste, a pole resumable będzie miało wartość „false”.

SlidingWindow

Metoda SlidingWindow polega na odrzucaniu treści na początku okna kontekstu. Wynikowy kontekst zawsze zaczyna się od początku tury roli UŻYTKOWNIK. Instrukcje systemowe i wszystkie BidiGenerateContentSetup.prefixTurns zawsze pozostaną na początku wyniku.

Pola
targetTokens

int64

Docelowa liczba tokenów do zachowania. Wartością domyślną jest trigger_tokens/2.

Odrzucanie części okna kontekstu powoduje tymczasowe wydłużenie czasu oczekiwania, dlatego tę wartość należy skalibrować, aby uniknąć częstych operacji kompresji.

StartSensitivity

Określa sposób wykrywania początku wypowiedzi.

Wartości w polu enum
START_SENSITIVITY_UNSPECIFIED Wartość domyślna to START_SENSITIVITY_HIGH.
START_SENSITIVITY_HIGH Automatyczne wykrywanie będzie częściej wykrywać początek mowy.
START_SENSITIVITY_LOW Automatyczne wykrywanie będzie rzadziej wykrywać początek mowy.

TurnCoverage

Opcje dotyczące tego, które dane wejściowe są uwzględniane w turze użytkownika.

Wartości w polu enum
TURN_COVERAGE_UNSPECIFIED Jeśli nie zostanie określone, domyślne działanie zostanie wybrane na podstawie modelu. Na przykład w przypadku Gemini 2.5 domyślna wartość to TURN_INCLUDES_ONLY_ACTIVITY, a w przypadku Gemini 3.1 i nowszych – TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO.
TURN_INCLUDES_ONLY_ACTIVITY Obejmuje aktywność od ostatniej tury, z wyłączeniem braku aktywności (np. ciszy w strumieniu audio).
TURN_INCLUDES_ALL_INPUT Obejmuje wszystkie dane wejściowe w czasie rzeczywistym od ostatniej tury, w tym brak aktywności (np. ciszę w strumieniu audio).
TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO Obejmuje aktywność związaną z dźwiękiem i wszystkie filmy od ostatniej tury. W przypadku automatycznego wykrywania aktywności aktywność audio oznacza mowę i nie obejmuje ciszy.

TranslationConfig

Konfiguracja funkcji tłumaczenia.

Pola
targetLanguageCode

string

Wymagane. Język docelowy tłumaczenia. Obsługiwane wartości to kody języka w standardzie BCP-47 (np. „en”, „es”, „fr”).

echoTargetLanguage

bool

Opcjonalnie: Jeśli wartość to „true”, model będzie generować dźwięk, gdy wypowiadany jest język docelowy, czyli będzie powtarzać dane wejściowe. Jeśli ma wartość „false”, nie będziemy generować dźwięku w języku docelowym.

UrlContextMetadata

Metadane związane z narzędziem do pobierania kontekstu adresu URL.

Pola
urlMetadata[]

UrlMetadata

Lista kontekstów adresu URL.

UsageMetadata

Metadane dotyczące użycia odpowiedzi.

Pola
promptTokenCount

int32

Tylko dane wyjściowe. Liczba tokenów w prompcie. Gdy ustawiona jest wartość cachedContent, jest to nadal łączny efektywny rozmiar promptu, co oznacza, że obejmuje on liczbę tokenów w treści z pamięci podręcznej.

cachedContentTokenCount

int32

Liczba tokenów w części prompta zapisanej w pamięci podręcznej (treść z pamięci podręcznej)

responseTokenCount

int32

Tylko dane wyjściowe. Łączna liczba tokenów we wszystkich wygenerowanych kandydatach na odpowiedź.

toolUsePromptTokenCount

int32

Tylko dane wyjściowe. Liczba tokenów w promptach dotyczących korzystania z narzędzi.

thoughtsTokenCount

int32

Tylko dane wyjściowe. Liczba tokenów myśli w przypadku modeli myślących.

totalTokenCount

int32

Tylko dane wyjściowe. Łączna liczba tokenów w żądaniu generowania (prompt + proponowane odpowiedzi).

promptTokensDetails[]

ModalityTokenCount

Tylko dane wyjściowe. Lista rodzajów danych, które zostały przetworzone w danych wejściowych żądania.

cacheTokensDetails[]

ModalityTokenCount

Tylko dane wyjściowe. Lista rodzajów treści w pamięci podręcznej w danych wejściowych żądania.

responseTokensDetails[]

ModalityTokenCount

Tylko dane wyjściowe. Lista rodzajów, które zostały zwrócone w odpowiedzi.

toolUsePromptTokensDetails[]

ModalityTokenCount

Tylko dane wyjściowe. Lista rodzajów danych, które zostały przetworzone na potrzeby danych wejściowych żądania użycia narzędzia.

VoiceActivity

W strumieniu audio wykryto aktywność głosową.

Pola
type

Type

Tylko dane wyjściowe. Typ sygnału VAD(wykrywanie aktywności głosowej).

audioOffset

Duration

Tylko dane wyjściowe. Czas wykrycia aktywności głosowej w czasie trwania dźwięku, w odniesieniu do początku strumienia audio.

Typ

Typ sygnału VAD.

Wartości w polu enum
TYPE_UNSPECIFIED Wartość domyślna to UNSPECIFIED.
ACTIVITY_START Sygnał początku zdania.
ACTIVITY_END Sygnał końca zdania.

Tokeny uwierzytelniania o krótkim okresie ważności

Krótkotrwałe tokeny uwierzytelniania można uzyskać, wywołując funkcję AuthTokenService.CreateToken, a następnie używać ich z funkcją GenerativeService.BidiGenerateContentConstrained, przekazując token w parametrze zapytania access_token lub w nagłówku HTTP Authorization z prefiksem „Token”.

CreateAuthTokenRequest

Utwórz tymczasowy token uwierzytelniania.

Pola
authToken

AuthToken

Wymagane. Token do utworzenia.

AuthToken

Żądanie utworzenia tymczasowego tokena uwierzytelniania.

Pola
name

string

Tylko dane wyjściowe. Identyfikator. sam token.

expireTime

Timestamp

Opcjonalnie: Tylko dane wejściowe. Niezmienne. Opcjonalny czas, po którym wiadomości w sesjach BidiGenerateContent będą odrzucane, jeśli użyjesz wynikowego tokena. (Gemini może przedwcześnie zamknąć sesję po tym czasie).

Jeśli nie jest ustawiony, domyślnie wynosi 30 minut w przyszłości. Jeśli ta wartość jest ustawiona, musi przypadać za mniej niż 20 godzin.

newSessionExpireTime

Timestamp

Opcjonalnie: Tylko dane wejściowe. Niezmienne. Czas, po którym nowe sesje Live API korzystające z tokena wynikającego z tego żądania zostaną odrzucone.

Jeśli nie jest ustawiony, domyślnie przyjmuje się 60 sekund w przyszłości. Jeśli ta wartość jest ustawiona, musi przypadać za mniej niż 20 godzin.

fieldMask

FieldMask

Opcjonalnie: Tylko dane wejściowe. Niezmienne. Jeśli pole field_mask jest puste i nie ma parametru bidiGenerateContentSetup, efektywny komunikat BidiGenerateContentSetup jest pobierany z połączenia z interfejsem Live API.

Jeśli pole field_mask jest puste, a w żądaniu występuje bidiGenerateContentSetup is, to efektywna wiadomość BidiGenerateContentSetup jest w całości pobierana z bidiGenerateContentSetup. Wiadomość konfiguracyjna z połączenia z interfejsem Live API jest ignorowana.

Jeśli pole field_mask nie jest puste, odpowiednie pola z bidiGenerateContentSetup zastąpią pola z wiadomości konfiguracyjnej w połączeniu z interfejsem Live API.

Pole zbiorcze config. Konfiguracja specyficzna dla metody w przypadku wynikowego tokena. config może mieć tylko jedną z tych wartości:
bidiGenerateContentSetup

BidiGenerateContentSetup

Opcjonalnie: Tylko dane wejściowe. Niezmienne. Konfiguracja specyficzna dla usługi BidiGenerateContent.

uses

int32

Opcjonalnie: Tylko dane wejściowe. Niezmienne. Określa, ile razy można użyć tokena. Jeśli ta wartość wynosi zero, nie jest stosowany żaden limit. Wznowienie sesji Live API nie jest traktowane jako użycie. Jeśli nie podasz żadnej wartości, domyślnie zostanie użyta wartość 1.

Więcej informacji o najczęstszych typach

Więcej informacji o najczęściej używanych typach zasobów interfejsu API Blob,Content, FunctionCall, FunctionResponse, GenerationConfig,GroundingMetadata, ModalityTokenCount i Tool znajdziesz w sekcji Generowanie treści.