Робототехника с потоковой передачей данных

Конечная точка модели gemini-robotics-er-2-streaming-preview предоставляет выделенную потоковую точку доступа, которая интегрируется с Live API , обеспечивая двустороннее взаимодействие в реальном времени между вашим приложением и роботом. Это делает ее подходящей для агентов, которым необходимы быстрые циклы обратной связи и реактивные реакции на окружающую среду.

Варианты использования

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

Технические характеристики

В таблице ниже приведены технические характеристики Live API:

Категория Подробности
Входные модальности Аудио (необработанный 16-битный PCM-аудио, 16 кГц, little-endian), изображения (JPEG <= 1 кадр/с), текст
Выходные модальности Текст
Протокол Соединение WebSocket с сохранением состояния (WSS)

Создайте агентскую конфигурацию.

Каждый роботизированный агент, созданный на основе Live API, проходит три этапа:

  1. Объявите возможности робота как инструменты. Каждое действие, которое может выполнять робот — навигация, захват, речь — становится объявлением функции с именем, описанием и схемой параметров. Физические действия должны использовать "behavior": "BLOCKING" , чтобы модель ожидала завершения действия роботом, прежде чем выбрать следующий шаг.
  2. Передавайте многомодальные входные данные в постоянную сессию. Откройте сессию live.connect и держите ее открытой на протяжении всего выполнения задачи. Отправляйте видеокадры, аудио или текст по мере их поступления от датчиков вашего робота.
  3. Обработка вызовов инструментов осуществляется в цикле приема. Каждый раз, когда модель выбирает действие, она отправляет сообщение tool_call . Ваш цикл приема выполняет функцию в SDK вашего робота и отправляет обратно сообщение tool_response . Сессия остается открытой, и модель выбирает следующее действие на основе результата.

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

Управляйте роботом посредством вызова функций.

В следующем примере показаны все три шага, объединенные в одном скрипте на Python.

Шаг 1 — определение инструментов — объявляет возможности робота в виде объявлений функций. Функция navigate использует "behavior": "BLOCKING" , поэтому модель ожидает, пока робот достигнет путевой точки, прежде чем вызывать другой инструмент. Добавьте в тот же список еще несколько объявлений функций, чтобы раскрыть дополнительные возможности робота.

Шаг 2 — вспомогательные функции ввода — демонстрирует три функции, которые передают в сессию входные данные различного типа: send_text для команд, send_image для кадров с камеры с необязательной текстовой подсказкой и send_audio для необработанного PCM-аудио с микрофона.

Шаг 3 — цикл приема — выполняется параллельно и обрабатывает два типа сообщений: сообщения server_content (текстовый вывод модели) и сообщения tool_call (модель запрашивает действие робота). Когда поступает вызов инструмента, цикл вызывает execute_tool — заглушку, которую вы заменяете реальным SDK робота, — а затем отправляет обратно tool_response чтобы модель могла выбрать следующее действие.

import