Skip to content

Node-RED Make IoT Smart

🌐 Языки

English 中文 Deutsch Español Français 日本語 한국어 Português Русский 繁體中文


Расширение ИИ-помощника, специально разработанное для Node-RED, делающее разработку IoT более умной и эффективной. npm versionLicense: MITNode-RED

Обзор

Node-RED Make IoT Smart - это комплексный ИИ-агент, специально разработанный для разработки Node-RED. Он улучшает опыт разработки IoT, предоставляя интеллектуальную поддержку кода, автоматическую оптимизацию потоков и возможности умной отладки. Это расширение в настоящее время поддерживает 6 основных сценариев: обучение, решение, интеграция, разработка, конфигурация и управление.

Возможности

🤖 ИИ-помощник

  • Интеллектуальные предложения кода: Контекстно-зависимые рекомендации кода для потоков Node-RED.
  • Умный анализ потоков: Анализирует потоки и предоставляет предложения по оптимизации.
  • Интерфейс естественного языка: Взаимодействуйте с средой Node-RED, используя команды естественного языка.
  • Многоязычная поддержка: Поддерживает китайский, английский, японский, корейский и другие языки. Автоматически адаптируется к изменениям в языковых настройках Node-RED.
  • Поддержка нескольких провайдеров: Основан на фреймворке LangChain.js, поддерживает модели ИИ, такие как OpenAI, Anthropic, Google, DeepSeek и другие.
  • Интеллектуальное управление памятью: Система краткосрочной и долгосрочной памяти на основе SQLite, поддерживает хранение истории разговоров, пользовательских настроек и шаблонов потоков.
  • Промпты на основе сценариев: Управление промптами на основе сценариев через конфигурацию JSON, поддерживает динамическую инъекцию параметров.
  • Интеграция инструментов MCP: Поддерживает вызовы инструментов Model Context Protocol (MCP) для расширения возможностей ИИ-помощника.

🔧 Инструменты разработки

  • Анализ кода в реальном времени: Непрерывный анализ потоков Node-RED.
  • Управление конфигурацией: Централизованная конфигурация API для различных провайдеров ИИ.
  • Интерактивная боковая панель: Специальная панель ИИ-помощника, интегрированная в редактор Node-RED.
  • JSON-редактор: Встроенный редактор файлов конфигурации с подсветкой синтаксиса.
  • Интеграция инструментов MCP: Поддерживает вызовы инструментов Model Context Protocol (MCP) для расширения возможностей ИИ-помощника.
  • Управление инструментами LangChain: Унифицированный фреймворк управления инструментами, поддерживает встроенные инструменты и инструменты MCP.
  • Поддержка на основе сценариев: Индивидуальная поддержка для 7 основных сценариев:
    • Обучение: Объясняет узлы и концепции, предоставляет примеры потоков.
    • Решение: Предоставляет различные IoT-решения, включая JSON потоков и руководства по установке узлов.
    • Интеграция: Поддерживает интеграцию протоколов (таких как MQTT, Modbus) и программного обеспечения.
    • Разработка: Оптимизирует существующие потоки и код функциональных узлов.
    • Конфигурация: Направляет изменения в конфигурации Node-RED (например, settings.js).
    • Управление: Поддерживает удаленный доступ, интеграцию Git и массовое развертывание.

🚀 Будущие возможности

  • Удаленная отладка: Удаленная отладка потоков Node-RED с помощью ИИ.
  • Управление командой: Совместная разработка с возможностями управления командой.
  • Расширенная аналитика: Глубокие инсайты о производительности IoT-систем.
  • Умное развертывание: Стратегии развертывания IoT-приложений, управляемые ИИ.

Установка

Установка через npm

bash
npm install @jhe.zheng/node-red-make-iot-smart

Установка через менеджер палитры Node-RED

  1. Откройте редактор Node-RED.
  2. Перейдите в Меню → Управление палитрой.
  3. Найдите @jhe.zheng/node-red-make-iot-smart.
  4. Нажмите Установить.
  5. Перезапустите Node-RED после установки.
  6. После установки новая вкладка ИИ-помощник появится в боковой панели Node-RED.
  7. Нажмите кнопку Настройки для настройки вашего провайдера ИИ.
  8. Выберите из поддерживаемых провайдеров:
    • DeepSeek: Экономичный вариант с сильными возможностями кодирования.
    • OpenAI: Ведущие в отрасли модели GPT.
    • Anthropic: Расширенные возможности рассуждения через модели Claude.
  9. Введите ваш API-ключ и выберите подходящую модель.
  10. После настройки вы можете начать использовать ИИ-помощника. Обратите внимание, что после сохранения настроек NodeRED автоматически создаст узел конфигурации. NodeRED покажет изменения в потоке, и вам нужно только нажать слияние.
  11. Начните взаимодействовать с ИИ-помощником!

Быстрый старт

Введите "Анализировать текущий узел"

Демонстрационная анимация

Введите "Создать пример потока"

Демонстрационная анимация

Введите "Проверка здоровья"

Демонстрационная анимация

Конфигурация

Конфигурация отладки LangSmith (Опционально)

Вы можете настроить поддержку LangSmith для лучшей отладки и мониторинга выполнения LangChain:

  1. Скопируйте файл .env.example в .env:

    bash
    cp .env.example .env
  2. Отредактируйте файл .env для ввода вашей конфигурации LangSmith:

    env
    LANGCHAIN_TRACING_V2=true
    LANGCHAIN_API_KEY=your_langsmith_api_key_here
    LANGCHAIN_PROJECT=your_project_name
  3. Перезапустите Node-RED для применения конфигурации.

  4. Посетите LangSmith для просмотра подробного трассирования выполнения и информации об отладке.

Примечание: Конфигурация LangSmith является опциональной и не влияет на основную функциональность.

Использование

Базовый интерфейс чата

  • Откройте вкладку ИИ-помощник в боковой панели.
  • Введите ваши вопросы или инструкции на естественном языке.
  • Получайте интеллектуальные ответы с предложениями кода и объяснениями.

Выбор сценария

  • Выберите сценарий (обучение, решение, интеграция, разработка, конфигурация, управление) в выпадающем меню боковой панели.
  • ИИ адаптирует свои ответы на основе выбранного сценария и предоставит соответствующие инструменты и JSON потоков.

Обработка JSON/кода

  • Большие выводы JSON или кода скрыты за кнопками Просмотр JSON/кода для поддержания чистоты UI.
  • Редактируйте JSON потоков во встроенном редакторе с подсветкой синтаксиса и применяйте изменения напрямую.

Поддерживаемые сценарии

Обзор сценариев

СценарийРусское названиеОписаниеПоддерживаемые инструменты
learningРежим обученияПомощник по изучению Node-RED, предоставляет образовательные руководства и ответы на знанияget-flows, get-nodes, create-flow, update-flow
solutionРежим решенияЭксперт по IoT-решениям, предоставляет технические решения и архитектурные советыcreate-flow, update-flow, get-flows, create-subflow
integrationРежим интеграцииЭксперт по системной интеграции, занимается подключением устройств и интеграцией данныхcreate-flow, update-flow, install-node, get-node-info
developmentРежим разработкиПомощник по разработке кода, поддерживает создание и оптимизацию потоков Node-REDcreate-flow, update-flow, create-subflow, get-node-info, install-node, get-flow
configurationРежим конфигурацииЭксперт по системной конфигурации, управляет средой Node-RED и конфигурацией узловget_settings, update_settings, install_node, get_node_info, get_diagnostics
managementРежим управленияПомощник по управлению проектами, поддерживает организацию потоков и планирование проектовget-flows, create-flow, update-flow, create-subflow
generalОбщий режимОбщий ИИ-помощник, обрабатывает различные вопросы, связанные с Node-REDБез специфических ограничений инструментов

Примеры предопределенных промптов

СценарийПредопределенные промпты
Режим обучения• Я новичок в Node-RED. Пожалуйста, представьте основные концепции и ключевые функции Node-RED
• Пожалуйста, объясните потоки, узлы и соединения в Node-RED
• Как создать мой первый простой поток в Node-RED? Пожалуйста, предоставьте подробные шаги
• Какие основные узлы обычно используются в Node-RED? Каковы их соответствующие функции?
Режим решения• Мне нужно спроектировать систему управления умным домом. Пожалуйста, предоставьте полную архитектуру IoT-решения
• Как использовать Node-RED для построения системы сбора и мониторинга данных Индустрии 4.0?
• Пожалуйста, спроектируйте сельскохозяйственное IoT-решение, включающее сбор данных с датчиков и автоматическое управление
• Я хочу построить сеть экологического мониторинга умного города, какие технические решения необходимы?
Режим интеграции• Как интегрировать MQTT-устройства и HTTP API в Node-RED? Пожалуйста, предоставьте подробное интеграционное решение
• Мне нужно передавать данные датчиков с Modbus-устройств в облачную базу данных. Как это реализовать?
• Пожалуйста, помогите спроектировать поток преобразования данных, который конвертирует JSON в XML и отправляет в сторонние системы
• Как реализовать интегрированный сбор и обработку данных с нескольких устройств с разными протоколами в Node-RED?
Режим разработки• Подробное объяснение и комментирование текущего потока
• Подробное объяснение и комментирование текущего узла
• Пожалуйста, помогите написать код функционального узла, который реализует фильтрацию данных и преобразование формата
• Как создавать пользовательские узлы в Node-RED? Пожалуйста, предоставьте полную процедуру разработки
Режим конфигурации• Какова текущая конфигурация NodeRED?
• Какова текущая диагностика NodeRED?
• Как настроить конфигурацию безопасности Node-RED, включая аутентификацию пользователей и HTTPS?
• Пожалуйста, помогите оптимизировать конфигурацию производительности Node-RED для улучшения эффективности выполнения системы
• Как устанавливать и управлять пакетами сторонних узлов в Node-RED?
• Мне нужно настроить логирование и мониторинг Node-RED. Как мне это настроить?
Режим управления• Пожалуйста, помогите создать план разработки и вехи для IoT-проектов
• Как организовать и управлять структурой потоков крупномасштабных проектов в Node-RED?
• Мне нужно оценить риски и качество текущего проекта. Пожалуйста, предоставьте рекомендации по анализу
• Как установить стандарты совместной разработки Node-RED в команде и лучшие практики?
Общий режим• Что такое Node-RED? Каковы его основные характеристики и сценарии применения?
• Я столкнулся с проблемами в Node-RED. Пожалуйста, помогите с анализом и решениями
• Пожалуйста, порекомендуйте ресурсы для изучения Node-RED и лучшие практики
• Как выбрать подходящий режим сценария Node-RED для решения конкретных требований?

Интеллектуальная активация по ключевым словам

СценарийКлючевые словаДействие активации
Режим разработкисоздать поток, сгенерировать поток, сделать поток, новый потокАвтоматически переключается в режим разработки для генерации полного JSON-кода потока Node-RED и предоставления подробных объяснений
Режим конфигурациитекущая конфигурация, конфигурация системы, информация о конфигурации, конфигурация, текущие настройкиАвтоматически вызывает инструмент get_settings для получения информации о конфигурации и отображения в табличном формате
Режим конфигурациитекущая диагностика, диагностика системы, информация о диагностике, проверка здоровьяАвтоматически вызывает инструмент get_diagnostics для выполнения системной диагностики

Динамические входные параметры

Все сценарии поддерживают следующую инъекцию динамических параметров:

  • nodeRedVersion - Информация о версии Node-RED
  • nodeVersion - Информация о версии Node.js
  • currentTime - Текущая временная метка
  • selectedFlow - Текущий выбранный поток
  • selectedNodes - Текущие выбранные узлы
  • lang - Текущий языковой параметр
  • mcpTools - Список доступных инструментов MCP

Каждый сценарий также поддерживает специфические динамические параметры:

  • Режим обучения: userLevel (уровень навыков пользователя)
  • Режим решения: projectRequirements (требования проекта)
  • Режим интеграции: integrationTargets (цели интеграции)
  • Режим разработки: developmentTask (задача разработки)
  • Режим конфигурации: configurationNeeds (потребности в конфигурации)
  • Режим управления: projectStatus (статус проекта)

Характеристики системных промптов

Каждый сценарий настроен с профессиональными системными промптами для обеспечения того, чтобы ИИ-помощник мог:

  1. Определение роли: Четкая профессиональная роль в конкретных сценариях
  2. Формат вывода: Структурированный формат ответа в соответствии с требованиями сценария
  3. Интеграция инструментов: Интеллектуальный вызов соответствующих инструментов MCP и API Node-RED
  4. Распознавание контекста: Персонализированные рекомендации с использованием динамических параметров
СценарийОписание
ОбучениеОбъясняет узлы/концепции и предоставляет примеры потоков для обучения.
РешениеПредоставляет различные IoT-решения с JSON потоков и руководствами по установке узлов.
ИнтеграцияПоддерживает интеграцию протоколов/программного обеспечения и генерирует соответствующие потоки.
РазработкаОптимизирует существующие потоки и код функциональных узлов.
КонфигурацияНаправляет изменения в конфигурации Node-RED (например, settings.js).
УправлениеПоддерживает удаленный доступ, интеграцию Git и массовое развертывание.

Поддерживаемые провайдеры ИИ

ПровайдерМоделиХарактеристики
OpenAIGPT-3.5, GPT-4, GPT-4oОбщего назначения, широкая совместимость
AnthropicClaude-3, Claude-3.5Продвинутое рассуждение, фокус на безопасности
GoogleGemini Pro, Gemini FlashМультимодальный, высокая производительность
DeepSeekdeepseek-chat, deepseek-coderЭкономичный, фокус на кодировании
ДругиеВсе LLM-провайдеры, поддерживаемые LangChain.jsВысокая масштабируемость, гибкая конфигурация

Конфигурация API

  • API-ключи хранятся локально с шифрованием.
  • Поддерживает конфигурацию нескольких провайдеров.
  • Легкое переключение между различными провайдерами и моделями.
  • Отдельная конфигурация моделей для фаз планирования и выполнения.

Разработка

Структура проекта

├── ai-sidebar.html          # Основной интерфейс боковой панели
├── ai-sidebar-config.json   # Конфигурация UI
├── make-iot-smart.html      # Шаблон конфигурации узла
├── make-iot-smart.js        # Реализация бэкенда узла
├── lib/
│   ├── langchain-manager.js # Основной менеджер LangChain
│   ├── memory-manager.js    # Управление памятью SQLite
│   └── scenario-manager.js  # Управление промптами на основе сценариев
├── config/
│   └── scenarios.json       # Файл конфигурации сценариев
├── data/
│   └── memory.db           # Файл базы данных SQLite
└── package.json            # Конфигурация пакета

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

Этот проект основан на фреймворке LangChain.js и использует модульный архитектурный дизайн:

  • LangChain Manager: Основное управление моделями ИИ, поддерживает нескольких провайдеров LLM
  • Memory Manager: Интеллектуальная система памяти на основе SQLite, поддерживает краткосрочную и долгосрочную память
  • Scenario Manager: Управление промптами на основе сценариев, поддерживает конфигурацию JSON и динамические параметры
  • Tool Manager: Унифицированный фреймворк управления инструментами, интегрирует инструменты MCP и встроенные инструменты
  • API Layer: RESTful API интерфейс, поддерживает потоковый чат и выполнение инструментов

Вклад в проект

  1. Сделайте форк репозитория.
  2. Создайте ветку функции.
  3. Внесите изменения и зафиксируйте их.
  4. Отправьте pull request.

Дорожная карта

Фаза 1 (Завершена)

  • ✅ Интеграция ИИ-помощника
  • ✅ Поддержка нескольких провайдеров
  • ✅ Интерактивная боковая панель
  • ✅ Управление конфигурацией
  • ✅ Поддержка на основе сценариев
  • ✅ Миграция архитектуры LangChain.js
  • ✅ Система управления памятью SQLite
  • ✅ Интеграция инструментов MCP
  • ✅ Унифицированный фреймворк управления инструментами

Фаза 2 (Запланирована)

  • 🔄 Возможности удаленной отладки
  • 🔄 Возможности командного сотрудничества
  • 🔄 Расширенный анализ потоков
  • 🔄 Инструменты умного развертывания

Фаза 3 (Будущее)

  • 📋 Система управления командой
  • 📋 Корпоративные возможности
  • 📋 Расширенные опции безопасности
  • 📋 Обучение пользовательских моделей

Системные требования

  • Node.js >= 18.0.0
  • Node-RED >= 2.0.0

Лицензия

Лицензировано под лицензией MIT. См. файл LICENSE для подробностей.

Поддержка

Разработка ИИ - это скорее искусство, чем технология, и освоение LLM не является простой задачей, требующей глубокого понимания моделей ИИ, данных и сценариев применения. Каждая сессия Q&A может давать разные результаты, и ранние версии часто неудовлетворительны, но через улучшения в инженерии промптов они постепенно будут удовлетворять ежедневные потребности пользователей Node-RED, будь то IT или OT инженеры. Приглашаем больше заинтересованных людей присоединиться к проекту.

Автор

Zheng He


Сделайте разработку IoT умнее с поддержкой ИИ!