Live API - WebSockets API reference

Live API – это API с сохранением состояния, в котором используются WebSockets. В этом разделе вы найдете дополнительную информацию о WebSockets API.

Сеансы

Подключение WebSocket устанавливает сеанс между клиентом и сервером Gemini. После того как клиент установит новое подключение, сеанс может обмениваться сообщениями с сервером, чтобы:

  • Отправлять на сервер Gemini текст, аудио или видео.
  • Получать от сервера Gemini запросы на аудио, текст или вызов функций.

Подключение WebSocket

Чтобы начать сеанс, подключитесь к этой конечной точке WebSocket:

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

Настройки сеанса

Первое сообщение, отправленное после установления подключения WebSocket, задает конфигурацию сеанса, которая включает модель, параметры генерации, системные инструкции и инструменты.

Нельзя изменить конфигурацию, пока подключение открыто. Однако вы можете изменить параметры конфигурации, кроме модели, при приостановке и возобновлении работы с помощью механизма возобновления сеанса.

Ниже приведен пример конфигурации. Обратите внимание, что в SDK может использоваться разный регистр. Варианты конфигурации Python SDK


{
  "model": string,
  "generationConfig": {
    "candidateCount": integer,
    "maxOutputTokens": integer,
    "temperature": number,
    "topP": number,
    "topK": integer,
    "presencePenalty": number,
    "frequencyPenalty": number,
    "responseModalities": [string],
    "speechConfig": object,
    "mediaResolution": object,
    "translationConfig": object
  },
  "systemInstruction": string,
  "tools": [object]
}

Подробнее о поле API можно узнать в разделе generationConfig.

Отправка сообщений

Чтобы обмениваться сообщениями через подключение WebSocket, клиент должен отправить объект JSON через открытое подключение WebSocket. Объект JSON должен содержать ровно одно поле из следующего набора:


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

Поддерживаемые клиентские сообщения

Поддерживаемые сообщения клиента приведены в таблице ниже.

Сообщение Описание
BidiGenerateContentSetup Конфигурация сеанса, которая будет отправлена в первом сообщении
BidiGenerateContentClientContent Дополнительное обновление контента текущего разговора, полученное от клиента
BidiGenerateContentRealtimeInput Аудио-, видео- или текстовый ввод в реальном времени
BidiGenerateContentToolResponse Ответ на запрос ToolCallMessage, полученный от сервера

Получение сообщений

Чтобы получать сообщения от Gemini, отслеживайте событие WebSocket message, а затем анализируйте результат в соответствии с определением поддерживаемых сообщений сервера.

Ознакомьтесь со следующими материалами:

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)

В сообщениях сервера может быть поле usageMetadata, но в них также должно быть ровно одно из других полей сообщения BidiGenerateContentServerMessage. (Объединение messageType не выражается в JSON, поэтому поле будет отображаться на верхнем уровне сообщения.)

Сообщения и события

ActivityEnd

У этого типа нет полей.

Отмечает конец действий пользователя.

ActivityHandling

Разные способы обработки действий пользователей.

Перечисления
ACTIVITY_HANDLING_UNSPECIFIED Если оно не задано, используется режим работы по умолчанию – START_OF_ACTIVITY_INTERRUPTS.
START_OF_ACTIVITY_INTERRUPTS Если задано значение true, начало действия прервет ответ модели (также называется "перебивание"). Текущий ответ модели будет прерван. Такая сортировка используется по умолчанию.
NO_INTERRUPTION Ответ модели не будет прерван.

ActivityStart

У этого типа нет полей.

Отмечает начало действий пользователя.

AudioTranscriptionConfig

Конфигурация расшифровки аудио.

Поля
languageCodes[]

string

Необязательное поле. Коды языков по стандарту BCP-47, которые указывают на языки, используемые в аудио. Если не указано или пустое, по умолчанию используется автоматическое определение языка.

customVocabulary[]

string

Необязательное поле. Список фраз из пользовательского словаря, чтобы модель распознавания речи отдавала предпочтение определенным терминам (названиям продуктов, именам собственным, жаргону).

wordTimestamp

bool

Необязательное поле. Настраивает создание временных меток на уровне слов.

diarization

bool

Необязательное поле. Настраивает разделение говорящих.

mode

Mode

Необязательное поле. Настраивает режим расшифровки. Допустимые значения: VERBATIM, SMART. Если не указано иное, по умолчанию используется транскрипция VERBATIM. В режиме SMART модель удаляет слова-паразиты, повторы и неверные начала фраз, исправляет грамматические ошибки, автоматически форматирует текст (абзацы, маркированные и нумерованные списки) и вносит небольшие изменения, предложенные пользователем (встроенные исправления). Временные метки и разделение по говорящим несовместимы с режимом SMART.

Режим

Режим расшифровки.

Перечисления
MODE_UNSPECIFIED Режим транскрибирования не указан.
VERBATIM Режим точной расшифровки.
SMART Умный режим расшифровки.

AutomaticActivityDetection

Настраивает автоматическое обнаружение действий.

Поля
disabled

bool

Необязательное поле. Если параметр включен (по умолчанию), обнаруженный голосовой и текстовый ввод считается активностью. Если она отключена, клиент должен отправлять сигналы активности.

startOfSpeechSensitivity

StartSensitivity

Необязательное поле. Определяет вероятность обнаружения речи.

prefixPaddingMs

int32

Необязательное поле. Необходимая продолжительность распознанной речи до начала речи. Чем ниже это значение, тем чувствительнее обнаружение начала речи и тем более короткие фразы могут быть распознаны. Однако при этом возрастает вероятность ложноположительных результатов.

endOfSpeechSensitivity

EndSensitivity

Необязательное поле. Определяет вероятность того, что распознанная речь закончилась.

silenceDurationMs

int32

Необязательное поле. Требуемая продолжительность обнаруженной неречевой части (например, тишины) до фиксации конца речи. Чем больше это значение, тем дольше могут быть паузы в речи без прерывания действий пользователя, но при этом увеличится задержка модели.

BidiGenerateContentClientContent

Дополнительное обновление текущего диалога, полученное от клиента. Весь контент из этого раздела безусловно добавляется в историю чата и используется в запросе к модели для генерации контента.

Если вы напишете сообщение, текущая генерация модели будет прервана.

Поля
turns[]

Content

Необязательное поле. Контент, добавленный к текущему разговору с моделью.

Для запросов с одним ходом это один экземпляр. Для многоходовых запросов это повторяющееся поле, которое содержит историю разговора и последний запрос.

turnComplete

bool

Необязательное поле. Если значение равно true, это означает, что при создании контента на сервере нужно использовать накопленный запрос. В противном случае сервер ожидает дополнительные сообщения, прежде чем начать генерацию.

BidiGenerateContentRealtimeInput

Ввод пользователя, который отправляется в реальном времени.

Разные типы данных (аудио, видео и текст) обрабатываются как параллельные потоки. Порядок следования этих потоков не гарантируется.

Она отличается от BidiGenerateContentClientContent в нескольких аспектах:

  • Можно отправлять непрерывно, не прерывая генерацию модели.
  • Если вам нужно смешать данные, чередующиеся между BidiGenerateContentClientContent и BidiGenerateContentRealtimeInput, сервер попытается оптимизировать ответ, но не гарантирует его.
  • Конец хода не указывается явно, а определяется по действиям пользователя (например, по окончании речи).
  • Данные обрабатываются постепенно, чтобы модель могла быстро начать генерировать ответ.
Поля
mediaChunks[]

Blob

Необязательное поле. Встроенные байты данных для медиавхода. Несколько элементов mediaChunks не поддерживаются. Все, кроме первого, будут игнорироваться.

УСТАРЕЛО. Вместо него используйте audio, video или text.

audio

Blob

Необязательное поле. Они формируют аудиопоток в реальном времени.

video

Blob

Необязательное поле. Они формируют видеопоток в реальном времени.

activityStart

ActivityStart

Необязательное поле. Отмечает начало действий пользователя. Этот параметр можно передавать, только если отключено автоматическое обнаружение действий (на стороне сервера).

activityEnd

ActivityEnd

Необязательное поле. Отмечает конец действий пользователя. Этот параметр можно передавать, только если отключено автоматическое обнаружение действий (на стороне сервера).

mediaResolution

MediaResolution

Необязательное поле. Разрешение медиафайла. Если не указано, используется setup.generationConfig.mediaResolution или значение по умолчанию, если настройки не заданы.

audioStreamEnd

bool

Необязательное поле. Указывает, что аудиопоток завершился, например потому что микрофон был отключен.

Этот параметр следует отправлять, только если включено автоматическое обнаружение действий (оно включено по умолчанию).

Клиент может возобновить трансляцию, отправив звуковое сообщение.

text

string

Необязательное поле. Они формируют поток текста, вводимого в реальном времени.

BidiGenerateContentServerContent

Дополнительное обновление сервера, сгенерированное моделью в ответ на сообщения клиента.

Контент генерируется как можно быстрее, а не в реальном времени. Клиенты могут буферизовать и воспроизводить его в реальном времени.

Поля
generationComplete

bool

Используется только для вывода. Если задано значение true, это означает, что модель завершила генерацию.

Если модель прервана во время генерации, в прерванном ходе не будет сообщения generation_complete. Вместо этого будет сообщение interrupted > turn_complete.

Если модель предполагает воспроизведение в реальном времени, между событиями generation_complete и turn_complete будет задержка, поскольку модель будет ждать завершения воспроизведения.

turnComplete

bool

Используется только для вывода. Если значение равно true, это означает, что модель завершила свой ход. Генерация начнется только в ответ на дополнительные сообщения клиента. Обратите внимание, что если включена отправка отчетов о статусе воспроизведения, это событие будет регистрироваться только тогда, когда статус воспроизведения указывает на то, что оно завершено. Статус воспроизведения того же поколения будет игнорироваться.

interrupted

bool

Используется только для вывода. Если значение равно true, это означает, что сообщение клиента прервало текущую генерацию модели. Если клиент воспроизводит контент в реальном времени, это хороший сигнал для остановки и очистки текущей очереди воспроизведения.

groundingMetadata

GroundingMetadata

Используется только для вывода. Метаданные, на основе которых был создан контент.

inputTranscription

BidiGenerateContentTranscription

Используется только для вывода. Введите расшифровку аудио. Транскрипция отправляется независимо от других сообщений сервера, поэтому порядок их получения не гарантируется.

interimInputTranscription

BidiGenerateContentTranscription

Используется только для вывода. Транскрипция с низкой задержкой обновляется, пока пользователь говорит. Это поле часто обновляется.

outputTranscription

BidiGenerateContentTranscription

Используется только для вывода. Вывод расшифровки аудио. Эти транскрипции являются частью выходных данных сервера. Последняя расшифровка реплики отправляется до generationComplete или interrupted, за которыми следует turnComplete. Мы не гарантируем, что расшифровки будут точно соответствовать другим выходным данным modelTurn, но сервер старается отправлять расшифровки рядом с соответствующим аудиовыходом.

urlContextMetadata

UrlContextMetadata

waitingForInput

bool

Используется только для вывода. Если значение равно true, это означает, что модель не генерирует контент, поскольку ожидает дополнительный ввод от пользователя, например продолжения разговора.

interactionStatus

InteractionStatus

Используется только для вывода. Текущий статус активности сеанса. Всегда отправляется вместе с turnComplete.

modelTurn

Content

Используется только для вывода. Контент, сгенерированный моделью в рамках текущего диалога с пользователем.

BidiGenerateContentServerMessage

Сообщение с ответом на вызов BidiGenerateContent.

Поля
usageMetadata

UsageMetadata

Используется только для вывода. Метаданные об использовании ответа или ответов.

voiceActivity

VoiceActivity

Используется только для вывода. В аудиопотоке обнаружена голосовая активность.

Объединенное поле messageType. Тип сообщения. messageType может иметь одно из следующих значений:
setupComplete

BidiGenerateContentSetupComplete

Используется только для вывода. Отправляется в ответ на сообщение BidiGenerateContentSetup от клиента после завершения настройки.

serverContent

BidiGenerateContentServerContent

Используется только для вывода. Контент, сгенерированный моделью в ответ на сообщения клиента.

toolCall

BidiGenerateContentToolCall

Используется только для вывода. Запрос к клиенту на выполнение functionCalls и возврат ответов с соответствующими id.

toolCallCancellation

BidiGenerateContentToolCallCancellation

Используется только для вывода. Уведомление для клиента о том, что ранее выданный ToolCallMessage с указанными id должен быть отменен.

goAway

GoAway

Используется только для вывода. Уведомление о том, что сервер скоро отключится.

sessionResumptionUpdate

SessionResumptionUpdate

Используется только для вывода. Обновление состояния возобновления сеанса.

BidiGenerateContentSetup

Сообщение, которое будет отправлено в первый (и только в первый) BidiGenerateContentClientMessage. Содержит конфигурацию, которая будет применяться на протяжении всего RPC-вызова потоковой передачи.

Клиентам следует дождаться сообщения от BidiGenerateContentSetupComplete, прежде чем отправлять дополнительные сообщения.

Поля
model

string

Обязательно. Название ресурса модели. Он будет использоваться в качестве идентификатора модели.

Формат: models/{model}

generationConfig

GenerationConfig

Необязательное поле. Конфигурация генерации.

Не поддерживаются следующие поля:

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

Content

Необязательное поле. Системные инструкции для модели, предоставленные пользователем.

Примечание. В частях можно использовать только текст. Каждая часть будет представлена в отдельном абзаце.

tools[]

Tool

Необязательное поле. Список Tools, которые модель может использовать для создания следующего ответа.

Tool – это фрагмент кода, который позволяет системе взаимодействовать с внешними системами для выполнения одного или нескольких действий, не предусмотренных моделью.

realtimeInputConfig

RealtimeInputConfig

Необязательное поле. Настраивает обработку входных данных в реальном времени.

sessionResumption

SessionResumptionConfig

Необязательное поле. Настраивает механизм возобновления сеанса.

Если он указан, сервер будет отправлять сообщения SessionResumptionUpdate.

contextWindowCompression

ContextWindowCompressionConfig

Необязательное поле. Настраивает механизм сжатия окна контекста.

Если контекст превышает заданную длину, сервер автоматически уменьшает его размер.

inputAudioTranscription

AudioTranscriptionConfig

Необязательное поле. Если задано, включает расшифровку голосового ввода. Расшифровка будет выполнена на языке аудиозаписи, если он задан.

outputAudioTranscription

AudioTranscriptionConfig

Необязательное поле. Если задано, включает расшифровку аудиовыхода модели. Расшифровка соответствует языковому коду, указанному для выходного аудио, если он настроен.

proactivity

ProactivityConfig

Необязательное поле. Настраивает проактивность модели.

Это позволяет модели проактивно реагировать на входные данные и игнорировать нерелевантные входные данные.

historyConfig

HistoryConfig

Необязательное поле. Настраивает обмен историей между клиентом и сервером.

labels

map<string, string>

Необязательное поле. Ярлыки с пользовательскими метаданными для запроса.

Необязательное поле. Ярлыки должны соответствовать стандартным требованиям к унифицированным ярлыкам Cloud: ключи ярлыков должны начинаться с буквы. – Ключи и значения ярлыков могут содержать не более 63 символов (кодовых точек Unicode) и состоять только из строчных букв, цифр, символов подчеркивания и тире. Можно использовать буквы английского и других алфавитов.

Использование: идентификаторы безопасности от агрегаторов.Используйте ключ safety_identifier (например, {"safety_identifier": "user_session_123"}).

BidiGenerateContentSetupComplete

У этого типа нет полей.

Отправляется в ответ на сообщение BidiGenerateContentSetup от клиента.

BidiGenerateContentToolCall

Запрос к клиенту на выполнение functionCalls и возврат ответов с соответствующими id.

Поля
functionCalls[]

FunctionCall

Используется только для вывода. Вызов функции, который нужно выполнить.

BidiGenerateContentToolCallCancellation

Уведомление для клиента о том, что ранее выданный ToolCallMessage с указанными ids не должен был быть выполнен и должен быть отменен. Если вызовы функций привели к побочным эффектам, клиенты могут попытаться отменить их. Это сообщение появляется только в тех случаях, когда клиенты прерывают ход сервера.

Поля
ids[]

string

Используется только для вывода. Идентификаторы вызовов инструментов, которые нужно отменить.

BidiGenerateContentToolResponse

Ответ, сгенерированный клиентом на запрос ToolCall, полученный от сервера. Отдельные объекты FunctionResponse сопоставляются с соответствующими объектами FunctionCall по полю id.

Обратите внимание, что в API GenerateContent для унарных вызовов и потоковой передачи на стороне сервера вызов функций происходит путем обмена частями Content, а в API GenerateContent для двунаправленных вызовов – с помощью специального набора сообщений.

Поля
functionResponses[]

FunctionResponse

Необязательное поле. Ответ на вызовы функций.

BidiGenerateContentTranscription

Расшифровка аудио (входного или выходного).

Поля
text

string

Текст расшифровки.

languageCode

string

Код языка транскрипции по стандарту BCP-47.

startOffset

Duration

Необязательное поле. Смещение начала расшифровки относительно начала аудиозаписи.

endOffset

Duration

Необязательное поле. Смещение конца расшифровки относительно начала аудио.

ContextWindowCompressionConfig

Включает сжатие контекстного окна – механизм управления контекстным окном модели, чтобы оно не превышало заданную длину.

Поля
Объединенное поле compressionMechanism. Механизм сжатия окна контекста. compressionMechanism может иметь одно из следующих значений:
slidingWindow

SlidingWindow

Механизм скользящего окна.

triggerTokens

int64

Количество токенов (до выполнения хода), необходимое для запуска сжатия окна контекста.

Это позволяет сбалансировать качество и задержку, поскольку более короткие окна контекста могут привести к более быстрым ответам модели. Однако любая операция сжатия приводит к временному увеличению задержки, поэтому ее не следует запускать слишком часто.

Если значение не задано, по умолчанию используется 80% от лимита контекстного окна модели. Остальные 20% будут использованы для следующего запроса пользователя или ответа модели.

EndSensitivity

Определяет, как обнаруживается конец речи.

Перечисления
END_SENSITIVITY_UNSPECIFIED Значение по умолчанию – END_SENSITIVITY_HIGH.
END_SENSITIVITY_HIGH Автоматическое определение чаще завершает речь.
END_SENSITIVITY_LOW При автоматическом определении речи она реже обрывается.

GoAway

Уведомление о том, что сервер скоро отключится.

Поля
timeLeft

Duration

Оставшееся время до завершения подключения будет указано как ABORTED (Прервано).

Продолжительность никогда не будет меньше минимального значения, заданного для модели. Это значение указывается вместе с ограничениями частоты запросов для модели.

HistoryConfig

Настройки истории.

Это сообщение включено в конфигурацию сеанса как BidiGenerateContentSetup.historyConfig. Настраивает обмен сообщениями истории.

Поля
initialHistoryInClientContent

bool

Необязательное поле. Если указано значение true, после отправки setupComplete сервер подождет и сначала обработает clientContent сообщений, пока turnComplete не станет true. Эта история не вызовет модель и может закончиться ролью MODEL. Когда turnComplete становится true, клиент может начать разговор в реальном времени через realtimeInput.

InteractionStatus

Разные состояния активности сеанса. Это поле всегда отправляется вместе с turnComplete, чтобы указать, завершил ли сервер обработку.

Перечисления
INTERACTION_STATUS_UNSPECIFIED Статус взаимодействия не указан.
IN_PROGRESS Сервер все ещё обрабатывает ввод пользователя или выполняет фоновые рассуждения. Может быть сгенерирован дополнительный контент.
REQUIRES_ACTION

Устаревший параметр. Вместо него используйте IDLE.

IDLE Сервер завершил все процессы и фоновые рассуждения.

ProactivityConfig

Конфигурация для функций проактивности.

Поля
proactiveAudio

bool

Необязательное поле. Если параметр включен, модель может отказаться отвечать на последний запрос. Например, это позволяет модели игнорировать речь вне контекста или молчать, если пользователь ещё не сделал запрос.

RealtimeInputConfig

Настраивает поведение при вводе данных в реальном времени в BidiGenerateContent.

Поля
automaticActivityDetection

AutomaticActivityDetection

Необязательное поле. Если правило не задано, автоматическое обнаружение действий включено по умолчанию. Если автоматическое обнаружение голоса отключено, клиент должен отправлять сигналы активности.

activityHandling

ActivityHandling

Необязательное поле. Определяет, какое влияние оказывает активность.

turnCoverage

TurnCoverage

Необязательное поле. Определяет, какие входные данные включаются в ход пользователя.

interimTranscriptTimestampEnabled

bool

Необязательное поле. Настраивает временные метки расшифровки.

SessionResumptionConfig

Конфигурация возобновления сеанса.

Это сообщение включено в конфигурацию сеанса как BidiGenerateContentSetup.sessionResumption. Если настроено, сервер будет отправлять сообщения SessionResumptionUpdate.

Поля
handle

string

Дескриптор предыдущего сеанса. Если его нет, создается новый сеанс.

Дескрипторы сеансов берутся из значений SessionResumptionUpdate.token в предыдущих подключениях.

SessionResumptionUpdate

Обновление состояния возобновления сеанса.

Отправляется, только если задано значение BidiGenerateContentSetup.sessionResumption.

Поля
newHandle

string

Новый дескриптор, представляющий состояние, которое можно возобновить. Пусто, если resumable=false.

resumable

bool

Значение True, если текущий сеанс можно возобновить.

Возобновить сеанс можно не в любой момент. Например, когда модель выполняет вызовы функций или генерирует контент. Если возобновить сеанс (используя токен сеанса) в таком состоянии, часть данных будет потеряна. В таких случаях атрибут newHandle будет пустым, а атрибут resumable будет иметь значение false.

SlidingWindow

Метод SlidingWindow работает, отбрасывая контент в начале окна контекста. Контекст всегда будет начинаться с начала хода пользователя. Системные инструкции и любые BidiGenerateContentSetup.prefixTurns всегда будут в начале результата.

Поля
targetTokens

int64

Целевое количество токенов, которые нужно сохранить. Значение по умолчанию – trigger_tokens/2.

При удалении частей окна контекста временно увеличивается задержка, поэтому это значение следует откалибровать, чтобы избежать частых операций сжатия.

StartSensitivity

Определяет, как обнаруживается начало речи.

Перечисления
START_SENSITIVITY_UNSPECIFIED Значение по умолчанию – START_SENSITIVITY_HIGH.
START_SENSITIVITY_HIGH Автоматическое определение будет чаще обнаруживать начало речи.
START_SENSITIVITY_LOW Автоматическое определение будет реже обнаруживать начало речи.

TurnCoverage

Варианты того, какие входные данные включены в ход пользователя.

Перечисления
TURN_COVERAGE_UNSPECIFIED Если не указано, режим работы по умолчанию выбирается на основе модели. Например, для Gemini 2.5 по умолчанию используется значение TURN_INCLUDES_ONLY_ACTIVITY, а для Gemini 3.1 и более поздних версий – TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO.
TURN_INCLUDES_ONLY_ACTIVITY Включает действия с момента последнего хода, исключая бездействие (например, тишину в аудиопотоке).
TURN_INCLUDES_ALL_INPUT Включает все входные данные в реальном времени с момента последнего хода, в том числе бездействие (например, тишину в аудиопотоке).
TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO Включает аудиозапись и все видео с момента последнего хода. При автоматическом обнаружении активности аудиоактивность означает речь и не включает тишину.

TranslationConfig

Конфигурация для функций перевода.

Поля
targetLanguageCode

string

Обязательно. Язык, на который нужно перевести текст. Допустимые значения – коды языков по стандарту BCP-47 (например, "en", "es", "fr").

echoTargetLanguage

bool

Необязательное поле. Если указано значение true, модель будет генерировать аудио, когда говорит на языке перевода, то есть повторять входные данные. Если задано значение False, аудио на языке перевода не будет создано.

UrlContextMetadata

Метаданные, связанные с инструментом получения контекста URL.

Поля
urlMetadata[]

UrlMetadata

Список контекстов URL.

UsageMetadata

Метаданные об использовании ответов.

Поля
promptTokenCount

int32

Используется только для вывода. Количество токенов в запросе. Если задано значение cachedContent, это все равно будет общий эффективный размер запроса, то есть он будет включать количество токенов в кешированном контенте.

cachedContentTokenCount

int32

Количество токенов в кешированной части запроса (кешированном контенте).

responseTokenCount

int32

Используется только для вывода. Общее количество токенов во всех сгенерированных вариантах ответа.

toolUsePromptTokenCount

int32

Используется только для вывода. Количество токенов в запросах на использование инструментов.

thoughtsTokenCount

int32

Используется только для вывода. Количество токенов рассуждений для моделей, которые рассуждают.

totalTokenCount

int32

Используется только для вывода. Общее количество токенов в запросе на создание (запрос + варианты ответов).

promptTokensDetails[]

ModalityTokenCount

Используется только для вывода. Список модальностей, которые были обработаны во входных данных запроса.

cacheTokensDetails[]

ModalityTokenCount

Используется только для вывода. Список модальностей кешированного контента в запросе.

responseTokensDetails[]

ModalityTokenCount

Используется только для вывода. Список модальностей, которые были возвращены в ответе.

toolUsePromptTokensDetails[]

ModalityTokenCount

Используется только для вывода. Список модальностей, которые были обработаны для входных данных запроса на использование инструмента.

VoiceActivity

В аудиопотоке обнаружена голосовая активность.

Поля
type

Type

Используется только для вывода. Тип сигнала VAD(обнаружения голосовой активности).

audioOffset

Duration

Используется только для вывода. Время обнаружения голосовой активности в аудиопотоке относительно его начала.

Тип

Тип сигнала VAD.

Перечисления
TYPE_UNSPECIFIED Значение по умолчанию – UNSPECIFIED.
ACTIVITY_START Сигнал начала предложения.
ACTIVITY_END Сигнал конца предложения.

Временные токены аутентификации

Временные токены аутентификации можно получить, вызвав метод AuthTokenService.CreateToken, а затем использовать с методом GenerativeService.BidiGenerateContentConstrained, передав токен в параметре запроса access_token или в заголовке HTTP Authorization с префиксом "Token".

CreateAuthTokenRequest

Создайте временный токен аутентификации.

Поля
authToken

AuthToken

Обязательно. Токен, который нужно создать.

AuthToken

Запрос на создание временного токена аутентификации.

Поля
name

string

Используется только для вывода. Идентификатор. Сам токен.

expireTime

Timestamp

Необязательное поле. Используется только для ввода. Не меняется. Необязательное время, после которого при использовании полученного токена сообщения в сеансах BidiGenerateContent будут отклоняться. (Gemini может закрыть сеанс раньше.)

Если значение не задано, по умолчанию используется время через 30 минут. Если задано, это значение должно быть не более чем на 20 часов в будущем.

newSessionExpireTime

Timestamp

Необязательное поле. Используется только для ввода. Не меняется. Время, после которого новые сеансы Live API, использующие токен, полученный в результате этого запроса, будут отклоняться.

Если не задать значение, в будущем по умолчанию будет использоваться 60 секунд. Если задано, это значение должно быть не более чем на 20 часов больше текущего времени.

fieldMask

FieldMask

Необязательное поле. Используется только для ввода. Не меняется. Если поле field_mask пустое и bidiGenerateContentSetup отсутствует, то эффективное сообщение BidiGenerateContentSetup берется из подключения к Live API.

Если поле field_mask пустое и в запросе присутствует bidiGenerateContentSetup is, то эффективное сообщение BidiGenerateContentSetup полностью берется из bidiGenerateContentSetup. Сообщение о настройке от подключения к действующему API игнорируется.

Если поле field_mask не пустое, то соответствующие поля из bidiGenerateContentSetup перезапишут поля из сообщения о настройке в подключении Live API.

Объединенное поле config. Конфигурация, относящаяся к определенному методу, для полученного токена. config может иметь одно из следующих значений:
bidiGenerateContentSetup

BidiGenerateContentSetup

Необязательное поле. Используется только для ввода. Не меняется. Конфигурация, относящаяся к BidiGenerateContent.

uses

int32

Необязательное поле. Используется только для ввода. Не меняется. Сколько раз можно использовать токен. Если это значение равно нулю, ограничение не применяется. Возобновление сеанса Live API не считается использованием. Если значение не указано, по умолчанию используется 1.

Дополнительная информация о распространенных типах

Подробнее о часто используемых типах ресурсов API: Blob, Content, FunctionCall, FunctionResponse, GenerationConfig, GroundingMetadata, ModalityTokenCount и Tool – рассказывается в разделе Создание контента.