pgvector ist eine PostgreSQL-Erweiterung, die Vektoren (Embeddings) speichert und die ähnlichsten findet. Damit findet ein Shop „Schuhe für Regenwetter“ unter Produkten, die als „wasserdichtes Schuhwerk“ beschrieben sind, und ein KI-Agent beantwortet Kundenfragen auf Grundlage Ihrer AGB und Beschreibungen. Eine separate Vektordatenbank brauchen Sie nicht: Bei Aderlo Cloud ist pgvector in jeder PostgreSQL-Datenbank ab ihrer Anlage verfügbar.
So funktioniert es in drei Schritten
Text in einen Vektor umwandeln
Ein Embedding-Modell beim gewählten KI-Anbieter wandelt eine Produktbeschreibung oder einen Dokumentabschnitt in eine Liste von Zahlen um (z. B. 1536 Werte).
In PostgreSQL speichern
Der Vektor landet in einer Spalte vom Typ
vectorneben den normalen Daten: Name, Preis, Seitenadresse.Nach Ähnlichkeit suchen
Die Frage des Kunden wandeln Sie mit demselben Modell in einen Vektor um und bitten die Datenbank um die nächstgelegenen Ergebnisse.
Minimalbeispiel
CREATE TABLE product_chunks ( id bigserial PRIMARY KEY, product_url text NOT NULL, content text NOT NULL, embedding vector(1536) ); CREATE INDEX ON product_chunks USING hnsw (embedding vector_cosine_ops); -- $1 = Vektor der Frage, mit demselben Modell berechnet SELECT product_url, content FROM product_chunks ORDER BY embedding <=> $1 LIMIT 5;
Die Dimension der Spalte muss zum Embedding-Modell passen. Wenn Sie das Modell wechseln, berechnen Sie die Vektoren neu – Vektoren aus zwei Modellen sind nicht vergleichbar.
Einsatz im Shop
- Suche nach Bedeutung, die Synonyme und Bedarfsbeschreibungen versteht, nicht nur Produktnamen.
- Wissensbasis für einen Kundenservice-Agenten: AGB, Versand, Rücksendungen – der Agent antwortet auf Grundlage Ihrer Dokumente, mit Verweis auf die Quelle.
- Ähnliche Produkte auf Basis der Beschreibung, wenn Kaufdaten fehlen.
- Ordnung im Katalog: doppelte Produkte mit unterschiedlichen Namen erkennen.
KI-Agent und pgvector bei Aderlo Cloud
Ein über MCP verbundener Agent kann selbst eine Tabelle mit Vektoren in einer Datenbank anlegen, für die Sie ihm Vollzugriff gegeben haben, und sie in einer Produktionsdatenbank mit reinem Lesezugriff abfragen. Aufgaben zum Neuberechnen der Vektoren planen Sie in der Datenbank über pg_cron, und Änderungen an Produkten geben Sie per Webhook aus der Datenbank weiter. Details zum Zugriff: PostgreSQL für KI-Agenten.
Häufige Fragen
- Brauche ich eine separate Vektordatenbank wie Pinecone?
- Für einen Shop mit Tausenden oder Zehntausenden Produkten meist nicht. pgvector hält die Vektoren neben den Daten, sodass Filtern nach Preis oder Verfügbarkeit und Suche nach Bedeutung in einer einzigen Abfrage passieren.
- Welchen Index wählen: HNSW oder IVFFlat?
- HNSW bietet meist den besseren Kompromiss aus Geschwindigkeit und Trefferqualität und braucht keine Daten zum Aufbau des Index; IVFFlat ist schneller gebaut und braucht weniger Speicher. Die Dokumentation von pgvector beschreibt beide.