Двунаправленная потоковая передача с использованием API Gemini Live Двунаправленная потоковая передача с использованием API Gemini Live 



Gemini Live API обеспечивает двунаправленное текстовое и голосовое взаимодействие с низкой задержкой с Gemini . Используя Live API , вы можете предоставить конечным пользователям возможность естественного, человеческого голосового общения с возможностью прерывать ответы модели с помощью текстовых или голосовых команд. Модель может обрабатывать ввод текста и аудио (скоро появится видео!), а также обеспечивать вывод текста и звука.

Вы можете создавать прототипы с помощью подсказок и Live API в Vertex AI Studio .

Live API — это API с отслеживанием состояния, который создает соединение WebSocket для установления сеанса между клиентом и сервером Gemini. Подробности см. в справочной документации Live API .

Прежде чем начать

Если вы еще этого не сделали, прочтите руководство по началу работы , в котором описывается, как настроить проект Firebase, подключить приложение к Firebase, добавить SDK, инициализировать службу Vertex AI и создать экземпляр LiveModel .

Убедитесь, что вы используете как минимум следующие версии библиотеки Firebase:
iOS+ : пока не поддерживается | Android : v16.3.0+ ( BoM : v33.12.0+) | Интернет : еще не поддерживается | Flutter : v1.5.0+ (BoM: v3.9.0+)

Модели, поддерживающие эту возможность

Live API поддерживается только gemini-2.0-flash-live-preview-04-09 (не gemini-2.0-flash ).

Используйте стандартные функции Live API

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

Отправляйте текст и получайте текст

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

Узнайте, как выбрать модель и, при необходимости, местоположение, подходящее для вашего варианта использования и приложения.

Отправлять аудио и получать аудио

Вы можете отправлять потоковый аудиовход и получать потоковый аудиовыход. Обязательно создайте экземпляр LiveModel и установите модальность ответа Audio .

Узнайте, как настроить голос ответа (далее на этой странице).

Узнайте, как выбрать модель и, при необходимости, местоположение, подходящее для вашего варианта использования и приложения.



Создавайте более увлекательный и интерактивный опыт

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

Изменить голос ответа

Live API использует Chirp 3 для поддержки синтезированных речевых ответов. При использовании Vertex AI в Firebase вы можете отправлять звук на 5 HD-голосах и на 31 языке.

Если вы не укажете голос, по умолчанию используется Puck . Альтернативно вы можете настроить модель на ответ любым из следующих голосов:

Aoede (женщина)
Charon (мужчина)
Fenrir (мужчина)
Kore (женщина)
Puck (мужчина)

Демоверсии того, как звучат эти голоса, а также полный список доступных языков см. в разделе Chirp 3: HD voices .

Чтобы указать голос, установите имя голоса в объекте speechConfig как часть конфигурации модели :

Для достижения наилучших результатов при запросе и запросе ответа модели на языке, отличном от английского, включите в системные инструкции следующее:

RESPOND IN LANGUAGE. YOU MUST RESPOND UNMISTAKABLY IN LANGUAGE.

Поддерживать контекст между сеансами и запросами

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

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

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

Vertex AI в Firebase пока не поддерживает обработку прерываний. Возвращайтесь скорее!

Использовать вызов функций (инструменты)

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

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

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

Клиент должен ответить BidiGenerateContentToolResponse .



Ограничения и требования

Имейте в виду следующие ограничения и требования Live API .

Транскрипция

Vertex AI в Firebase пока не поддерживает транскрипцию. Возвращайтесь скорее!

Языки

Аудио форматы

Live API поддерживает следующие аудиоформаты:

  • Формат входного аудио: необработанный 16-битный звук PCM с частотой 16 кГц с прямым порядком байтов.
  • Выходной аудиоформат: необработанный 16-битный звук PCM с частотой 24 кГц с прямым порядком байтов.

Ограничения ставок

Применяются следующие ограничения по ставкам:

  • 10 одновременных сеансов на проект Firebase
  • 4 миллиона токенов в минуту

Продолжительность сеанса

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

Модель также ограничена размером контекста. Отправка больших порций входных данных может привести к более раннему завершению сеанса.

Обнаружение голосовой активности (VAD)

Модель автоматически выполняет обнаружение голосовой активности (VAD) в непрерывном входном аудиопотоке. VAD включен по умолчанию.

Подсчет токенов

Вы не можете использовать API CountTokens с Live API .