DinoDesk AI: гибрид Gemma 4 и Gemini на столе, что переносится в соло-workflow

Локально, в облако или по ключевым словам: три режима роутера LLM в кейсе Google AI с DinoDesk разводят лёгкий чат и сложные задачи без единого облачного движка. Raspberry Pi на столе отвечает только за периферию; Gemma 4 крутится на основном ПК через LM Studio, Gemini Flash подключается, когда не хватает рассуждений.
Для vibe coding речь не о LEGO-динозавре, а о переносимой схеме: OpenAI-compatible API, явный индикатор активного движка и эскалация в облако по правилам, а не по настроению.
Три режима роутера: Local, Cloud и Auto-Hybrid
Архитектуру авторы называют Hybrid LLM Switching Architecture (Local ↔ Cloud). Raspberry Pi шлёт идентичные OpenAI-compatible запросы по Wi-Fi на Unified LLM Gateway (Router) на основном ПК, независимо от того, какой движок отвечает.
| Режим | Модель | Задачи | Как включить |
|---|---|---|---|
| Local (по умолчанию) | Gemma 4 через LM Studio | Обычный чат, таймеры, быстрые статусы; офлайн, нулевая стоимость | Двойной клик Button X на Pirate Audio, долгое нажатие 3 с на capacitive touch, голос «Switch to Cloud Mode» |
| Cloud | Gemini Flash / Gemini Live | Код, математика, объяснения, языковой тьюторинг | Те же жесты |
| Auto-Hybrid | Автоматический роутер | По умолчанию Gemma 4; при «explain», «compare», «write code» эскалация в Gemini Flash | Автоматически |
Индикатор режима простой: при ответе из облака зелёный 🟢 переходит в золотой 🟡 на время ответа, затем снова зелёный. В агентном цикле IDE тот же принцип: читатель должен видеть, какой движок сейчас «в руках», а не гадать по латентности.
Автор заявляет first-token latency порядка ~200 ms в Local Mode и ~800 ms в Cloud Mode (Gemini Flash): это их цифры, без независимого бенчмарка. Какую именно вариацию Gemma 4, квантизацию и объём RAM на шлюзе авторы Google AI не называют.
Raspberry Pi: периферия и FSM, не inference
Заголовок с Gemma 4 и Raspberry Pi легко читается как «модель на плате». В DinoDesk RPi отвечает за периферию и стриминг, inference локально идёт на main PC / local gateway.
Корпус из LEGO bricks и Technic lever mechanisms; двигаются шея и хвост. Состав сборки:
- Raspberry Pi + microSD 32 GB
- Pimoroni Pirate Audio: LCD 1.3" 240×240 (ST7789 IPS), I2S 1 W динамик, 4 тактовые кнопки
- Mini push button (старт/стоп захвата голоса)
- USB mini microphone
- Моторы шеи и хвоста
Кнопки Pirate Audio на GPIO: A (GPIO 5) cancel/mute; B (GPIO 6) home re-center сервоприводов; X (GPIO 16) выражения лица и переключатель Local↔Cloud; Y (GPIO 24) тест хвоста / громкость beep.
Поведение держит FSM из 5 состояний: Sleeping → Idle → Listening → Thinking → Speaking. Координирует LCD-«глаза», 8-bit beeps и моторы. Разработчик, который уже роутит запросы между локальной моделью и облаком в Cursor или через свой шлюз, узнает схему «тонкий клиент на железе, тяжёлый inference на ПК»: edge-устройство не обязано тянуть LLM, если шлюз отдаёт единый API.
Privacy-first: камеры нет, голос в облаке отдельный вопрос
Позиционирование privacy-first опирается на отсутствие камеры: «100% visual privacy (no camera)». Local Mode авторы описывают как «100% private», офлайн, без отправки обычных запросов в облако.
В Cloud Mode и Auto-Hybrid голосовые данные уходят в облачный Gemini. «No camera» не означает автоматически локальное хранение голоса и транскриптов: авторы Google AI не расписывают политику retention для аудио.
В комментариях под постом Dev.to отмечают риск: при обрыве сети после cloud escalation интерфейс должен отличать failed cloud request от local fallback. В тексте Google AI request-level state contract для этого сценария не прописан; для надёжности гибридной схемы это открытый вопрос, не готовая фича.
Сметы BOM и итоговой цены сборки авторы не публикуют. Сравнение с Ollama, локальными агентами IDE и аналогами в источнике отсутствует; без отдельного URL такое сравнение не добавляем.
Переносимый паттерн: шлюз, API и явная эскалация
Открытый код лежит в репозитории google-gemma/dinodesk-ai-companion. Статус work in progress; полноценный voice chat авторы называют «not quite perfect yet» и обещают в следующих материалах.
Переносимый для соло-разработчика паттерн не динозавр, а связка:
- Unified LLM Gateway с OpenAI-compatible контрактом на машине, где крутится LM Studio;
- Dynamic Model Router с тремя явными режимами вместо непрозрачного «всегда в облако»;
- Auto-Hybrid с эскалацией по ключевым словам сложности: тот же класс правил, что вы задаёте агенту или skills в IDE, только на уровне маршрутизации модели.
Если вы уже держите локальный inference и облачный fallback в одном проекте, имеет смысл заранее продумать индикатор активного движка и поведение при сетевом сбое. DinoDesk показывает UI-сторону (🟢/🟡), но не закрывает контракт отказа. Кейс полезен как инженерный эталон гибрида Gemma 4 + Gemini, а не как готовый продукт с закрытой приватностью голоса.
Источники
- How we built a desktop companion robot with Gemma 4 and Raspberry Pi — Google AI на Dev.to, дата доступа: 2026-09-16 (UTC)
- google-gemma/dinodesk-ai-companion — репозиторий проекта, дата доступа: 2026-09-16 (UTC)