gemini-live-api
gemini-live-api — официальный skill Google для генерации сервиса-клиента Gemini Enterprise Live API поверх WebSocket. Он предназначен для двустороннего streaming-сценария, где клиент устанавливает live-сессию, передаёт текстовые, аудио- или видео-данные и принимает сообщения модели. Исходник прямо ограничивает область применения: это не общий skill для одноразового generateContent, embeddings, генерации изображений или видео и fine-tuning; для обычного Gemini API используется другой навык. Перед генерацией нужны Google Cloud project с включёнными Vertex AI и Gemini Enterprise Agent Platform API, настроенные Application Default Credentials и папка назначения, которую пользователь явно указал для результата. В качестве команды аутентификации в источнике приведён gcloud auth application-default login. Python назван языком по умолчанию и эталонным вариантом, но пользователь выбирает язык реализации. Если языку требуется изолированное окружение, оно создаётся внутри папки результата; нельзя менять системный Python или глобальные site-packages. Источник задаёт локальные reference-файлы client_server_messages.md, client_server_messages.proto и session_manager.md. Они описывают типы ClientMessage и ServerMessage, wire-контракт и правила управления сессией. Сгенерированный клиент должен импортировать эти локальные типы, подключаться к региональному или global WebSocket endpoint, а поле model оформлять как ресурс проекта, региона, publisher и model_id. На этапе подготовки нужно сверить reference-файлы с публичной документацией и исправить локальные копии, если найдено расхождение. Основной асинхронный API клиента состоит из send_realtime_data для realtime input, send_client_content для turn-based content и receive для чтения ServerMessage из WebSocket. Перед отправкой данных клиент обязан дождаться setup_complete. Авторизация выполняется через bearer-токен из ADC; токен обновляется перед истечением срока и повторно прикрепляется при каждой реконнекции, включая go_away и неожиданный разрыв. Сессионное возобновление должно быть прозрачным: клиент сохраняет новый handle, нумерует отправленные сообщения начиная с 1, удаляет уже подтверждённые записи по last_consumed_client_message_index и повторяет буфер после реконнекции. Полный workflow включает тестовый файл для text, audio и video, how_to_run.md с примерами ClientMessage и how_to_test_with_ui.md с командами запуска. Skill также требует демо с backend и frontend: пользователь должен уметь начать и закрыть сессию, выбрать модель, выбрать микрофон, камеру или screen input, отправить текст, увидеть транскрипцию и услышать аудио модели. Для interrupted=true интерфейс останавливает текущий звук, очищает несыгранный буфер и незавершённую транскрипцию, затем начинает новые bubbles. Для input_transcription и output_transcription фрагменты добавляются в активный bubble до finished, а при finished bubble закрывается. Карточка полезна при создании проверяемого прототипа live-клиента, а также когда важны реконнекция, мультимодальный поток и синхронизация аудио с транскрипцией. Ограничения существенны: нужны действующий Cloud project, ADC, выбранная модель, доступ к API и пользовательские media samples для полноценного теста. Сгенерированный сервис нельзя считать готовым без компиляции, запуска тестов, проверки протокола, прав и поведения при разрыве. Навык также требует не устанавливать зависимости в системное окружение и не подменять bearer-аутентификацию единственным долгоживущим API key.
Для чего подходит
- Streaming audio и video через WebSocket
- Возобновление Gemini Live-сессий
- Обновление bearer-токена в live-интеграции
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/google/skills/tree/main/skills/cloud/gemini-live-api