Skip to content
BotServBotServ
Node-REDAutomatisierungOllamaLokale KIWorkflows

Node-RED für KI-Automatisierung

Node-RED mit lokaler KI verbinden. Installation, Ollama-Integration, Function Calling, RAG-Flows und Praxisbeispiele für Automatisierung.

S

schutzgeist

8 min read
Node-RED für KI-Automatisierung

Node-RED für KI-Automatisierung

Was dieser Artikel über Node-RED für KI-Automatisierung behandelt

  • Wie Du Node-RED installierst und für KI-Automatisierung einrichtest.
  • Wie Du Node-RED mit Ollama verbindest und lokale Modelle in Flows nutzt.
  • Wie Du Function Calling, RAG und Agenten-Workflows in Node-RED umsetzt.
  • Praxisbeispiele für E-Mail-Sortierung, Dokumentenzusammenfassung und Benachrichtigungen.
  • Best Practices für Sicherheit, Performance und Wartung.

Einleitung: Node-RED für KI-Automatisierung verständlich erklärt

Node-RED ist ein visuelles Programmierwerkzeug für Automatisierung. Es wurde ursprünglich von IBM entwickelt, um IoT-Geräte und APIs zu verbinden. Heute wird es für alles genutzt, von Smart Home bis Enterprise-Integration. Mit lokaler KI wird Node-RED zu einer mächtigen Plattform, um KI-Workflows visuell zu bauen, ohne Code schreiben zu müssen.

Dieser Artikel richtet sich an Anwender, die KI-Automatisierung mit lokaler KI betreiben wollen und Node-RED als Plattform nutzen. Du solltest verstehen, was lokale KI ist und wie Ollama funktioniert. Grundlagen der Programmierung findest Du auf IRC-Coding.de.

Warum brauche ich Node-RED für KI-Automatisierung?

Stell Dir vor, Du willst automatisch E-Mails sortieren, Dokumente zusammenfassen und Benachrichtigungen verschicken, alles mit lokaler KI. Du könntest ein Python-Skript schreiben, aber das wird schnell unübersichtlich. Node-RED erlaubt Dir, diese Workflows visuell zu bauen: ein Knoten für E-Mail-Empfang, einer für KI-Klassifikation, einer für Aktion.

Node-RED ist besonders nützlich, wenn Du Workflows bauen willst, die mehrere Schritte haben, verschiedene APIs verbinden und von Nicht-Programmierern angepasst werden sollen. Die visuelle Oberfläche macht Workflows verständlich, der Flow-Editor erlaubt schnelles Ausprobieren.

Node-RED für KI-Automatisierung kurz erklärt

Node-RED ist ein Browser-basierter Flow-Editor, in dem Du Knoten (Nodes) per Drag-and-Drop verbindest. Jeder Knoten macht eine Sache: E-Mail empfangen, HTTP-Request senden, JavaScript ausführen, KI aufrufen. Für KI-Automatisierung verbindest Du Input-Knoten (E-Mail, Webhook, Schedule) mit KI-Knoten (Ollama, OpenAI) und Output-Knoten (E-Mail, Slack, Datenbank).

Der Kerngedanke lautet: Node-RED ist das visuelle Bindeglied zwischen Input, KI und Output.

Für wen ist dieser Artikel gedacht?

  • Automatisierer, die KI in bestehende Workflows einbinden wollen.
  • Self-Hoster, die lokale KI für Automatisierung nutzen und eine Oberfläche suchen.
  • Entwicklerinnen und Entwickler, die visuelle Workflows evaluieren.
  • Teams, die Workflows bauen wollen, die auch Nicht-Programmierer verstehen.

Vorkenntnisse in lokaler KI, Ollama und grundlegender JavaScript-Programmierung sind hilfreich.

Wichtige Begriffe rund um Node-RED und KI

  • Node-RED - Visueller Flow-Editor für Automatisierung. Wann nützlich: wenn Du Workflows visuell bauen willst.
  • Ollama - Lokaler Modellserver. Wann nützlich: als KI-Backend für Node-RED.
  • Node - Einzelner Knoten in einem Flow. Wann nützlich: macht eine Sache, z.B. HTTP-Request.
  • Flow - Verbundene Knoten, die einen Workflow bilden. Wann nützlich: das fertige Automatisierungs-Skript.
  • Function Calling - KI-Funktion, die strukturierte Daten zurückgibt. Wann nützlich: für KI-gesteuerte Entscheidungen.
  • RAG - Retrieval-Augmented Generation. Wann nützlich: um Modelle mit eigenen Daten zu erweitern.
  • Docker - Container-Plattform. Wann nützlich: um Node-RED isoliert zu betreiben.
  • Inject-Node - Knoten, der einen Flow manuell oder zeitgesteuert startet. Wann nützlich: für Tests und Schedule.

Node-RED installieren

Mit Docker

docker run -d \
  --name nodered \
  -p 1880:1880 \
  -v nodered-data:/data \
  --restart unless-stopped \
  nodered/node-red

Danach öffnest Du http://localhost:1880 im Browser.

Mit npm

npm install -g node-red
node-red

Mit Proxmox LXC

Wenn Du Proxmox VE nutzt, kannst Du Node-RED in einem LXC-Container installieren:

# Im LXC-Container
npm install -g node-red
# Als Service einrichten
npm install -g pm2
pm2 start node-red
pm2 startup
pm2 save

Ollama mit Node-RED verbinden

Ollama vorbereiten

Stelle sicher, dass Ollama läuft und ein Modell geladen ist:

ollama pull llama3.1
ollama serve

HTTP-Request-Node in Node-RED

Node-RED hat einen eingebauten HTTP-Request-Node, den Du für Ollama nutzen kannst:

  1. Ziehe einen inject-Node in den Flow.
  2. Ziehe einen function-Node und setze die Payload:
    msg.payload = {
      model: "llama3.1",
      messages: [
        { role: "user", content: msg.payload.prompt || "Hallo" }
      ],
      stream: false
    };
    msg.headers = { "Content-Type": "application/json" };
    return msg;
  3. Ziehe einen http request-Node und setze:
    • Method: POST
    • URL: http://localhost:11434/api/chat
    • Return: parsed JSON
  4. Verbinde die Knoten: inject → function → http request → debug.

Wenn Du auf den Inject-Button klickst, siehst Du die Antwort von Ollama im Debug-Fenster.

Community-Nodes für Ollama

Es gibt Community-Nodes, die Ollama direkt unterstützen:

  • node-red-contrib-ollama - Direkte Ollama-Integration mit Chat- und Embedding-Nodes.
  • node-red-contrib-openai - OpenAI-kompatibel, funktioniert mit Ollama.

Installation über die Palette-Verwaltung in Node-RED:

Manage Palette → Install → "node-red-contrib-ollama"

Praxisbeispiel 1: E-Mail-Sortierung mit KI

Dieses Beispiel sortiert eingehende E-Mails nach Kategorie, indem es Ollama fragt, welche Kategorie passt.

Flow-Aufbau

  1. IMAP-Node (Eingehende E-Mails)
  2. Function-Node (Prompt bauen):
    msg.payload = {
      model: "llama3.1",
      messages: [
        {
          role: "system",
          content: "Du bist ein E-Mail-Klassifikator. Antworte nur mit einer der Kategorien: support, sales, billing, spam, other."
        },
        {
          role: "user",
          content: `Betreff: ${msg.topic}\nInhalt: ${msg.payload}`
        }
      ],
      stream: false
    };
    msg.headers = { "Content-Type": "application/json" };
    return msg;
  3. HTTP-Request-Node (Ollama aufrufen)
  4. Switch-Node (Nach Kategorie verzweigen)
  5. Output-Nodes (E-Mail in Ordner verschieben, Slack benachrichtigen, etc.)

Vorteile

  • E-Mails werden automatisch sortiert, ohne manuelle Regeln.
  • Neue Kategorien können durch Anpassung des System-Prompts ergänzt werden.
  • Lokale KI, keine Cloud, keine Datenschutzbedenken.

Nachteile

  • Jede E-Mail kostet Inferenz-Zeit (Sekunden bis Minuten).
  • Falsche Klassifikationen möglich, besonders bei mehrdeutigen E-Mails.
  • Modell muss regelmäßig evaluiert werden.

Praxisbeispiel 2: Dokumentenzusammenfassung

Dieses Beispiel fasst PDF-Dokumente zusammen, die in einem Ordner landen.

Flow-Aufbau

  1. File-Node (PDF im Ordner überwachen)
  2. Function-Node (Text extrahieren, z.B. mit pdf-parse):
    const pdf = require('pdf-parse');
    const buffer = msg.payload;
    pdf(buffer).then(data => {
      msg.payload = {
        model: "llama3.1",
        messages: [
          { role: "system", content: "Fasse das Dokument in 5 Sätzen zusammen." },
          { role: "user", content: data.text.substring(0, 4000) }
        ],
        stream: false
      };
      msg.headers = { "Content-Type": "application/json" };
      node.send(msg);
    });
  3. HTTP-Request-Node (Ollama aufrufen)
  4. File-Node (Zusammenfassung speichern)

Hinweise

  • Große Dokumente müssen chunked werden, weil Modelle eine Kontextlänge haben.
  • Für bessere Zusammenfassungen eignen sich Modelle mit großem Kontext, z.B. qwen2.5:32k.
  • Siehe Kontextlänge für Details.

Praxisbeispiel 3: Benachrichtigungen mit KI-Filter

Dieses Beispiel filtert System-Benachrichtigungen und leitet nur wichtige weiter.

Flow-Aufbau

  1. Webhook-Node (Benachrichtigung empfangen)
  2. Function-Node (Prompt bauen):
    msg.payload = {
      model: "llama3.1",
      messages: [
        {
          role: "system",
          content: "Bewerte, ob diese Benachrichtigung wichtig ist. Antworte mit 'wichtig' oder 'unwichtig'."
        },
        { role: "user", content: msg.payload.message }
      ],
      stream: false
    };
    msg.headers = { "Content-Type": "application/json" };
    return msg;
  3. HTTP-Request-Node (Ollama aufrufen)
  4. Switch-Node (Nur bei ‘wichtig’ weiterleiten)
  5. Slack-Node (Benachrichtigung verschicken)

Function Calling in Node-RED

Function Calling erlaubt Dir, strukturierte Daten von der KI zu bekommen, die Du in Node-RED weiterverarbeiten kannst.

Beispiel: Strukturierte E-Mail-Antwort

// Function-Node
msg.payload = {
  model: "llama3.1",
  messages: [
    {
      role: "system",
      content: "Du bist ein E-Mail-Assistent. Antworte im JSON-Format: {\"category\": \"...\", \"priority\": \"...\", \"response\": \"...\"}"
    },
    { role: "user", content: msg.payload.email }
  ],
  format: "json",
  stream: false
};
msg.headers = { "Content-Type": "application/json" };
return msg;

Nach dem HTTP-Request-Node kannst Du die JSON-Antwort direkt weiterverarbeiten, z.B. mit einem Switch-Node nach Kategorie verzweigen.

Siehe Function Calling für Details.

RAG in Node-RED

Für RAG brauchst Du eine Vektordatenbank und Embeddings. Node-RED kann beides:

  1. Embeddings von Ollama:

    msg.payload = {
      model: "nomic-embed-text",
      prompt: msg.payload.text
    };
    msg.headers = { "Content-Type": "application/json" };
    return msg;

    URL: http://localhost:11434/api/embeddings

  2. Vektordatenbank: Nutze node-red-contrib-chroma für ChromaDB oder baue HTTP-Requests an Pinecone, Qdrant oder Weaviate.

  3. RAG-Flow: Query → Embedding → Vektor-Suche → Kontext bauen → Ollama-Chat mit Kontext.

Siehe Lokales RAG für Details.

Sicherheitshinweise

  • Node-RED absichern: Setze ein Passwort, indem Du settings.js anpasst. Standardmäßig ist Node-RED ohne Authentifizierung.
  • Keine Secrets im Flow: Nutze Umgebungsvariablen, keine hartcodierten API-Keys.
  • Ollama nur lokal: Exponiere Ollama nicht ins Internet ohne Authentifizierung. Siehe API-Schlüssel.
  • Sandbox für Function-Nodes: Function-Nodes können beliebigen JavaScript-Code ausführen. Beschränke Zugriff auf den Flow-Editor.
  • Audit Logging: Aktiviere Logging für Node-RED, um Aktionen nachvollziehbar zu machen. Siehe Audit Logging.

Performance-Tipps

  • Kleines Modell für Klassifikation: Nutze ein kleines Modell (z.B. llama3.1:8b) für einfache Klassifikationen, ein größeres für komplexe Aufgaben.
  • Caching: Cache wiederkehrende Anfragen, um Inferenz-Zeit zu sparen.
  • Batching: Sammle mehrere Anfragen und sende sie gebündelt, wenn möglich.
  • Streaming: Nutze Streaming für lange Antworten, um Latenz zu reduzieren.
  • Asynchrone Verarbeitung: Nutze Warteschlangen, um Lastspitzen abzufangen.

Typische Stolpersteine

  • Keine Authentifizierung: Node-RED ist standardmäßig ohne Passwort. Das ist ein Sicherheitsrisiko.
  • Zu große Modelle: Ein 70B-Modell für einfache Klassifikation ist Overkill und langsam.
  • Kein Error-Handling: Wenn Ollama nicht erreichbar ist, sollte der Flow nicht abstürzen, sondern Fehler abfangen.
  • Kontextlänge ignoriert: Große Dokumente müssen chunked werden, sonst schlägt die Inferenz fehl.
  • Keine Tests: Workflows sollten getestet werden, bevor sie produktiv gehen.

Key Takeaways:

  • Node-RED ist ein visueller Flow-Editor für Automatisierung.
  • Mit Ollama als Backend kannst Du lokale KI in Workflows nutzen.
  • Praxisbeispiele: E-Mail-Sortierung, Dokumentenzusammenfassung, Benachrichtigungsfilter.
  • Function Calling und RAG sind in Node-RED umsetzbar.
  • Sicherheit: Node-RED absichern, keine Secrets im Flow, Ollama nur lokal.

FAQ: Node-RED für KI-Automatisierung - Typische Fragen

Was ist Node-RED?

Node-RED ist ein Browser-basierter Flow-Editor für Automatisierung. Du verbindest Knoten visuell, um Workflows zu bauen, die APIs, Geräte und Dienste verbinden.

Wie verbinde ich Node-RED mit Ollama?

Du nutzt den HTTP-Request-Node und sendest POST-Requests an die Ollama-API (http://localhost:11434/api/chat). Alternativ gibt es Community-Nodes wie node-red-contrib-ollama, die Ollama direkt integrieren.

Kann ich Function Calling in Node-RED nutzen?

Ja. Du sendest den Parameter format: json an Ollama und bekommst strukturierte JSON-Antworten, die Du in Node-RED weiterverarbeiten kannst.

Kann ich RAG in Node-RED umsetzen?

Ja. Du nutzt Ollama für Embeddings, eine Vektordatenbank wie ChromaDB für die Speicherung und baust einen RAG-Flow: Query, Embedding, Vektor-Suche, Kontext bauen, Chat mit Kontext.

Wie sichere ich Node-RED ab?

Setze ein Passwort in settings.js, nutze Umgebungsvariablen für Secrets, beschränke Zugriff auf den Flow-Editor und exponiere Ollama nicht ins Internet ohne Authentifizierung.

Lässt sich Node-RED in Docker betreiben?

Ja. Es gibt ein offizielles Docker-Image. Du startest Node-RED mit docker run und mountest ein Volume für die Daten.

Welches Modell soll ich nutzen?

Für einfache Klassifikationen reicht ein kleines Modell wie llama3.1:8b. Für komplexe Aufgaben wie Zusammenfassungen oder Code-Generierung nutze ein größeres Modell wie qwen2.5:32b.

Wie verbessere ich die Performance?

Nutze kleine Modelle für einfache Aufgaben, cache wiederkehrende Anfragen, nutze Streaming für lange Antworten und verarbeite asynchron mit Warteschlangen.

Ist Node-RED kostenlos?

Ja. Node-RED ist Open Source und kostenlos. Du brauchst nur Hardware für Ollama, wenn Du lokale KI nutzt.

Gibt es Alternativen zu Node-RED?

Ja. n8n ist eine beliebte Alternative mit ähnlichem Konzept. Beide lassen sich mit Ollama verbinden. Siehe Automatisierung Grundlagen für einen Überblick.

Quellen und weiterführende Literatur

Zurück zum KI Blog
Share:

Ähnliche Beiträge