Vektorbasierte Vorselektion (Phase A2)
Ziel
Reduktion des Suchraums auf potenziell relevante Chunks. Dies ist eine Vorselektion, keine Wahrheitsfindung.
Ablauf
- Der Query-Vektor wird gegen die definierte Collection gesucht
- Die Vektordatenbank liefert:
- Chunk-Referenzen (IDs)
- Relevanz-Scores (Cosine Similarity)
- Es werden ausschließlich Chunk-IDs und Payload-Metadaten verwendet
- Anzahl der Ergebnisse wird durch
top_kbegrenzt
Kritische Abgrenzung
| Scores sind | Scores sind NICHT |
|---|---|
| Distanzmaße | Wahrheitsmaße |
| Heuristisch | Semantisch valide |
| Vorselektion | Endergebnis |
Ähnlichkeit ≠ Relevanz ≠ Wahrheit
Qdrant-Abfrage
POST /collections/documents/points/search
{
"vector": [0.123, -0.456, ...], // 1536 Dimensionen
"limit": 10,
"with_payload": true,
"filter": {
"must": [
{"key": "collection", "match": {"value": "documents"}}
]
}
}
Ergebnisartefakte
- Kandidatenliste von Chunk-IDs mit Scores
- Sortiert nach absteigendem Score
Beteiligte Komponenten
| Komponente | Pfad | Funktion |
|---|---|---|
| search_similar() | pipeline/rag.py | Qdrant-Suche |
| Qdrant REST API | localhost:6333 | Vektor-Suche |
Prüfbedingungen für Supervision
- Kein Chunk ohne SQL-Referenz gelangt weiter
- Score-Werte werden protokolliert, aber nicht als Wahrheit behandelt
- Die Vektordatenbank liefert nur IDs, kein Content wird vertraut