Ich baue einen AI-Workflow auf, der einen Vector Store Retriever mit PGVector verbindet

Beschreiben Sie das Problem/den Fehler/die Frage

Ich baue einen KI-Workflow auf, der einen Vector Store Receiver mit PGVector verbindet. Meistens ruft er das korrekte Dokument ab, aber gelegentlich wird ein weniger relevantes Dokument höher bewertet als das, das ich eigentlich erwarte. Ich habe bereits bestätigt, dass die Dokumente korrekt eingebettet sind und dasselbe Einbettungsmodell für Indizierung und Abfrage verwendet wird. Gibt es etwas zu überprüfen, um die Abrufqualität zu verbessern?

Welche Fehlermeldung wird angezeigt (falls vorhanden)?

Bitte teilen Sie Ihren Workflow

(Wählen Sie die Knoten auf Ihrer Canvas aus und verwenden Sie die Tastenkombinationen CMD+C/CTRL+C und CMD+V/CTRL+V, um den Workflow zu kopieren und einzufügen.)

Teilen Sie die Ausgabe des letzten Knotens

Informationen zu Ihrem n8n-Setup

  • n8n-Version: 1.123.x
  • Datenbank (Standard: SQLite):
  • n8n EXECUTIONS_PROCESS-Einstellung (Standard: own, main):
  • n8n ausgeführt über (Docker, npm, n8n cloud, Desktop-App):
  • Betriebssystem:

Hey @Oluwanifemi, während du auf eine Antwort wartest, sind hier ein paar Dinge, die dir helfen könnten:

Empfohlene Ressourcen

Automatisch zu deiner Frage zugeordnet.

Docs:

Forum:

@merarisosa, @jabbson – ihr habt schon bei ähnlichen Problemen geholfen, könnt ihr euch das mal anschauen?

Automatisch vorgeschlagen durch n8ns Community-Bot. Das ist ein Pilotprojekt – bitte gebt hier Feedback.

Hallo @Oluwanifemi

Wenn ein weniger relevantes Dokument höher rangiert, liegt es oft daran, dass die Kernaussage des relevanten Dokuments durch umgebenden Text in seinem Chunk „verdünnt

Es lohnt sich zu überprüfen, welcher Indextyp auf deiner PGVector-Spalte verwendet wird. Falls es ivfflat oder hnsw ist, führst du tatsächlich eine ungefähre nächste-Nachbar-Suche durch. Wenn du die Standardeinstellungen verwendest, kann „ungefähr

Hallo @Oluwanifemi
Der Vector-Store-Node hat die Modi „insert

Falls du bereits einen Embedding-Modell-Mismatch ausgeschlossen hast, würde ich mir anschauen, wie die Dokumente aufgeteilt werden. Viele Abrufprobleme entstehen durch Chunks, die mehrere Themen enthalten, was das Embedding weniger fokussiert macht

Eine andere Sache, die man überprüfen sollte, ist, ob deine Dokumente viel wiederholte Wording oder Vorlagen enthalten. Wenn jeder Datensatz mit denselben Absätzen beginnt, enden die Embeddings näher beieinander als erwartet, was es PGVector schwerer macht, die beste Übereinstimmung zu bewerten

Abschließend solltest du dich nicht zu sehr auf den Ähnlichkeitswert selbst verlassen. Vergleiche stattdessen die Top-5-Ergebnisse. Wenn das richtige Dokument konsistent oben in der Liste erscheint, aber nicht an erster Stelle, handelt es sich normalerweise um ein Datqualitätsproblem und nicht um ein Problem mit PGVector

Hi @Oluwanifemi

Das ist kein Bug. Das ist das normale Verhalten der einstufigen Vektorsuche: Kosinusähnlichkeit misst thematische Ähnlichkeit, nicht Relevanz. Wenn zwei Chunks innerhalb von ~0,03 Kosinusdistanz liegen, ist es im Grunde Zufall, welcher zuerst rangiert. Dass deine Embeddings korrekt sind, verhindert das nicht.

Lösung (5 Minuten, nativ in n8n ab 1.98):

  1. Stelle auf deinem PGVector Vector Store Node Limit auf 20 (Standard ist 4).
  2. Options → Add option → Rerank Results → aktivieren.
  3. Ein Reranker Connector erscheint unten am Node — verbinde einen Reranker Cohere Sub-Node, Modell rerank-v3.5.
  4. Behalte die Vector Store Retriever und Chain-Verdrahtung bei wie sie ist.

Warum es funktioniert: dein Embedding-Modell hat die Dokumente codiert, ohne die Abfrage je zu sehen. Der Reranker ist ein Cross-Encoder — er liest Abfrage und Chunk zusammen und bewertet die tatsächliche Relevanz. Zu langsam für das gesamte Corpus, ideal über 20 Kandidaten.

Stelle Limit als einfache Zahl ein, nicht als Ausdruck — n8n#14151 ignoriert dort Ausdrücke stillschweigend und fällt auf 4 zurück.