Start / n8n-Workflow-Vorlagen / Automatisierte Dokumenteneinbettung und Vektorspeicherung mit OpenAI und Qdrant

Automatisierte Dokumenteneinbettung und Vektorspeicherung mit OpenAI und Qdrant

Qdrant Vector Database Embedding Pipeline

Dieser Workflow automatisiert den Prozess des Abrufens von JSON-Dateien via FTP, deren Umwandlung in Dokumente, das Aufteilen von Text in Abschnitte, das Generieren von OpenAI-Einbettungen und deren Speicherung in einer Qdrant-Vektordatenbank für die semantische Suche.

Manuell9 KnotenKI & MLKIVektordatenbankDatenverarbeitung

Ü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:

  1. Stellt eine Verbindung zu einem FTP-Server her und listet alle .json-Dateien in einem bestimmten Verzeichnis auf.
  2. Lädt jede Datei iterativ im Binärformat herunter.
  3. Analysiert den JSON-Inhalt in LangChain-kompatible Dokumentenobjekte.
  4. Teilt den Textinhalt in kleinere Chunks basierend auf einem definierten Trennzeichen ("chunk_id") auf.
  5. Generiert Embeddings für jeden Text-Chunk unter Verwendung des text-embedding-ada-002-Modells von OpenAI.
  6. 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

  1. 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.
  2. Dateiliste von FTP abrufen

    • Der FTP-Knoten stellt eine Verbindung zum Server her und listet alle Dateien in /Oracle/AI/embedding/svenska auf.
    • Gibt ein Array von Dateieinträgen aus (Name, Größe, Datum usw.).
  3. Dateien einzeln durchlaufen

    • Der Knoten Split In Batches verarbeitet eine Datei pro Iteration.
    • Stellt Stabilität sicher und vermeidet die Überlastung nachgelagerter Dienste.
  4. 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.
  5. 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) und metadata.
  6. 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.
  7. 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.
  8. Vektoren in Qdrant speichern

    • Der Knoten Qdrant Vector Store empfängt sowohl Embeddings als auch Originaldokumente.
    • Fügt sie in die Sammlung sv_lang_data ein.
    • 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"
        }
      }
      
  9. 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.