Files
tf_provider/HISTORY/prompt_for_gemini_iot_diagram.md
T

6.0 KiB
Raw Blame History

Prompt для Gemini: диаграмма пайплайна IoT Demo

Задача

Создай красивую диаграмму (flowchart/архитектурную схему) пайплайна данных для IoT-демонстрации «Умный дом». Нужна одна картинка с 6 блоками сервисов и стрелками между ними.


Сервисы (блоки)

1. Producer (верхний левый угол)

  • Название: Producer
  • Подпись: Node.js · Генератор IoT-событий
  • Форма: прямоугольник, синий/голубой (#3B82F6 или похожий)
  • Иконка: ⚙️ или 📡
  • Что делает: Эмулирует 8 IoT-датчиков (температура °C, влажность %, энергопотребление kW), каждые 3 секунды генерирует случайное JSON-событие

2. RabbitMQ (центр-верх)

  • Название: RabbitMQ
  • Подпись: Очередь сообщений · iot-events
  • Форма: прямоугольник, оранжевый (#FF6600 — брендовый цвет RabbitMQ)
  • Иконка: 🐰 или 📬
  • Что делает: Буфер сообщений AMQP. Принимает от Producer, отдаёт Consumer. Durable — не теряет при рестарте.

3. Consumer (правый верхний)

  • Название: Consumer
  • Подпись: Node.js · Обработчик
  • Форма: прямоугольник, зелёный (#10B981)
  • Иконка: 📥 или 🔄
  • Что делает: Читает очередь RabbitMQ, параллельно пишет в Redis и MongoDB

4. Redis (левый-центр, под Producer)

  • Название: Redis
  • Подпись: Кэш · latest + counters + recent
  • Форма: прямоугольник, красный (#DC2626 — брендовый цвет Redis)
  • Иконка: или 🗄️
  • Что делает: Оперативный кэш для Dashboard. Хранит: последние значения датчиков (hash), счётчики по типам (hash), ленту 1000 событий (zset).

5. MongoDB (центр-низ)

  • Название: MongoDB
  • Подпись: Архив · TTL 7 дней
  • Форма: прямоугольник, тёмно-зелёный (#00684A — брендовый цвет MongoDB)
  • Иконка: 🍃 или 💾
  • Что делает: Постоянный архив всех событий в коллекции iot_events. Автоудаление через 7 дней (TTL-индекс).

6. Dashboard (правый-низ)

  • Название: Dashboard
  • Подпись: Node.js + Chart.js · Веб-интерфейс
  • Форма: прямоугольник, фиолетовый (#8B5CF6)
  • Иконка: 📊 или 🖥️
  • Что делает: Читает Redis, отдаёт JSON API и HTML с графиками. Bar chart (значения), Doughnut (счётчики), таблица событий. Автообновление каждые 3 сек.

Стрелки (потоки данных)

От К Протокол Подпись на стрелке
Producer RabbitMQ AMQP (порт 5672) JSON-события → очередь iot-events
RabbitMQ Consumer AMQP (порт 5672) JSON-события ← очередь iot-events
Consumer Redis (latest) TCP (порт 6379) HSET sensor_id → значение
Consumer Redis (counters) TCP (порт 6379) HINCRBY device_type
Consumer Redis (recent) TCP (порт 6379) ZADD лента событий
Consumer MongoDB TCP (порт 27017) insertOne → коллекция iot_events
Redis Dashboard TCP (порт 6379) HGETALL + ZRANGE (только чтение)

Расположение на схеме

    Producer ──→ RabbitMQ ──→ Consumer
                                   │
                    ┌──────────────┼──────────────┐
                    ↓              ↓              ↓
                 Redis         MongoDB         Redis
               (latest,       (архив)       (counters,
                recent)                       ...)
                    │              │              │
                    └──────────────┼──────────────┘
                                   ↓
                              Dashboard

Стиль

  • Тёмный фон (#0F172A или похожий) — как у самого дашборда
  • Блоки с закруглёнными углами (border-radius 812px)
  • Цвета блоков — брендовые цвета каждого сервиса (см. выше)
  • Текст в блоках — белый или светлый
  • Стрелки — с подписями протоколов (AMQP, TCP) и названиями данных
  • Иконки в блоках приветствуются
  • Легенда внизу: протоколы (AMQP — оранжевая стрелка, TCP — серая стрелка)
  • Заголовок схемы: «IoT Demo — Умный дом» и подзаголовок «6 сервисов Nubes Cloud»

Дополнительно

Можно добавить разделительную линию (или фон) показывающую, что все сервисы внутри Kubernetes-кластера, а наружу торчит только Dashboard (HTTP/HTTPS) и Producer/Consumer (для health-check).


Формат

Сгенерируй SVG или PNG, который можно вставить в README.md.