Über diesen Workflow
Qdrant Vektordatenbank Embedding Pipeline: Ein umfassender Überblick
Diese N8n-Workflow-Vorlage mit dem Titel "Qdrant Vector Database Embedding Pipeline" automatisiert den Prozess der Extraktion, Verarbeitung und Einbettung von JSON-Dokumenten in eine Vektordatenbank (Qdrant) unter Verwendung von Embeddings von OpenAI. Sie ist für semantische Suchanwendungen konzipiert, bei denen unstrukturierte oder semi-strukturierte Textdaten in durchsuchbare, hochdimensionale Vektoren umgewandelt werden müssen.
Die Pipeline integriert Dateihandling über FTP, Dokumentenanalyse, Text-Chunking, KI-gestützte Embedding-Generierung und Vektorspeicherung – alles orchestriert innerhalb der n8n-Automatisierungsplattform. Dies ermöglicht es Organisationen, skalierbare Retrieval-Augmented Generation (RAG)-Systeme, Wissensdatenbanken oder intelligente Suchmaschinen mit minimalem manuellem Eingriff zu erstellen.
Was der Workflow tut
Dieser Workflow führt eine End-to-End-Datenaufnahme- und Vektorisierungspipeline durch:
- Stellt eine Verbindung zu einem FTP-Server her und listet alle
.json-Dateien in einem bestimmten Verzeichnis auf. - Lädt jede Datei iterativ im Binärformat herunter.
- Analysiert den JSON-Inhalt in LangChain-kompatible Dokumentenobjekte.
- Teilt den Textinhalt in kleinere Chunks basierend auf einem definierten Trennzeichen (
"chunk_id") auf. - Generiert Embeddings für jeden Text-Chunk unter Verwendung des
text-embedding-ada-002-Modells von OpenAI. - Speichert die eingebetteten Chunks – einschließlich ihrer Metadaten – in einer Qdrant-Vektordatenbank-Sammlung namens
sv_lang_data.
Er unterstützt die Stapelverarbeitung und gewährleistet eine effiziente Handhabung großer Datensätze durch Nutzung von Streaming- und Stapelmechanismen.
Hauptmerkmale und Fähigkeiten
- Automatisierte Dateiaufnahme: Verwendet FTP-Knoten, um JSON-Dateien automatisch zu erkennen und herunterzuladen.
- Skalierbare Stapelverarbeitung: Verwendet den Knoten
Split In Batches, um jeweils eine Datei zu verarbeiten, was die Kontrolle über den Speicherverbrauch und die API-Ratenlimits ermöglicht. - Flexible Dokumentenanalyse: Nutzt den Default Data Loader, um binäre JSON-Payloads in strukturierte LangChain-Dokumente umzuwandeln.
- Konfigurierbares Text-Chunking: Wendet zeichenbasierte Aufteilung unter Verwendung von
"chunk_id"als Trennzeichen an, was eine logische Segmentierung ermöglicht, die an die Struktur der Quelldaten angepasst ist. - OpenAI-gestützte Embeddings: Integriert sich sicher mit der OpenAI-API, um 1536-dimensionale Embeddings zu generieren, die für semantische Ähnlichkeit optimiert sind.
- Vektorspeicherung in Qdrant: Schiebt eingebettete Dokumente in eine vorkonfigurierte Qdrant-Sammlung, die schnelle Approximate Nearest Neighbor (ANN)-Suchen unterstützt.
- Metadatenerhaltung: Behält relevante Metadaten aus den Originaldateien während der Transformation und Speicherung bei.
- Visuelle Dokumentation: Enthält Haftnotizen, die jede Phase erklären, was die Lesbarkeit und Wartbarkeit verbessert.
Hauptknoten und ihre Zwecke
| Knotenname | Typ | Zweck |
|---|---|---|
| When clicking ‘Test workflow’ | Manueller Trigger | Initiiert den Workflow manuell zu Testzwecken. |
| List all the files | FTP-Knoten (List-Operation) | Ruft eine Liste aller Dateien im entfernten FTP-Verzeichnis ab: Oracle/AI/embedding/svenska. |
| Loop over one item | Split In Batches | Verarbeitet jeweils einen Dateieintrag aus der Liste und ermöglicht eine sequentielle und kontrollierte Ausführung. |
| Downloading item | FTP-Knoten (Download) | Lädt die aktuelle Datei (referenziert über {{ $json.name }}) im Binärformat herunter und speichert sie unter binary.data. |
| Default Data Loader | LangChain Document Loader | Konvertiert die heruntergeladenen binären JSON-Daten in LangChain Document-Objekte, die für nachfolgende NLP-Aufgaben geeignet sind. |
| Character Text Splitter | LangChain Text Splitter | Teilt lange Texte in kleinere Chunks auf, wobei "chunk_id" als Trennzeichen verwendet wird; bereitet die Eingabe für Embedding-Modelle vor. |
| Embeddings OpenAI | LangChain Embeddings Node | Ruft die OpenAI-API auf, um Vektor-Embeddings für jeden Text-Chunk zu generieren (verwendet text-embedding-ada-002). |
| Qdrant Vector Store | LangChain Vector Store Node | Fügt die generierten Embeddings zusammen mit zugehörigen Metadaten in die Sammlung sv_lang_data in Qdrant ein. |
Zusätzlich:
- Sticky Notes bieten Inline-Dokumentation, die jede Phase erklärt.
- Die Qdrant API-Anmeldeinformationen ("QdrantApi svenska") und der OpenAI API-Schlüssel werden sicher über gespeicherte Anmeldeinformationen referenziert.
- Das FTP-Konto wird für Listen- und Download-Operationen über mehrere Knoten hinweg wiederverwendet.
Anwendungsfälle und Vorteile
Anwendungsfälle
- Enterprise Knowledge Management: Indizieren interner Dokumentationen, Support-Tickets oder Schulungsmaterialien für semantische Suche.
- Mehrsprachige semantische Suche: Zielt speziell auf schwedische Sprachdaten ab (impliziert durch "svenska"), was es ideal für skandinavische Märkte macht.
- Data Lake Integration: Automatisierung der Aufnahme aus Altsystemen, die Daten im JSON-Format auf FTP-Servern speichern.
- RAG-Pipelines: Einspeisung von verarbeiteten und eingebetteten Inhalten in LLM-Anwendungen, die kontextuelle Verankerung erfordern.
- Compliance- und Archivsysteme: Ermöglicht schnelle Abfrage archivierter Aufzeichnungen mithilfe von natürlichsprachlichen Abfragen.
Vorteile
- End-to-End-Automatisierung: Eliminiert manuelle Schritte bei der Datenvorbereitung und dem Embedding.
- Hohe Genauigkeit: Bewahrt den Kontext durch intelligentes Chunking und verwendet modernste Embeddings.
- Effiziente Skalierung: Stapelverarbeitung verhindert Überlastung; ideal für Hunderte oder Tausende von Dateien.
- Sichere Anmeldeinformationsverwaltung: Alle sensiblen Schlüssel (OpenAI, Qdrant, FTP) werden über das verschlüsselte Anmeldeinformationssystem von n8n verwaltet.
- Erweiterbares Design: Einfach für andere Sprachen, Embedding-Modelle oder alternative Vektordatenbanken (z. B. Pinecone, Weaviate) zu modifizieren.
Schritt-für-Schritt-Workflow-Logik
-
Trigger-Ausführung
- Der Workflow beginnt, wenn ein Benutzer auf „Test workflow“ klickt (manueller Trigger).
- Die Steuerung wird an den Knoten List all the files übergeben.
-
Dateiliste von FTP abrufen
- Der FTP-Knoten stellt eine Verbindung zum Server her und listet alle Dateien in
/Oracle/AI/embedding/svenskaauf. - Gibt ein Array von Dateieinträgen aus (Name, Größe, Datum usw.).
- Der FTP-Knoten stellt eine Verbindung zum Server her und listet alle Dateien in
-
Dateien einzeln durchlaufen
- Der Knoten Split In Batches verarbeitet eine Datei pro Iteration.
- Stellt Stabilität sicher und vermeidet die Überlastung nachgelagerter Dienste.
-
Aktuelle Datei herunterladen
- Ein weiterer FTP-Knoten lädt die ausgewählte Datei mit dynamischem Pfad herunter:
=Oracle/AI/embedding/svenska/{{ $json.name }} - Speichert die Datei als Binärdaten in
binary.data.
- Ein weiterer FTP-Knoten lädt die ausgewählte Datei mit dynamischem Pfad herunter:
-
Binäres JSON in Dokumente parsen
- Der Default Data Loader liest das binäre JSON und konvertiert es in LangChain
Document-Objekte. - Jedes Dokument enthält
pageContent(Text) undmetadata.
- Der Default Data Loader liest das binäre JSON und konvertiert es in LangChain
-
Text in Chunks aufteilen
- Der Character Text Splitter teilt den Dokumententext überall dort auf, wo
"chunk_id"vorkommt. - Stellt sicher, dass semantische Grenzen eingehalten werden (z. B. Aufteilung pro Abschnitt oder pro Datensatz).
- Optional, aber empfohlen für eine einheitliche Vektorisierung.
- Der Character Text Splitter teilt den Dokumententext überall dort auf, wo
-
Embeddings generieren
- Der Knoten Embeddings OpenAI sendet jeden Text-Chunk an die API von OpenAI.
- Gibt einen 1536-dimensionalen Vektor zurück, der die semantische Bedeutung des Textes repräsentiert.
-
Vektoren in Qdrant speichern
- Der Knoten Qdrant Vector Store empfängt sowohl Embeddings als auch Originaldokumente.
- Fügt sie in die Sammlung
sv_lang_dataein. - Verwendet eine Stapelgröße von 100 für optimale Leistung.
- Geht davon aus, dass die Qdrant-Sammlung mit folgendem Inhalt vorab erstellt wurde:
{ "vectors": { "size": 1536, "distance": "Cosine" } }
-
Wiederholen bis abgeschlossen
- Die Schleife wird fortgesetzt, bis alle Dateien verarbeitet wurden.
- Die endgültige Ausgabe bestätigt die erfolgreiche Indizierung aller Dokumente.
Dieser Workflow veranschaulicht, wie n8n komplexe KI/Daten-Pipelines ohne Code orchestrieren kann, indem er Dateivorgänge, Sprachmodelle und Vektordatenbanken zu einer robusten, produktionsreifen Lösung kombiniert.
So geht’s: JSON herunterladen und in n8n „Aus Datei importieren“ wählen.