Files
12IT_Lernfeld12_2026/Abgabe_Drogosch/N8N-Projekt.md
T
2025-12-04 21:38:51 +01:00

240 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Projekt-Dokumentation *N8N-MailSummarizer*
## Inhaltsverzeichnis
1. [Projektübersicht](#projektübersicht)
2. [Systemarchitektur](#systemarchitektur)
3. [Workflow Übersicht](#workflow-übersicht)
4. [Workflow Beschreibung (JSON erklärt)](#workflow-beschreibung-json-erklärt)
5. [Node-Beschreibungen](#node-beschreibungen)
6. [Docker aufsetzen](#docker-aufsetzen)
7. [N8N aufsetzen](#n8n-aufsetzen)
8. [Ollama installieren](#ollama-installieren)
<br>
# Projektübersicht
**N8N-MailSummarizer** automatisiert die Verarbeitung eingehender E-Mails.
Es liest E-Mails per IMAP ein, bereitet die Inhalte auf, lässt die Inhalte durch das KI-Modell *llama3.2* (über Ollama) zusammenfassen, extrahiert strukturierte Informationen und sendet anschließend eine formatierte Zusammenfassung per E-Mail zurück.
<br>
# Systemarchitektur
```
N8N → Email Trigger (IMAP) → Set Node Parsing → AI Summarization (Ollama) → Code Node (Funktion Node) → E-Mail Versand
```
**Verwendete Systeme:**
* **Docker**
* **N8N** (als Automationsplattform)
* **Ollama** (lokale KI-Inferenz)
* **llama3.2** Modell
* **SMTP/IMAP E-Mail Konten**
<br>
# Workflow Übersicht
Der Workflow führt folgende Schritte aus:
1. **IMAP Email Trigger**
→ neue E-Mail wird erkannt
2. **Set Node**
→ extrahiert Rohdaten (Absender, Betreff, Datum, Text)
3. **Summarization Chain (LangChain)**
→ Übergibt Text in Chunks an das Ollama Modell
4. **Ollama Chat Model**
→ erstellt strukturierte JSON-Zusammenfassung
5. **Code Node**
→ extrahiert JSON aus dem KI-Output
6. **Send Email**
→ sendet schöne Zusammenfassung als Rückmeldung
<br>
# Workflow Beschreibung (JSON erklärt)
Das von dir bereitgestellte JSON repräsentiert einen vollständigen **N8N Workflow Export**.
### Wichtige Komponenten:
| Schlüssel | Beschreibung |
| ------------- | ------------------------------------------------------- |
| `nodes` | Enthält alle Prozessschritte |
| `connections` | Definiert die Reihenfolge der Nodes |
| `settings` | Workflow-Einstellungen |
| `credentials` | Referenzen auf Zugangsdaten (werden in N8N gespeichert) |
| `active` | Workflow aktiv / inaktiv
<br>
# Node-Beschreibungen
## 1. Email Trigger (IMAP)
Liest eingehende E-Mails:
* E-Mail Inhalt
* Metadaten
* Absender/Empfänger
* Datum/Uhrzeit
→ Output wird weitergegeben.
<br>
## 2. Edit Fields (Set Node)
Transformiert das E-Mail Objekt in folgendes Format:
```json
{
"absender": {{$json.from}},
"betreff": {{$json.subject}},
"datum": {{ JSON.stringify($json.date) }},
"inhalt": {{ JSON.stringify($json.textPlain) }}
}
```
<br>
## 3. Email Summarization Chain
Funktion:
* Teilt die E-Mail in Chunks
* Übergibt alles an **llama3.2**
* Nutzt spezielle Prompts zur Extraktion:
* Absendername / E-Mail
* Empfängername / E-Mail
* Betreff
* Datum/Uhrzeit
* Wichtige Inhalte
* Todos
* Termine
* Rückruf nötig?
* Strenge JSON-Formatierung
<br>
## 4. Ollama Chat Model
Verwendet:
**Modell:** `llama3.2:latest`
Ollama Modell erzeugt eine strukturierte Analyse.
<br>
## 5. Code Node
Extrahiert JSON aus Ollama-Output:
* erkennt `json … ` Codeblöcke
* parsed JSON
* validiert es
* gibt die Felder einzeln aus
<br>
## 6. Send Email
Versendet eine professionell formatierte Rückmeldung:
* Zusammenfassung
* Absender/Empfänger
* Kontext
* Termine
* Todos
* Rückruf-Status
SMTP Zugangsdaten werden im Credentials Manager verwaltet.
<br>
# Docker aufsetzen
1. Gehen Sie auf die Docker Webseite:
[https://www.docker.com/](https://www.docker.com/)
2. Docker-Konto erstellen.
3. Docker herunterladen.
4. Docker installieren und einrichten.
<br>
# Docker Netzwerk erstellen
1. Öffnen Sie **PowerShell** oder **CMD**.
2. Geben sie diesen Code ein.
```bash
Docker network create n8n-network
```
<br>
# N8N aufsetzen
1. Öffnen Sie **PowerShell** oder **CMD**.
2. Kopieren Sie diesen Code und führen Sie ihn aus:
<br>
```bash
docker run -e N8N_BASIC_AUTH_ACTIVE=true -e N8N_BASIC_AUTH_USER=admin -e N8N_BASIC_AUTH_PASSWORD=supersecret -e N8N_HOST=0.0.0.0 --name n8n-container -p 5678:5678 -d n8nio/n8n
```
3. Jetzt wurde ein Container mit **n8n** angelegt.
4. Sie können über **localhost** und den Port darauf zugreifen:
[http://localhost:5678](http://localhost:5678)
5. Melden Sie sich mit den im Code definierten Zugangsdaten an.
<br>
# Ollama installieren
1. Öffnen Sie **PowerShell** oder **CMD**.
2. Kopieren Sie diesen Code und führen Sie ihn aus:
```bash
docker run -d --name ollama --network n8n-network -p 11434:11434 -v ollama:/root/.ollama ollama/ollama
```
<br>
## Modell in Ollama installieren (z. B. llama3.2)
```bash
docker exec -it ollama ollama pull llama3.2
```
<br>
## Prüfen, ob Model geladen wurde
```bash
docker exec -it ollama-local ollama list
```