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:
- Ziehe einen
inject-Node in den Flow. - 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; - Ziehe einen
http request-Node und setze:- Method: POST
- URL:
http://localhost:11434/api/chat - Return: parsed JSON
- 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
- IMAP-Node (Eingehende E-Mails)
- 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; - HTTP-Request-Node (Ollama aufrufen)
- Switch-Node (Nach Kategorie verzweigen)
- 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
- File-Node (PDF im Ordner überwachen)
- 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); }); - HTTP-Request-Node (Ollama aufrufen)
- 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
- Webhook-Node (Benachrichtigung empfangen)
- 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; - HTTP-Request-Node (Ollama aufrufen)
- Switch-Node (Nur bei ‘wichtig’ weiterleiten)
- 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:
-
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 -
Vektordatenbank: Nutze
node-red-contrib-chromafür ChromaDB oder baue HTTP-Requests an Pinecone, Qdrant oder Weaviate. -
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.jsanpasst. 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.
Weiterführende Links und Infos zu Node-RED
- Node-RED Dokumentation - Offizielle Node-RED-Docs.
- Ollama installieren - Backend für Node-RED.
- Function Calling - Strukturierte KI-Antworten.
- Lokales RAG - RAG mit lokaler KI.
- Automatisierung Grundlagen - Grundlagen der KI-Automatisierung.
- Proxmox VE - Node-RED in LXC betreiben.
- API-Schlüssel - Ollama absichern.
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?
Wie verbinde ich Node-RED mit Ollama?
Kann ich Function Calling in Node-RED nutzen?
Kann ich RAG in Node-RED umsetzen?
Wie sichere ich Node-RED ab?
Lässt sich Node-RED in Docker betreiben?
Welches Modell soll ich nutzen?
Wie verbessere ich die Performance?
Ist Node-RED kostenlos?
Gibt es Alternativen zu Node-RED?
Quellen und weiterführende Literatur
- Node-RED Dokumentation - Offizielle Docs.
- Ollama API - API-Referenz.
- Node-RED Ollama Node - Community-Nodes.
- Automatisierung Grundlagen - Grundlagen der KI-Automatisierung.


