N8N-Projekt-Drogosch.Dominic
This commit is contained in:
@@ -0,0 +1,240 @@
|
||||
# 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
|
||||
```
|
||||
Reference in New Issue
Block a user