Skip to content
BotServBotServ
QdrantVektordatenbankRAGREST-APIDockerlokale KI

Qdrant einrichten

Qdrant für lokales RAG installieren und nutzen. REST-API, Filterung und produktiver Betrieb im Überblick.

S

schutzgeist

3 min read
Qdrant als Vektordatenbank für RAG

Qdrant einrichten

Einleitung

Qdrant ist eine leistungsstarke Vektordatenbank, die sich besonders für größere RAG-Projekte oder produktive Umgebungen eignet. Sie bietet eine REST- und gRPC-API, Filtermöglichkeiten und lässt sich gut in Docker betreiben. Wer über Chroma hinauswachsen will, findet in Qdrant einen soliden nächsten Schritt.

Qdrant kurz erklärt

Qdrant speichert Texte, Bilder oder andere Daten als Vektoren. Bei einer Suchanfrage berechnet es die Ähnlichkeit zwischen dem Suchvektor und den gespeicherten Vektoren. Das Ergebnis sind die passendsten Einträge, die Du an ein Sprachmodell weitergeben kannst. Filter helfen, die Suche auf bestimmte Kategorien, Datumsbereiche oder andere Metadaten einzugrenzen.

Tools, Begriffe oder Techniken

  • Qdrant Server - Die Vektordatenbank selbst. Läuft lokal in Docker oder als Cloud-Dienst.
  • Qdrant Python Client - Offizielle Python-Bibliothek für lokale und entfernte Instanzen.
  • Qdrant REST-API - HTTP-Schnittstelle zum Anlegen von Collections und Suchen von Punkten.
  • FastEmbed - Lichteigene Embedding-Bibliothek, die gut mit Qdrant zusammenarbeitet.
  • Collection - Ein Behälter für Vektoren mit gleicher Dimension und ähnlicher Semantik.
  • Payload - Metadaten, die zu einem Vektor gespeichert werden, wie Quelle oder Kategorie.

Praxisbeispiel: Qdrant in Docker starten

docker run -p 6333:6333 -p 6334:6334 -v qdrant_storage:/qdrant/storage qdrant/qdrant

Nach dem Start erreichst Du das Dashboard unter http://localhost:6333/dashboard. Dort kannst Du Collections anlegen, Vektoren hochladen und Suchanfragen testen.

Python-Beispiel

from qdrant_client import QdrantClient

client = QdrantClient(url="http://localhost:6333")

client.create_collection(
    collection_name="artikel",
    vectors_config={"size": 768, "distance": "Cosine"}
)

client.upsert(
    collection_name="artikel",
    points=[
        {
            "id": 1,
            "vector": [0.1, 0.2, ...],  # Dein Embedding
            "payload": {"quelle": "blog", "titel": "Was ist lokale KI?"}
        }
    ]
)

results = client.search(
    collection_name="artikel",
    query_vector=[0.1, 0.2, ...],
    limit=3
)

print(results)

Für echte Projekte erzeugst Du die Vektoren mit einem Embedding-Modell wie intfloat/multilingual-e5-large oder BAAI/bge-m3. Qdrant selbst speichert und durchsucht diese Vektoren.

Typische Stolpersteine und Entscheidungshilfen

  • Falsche Vektor-Dimension: Die Collection muss die Dimension des Embedding-Modells kennen. Wenn sich das Modell ändert, braucht die Collection dieselbe Größe.
  • Payload-Filter vergessen: Ohne Filter kann die Suche über alle Dokumente laufen. Mit Payload-Filtern grenzt Du gezielt ein, etwa auf quelle == "blog".
  • Speicherort: Standardmäßig speichert Qdrant in einem Docker-Volume. Für Backups solltest Du den Speicherpfad kennen.
  • Wann Qdrant statt Chroma? Qdrant lohnt sich, sobald Du skalieren, filtern oder mit mehreren Clients gleichzeitig arbeiten willst.
  • Qdrant ist REST-basiert und gut automatisierbar.
  • Collections brauchen eine feste Vektorgröße.
  • Payload-Filter machen die Suche viel präziser.
  • Mehr zu Chroma findest Du im Chroma-Artikel, mehr zu Embeddings in Embedding-Modelle.

FAQ - Typische Fragen zu Qdrant

Brauche ich Docker für Qdrant?

Nein, es gibt auch reine Binärdateien. Docker ist aber der einfachste und verbreiteste Weg für lokale Tests.

Ist Qdrant kostenlos?

Ja, die Open-Source-Version ist kostenlos. Es gibt auch ein kostenpflichtiges Cloud-Angebot, das für lokale Projekte aber nicht nötig ist.

Wie viele Dokumente verträgt Qdrant lokal?

Das hängt von RAM und Speicherplatz ab. Für viele Hunderttausend bis Millionen Einträge ist Qdrant geeignet.

Kann ich Qdrant mit Ollama verbinden?

Ja. Ollama liefert das Sprachmodell, Qdrant die Vektordatenbank. Dein Python-Skript verbindet beides.

Was ist der Unterschied zwischen Qdrant und Chroma?

Chroma ist einfacher und ideal für Prototypen. Qdrant ist robuster, skalierbarer und bietet bessere Filtermöglichkeiten.

Unterstützt Qdrant hybride Suche?

Ja. Du kannst Vektorsuche mit Payload-Filtern und auch Sparse Vektoren kombinieren, um klassische Suchbegriffe einzubeziehen.

Welche Embedding-Dimension soll ich wählen?

Das richtet sich nach dem Embedding-Modell. multilingual-e5-large liefert beispielsweise 1024 Dimensionen, bge-m3 oft ebenfalls 1024.

Kann ich Qdrant auf einem NAS laufen lassen?

Ja, mit Docker. Achte auf ausreichend RAM und einen schnellen Speicher, sonst wird die Suche langsam.

Wo finde ich die Qdrant-Dokumentation?

Direkt unter qdrant.tech/documentation und die API-Referenz unter api.qdrant.tech.

Wie sichere ich Qdrant ab?

Lokale Instanzen ohne Netzwerkexposure sind in sicheren Netzwerken meist ausreichend. Wer Zugriff über das Netz braucht, sollte ein API-Token oder einen Reverse-Proxy mit Authentifizierung einrichten.

Quellen

Zurück zum KI Blog
Share:

Ähnliche Beiträge